From 3d3eebfd67f83e42f9f488570a2c08054b3789e2 Mon Sep 17 00:00:00 2001 From: TerryE Date: Tue, 13 Feb 2018 20:34:57 +0000 Subject: [PATCH 01/61] Turn of x bit on some non-executable source files --- app/driver/uart.c | 0 app/include/arch/cc.h | 0 app/include/driver/uart.h | 0 app/include/driver/uart_register.h | 0 app/include/lwipopts.h | 0 app/lwip/app/dhcpserver.c | 0 app/modules/tmr.c | 0 app/modules/uart.c | 0 app/platform/platform.c | 0 docs/en/modules/coap.md | 0 10 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 app/driver/uart.c mode change 100755 => 100644 app/include/arch/cc.h mode change 100755 => 100644 app/include/driver/uart.h mode change 100755 => 100644 app/include/driver/uart_register.h mode change 100755 => 100644 app/include/lwipopts.h mode change 100755 => 100644 app/lwip/app/dhcpserver.c mode change 100755 => 100644 app/modules/tmr.c mode change 100755 => 100644 app/modules/uart.c mode change 100755 => 100644 app/platform/platform.c mode change 100755 => 100644 docs/en/modules/coap.md diff --git a/app/driver/uart.c b/app/driver/uart.c old mode 100755 new mode 100644 diff --git a/app/include/arch/cc.h b/app/include/arch/cc.h old mode 100755 new mode 100644 diff --git a/app/include/driver/uart.h b/app/include/driver/uart.h old mode 100755 new mode 100644 diff --git a/app/include/driver/uart_register.h b/app/include/driver/uart_register.h old mode 100755 new mode 100644 diff --git a/app/include/lwipopts.h b/app/include/lwipopts.h old mode 100755 new mode 100644 diff --git a/app/lwip/app/dhcpserver.c b/app/lwip/app/dhcpserver.c old mode 100755 new mode 100644 diff --git a/app/modules/tmr.c b/app/modules/tmr.c old mode 100755 new mode 100644 diff --git a/app/modules/uart.c b/app/modules/uart.c old mode 100755 new mode 100644 diff --git a/app/platform/platform.c b/app/platform/platform.c old mode 100755 new mode 100644 diff --git a/docs/en/modules/coap.md b/docs/en/modules/coap.md old mode 100755 new mode 100644 From 4141e690032ea22c0ad907cf6c4f5641527d1e51 Mon Sep 17 00:00:00 2001 From: TerryE Date: Tue, 13 Feb 2018 21:26:56 +0000 Subject: [PATCH 02/61] Move luac.cross build into standard make hierarchy --- .travis.yml | 8 - app/include/module.h | 2 +- app/lua/Makefile | 1 + app/lua/lflash.h | 33 ++ app/lua/lrotable.c | 2 + app/lua/luac_cross.h | 5 +- app/lua/luac_cross/Makefile | 88 ++++ app/lua/luac_cross/lflashimg.c | 394 +++++++++++++++ app/lua/luac_cross/luac.c | 148 ++++-- tools/Makefile | 26 +- tools/build.lua | 848 --------------------------------- tools/cross-lua.lua | 42 -- tools/utils.lua | 425 ----------------- 13 files changed, 643 insertions(+), 1379 deletions(-) create mode 100644 app/lua/lflash.h create mode 100644 app/lua/luac_cross/Makefile create mode 100644 app/lua/luac_cross/lflashimg.c delete mode 100644 tools/build.lua delete mode 100644 tools/cross-lua.lua delete mode 100644 tools/utils.lua diff --git a/.travis.yml b/.travis.yml index bea38bfc4d..9cd033ea6b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,21 +5,13 @@ addons: packages: - python-serial - srecord - - lua5.1 cache: - - pip - directories: - cache -before_install: -- pip install --user hererocks esptool -- hererocks env --lua 5.1 -rlatest -- source env/bin/activate -- luarocks install luafilesystem install: - tar -Jxvf tools/esp-open-sdk.tar.xz - export PATH=$PATH:$PWD/esp-open-sdk/xtensa-lx106-elf/bin script: -- lua tools/cross-lua.lua || exit 1 - export BUILD_DATE=$(date +%Y%m%d) - make EXTRA_CCFLAGS="-DBUILD_DATE='\"'$BUILD_DATE'\"'" all - cd bin/ diff --git a/app/include/module.h b/app/include/module.h index 5a399f47cc..50b56cb37c 100644 --- a/app/include/module.h +++ b/app/include/module.h @@ -1,4 +1,4 @@ -#ifndef __MODULE_H__ +#if !defined(__MODULE_H_) && !defined(LUA_CROSS_COMPILER) #define __MODULE_H__ #include "user_modules.h" diff --git a/app/lua/Makefile b/app/lua/Makefile index a2ff3635e0..35860d6650 100644 --- a/app/lua/Makefile +++ b/app/lua/Makefile @@ -12,6 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR +SUBDIRS = luac_cross GEN_LIBS = liblua.a endif diff --git a/app/lua/lflash.h b/app/lua/lflash.h new file mode 100644 index 0000000000..2a4322a3a6 --- /dev/null +++ b/app/lua/lflash.h @@ -0,0 +1,33 @@ +/* +** lflashe.h +** See Copyright Notice in lua.h +*/ + +#if defined(LUA_FLASH_STORE) && !defined(lflash_h) +#define lflash_h + +#include "lobject.h" +#include "lstate.h" +#include "lzio.h" + +#define FLASH_SIG 0xfafaaf00 + +typedef lu_int32 FlashAddr; +typedef struct { + lu_int32 flash_sig; /* a stabdard fingerprint identifying an LFS image */ + lu_int32 flash_size; /* Size of LFS image */ + FlashAddr mainProto; /* address of main Proto in Proto hierarchy */ + FlashAddr pROhash; /* address of ROstrt hash */ + lu_int32 nROuse; /* number of elements in ROstrt */ + int nROsize; /* size of ROstrt */ + lu_int32 fill1; /* reserved */ + lu_int32 fill2; /* reserved */ +} FlashHeader; + +void luaN_user_init(void); +LUAI_FUNC void luaN_init (lua_State *L); +LUAI_FUNC int luaN_flashSetup (lua_State *L); +LUAI_FUNC int luaN_reload_reboot (lua_State *L); +LUAI_FUNC int luaN_index (lua_State *L); +#endif + diff --git a/app/lua/lrotable.c b/app/lua/lrotable.c index 33e0b45d11..96e80bc9c4 100644 --- a/app/lua/lrotable.c +++ b/app/lua/lrotable.c @@ -18,6 +18,7 @@ extern const luaR_table lua_rotable[]; /* Find a global "read only table" in the constant lua_rotable array */ void* luaR_findglobal(const char *name, unsigned len) { +#ifndef LUA_CROSS_COMPILER unsigned i; if (c_strlen(name) > LUA_MAX_ROTABLE_NAME) @@ -26,6 +27,7 @@ void* luaR_findglobal(const char *name, unsigned len) { if (*lua_rotable[i].name != '\0' && c_strlen(lua_rotable[i].name) == len && !c_strncmp(lua_rotable[i].name, name, len)) { return (void*)(lua_rotable[i].pentries); } +#endif return NULL; } diff --git a/app/lua/luac_cross.h b/app/lua/luac_cross.h index 2eea25ce7f..8dba4620e2 100644 --- a/app/lua/luac_cross.h +++ b/app/lua/luac_cross.h @@ -56,9 +56,10 @@ #define c_strrchr strrchr #define c_strstr strstr double c_strtod(const char *__n, char **__end_PTR); -#define c_strtoul strtoul #define c_ungetc ungetc - +#define c_strtol strtol +#define c_strtoul strtoul +#define dbg_printf printf #else #define C_HEADER_ASSERT "c_assert.h" diff --git a/app/lua/luac_cross/Makefile b/app/lua/luac_cross/Makefile new file mode 100644 index 0000000000..e58ec38e1e --- /dev/null +++ b/app/lua/luac_cross/Makefile @@ -0,0 +1,88 @@ +# +# This Make file is called from the core Makefile hierarchy with is a hierarchical +# make wwhich uses parent callbacks to implement inheritance. However is luac_cross +# build stands outside this and uses the host toolchain to implement a separate +# host build of the luac.cross image. +# +.NOTPARALLEL: + +CCFLAGS:= -I.. -I../../include -I../../../include -I ../../libc +LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm + +CCFLAGS += -Wall + +DEFINES += -DLUA_CROSS_COMPILER + +TARGET = host + +ifeq ($(FLAVOR),release) + CCFLAGS += -O2 + TARGET_LDFLAGS += -O2 +else + FLAVOR = debug + CCFLAGS += -O2 -g + TARGET_LDFLAGS += -O2 -g +endif + +LUACSRC := luac.c lflashimg.c loslib.c print.c +LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c \ + ldebug.c ldo.c ldump.c lfunc.c lgc.c \ + llex.c lmathlib.c lmem.c loadlib.c lobject.c \ + lopcodes.c lparser.c lrotable.c lstate.c lstring.c \ + lstrlib.c ltable.c ltablib.c ltm.c lundump.c \ + lvm.c lzio.c +LIBCSRC := c_stdlib.c + +# +# This relies on the files being unique on the vpath +# +SRC := $(LUACSRC) $(LUASRC) $(LIBCSRC) +vpath %.c .:..:../../libc + + +ODIR := .output/$(TARGET)/$(FLAVOR)/obj + +OBJS := $(SRC:%.c=$(ODIR)/%.o) +DEPS := $(SRC:%.c=$(ODIR)/%.d) + +CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(STD_CFLAGS) $(INCLUDES) +DFLAGS = $(CCFLAGS) $(DDEFINES) $(EXTRA_CCFLAGS) $(STD_CFLAGS) $(INCLUDES) + +CC := gcc + +ECHO := echo + +IMAGE := ../../../luac.cross + +.PHONY: test clean all + +all: $(DEPS) $(IMAGE) + +$(IMAGE) : $(OBJS) + $(CC) $(OBJS) -o $@ $(LDFLAGS) + +test : + @echo CC: $(CC) + @echo SRC: $(SRC) + @echo OBJS: $(OBJS) + @echo DEPS: $(DEPS) + +clean : + $(RM) -r $(ODIR) + +-include $(DEPS) + +$(ODIR)/%.o: %.c + @mkdir -p $(ODIR); + $(CC) $(if $(findstring $<,$(DSRCS)),$(DFLAGS),$(CFLAGS)) $(COPTS_$(*F)) -o $@ -c $< + +$(ODIR)/%.d: %.c + @mkdir -p $(ODIR); + @echo DEPEND: $(CC) -M $(CFLAGS) $< + @set -e; rm -f $@; \ + $(CC) -M $(CFLAGS) $< > $@.$$$$; \ + sed 's,\($*\.o\)[ :]*,$(ODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ + rm -f $@.$$$$ + +# echo 's,\($*\.o\)[ :]*,$(ODIR)/\1 $@ : ,g'; \ + diff --git a/app/lua/luac_cross/lflashimg.c b/app/lua/luac_cross/lflashimg.c new file mode 100644 index 0000000000..94844f8582 --- /dev/null +++ b/app/lua/luac_cross/lflashimg.c @@ -0,0 +1,394 @@ +/* +** lflashimg.c +** Dump a compiled Proto hiearchy to a RO (FLash) image file +** See Copyright Notice in lua.h +*/ + +#define LUAC_CROSS_FILE + +#include "luac_cross.h" +#include C_HEADER_CTYPE +#include C_HEADER_STDIO +#include C_HEADER_STDLIB +#include C_HEADER_STRING + +#define lflashimg_c +#define LUA_CORE +#include "lobject.h" +#include "lstring.h" +#undef LUA_FLASH_STORE +#define LUA_FLASH_STORE +#include "lflash.h" + +//#define LOCAL_DEBUG + +#if INT_MAX != 2147483647 +# error "luac.cross requires C toolchain with 4 byte word size" +#endif +#define WORDSIZE ((int) sizeof(int)) +#define ALIGN(s) (((s)+(WORDSIZE-1)) & (-(signed) WORDSIZE)) +#define WORDSHIFT 2 +typedef unsigned int uint; +#define FLASH_WORDS(t) (sizeof(t)/sizeof(FlashAddr)) +/* + * + * This dumper is a variant of the standard ldump, in that instead of producing a + * binary loader format that lundump can load, it produced an image file that can be + * directly mapped or copied into addressable memory. The typical application is on + * small memory IoT devices which support programmable flash storage such as the + * ESP8266. A 64 Kb LFS image has 16Kb words and will enable all program-related + * storage to be accessed directly from flash, leaving the RAM for true R/W application + * data. + * + * The start address of the Lua Flash Store (LFS) is build-dependent,. However, by + * adopting a position independent image format, cross compilation can leave this + * detail to the on-device image loader. As all objects in the LFS can be treated as + * multiples of 4-byte words. Although some record field are byte-size and can be byte + * packed, all other fields are word aligned, and in particular any address references + * within the LFS are word-aligned and also refer to word-aligned addresses within the + * LFS. + * + * In order to make the LFS position independent, such addresses are stored in a + * special format, where each PIC address is two 16-bit unsigned offsets: + * + * Bits 0-15 is the offset into the LFS that this address refers to + * Bits 16-31 is the offset linking to the PIC next address. + * + * Hence the LFS can be up to 256Kb in length and the flash loader can use the forward + * links to chain down from the mainProto address at offet 3 to all image addresses + * during load and convert them to the corresponding correct absolute memory addresses. + * + * The flash image has a standard header detailed in lflash.h + * + * Note that luac.cross may be compiled on any little-endian machine with 32 or 64 bit + * word length so Flash addresses cant be handled as standard C pointers as size_t and + * int may not have the same size. Hence addresses with the must be declared as the + * FlashAddr type rather than typed C pointers and must be accessed through macros. + * + * The Flash image is assembled up by first building the RO stringtable containing + * all strings used in the compiled proto hierarchy. This is followed by the Protos. + * + * The storage is allocated bottom up using a serial allocator and the algortihm for + * building the image essentially does a bottom-uo serial enumeration so that any + * referenced storage has already been allocated in the image, and therefore (with the + * exception of the Flash Header) all pointer references are backwards. + * + * As addresses are 4 byte on the target and either 4 or (typically) 8 bytes on the + * host so any structures containing address fields (TStrings, TValues, Protos, other + * address vectors) need repacking. + */ + +typedef struct flashts { /* This is the fixed 32-bit equivalent of TString */ + FlashAddr next; + lu_byte tt; + lu_byte marked; + int hash; + int len; +} FlashTS; + +#ifndef LUA_MAX_FLASH_SIZE +#define LUA_MAX_FLASH_SIZE 0x10000 //in words +#endif + +static uint curOffset = 0; +static uint flashImage[LUA_MAX_FLASH_SIZE]; +static unsigned char flashAddrTag[LUA_MAX_FLASH_SIZE/WORDSIZE]; + +#define fatal luac_fatal +extern void __attribute__((noreturn)) luac_fatal(const char* message); + +#ifdef LOCAL_DEBUG +#define DBG_PRINT(...) printf(__VA_ARGS__) +#else +#define DBG_PRINT(...) ((void)0) +#endif + +#define FLASH_SIG 0xfafaaf00 +/* + * Serial allocator. Throw a luac-style out of memory error is allocaiton fails. + */ +static void *flashAlloc(lua_State* L, size_t n) { + void *p = (void *)(flashImage + curOffset); + curOffset += ALIGN(n)>>WORDSHIFT; + if (curOffset > LUA_MAX_FLASH_SIZE) { + fatal("Out of Flash memmory"); + } + return p; +} + +/* + * Convert an absolute address pointing inside the flash image to offset form. + * This macro form also takes the lvalue destination so that this can be tagged + * as a relocatable address. + */ +#define toFlashAddr(l, pd, s) _toFlashAddr(l, &(pd), s) +static void _toFlashAddr(lua_State* L, FlashAddr *a, void *p) { + uint doffset = cast(char *, a) - cast(char *,flashImage); + lua_assert(!(doffset & (WORDSIZE-1))); + doffset >>= WORDSHIFT; + lua_assert(doffset <= curOffset); + if (p) { + uint poffset = cast(char *, p) - cast(char *,flashImage); + lua_assert(!(poffset & (WORDSIZE-1))); + poffset >>= WORDSHIFT; + lua_assert(poffset <= curOffset); + flashImage[doffset] = poffset; // Set the pointer to the offset + flashAddrTag[doffset] = 1; // And tag as an address + } else { // Special case for NULL pointer + flashImage[doffset] = 0; + } +} + +/* + * Convert an image address in offset form back to (host) absolute form + */ +static void *fromFashAddr(FlashAddr a) { + return a ? cast(void *, flashImage + a) : NULL; +} + + +/* + * Add a TS found in the Proto Load to the table at the ToS + */ +static void addTS(lua_State *L, TString *ts) { + lua_assert(ttisstring(&(ts->tsv))); + lua_pushnil(L); + setsvalue(L, L->top-1, ts); + lua_pushinteger(L, 1); + lua_rawset(L, -3); + DBG_PRINT("Adding string: %s\n",getstr(ts)); +} + + +/* + * Enumerate all of the Protos in the Proto hiearchy and scan contents to collect + * all referenced strings in a Lua Array at ToS. + */ +static void scanProtoStrings(lua_State *L, const Proto* f) { + /* Table at L->Top[-1] is used to collect the strings */ + int i; + + if (f->source) + addTS(L, f->source); + +#ifdef LUA_OPTIMIZE_DEBUG + if (f->packedlineinfo) + addTS(L, luaS_new(L, cast(const char *, f->packedlineinfo))); +#endif + + for (i = 0; i < f->sizek; i++) { + if (ttisstring(f->k + i)) + addTS(L, rawtsvalue(f->k + i)); + } + for (i = 0; i < f->sizeupvalues; i++) addTS(L, f->upvalues[i]); + for (i = 0; i < f->sizelocvars; i++) addTS(L, f->locvars[i].varname); + for (i = 0; i < f->sizep; i++) scanProtoStrings(L, f->p[i]); +} + + +/* + * Use the collected strings table to build the new ROstrt in the Flash Image + * + * The input is an array of {"SomeString" = 1, ...} on the ToS. + * The output is an array of {"SomeString" = FlashOffset("SomeString"), ...} on ToS + */ +static void createROstrt(lua_State *L, FlashHeader *fh) { + + /* Table at L->Top[-1] on input is hash used to collect the strings */ + /* Count the number of strings. Can't use objlen as this is a hash */ + fh->nROuse = 0; + lua_pushnil(L); /* first key */ + while (lua_next(L, -2) != 0) { + fh->nROuse++; + DBG_PRINT("Found: %s\n",getstr(rawtsvalue(L->top-2))); + lua_pop(L, 1); // dump the value + } + fh->nROsize = 2<nROuse); + FlashAddr *hashTab = flashAlloc(L, fh->nROsize * WORDSIZE); + toFlashAddr(L, fh->pROhash, hashTab); + + /* Now iterate over the strings to be added to the RO string table and build it */ + lua_newtable(L); // add output table + lua_pushnil(L); // First key + while (lua_next(L, -3) != 0) { // replaces key, pushes value + TString *ts = rawtsvalue(L->top - 2); // key.ts + const char *p = getstr(ts); // C string of key + uint hash = ts->tsv.hash; // hash of key + size_t len = ts->tsv.len; // and length + + DBG_PRINT("2nd pass: %s\n",p); + + FlashAddr *e = hashTab + lmod(hash, fh->nROsize); + FlashTS *last = cast(FlashTS *, fromFashAddr(*e)); + FlashTS *fts = cast(FlashTS *, flashAlloc(L, sizeof(FlashTS))); + toFlashAddr(L, *e, fts); // add reference to TS to lookup vector + toFlashAddr(L, fts->next, last); // and chain to previous entry if any + fts->tt = LUA_TSTRING; // Set as String + fts->marked = bitmask(FIXEDBIT); // Fixed with no Whitebits set + fts->hash = hash; // add hash + fts->len = len; // and length + memcpy(flashAlloc(L, ALIGN(len+1)), p, ALIGN(len+1)); // copy string + // include the trailing null char + lua_pop(L, 1); // Junk the value + lua_pushvalue(L, -1); // Dup the key as rawset dumps its copy + lua_pushinteger(L, cast(FlashAddr*,fts)-flashImage); // Value is new TS offset. + lua_rawset(L, -4); // Add to new table + } + /* At this point the old hash is done to derefence for GC */ + lua_remove(L, -2); +} + +/* + * Convert a TString reference in the host G(L)->strt entry into the corresponding + * TString address in the flashImage using the lookup table at ToS + */ +static void *resolveTString(lua_State* L, TString *s) { + if (!s) + return NULL; + lua_pushnil(L); + setsvalue(L, L->top-1, s); + lua_rawget(L, -2); + lua_assert(!lua_isnil(L, -1)); + void *ts = fromFashAddr(lua_tointeger(L, -1)); + lua_pop(L, 1); + return ts; +} + +/* + * In order to simplify repacking of structures from the host format to that target + * format, this simple copy routine is data-driven by a simple format specifier. + * n Number of consecutive records to be processed + * fmt A string of A,I, S, V specifiers spanning the record. + * src Source of record + * returns Address of destination record + */ +static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { + /* ToS is the string address mapping table */ + if (n == 0) + return NULL; + int i; + void *newts; + // A bit of a botch because fmt is either "V" or a string of WORDSIZE specifiers */ + int recsize = fmt[0]=='V' ? 16 : WORDSIZE * strlen(fmt); + + uint *d = cast(uint *, flashAlloc(L, n * recsize)); + uint *dest = d; + uint *s = cast(uint *, src); + + for (i = 0; i < n; i++) { + const char *p = fmt; + while (*p) { + /* All input address types (A,S,V) are aligned to size_t boundaries */ + if (*p != 'I' && ((size_t)s)&(sizeof(size_t)-1)) + s++; + switch (*p++) { + case 'A': + toFlashAddr(L, *d, *cast(void**, s)); + d++; + s += FLASH_WORDS(size_t); + break; + case 'I': + *d++ = *s++; + break; + case 'S': + newts = resolveTString(L, *cast(TString **, s)); + toFlashAddr(L, *d, newts); + d++; + s += FLASH_WORDS(size_t); + break; + case 'V': + memcpy(d, s, sizeof(TValue)); + TValue *sv = cast(TValue *, s); + if (ttisstring(sv)) { + newts = resolveTString(L, rawtsvalue(sv)); + toFlashAddr(L, *d, newts); + d[1] = 0; + } else { + lua_assert(!iscollectable(sv)); + } + d += FLASH_WORDS(TValue); + s += FLASH_WORDS(TValue); + break; + default: + lua_assert (0); + } + } + } + return dest; +} + +/* The debug optimised version has a different Proto layout */ +#ifdef LUA_OPTIMIZE_DEBUG +#define PROTO_COPY_MASK "AIAAAAAASIIIIIIIAI" +#else +#define PROTO_COPY_MASK "AIAAAAAASIIIIIIIIAI" +#endif + +/* + * Do the actual prototype copy. + */ +static void *functionToFlash(lua_State* L, const Proto* orig) { + Proto f; + int i; + + memcpy (&f, orig, sizeof(Proto)); + f.gclist = NULL; + f.next = NULL; + l_setbit(f.marked, FIXEDBIT); + + if (f.sizep) { /* clone included Protos */ + Proto **p = luaM_newvector(L, f.sizep, Proto *); + for (i=0; i= 0; i--) { + if (flashAddrTag[i]) { + lua_assert(flashImage[i]mainProto, functionToFlash(L, main)); + fh->flash_sig = FLASH_SIG; + fh->flash_size = curOffset*WORDSIZE; + linkPICaddresses(); + lua_unlock(L); + int status = w(L, flashImage, curOffset * sizeof(uint), data); + lua_lock(L); + return status; +} diff --git a/app/lua/luac_cross/luac.c b/app/lua/luac_cross/luac.c index bdd3e01a4f..2dd909fc5c 100644 --- a/app/lua/luac_cross/luac.c +++ b/app/lua/luac_cross/luac.c @@ -11,6 +11,7 @@ #include C_HEADER_STDIO #include C_HEADER_STDLIB #include C_HEADER_STRING +#include #define luac_c #define LUA_CORE @@ -31,17 +32,21 @@ static int listing=0; /* list bytecodes? */ static int dumping=1; /* dump bytecodes? */ -static int stripping=0; /* strip debug information? */ +static int stripping=0; /* strip debug information? */ +static int flash=0; /* output flash image */ +static int lookup=0; /* output lookup-style master combination header */ static char Output[]={ OUTPUT }; /* default output file name */ static const char* output=Output; /* actual output file name */ static const char* progname=PROGNAME; /* actual program name */ static DumpTargetInfo target; -static void fatal(const char* message) +void luac_fatal(const char* message) { fprintf(stderr,"%s: %s\n",progname,message); exit(EXIT_FAILURE); } +#define fatal(s) luac_fatal(s) + static void cannot(const char* what) { @@ -61,12 +66,11 @@ static void usage(const char* message) " - process stdin\n" " -l list\n" " -o name output to file " LUA_QL("name") " (default is \"%s\")\n" + " -f output a flash image file\n" + " -i generate lookup combination master (default with option -f)\n" " -p parse only\n" " -s strip debug information\n" " -v show version information\n" - " -cci bits cross-compile with given integer size\n" - " -ccn type bits cross-compile with given lua_Number type and size\n" - " -cce endian cross-compile with given endianness ('big' or 'little')\n" " -- stop handling options\n", progname,Output); exit(EXIT_FAILURE); @@ -91,6 +95,13 @@ static int doargs(int argc, char* argv[]) } else if (IS("-")) /* end of options; use stdin */ break; + else if (IS("-f")) /* Flash image file */ + { + flash=1; + lookup=1; + } + else if (IS("-i")) /* lookup */ + lookup = 1; else if (IS("-l")) /* list */ ++listing; else if (IS("-o")) /* output file */ @@ -99,42 +110,17 @@ static int doargs(int argc, char* argv[]) if (output==NULL || *output==0) usage(LUA_QL("-o") " needs argument"); if (IS("-")) output=NULL; } + else if (IS("-p")) /* parse only */ - dumping=0; + dumping=0; else if (IS("-s")) /* strip debug information */ stripping=1; else if (IS("-v")) /* show version */ ++version; - else if (IS("-cci")) /* target integer size */ - { - int s = target.sizeof_int = atoi(argv[++i])/8; - if (!(s==1 || s==2 || s==4)) fatal(LUA_QL("-cci") " must be 8, 16 or 32"); - } - else if (IS("-ccn")) /* target lua_Number type and size */ - { - const char *type=argv[++i]; - if (strcmp(type,"int")==0) target.lua_Number_integral=1; - else if (strcmp(type,"float")==0) target.lua_Number_integral=0; - else if (strcmp(type,"float_arm")==0) - { - target.lua_Number_integral=0; - target.is_arm_fpa=1; - } - else fatal(LUA_QL("-ccn") " type must be " LUA_QL("int") " or " LUA_QL("float") " or " LUA_QL("float_arm")); - int s = target.sizeof_lua_Number = atoi(argv[++i])/8; - if (target.lua_Number_integral && !(s==1 || s==2 || s==4)) fatal(LUA_QL("-ccn") " size must be 8, 16, or 32 for int"); - if (!target.lua_Number_integral && !(s==4 || s==8)) fatal(LUA_QL("-ccn") " size must be 32 or 64 for float"); - } - else if (IS("-cce")) /* target endianness */ - { - const char *val=argv[++i]; - if (strcmp(val,"big")==0) target.little_endian=0; - else if (strcmp(val,"little")==0) target.little_endian=1; - else fatal(LUA_QL("-cce") " must be " LUA_QL("big") " or " LUA_QL("little")); - } else /* unknown option */ - usage(argv[i]); + usage(argv[i]); } + if (i==argc && (listing || !dumping)) { dumping=0; @@ -150,30 +136,87 @@ static int doargs(int argc, char* argv[]) #define toproto(L,i) (clvalue(L->top+(i))->l.p) -static const Proto* combine(lua_State* L, int n) +static TString *corename(lua_State *L, const TString *filename) { - if (n==1) + const char *fn = getstr(filename)+1; + const char *s = strrchr(fn, '/'); + s = s ? s + 1 : fn; + while (*s == '.') s++; + const char *e = strchr(s, '.'); + int l = e ? e - s: strlen(s); + return l ? luaS_newlstr (L, s, l) : luaS_new(L, fn); +} +/* + * If the luac command line includes multiple files or has the -f option + * then luac generates a main function to reference all sub-main prototypes. + * This is one of two types: + * Type 0 The standard luac combination main + * Type 1 A lookup wrapper that facilitates indexing into the gernated protos + */ +static const Proto* combine(lua_State* L, int n, int type) +{ + if (n==1 && type == 0) return toproto(L,-1); else { - int i,pc; + int i,pc,stacksize; + Instruction *code; Proto* f=luaF_newproto(L); setptvalue2s(L,L->top,f); incr_top(L); f->source=luaS_newliteral(L,"=(" PROGNAME ")"); - f->maxstacksize=1; - pc=2*n+1; - f->code=luaM_newvector(L,pc,Instruction); - f->sizecode=pc; f->p=luaM_newvector(L,n,Proto*); f->sizep=n; + for (i=0; ip[i]=toproto(L,i-n-1); pc=0; - for (i=0; ip[i]=toproto(L,i-n-1); - f->code[pc++]=CREATE_ABx(OP_CLOSURE,0,i); - f->code[pc++]=CREATE_ABC(OP_CALL,0,1,1); + /* + * Type 0 is as per the standard luac, which is just a main routine which + * invokes all of the compiled functions sequentially. This is fine if + * they are self registering modules, but useless otherwise. + */ + stacksize = 1; + code=luaM_newvector(L,2*n+1,Instruction); + for (i=0; icode[pc++]=CREATE_ABC(OP_RETURN,0,1,0); + else + { + /* + * The Type 1 main() is a lookup which takes a single argument, the name to + * be resolved. If this matches root name of one of the compiled files then + * a closure to this file main is returned. If the name is "list": then the + * list of root names is returned, else a nil return. + */ + lua_assert(nk=luaM_newvector(L,n+1,TValue); + f->sizek=n+1; + setnvalue(f->k, (lua_Number) time(NULL)); + for (i=0; ik+i+1,corename(L, f->p[i]->source)); + code[pc++]=CREATE_ABC(OP_EQ,0,0,RKASK(i+1)); + code[pc++]=CREATE_ABx(OP_JMP,0,MAXARG_sBx+2); + code[pc++]=CREATE_ABx(OP_CLOSURE,1,i); + code[pc++]=CREATE_ABC(OP_RETURN,1,2,0); + } + for (i=0; i<=n; i++) code[pc++]=CREATE_ABx(OP_LOADK,i+1,i); + /* should be a block loop */ + code[pc++]=CREATE_ABC(OP_RETURN,1,2+n,0); + code[pc++]=CREATE_ABC(OP_RETURN,0,1,0); + } + f->numparams=1; + f->maxstacksize=stacksize; + f->code=code; + f->sizecode=pc; return f; } } @@ -189,6 +232,8 @@ struct Smain { char** argv; }; +extern uint dumpToFlashImage (lua_State* L,const Proto *main, lua_Writer w, void* data, int strip); + static int pmain(lua_State* L) { struct Smain* s = (struct Smain*)lua_touserdata(L, 1); @@ -202,14 +247,21 @@ static int pmain(lua_State* L) const char* filename=IS("-") ? NULL : argv[i]; if (luaL_loadfile(L,filename)!=0) fatal(lua_tostring(L,-1)); } - f=combine(L,argc); + f=combine(L,argc,lookup); if (listing) luaU_print(f,listing>1); if (dumping) { + int result; FILE* D= (output==NULL) ? stdout : fopen(output,"wb"); if (D==NULL) cannot("open"); lua_lock(L); - int result=luaU_dump_crosscompile(L,f,writer,D,stripping,target); + if (flash) + { + result=dumpToFlashImage(L,f,writer, D, stripping); + } else + { + result=luaU_dump_crosscompile(L,f,writer,D,stripping,target); + } lua_unlock(L); if (result==LUA_ERR_CC_INTOVERFLOW) fatal("value too big or small for target integer type"); if (result==LUA_ERR_CC_NOTINTEGER) fatal("target lua_Number is integral but fractional value found"); diff --git a/tools/Makefile b/tools/Makefile index ab36e7569a..b5c5b30e8f 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -3,6 +3,7 @@ # FSSOURCE ?= ../local/fs/ +LUASOURCE ?= ../local/lua/ FLASHSIZE ?= 4mb 32mb 8mb SUBDIRS = HOSTCC ?= gcc @@ -16,10 +17,22 @@ OBJDUMP = $(or $(shell which objdump),xtensa-lx106-elf-objdump) SPIFFSFILES ?= $(patsubst $(FSSOURCE)%,%,$(shell find $(FSSOURCE) -name '*' '!' -name .gitignore )) ################################################################# -# Get the filesize of /bin/0x10000.bin +# Get the filesize of /bin/0x10000.bin and SPIFFS sizing # -FLASH_USED_END = $$((0x`$(OBJDUMP) -t ../app/.output/eagle/debug/image/eagle.app.v6.out |grep _flash_used_end |cut -f1 -d" "` - 0x40200000)) +FLASH_USED_END := $$((0x`$(OBJDUMP) -t ../app/.output/eagle/debug/image/eagle.app.v6.out |grep _flash_used_end |cut -f1 -d" "` - 0x40200000)) +FLASH_FS_SIZE := $(shell $(HOSTCC) -E -dM - <../app/include/user_config.h | grep SPIFFS_MAX_FILESYSTEM_SIZE| cut -d ' ' -f 3) +FLASH_FS_LOC := $(shell $(HOSTCC) -E -dM - <../app/include/user_config.h | grep SPIFFS_FIXED_LOCATION| cut -d ' ' -f 3) + +ifneq (FLASH_FS_SIZE,'') +FLASHSIZE = $(shell printf "0x%x" $(FLASH_FS_SIZE)) +endif + +ifeq (FLASH_FS_LOC,'') +FLASH_FS_LOC := $(FLASH_USED_END) +else +FLASH_FS_LOC := $(shell printf "0x%x" $(FLASH_FS_LOC)) +endif ############################################################# @@ -39,13 +52,16 @@ spiffsimg: spiffsimg/spiffsimg spiffsimg/spiffsimg: @$(MAKE) -C spiffsimg CC=$(HOSTCC) -spiffsscript: remove-image spiffsimg/spiffsimg +spiffsscript: remove-image LFSimage spiffsimg/spiffsimg rm -f ./spiffsimg/spiffs.lst - echo "" >> ./spiffsimg/spiffs.lst + @echo "" >> ./spiffsimg/spiffs.lst @$(foreach f, $(SPIFFSFILES), echo "import $(FSSOURCE)$(f) $(f)" >> ./spiffsimg/spiffs.lst ;) - @$(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -U $(FLASH_USED_END) -o ../bin/spiffs-$(sz).dat -f ../bin/0x%x-$(sz).bin -S $(sz) -r ./spiffsimg/spiffs.lst -d; ) + $(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -f ../bin/0x%x-$(sz).img -c $(sz) -U $(FLASH_FS_LOC) -r ./spiffsimg/spiffs.lst -d; ) @$(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then echo Built $$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) +LFSimage: $(LUASOURCE)*.lua + ../luac.cross -f -o $(FSSOURCE)flash.img $(LUASOURCE)*.lua + remove-image: $(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then rm -f ../bin/$$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) rm -f ../bin/spiffs*.dat diff --git a/tools/build.lua b/tools/build.lua deleted file mode 100644 index 0d93dea2bb..0000000000 --- a/tools/build.lua +++ /dev/null @@ -1,848 +0,0 @@ --- eLua build system - -module( ..., package.seeall ) - -local lfs = require "lfs" -local sf = string.format -utils = require "tools.utils" - -------------------------------------------------------------------------------- --- Various helpers - --- Return the time of the last modification of the file -local function get_ftime( path ) - local t = lfs.attributes( path, 'modification' ) - return t or -1 -end - --- Check if a given target name is phony -local function is_phony( target ) - return target:find( "#phony" ) == 1 -end - --- Return a string with $(key) replaced with 'value' -local function expand_key( s, key, value ) - if not value then return s end - local fmt = sf( "%%$%%(%s%%)", key ) - return ( s:gsub( fmt, value ) ) -end - --- Return a target name considering phony targets -local function get_target_name( s ) - if not is_phony( s ) then return s end -end - --- 'Liniarize' a file name by replacing its path separators indicators with '_' -local function linearize_fname( s ) - return ( s:gsub( "[\\/]", "__" ) ) -end - --- Helper: transform a table into a string if needed -local function table_to_string( t ) - if not t then return nil end - if type( t ) == "table" then t = table.concat( t, " " ) end - return t -end - --- Helper: return the extended type of an object (takes into account __type) -local function exttype( o ) - local t = type( o ) - if t == "table" and o.__type then t = o:__type() end - return t -end - ---------------------------------------- --- Table utils --- (from http://lua-users.org/wiki/TableUtils) - -function table.val_to_str( v ) - if "string" == type( v ) then - v = string.gsub( v, "\n", "\\n" ) - if string.match( string.gsub(v,"[^'\"]",""), '^"+$' ) then - return "'" .. v .. "'" - end - return '"' .. string.gsub(v,'"', '\\"' ) .. '"' - else - return "table" == type( v ) and table.tostring( v ) or tostring( v ) - end -end - -function table.key_to_str ( k ) - if "string" == type( k ) and string.match( k, "^[_%a][_%a%d]*$" ) then - return k - else - return "[" .. table.val_to_str( k ) .. "]" - end -end - -function table.tostring( tbl ) - local result, done = {}, {} - for k, v in ipairs( tbl ) do - table.insert( result, table.val_to_str( v ) ) - done[ k ] = true - end - for k, v in pairs( tbl ) do - if not done[ k ] then - table.insert( result, - table.key_to_str( k ) .. "=" .. table.val_to_str( v ) ) - end - end - return "{" .. table.concat( result, "," ) .. "}" -end - -------------------------------------------------------------------------------- --- Dummy 'builder': simply checks the date of a file - -local _fbuilder = {} - -_fbuilder.new = function( target, dep ) - local self = {} - setmetatable( self, { __index = _fbuilder } ) - self.target = target - self.dep = dep - return self -end - -_fbuilder.build = function( self ) - -- Doesn't build anything but returns 'true' if the dependency is newer than - -- the target - if is_phony( self.target ) then - return true - else - return get_ftime( self.dep ) > get_ftime( self.target ) - end -end - -_fbuilder.target_name = function( self ) - return get_target_name( self.dep ) -end - --- Object type -_fbuilder.__type = function() - return "_fbuilder" -end - -------------------------------------------------------------------------------- --- Target object - -local _target = {} - -_target.new = function( target, dep, command, builder, ttype ) - local self = {} - setmetatable( self, { __index = _target } ) - self.target = target - self.command = command - self.builder = builder - builder:register_target( target, self ) - self:set_dependencies( dep ) - self.dep = self:_build_dependencies( self.origdep ) - self.dont_clean = false - self.can_substitute_cmdline = false - self._force_rebuild = #self.dep == 0 - builder.runlist[ target ] = false - self:set_type( ttype ) - return self -end - --- Set dependencies as a string; actual dependencies are computed by _build_dependencies --- (below) when 'build' is called -_target.set_dependencies = function( self, dep ) - self.origdep = dep -end - --- Set the target type --- This is only for displaying actions -_target.set_type = function( self, ttype ) - local atable = { comp = { "[COMPILE]", 'blue' } , dep = { "[DEPENDS]", 'magenta' }, link = { "[LINK]", 'yellow' }, asm = { "[ASM]", 'white' } } - local tdata = atable[ ttype ] - if not tdata then - self.dispstr = is_phony( self.target ) and "[PHONY]" or "[TARGET]" - self.dispcol = 'green' - else - self.dispstr = tdata[ 1 ] - self.dispcol = tdata[ 2 ] - end -end - --- Set dependencies --- This uses a proxy table and returns string deps dynamically according --- to the targets currently registered in the builder -_target._build_dependencies = function( self, dep ) - -- Step 1: start with an array - if type( dep ) == "string" then dep = utils.string_to_table( dep ) end - -- Step 2: linearize "dep" array keeping targets - local filter = function( e ) - local t = exttype( e ) - return t ~= "_ftarget" and t ~= "_target" - end - dep = utils.linearize_array( dep, filter ) - -- Step 3: strings are turned into _fbuilder objects if not found as targets; - -- otherwise the corresponding target object is used - for i = 1, #dep do - if type( dep[ i ] ) == 'string' then - local t = self.builder:get_registered_target( dep[ i ] ) - dep[ i ] = t or _fbuilder.new( self.target, dep[ i ] ) - end - end - return dep -end - --- Set pre-build function -_target.set_pre_build_function = function( self, f ) - self._pre_build_function = f -end - --- Set post-build function -_target.set_post_build_function = function( self, f ) - self._post_build_function = f -end - --- Force rebuild -_target.force_rebuild = function( self, flag ) - self._force_rebuild = flag -end - --- Set additional arguments to send to the builder function if it is a callable -_target.set_target_args = function( self, args ) - self._target_args = args -end - --- Function to execute in clean mode -_target._cleaner = function( target, deps, tobj, disp_mode ) - -- Clean the main target if it is not a phony target - local dprint = function( ... ) - if disp_mode ~= "minimal" then print( ... ) end - end - if not is_phony( target ) then - if tobj.dont_clean then - dprint( sf( "[builder] Target '%s' will not be deleted", target ) ) - return 0 - end - if disp_mode ~= "minimal" then io.write( sf( "[builder] Removing %s ... ", target ) ) end - if os.remove( target ) then dprint "done." else dprint "failed!" end - end - return 0 -end - --- Build the given target -_target.build = function( self ) - if self.builder.runlist[ self.target ] then return end - local docmd = self:target_name() and lfs.attributes( self:target_name(), "mode" ) ~= "file" - docmd = docmd or self.builder.global_force_rebuild - local initdocmd = docmd - self.dep = self:_build_dependencies( self.origdep ) - local depends, dep, previnit = '', self.dep, self.origdep - -- Iterate through all dependencies, execute each one in turn - local deprunner = function() - for i = 1, #dep do - local res = dep[ i ]:build() - docmd = docmd or res - local t = dep[ i ]:target_name() - if exttype( dep[ i ] ) == "_target" and t and not is_phony( self.target ) then - docmd = docmd or get_ftime( t ) > get_ftime( self.target ) - end - if t then depends = depends .. t .. " " end - end - end - deprunner() - -- Execute the preb-build function if needed - if self._pre_build_function then self._pre_build_function( self, docmd ) end - -- If the dependencies changed as a result of running the pre-build function - -- run through them again - if previnit ~= self.origdep then - self.dep = self:_build_dependencies( self.origdep ) - depends, dep, docmd = '', self.dep, initdocmd - deprunner() - end - -- If at least one dependency is new rebuild the target - docmd = docmd or self._force_rebuild or self.builder.clean_mode - local keep_flag = true - if docmd and self.command then - if self.builder.disp_mode ~= 'all' and self.builder.disp_mode ~= "minimal" and not self.builder.clean_mode then - io.write( utils.col_funcs[ self.dispcol ]( self.dispstr ) .. " " ) - end - local cmd, code = self.command - if self.builder.clean_mode then cmd = _target._cleaner end - if type( cmd ) == 'string' then - cmd = expand_key( cmd, "TARGET", self.target ) - cmd = expand_key( cmd, "DEPENDS", depends ) - cmd = expand_key( cmd, "FIRST", dep[ 1 ]:target_name() ) - if self.builder.disp_mode == 'all' then - print( cmd ) - elseif self.builder.disp_mode ~= "minimal" then - print( self.target ) - end - code = self:execute( cmd ) - else - if not self.builder.clean_mode and self.builder.disp_mode ~= "all" and self.builder.disp_mode ~= "minimal" then - print( self.target ) - end - code = cmd( self.target, self.dep, self.builder.clean_mode and self or self._target_args, self.builder.disp_mode ) - if code == 1 then -- this means "mark target as 'not executed'" - keep_flag = false - code = 0 - end - end - if code ~= 0 then - print( utils.col_red( "[builder] Error building target" ) ) - if self.builder.disp_mode ~= 'all' and type( cmd ) == "string" then - print( utils.col_red( "[builder] Last executed command was: " ) ) - print( cmd ) - end - os.exit( 1 ) - end - end - -- Execute the post-build function if needed - if self._post_build_function then self._post_build_function( self, docmd ) end - -- Marked target as "already ran" so it won't run again - self.builder.runlist[ self.target ] = true - return docmd and keep_flag -end - --- Return the actual target name (taking into account phony targets) -_target.target_name = function( self ) - return get_target_name( self.target ) -end - --- Restrict cleaning this target -_target.prevent_clean = function( self, flag ) - self.dont_clean = flag -end - --- Object type -_target.__type = function() - return "_target" -end - -_target.execute = function( self, cmd ) - local code - if utils.is_windows() and #cmd > 8190 and self.can_substitute_cmdline then - -- Avoid cmd's maximum command line length limitation - local t = cmd:find( " " ) - f = io.open( "tmpcmdline", "w" ) - local rest = cmd:sub( t + 1 ) - f:write( ( rest:gsub( "\\", "/" ) ) ) - f:close() - cmd = cmd:sub( 1, t - 1 ) .. " @tmpcmdline" - end - local code = os.execute( cmd ) - os.remove( "tmpcmdline" ) - return code -end - -_target.set_substitute_cmdline = function( self, flag ) - self.can_substitute_cmdline = flag -end - -------------------------------------------------------------------------------- --- Builder public interface - -builder = { KEEP_DIR = 0, BUILD_DIR_LINEARIZED = 1 } - ---------------------------------------- --- Initialization and option handling - --- Create a new builder object with the output in 'build_dir' and with the --- specified compile, dependencies and link command -builder.new = function( build_dir ) - self = {} - setmetatable( self, { __index = builder } ) - self.build_dir = build_dir or ".build" - self.exe_extension = utils.is_windows() and "exe" or "" - self.clean_mode = false - self.opts = utils.options_handler() - self.args = {} - self.user_args = {} - self.build_mode = self.KEEP_DIR - self.targets = {} - self.targetargs = {} - self._tlist = {} - self.runlist = {} - self.disp_mode = 'all' - self.cmdline_macros = {} - self.c_targets = {} - self.preprocess_mode = false - self.asm_mode = false - return self -end - --- Helper: create the build output directory -builder._create_build_dir = function( self ) - if self.build_dir_created then return end - if self.build_mode ~= self.KEEP_DIR then - -- Create builds directory if needed - local mode = lfs.attributes( self.build_dir, "mode" ) - if not mode or mode ~= "directory" then - if not utils.full_mkdir( self.build_dir ) then - print( "[builder] Unable to create directory " .. self.build_dir ) - os.exit( 1 ) - end - end - end - self.build_dir_created = true -end - --- Add an options to the builder -builder.add_option = function( self, name, help, default, data ) - self.opts:add_option( name, help, default, data ) -end - --- Initialize builder from the given command line -builder.init = function( self, args ) - -- Add the default options - local opts = self.opts - opts:add_option( "build_mode", 'choose location of the object files', self.KEEP_DIR, - { keep_dir = self.KEEP_DIR, build_dir_linearized = self.BUILD_DIR_LINEARIZED } ) - opts:add_option( "build_dir", 'choose build directory', self.build_dir ) - opts:add_option( "disp_mode", 'set builder display mode', 'summary', { 'all', 'summary', 'minimal' } ) - -- Apply default values to all options - for i = 1, opts:get_num_opts() do - local o = opts:get_option( i ) - self.args[ o.name:upper() ] = o.default - end - -- Read and interpret command line - for i = 1, #args do - local a = args[ i ] - if a:upper() == "-C" then -- clean option (-c) - self.clean_mode = true - elseif a:upper() == '-H' then -- help option (-h) - self:_show_help() - os.exit( 1 ) - elseif a:upper() == "-E" then -- preprocess - self.preprocess_mode = true - elseif a:upper() == "-S" then -- generate assembler - self.asm_mode = true - elseif a:find( '-D' ) == 1 and #a > 2 then -- this is a macro definition that will be auomatically added to the compiler flags - table.insert( self.cmdline_macros, a:sub( 3 ) ) - elseif a:find( '=' ) then -- builder argument (key=value) - local k, v = opts:handle_arg( a ) - if not k then - self:_show_help() - os.exit( 1 ) - end - self.args[ k:upper() ] = v - self.user_args[ k:upper() ] = true - else -- this must be the target name / target arguments - if self.targetname == nil then - self.targetname = a - else - table.insert( self.targetargs, a ) - end - end - end - -- Read back the default options - self.build_mode = self.args.BUILD_MODE - self.build_dir = self.args.BUILD_DIR - self.disp_mode = self.args.DISP_MODE -end - --- Return the value of the option with the given name -builder.get_option = function( self, optname ) - return self.args[ optname:upper() ] -end - --- Returns true if the given option was specified by the user on the command line, false otherwise -builder.is_user_option = function( self, optname ) - return self.user_args[ optname:upper() ] -end - --- Show builder help -builder._show_help = function( self ) - print( "[builder] Valid options:" ) - print( " -h: help (this text)" ) - print( " -c: clean target" ) - print( " -E: generate preprocessed output for single file targets" ) - print( " -S: generate assembler output for single file targets" ) - self.opts:show_help() -end - ---------------------------------------- --- Builder configuration - --- Set the compile command -builder.set_compile_cmd = function( self, cmd ) - self.comp_cmd = cmd -end - --- Set the link command -builder.set_link_cmd = function( self, cmd ) - self.link_cmd = cmd -end - --- Set the assembler command -builder.set_asm_cmd = function( self, cmd ) - self._asm_cmd = cmd -end - --- Set (actually force) the object file extension -builder.set_object_extension = function( self, ext ) - self.obj_extension = ext -end - --- Set (actually force) the executable file extension -builder.set_exe_extension = function( self, ext ) - self.exe_extension = ext -end - --- Set the clean mode -builder.set_clean_mode = function( self, isclean ) - self.clean_mode = isclean -end - --- Sets the build mode -builder.set_build_mode = function( self, mode ) - self.build_mode = mode -end - --- Set the build directory -builder.set_build_dir = function( self, dir ) - if self.build_dir_created then - print "[builder] Error: build directory already created" - os.exit( 1 ) - end - self.build_dir = dir - self:_create_build_dir() -end - --- Return the current build directory -builder.get_build_dir = function( self ) - return self.build_dir -end - --- Return the target arguments -builder.get_target_args = function( self ) - return self.targetargs -end - --- Set a specific dependency generation command for the assembler --- Pass 'false' to skip dependency generation for assembler files -builder.set_asm_dep_cmd = function( self, asm_dep_cmd ) - self.asm_dep_cmd = asm_dep_cmd -end - --- Set a specific dependency generation command for the compiler --- Pass 'false' to skip dependency generation for C files -builder.set_c_dep_cmd = function( self, c_dep_cmd ) - self.c_dep_cmd = c_dep_cmd -end - --- Save the builder configuration for a given component to a string -builder._config_to_string = function( self, what ) - local ctable = {} - local state_fields - if what == 'comp' then - state_fields = { 'comp_cmd', '_asm_cmd', 'c_dep_cmd', 'asm_dep_cmd', 'obj_extension' } - elseif what == 'link' then - state_fields = { 'link_cmd' } - else - print( sf( "Invalid argument '%s' to _config_to_string", what ) ) - os.exit( 1 ) - end - utils.foreach( state_fields, function( k, v ) ctable[ v ] = self[ v ] end ) - return table.tostring( ctable ) -end - --- Check the configuration of the given component against the previous one --- Return true if the configuration has changed -builder._compare_config = function( self, what ) - local res = false - local crtstate = self:_config_to_string( what ) - if not self.clean_mode then - local fconf = io.open( self.build_dir .. utils.dir_sep .. ".builddata." .. what, "rb" ) - if fconf then - local oldstate = fconf:read( "*a" ) - fconf:close() - if oldstate:lower() ~= crtstate:lower() then res = true end - end - end - -- Write state to build dir - fconf = io.open( self.build_dir .. utils.dir_sep .. ".builddata." .. what, "wb" ) - if fconf then - fconf:write( self:_config_to_string( what ) ) - fconf:close() - end - return res -end - --- Sets the way commands are displayed -builder.set_disp_mode = function( self, mode ) - mode = mode:lower() - if mode ~= 'all' and mode ~= 'summary' and mode ~= "minimal" then - print( sf( "[builder] Invalid display mode '%s'", mode ) ) - os.exit( 1 ) - end - self.disp_mode = mode -end - ---------------------------------------- --- Command line builders - --- Internal helper -builder._generic_cmd = function( self, args ) - local compcmd = args.compiler or "gcc" - compcmd = compcmd .. " " - local flags = type( args.flags ) == 'table' and table_to_string( utils.linearize_array( args.flags ) ) or args.flags - local defines = type( args.defines ) == 'table' and table_to_string( utils.linearize_array( args.defines ) ) or args.defines - local includes = type( args.includes ) == 'table' and table_to_string( utils.linearize_array( args.includes ) ) or args.includes - local comptype = table_to_string( args.comptype ) or "-c" - compcmd = compcmd .. utils.prepend_string( defines, "-D" ) - compcmd = compcmd .. utils.prepend_string( includes, "-I" ) - return compcmd .. flags .. " " .. comptype .. " -o $(TARGET) $(FIRST)" -end - --- Return a compile command based on the specified args -builder.compile_cmd = function( self, args ) - args.defines = { args.defines, self.cmdline_macros } - if self.preprocess_mode then - args.comptype = "-E" - elseif self.asm_mode then - args.comptype = "-S" - else - args.comptype = "-c" - end - return self:_generic_cmd( args ) -end - --- Return an assembler command based on the specified args -builder.asm_cmd = function( self, args ) - args.defines = { args.defines, self.cmdline_macros } - args.compiler = args.assembler - args.comptype = self.preprocess_mode and "-E" or "-c" - return self:_generic_cmd( args ) -end - --- Return a link command based on the specified args -builder.link_cmd = function( self, args ) - local flags = type( args.flags ) == 'table' and table_to_string( utils.linearize_array( args.flags ) ) or args.flags - local libraries = type( args.libraries ) == 'table' and table_to_string( utils.linearize_array( args.libraries ) ) or args.libraries - local linkcmd = args.linker or "gcc" - linkcmd = linkcmd .. " " .. flags .. " -o $(TARGET) $(DEPENDS)" - linkcmd = linkcmd .. " " .. utils.prepend_string( libraries, "-l" ) - return linkcmd -end - ---------------------------------------- --- Target handling - --- Create a return a new C to object target -builder.c_target = function( self, target, deps, comp_cmd ) - return _target.new( target, deps, comp_cmd or self.comp_cmd, self, 'comp' ) -end - --- Create a return a new ASM to object target -builder.asm_target = function( self, target, deps, asm_cmd ) - return _target.new( target, deps, asm_cmd or self._asm_cmd, self, 'asm' ) -end - --- Return the name of a dependency file name corresponding to a C source -builder.get_dep_filename = function( self, srcname ) - return utils.replace_extension( self.build_dir .. utils.dir_sep .. linearize_fname( srcname ), "d" ) -end - --- Create a return a new C dependency target -builder.dep_target = function( self, dep, depdeps, dep_cmd ) - local depname = self:get_dep_filename( dep ) - return _target.new( depname, depdeps, dep_cmd, self, 'dep' ) -end - --- Create and return a new link target -builder.link_target = function( self, out, dep, link_cmd ) - local path, ext = utils.split_ext( out ) - if not ext and self.exe_extension and #self.exe_extension > 0 then - out = out .. self.exe_extension - end - local t = _target.new( out, dep, link_cmd or self.link_cmd, self, 'link' ) - if self:_compare_config( 'link' ) then t:force_rebuild( true ) end - t:set_substitute_cmdline( true ) - return t -end - --- Create and return a new generic target -builder.target = function( self, dest_target, deps, cmd ) - return _target.new( dest_target, deps, cmd, self ) -end - --- Register a target (called from _target.new) -builder.register_target = function( self, name, obj ) - self._tlist[ name:gsub( "\\", "/" ) ] = obj -end - --- Returns a registered target (nil if not found) -builder.get_registered_target = function( self, name ) - return self._tlist[ name:gsub( "\\", "/" ) ] -end - ---------------------------------------- --- Actual building functions - --- Return the object name corresponding to a source file name -builder.obj_name = function( self, name, ext ) - local r = ext or self.obj_extension - if not r then - r = utils.is_windows() and "obj" or "o" - end - local objname = utils.replace_extension( name, r ) - -- KEEP_DIR: object file in the same directory as source file - -- BUILD_DIR_LINEARIZED: object file in the build directory, linearized filename - if self.build_mode == self.KEEP_DIR then - return objname - elseif self.build_mode == self.BUILD_DIR_LINEARIZED then - return self.build_dir .. utils.dir_sep .. linearize_fname( objname ) - end -end - --- Read and interpret dependencies for each file specified in "ftable" --- "ftable" is either a space-separated string with all the source files or an array -builder.read_depends = function( self, ftable ) - if type( ftable ) == 'string' then ftable = utils.string_to_table( ftable ) end - -- Read dependency data - local dtable = {} - for i = 1, #ftable do - local f = io.open( self:get_dep_filename( ftable[ i ] ), "rb" ) - local lines = ftable[ i ] - if f then - lines = f:read( "*a" ) - f:close() - lines = lines:gsub( "\n", " " ):gsub( "\\%s+", " " ):gsub( "%s+", " " ):gsub( "^.-: (.*)", "%1" ) - end - dtable[ ftable[ i ] ] = lines - end - return dtable -end - --- Create and return compile targets for the given sources -builder.create_compile_targets = function( self, ftable, res ) - if type( ftable ) == 'string' then ftable = utils.string_to_table( ftable ) end - res = res or {} - ccmd, oname = "-c", "o" - if self.preprocess_mode then - ccmd, oname = '-E', "pre" - elseif self.asm_mode then - ccmd, oname = '-S', 's' - end - -- Build dependencies for all targets - for i = 1, #ftable do - local isasm = ftable[ i ]:find( "%.c$" ) == nil - -- Skip assembler targets if 'asm_dep_cmd' is set to 'false' - -- Skip C targets if 'c_dep_cmd' is set to 'false' - local skip = isasm and self.asm_dep_cmd == false - skip = skip or ( not isasm and self.c_dep_cmd == false ) - local deps = self:get_dep_filename( ftable[ i ] ) - local target - if not isasm then - local depcmd = skip and self.comp_cmd or ( self.c_dep_cmd or self.comp_cmd:gsub( ccmd .. " ", sf( ccmd .. " -MD -MF %s ", deps ) ) ) - target = self:c_target( self:obj_name( ftable[ i ], oname ), { self:get_registered_target( deps ) or ftable[ i ] }, depcmd ) - else - local depcmd = skip and self._asm_cmd or ( self.asm_dep_cmd or self._asm_cmd:gsub( ccmd .. " ", sf( ccmd .. " -MD -MF %s ", deps ) ) ) - target = self:asm_target( self:obj_name( ftable[ i ], oname ), { self:get_registered_target( deps ) or ftable[ i ] }, depcmd ) - end - -- Pre build step: replace dependencies with the ones from the compiler generated dependency file - local dprint = function( ... ) if self.disp_mode ~= "minimal" then print( ... ) end end - if not skip then - target:set_pre_build_function( function( t, _ ) - if not self.clean_mode then - local fres = self:read_depends( ftable[ i ] ) - local fdeps = fres[ ftable[ i ] ] - if #fdeps:gsub( "%s+", "" ) == 0 then fdeps = ftable[ i ] end - t:set_dependencies( fdeps ) - else - if self.disp_mode ~= "minimal" then io.write( sf( "[builder] Removing %s ... ", deps ) ) end - if os.remove( deps ) then dprint "done." else dprint "failed!" end - end - end ) - end - target.srcname = ftable[ i ] - -- TODO: check clean mode? - if not isasm then self.c_targets[ #self.c_targets + 1 ] = target end - table.insert( res, target ) - end - return res -end - --- Add a target to the list of builder targets -builder.add_target = function( self, target, help, alias ) - self.targets[ target.target ] = { target = target, help = help } - alias = alias or {} - for _, v in ipairs( alias ) do - self.targets[ v ] = { target = target, help = help } - end - return target -end - --- Make a target the default one -builder.default = function( self, target ) - self.deftarget = target.target - self.targets.default = { target = target, help = "default target" } -end - --- Build everything -builder.build = function( self, target ) - local t = self.targetname or self.deftarget - if not t then - print( utils.col_red( "[builder] Error: build target not specified" ) ) - os.exit( 1 ) - end - local trg - -- Look for single targets (C source files) - for _, ct in pairs( self.c_targets ) do - if ct.srcname == t then - trg = ct - break - end - end - if not trg then - if not self.targets[ t ] then - print( sf( "[builder] Error: target '%s' not found", t ) ) - print( "Available targets: " ) - print( " all source files" ) - for k, v in pairs( self.targets ) do - if not is_phony( k ) then - print( sf( " %s - %s", k, v.help or "(no help available)" ) ) - end - end - if self.deftarget and not is_phony( self.deftarget ) then - print( sf( "Default target is '%s'", self.deftarget ) ) - end - os.exit( 1 ) - else - if self.preprocess_mode or self.asm_mode then - print( "[builder] Error: preprocess (-E) or asm (-S) works only with single file targets." ) - os.exit( 1 ) - end - trg = self.targets[ t ].target - end - end - self:_create_build_dir() - -- At this point check if we have a change in the state that would require a rebuild - if self:_compare_config( 'comp' ) then - print( utils.col_yellow( "[builder] Forcing rebuild due to configuration change." ) ) - self.global_force_rebuild = true - else - self.global_force_rebuild = false - end - -- Do the actual build - local res = trg:build() - if not res then print( utils.col_yellow( sf( '[builder] %s: up to date', t ) ) ) end - if self.clean_mode then - os.remove( self.build_dir .. utils.dir_sep .. ".builddata.comp" ) - os.remove( self.build_dir .. utils.dir_sep .. ".builddata.link" ) - end - print( utils.col_yellow( "[builder] Done building target." ) ) - return res -end - --- Create dependencies, create object files, link final object -builder.make_exe_target = function( self, target, file_list ) - local odeps = self:create_compile_targets( file_list ) - local exetarget = self:link_target( target, odeps ) - self:default( self:add_target( exetarget ) ) - return exetarget -end - -------------------------------------------------------------------------------- --- Other exported functions - -function new_builder( build_dir ) - return builder.new( build_dir ) -end - diff --git a/tools/cross-lua.lua b/tools/cross-lua.lua deleted file mode 100644 index a18bbeb4f0..0000000000 --- a/tools/cross-lua.lua +++ /dev/null @@ -1,42 +0,0 @@ -local args = { ... } -local b = require "tools.build" -local builder = b.new_builder( ".build/cross-lua" ) -local utils = b.utils -local sf = string.format - -if not (_VERSION == "Lua 5.1" and pcall(require,"lfs")) then - print [[ - -cross_lua.lua must be run within Lua 5.1 and it requires the Lua Filesystem to be installed. -On most *nix distrubitions youwill find a packages lua-5.1 and lua-filesystem, or -alternalively you can install lua-rocks and use the Rocks package manager to install lfs. -]] - os.exit(1) -end -builder:init( args ) -builder:set_build_mode( builder.BUILD_DIR_LINEARIZED ) -local output = 'luac.cross' -local cdefs = '-DLUA_CROSS_COMPILER -Ddbg_printf=printf' - --- Lua source files and include path -local lua_files = [[ - lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c ldebug.c ldo.c ldump.c - lfunc.c lgc.c llex.c lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c - lparser.c lrotable.c lstate.c lstring.c lstrlib.c ltable.c ltablib.c - ltm.c lundump.c lvm.c lzio.c - luac_cross/luac.c luac_cross/loslib.c luac_cross/print.c - ../modules/linit.c - ../libc/c_stdlib.c - ]] -lua_files = lua_files:gsub( "\n" , "" ) -local lua_full_files = utils.prepend_path( lua_files, "app/lua" ) -local local_include = "-Iapp/include -Iinclude -Iapp/lua" - --- Compiler/linker options -builder:set_compile_cmd( sf( "gcc -O2 %s -Wall %s -c $(FIRST) -o $(TARGET)", local_include, cdefs ) ) -builder:set_link_cmd( "gcc -o $(TARGET) $(DEPENDS) -lm" ) - --- Build everything -builder:make_exe_target( output, lua_full_files ) -builder:build() - diff --git a/tools/utils.lua b/tools/utils.lua deleted file mode 100644 index a952751115..0000000000 --- a/tools/utils.lua +++ /dev/null @@ -1,425 +0,0 @@ --- Generic utility functions - -module( ..., package.seeall ) - -local lfs = require "lfs" -local sf = string.format --- Taken from Lake -dir_sep = package.config:sub( 1, 1 ) -is_os_windows = dir_sep == '\\' - --- Converts a string with items separated by 'sep' into a table -string_to_table = function( s, sep ) - if type( s ) ~= "string" then return end - sep = sep or ' ' - if s:sub( -1, -1 ) ~= sep then s = s .. sep end - s = s:gsub( sf( "^%s*", sep ), "" ) - local t = {} - local fmt = sf( "(.-)%s+", sep ) - for w in s:gmatch( fmt ) do table.insert( t, w ) end - return t -end - --- Split a file name into 'path part' and 'extension part' -split_ext = function( s ) - local pos - for i = #s, 1, -1 do - if s:sub( i, i ) == "." then - pos = i - break - end - end - if not pos or s:find( dir_sep, pos + 1 ) then return s end - return s:sub( 1, pos - 1 ), s:sub( pos ) -end - --- Replace the extension of a given file name -replace_extension = function( s, newext ) - local p, e = split_ext( s ) - if e then - if newext and #newext > 0 then - s = p .. "." .. newext - else - s = p - end - end - return s -end - --- Return 'true' if building from Windows, false otherwise -is_windows = function() - return is_os_windows -end - --- Prepend each component of a 'pat'-separated string with 'prefix' -prepend_string = function( s, prefix, pat ) - if not s or #s == 0 then return "" end - pat = pat or ' ' - local res = '' - local st = string_to_table( s, pat ) - foreach( st, function( k, v ) res = res .. prefix .. v .. " " end ) - return res -end - --- Like above, but consider 'prefix' a path -prepend_path = function( s, prefix, pat ) - return prepend_string( s, prefix .. dir_sep, pat ) -end - --- full mkdir: create all the paths needed for a multipath -full_mkdir = function( path ) - local ptables = string_to_table( path, dir_sep ) - local p, res = '' - for i = 1, #ptables do - p = ( i ~= 1 and p .. dir_sep or p ) .. ptables[ i ] - res = lfs.mkdir( p ) - end - return res -end - --- Concatenate the given paths to form a complete path -concat_path = function( paths ) - return table.concat( paths, dir_sep ) -end - --- Return true if the given array contains the given element, false otherwise -array_element_index = function( arr, element ) - for i = 1, #arr do - if arr[ i ] == element then return i end - end -end - --- Linearize an array with (possibly) embedded arrays into a simple array -_linearize_array = function( arr, res, filter ) - if type( arr ) ~= "table" then return end - for i = 1, #arr do - local e = arr[ i ] - if type( e ) == 'table' and filter( e ) then - _linearize_array( e, res, filter ) - else - table.insert( res, e ) - end - end -end - -linearize_array = function( arr, filter ) - local res = {} - filter = filter or function( v ) return true end - _linearize_array( arr, res, filter ) - return res -end - --- Return an array with the keys of a table -table_keys = function( t ) - local keys = {} - foreach( t, function( k, v ) table.insert( keys, k ) end ) - return keys -end - --- Return an array with the values of a table -table_values = function( t ) - local vals = {} - foreach( t, function( k, v ) table.insert( vals, v ) end ) - return vals -end - --- Returns true if 'path' is a regular file, false otherwise -is_file = function( path ) - return lfs.attributes( path, "mode" ) == "file" -end - --- Returns true if 'path' is a directory, false otherwise -is_dir = function( path ) - return lfs.attributes( path, "mode" ) == "directory" -end - --- Return a list of files in the given directory matching a given mask -get_files = function( path, mask, norec, level ) - local t = '' - level = level or 0 - for f in lfs.dir( path ) do - local fname = path .. dir_sep .. f - if lfs.attributes( fname, "mode" ) == "file" then - local include - if type( mask ) == "string" then - include = fname:find( mask ) - else - include = mask( fname ) - end - if include then t = t .. ' ' .. fname end - elseif lfs.attributes( fname, "mode" ) == "directory" and not fname:find( "%.+$" ) and not norec then - t = t .. " " .. get_files( fname, mask, norec, level + 1 ) - end - end - return level > 0 and t or t:gsub( "^%s+", "" ) -end - --- Check if the given command can be executed properly -check_command = function( cmd ) - local res = os.execute( cmd .. " > .build.temp 2>&1" ) - os.remove( ".build.temp" ) - return res -end - --- Execute a command and capture output --- From: http://stackoverflow.com/a/326715/105950 -exec_capture = function( cmd, raw ) - local f = assert(io.popen(cmd, 'r')) - local s = assert(f:read('*a')) - f:close() - if raw then return s end - s = string.gsub(s, '^%s+', '') - s = string.gsub(s, '%s+$', '') - s = string.gsub(s, '[\n\r]+', ' ') - return s -end - --- Execute the given command for each value in a table -foreach = function ( t, cmd ) - if type( t ) ~= "table" then return end - for k, v in pairs( t ) do cmd( k, v ) end -end - --- Generate header with the given #defines, return result as string -gen_header_string = function( name, defines ) - local s = "// eLua " .. name:lower() .. " definition\n\n" - s = s .. "#ifndef __" .. name:upper() .. "_H__\n" - s = s .. "#define __" .. name:upper() .. "_H__\n\n" - - for key,value in pairs(defines) do - s = s .. string.format("#define %-25s%-19s\n",key:upper(),value) - end - - s = s .. "\n#endif\n" - return s -end - --- Generate header with the given #defines, save result to file -gen_header_file = function( name, defines ) - local hname = concat_path{ "inc", name:lower() .. ".h" } - local h = assert( io.open( hname, "w" ) ) - h:write( gen_header_string( name, defines ) ) - h:close() -end - --- Remove the given elements from an array -remove_array_elements = function( arr, del ) - del = istable( del ) and del or { del } - foreach( del, function( k, v ) - local pos = array_element_index( arr, v ) - if pos then table.remove( arr, pos ) end - end ) -end - --- Remove a directory recusively --- USE WITH CARE!! Doesn't do much checks :) -rmdir_rec = function ( dirname ) - if lfs.attributes( dirname, "mode" ) ~= "directory" then return end - for f in lfs.dir( dirname ) do - local ename = string.format( "%s/%s", dirname, f ) - local attrs = lfs.attributes( ename ) - if attrs.mode == 'directory' and f ~= '.' and f ~= '..' then - rmdir_rec( ename ) - elseif attrs.mode == 'file' or attrs.mode == 'named pipe' or attrs.mode == 'link' then - os.remove( ename ) - end - end - lfs.rmdir( dirname ) -end - --- Concatenates the second table into the first one -concat_tables = function( dst, src ) - foreach( src, function( k, v ) dst[ k ] = v end ) -end - -------------------------------------------------------------------------------- --- Color-related funtions --- Currently disabled when running in Windows --- (they can be enabled by setting WIN_ANSI_TERM) - -local dcoltable = { 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white' } -local coltable = {} -foreach( dcoltable, function( k, v ) coltable[ v ] = k - 1 end ) - -local _col_builder = function( col ) - local _col_maker = function( s ) - if is_os_windows and not os.getenv( "WIN_ANSI_TERM" ) then - return s - else - return( sf( "\027[%d;1m%s\027[m", coltable[ col ] + 30, s ) ) - end - end - return _col_maker -end - -col_funcs = {} -foreach( coltable, function( k, v ) - local fname = "col_" .. k - _G[ fname ] = _col_builder( k ) - col_funcs[ k ] = _G[ fname ] -end ) - -------------------------------------------------------------------------------- --- Option handling - -local options = {} - -options.new = function() - local self = {} - self.options = {} - setmetatable( self, { __index = options } ) - return self -end - --- Argument validator: boolean value -options._bool_validator = function( v ) - if v == '0' or v:upper() == 'FALSE' then - return false - elseif v == '1' or v:upper() == 'TRUE' then - return true - end -end - --- Argument validator: choice value -options._choice_validator = function( v, allowed ) - for i = 1, #allowed do - if v:upper() == allowed[ i ]:upper() then return allowed[ i ] end - end -end - --- Argument validator: choice map (argument value maps to something) -options._choice_map_validator = function( v, allowed ) - for k, value in pairs( allowed ) do - if v:upper() == k:upper() then return value end - end -end - --- Argument validator: string value (no validation) -options._string_validator = function( v ) - return v -end - --- Argument printer: boolean value -options._bool_printer = function( o ) - return "true|false", o.default and "true" or "false" -end - --- Argument printer: choice value -options._choice_printer = function( o ) - local clist, opts = '', o.data - for i = 1, #opts do - clist = clist .. ( i ~= 1 and "|" or "" ) .. opts[ i ] - end - return clist, o.default -end - --- Argument printer: choice map printer -options._choice_map_printer = function( o ) - local clist, opts, def = '', o.data - local i = 1 - for k, v in pairs( opts ) do - clist = clist .. ( i ~= 1 and "|" or "" ) .. k - if o.default == v then def = k end - i = i + 1 - end - return clist, def -end - --- Argument printer: string printer -options._string_printer = function( o ) - return nil, o.default -end - --- Add an option of the specified type -options._add_option = function( self, optname, opttype, help, default, data ) - local validators = - { - string = options._string_validator, choice = options._choice_validator, - boolean = options._bool_validator, choice_map = options._choice_map_validator - } - local printers = - { - string = options._string_printer, choice = options._choice_printer, - boolean = options._bool_printer, choice_map = options._choice_map_printer - } - if not validators[ opttype ] then - print( sf( "[builder] Invalid option type '%s'", opttype ) ) - os.exit( 1 ) - end - table.insert( self.options, { name = optname, help = help, validator = validators[ opttype ], printer = printers[ opttype ], data = data, default = default } ) -end - --- Find an option with the given name -options._find_option = function( self, optname ) - for i = 1, #self.options do - local o = self.options[ i ] - if o.name:upper() == optname:upper() then return self.options[ i ] end - end -end - --- 'add option' helper (automatically detects option type) -options.add_option = function( self, name, help, default, data ) - local otype - if type( default ) == 'boolean' then - otype = 'boolean' - elseif data and type( data ) == 'table' and #data == 0 then - otype = 'choice_map' - elseif data and type( data ) == 'table' then - otype = 'choice' - data = linearize_array( data ) - elseif type( default ) == 'string' then - otype = 'string' - else - print( sf( "Error: cannot detect option type for '%s'", name ) ) - os.exit( 1 ) - end - self:_add_option( name, otype, help, default, data ) -end - -options.get_num_opts = function( self ) - return #self.options -end - -options.get_option = function( self, i ) - return self.options[ i ] -end - --- Handle an option of type 'key=value' --- Returns both the key and the value or nil for error -options.handle_arg = function( self, a ) - local si, ei, k, v = a:find( "([^=]+)=(.*)$" ) - if not k or not v then - print( sf( "Error: invalid syntax in '%s'", a ) ) - return - end - local opt = self:_find_option( k ) - if not opt then - print( sf( "Error: invalid option '%s'", k ) ) - return - end - local optv = opt.validator( v, opt.data ) - if optv == nil then - print( sf( "Error: invalid value '%s' for option '%s'", v, k ) ) - return - end - return k, optv -end - --- Show help for all the registered options -options.show_help = function( self ) - for i = 1, #self.options do - local o = self.options[ i ] - print( sf( "\n %s: %s", o.name, o.help ) ) - local values, default = o.printer( o ) - if values then - print( sf( " Possible values: %s", values ) ) - end - print( sf( " Default value: %s", default or "none (changes at runtime)" ) ) - end -end - --- Create a new option handler -function options_handler() - return options.new() -end - From e00d927a025b4839bbd6f0072968000e47fe7dcc Mon Sep 17 00:00:00 2001 From: TerryE Date: Wed, 14 Feb 2018 01:00:15 +0000 Subject: [PATCH 03/61] Tweaks to the Remote GDB interface to make it usable --- .gdbinit | 111 +++++++++++++++++++++++++++++++ app/include/user_config.h | 10 ++- app/lua/lauxlib.c | 130 ++++++++++++++++++++++++++++++++++++- app/modules/gdbstub.c | 7 +- app/user/user_exceptions.c | 11 ++-- 5 files changed, 258 insertions(+), 11 deletions(-) create mode 100644 .gdbinit diff --git a/.gdbinit b/.gdbinit new file mode 100644 index 0000000000..4d31c1df87 --- /dev/null +++ b/.gdbinit @@ -0,0 +1,111 @@ +# +# This is very much a work in progress to show how we can use macros to make the +# GDB interface a lot more useable. For example the next / step commands only +# work if the stepper doesn't leave the current scope. Beyond that you have a +# single hardware breakpoint which can be used as an hb or a wa. You have to +# remember to delete the previous one, so the br macro does this for you. +# +set confirm off +set print null-stop +define br + d + hb $arg0 +end +set pagination off + +define prTV + if $arg0 + set $type = $arg0.tt + set $val = $arg0.value + + if $type == 0 + # NIL + printf "Nil\n" + end + if $type == 1 + # Boolean + printf "Boolean: %u\n", $val->n + end + if $type == 2 + # ROTable + printf "ROTable: %p\n", $val->p + end + if $type == 3 + # Light Function + printf "Light Func: %p\n",p $arg $val->p + end + if $type == 4 + # Light User Data + printf "Light Udata: %p\n", $val->pend + end + if $type == 5 + # Number + printf "Boolean: %u\n", $val->n + end + if $type == 6 + # TString + set $o = &($val.gc->ts.tsv) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + printf "String: hash = 0x%08x, len = %u : %s\n", $o->hash, $o->len, (char *)($ts+1) + end + if $type == 7 + # Table + __printComHdr $arg0 + set $ts = (TString *)$val->p + end + if $type == 8 + # Function + set $o = &($val->gc.cl.c) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + if $o->isC == 0 + set $o = &($val->gc.cl.l) + printf "LClosure: nupvalues = %u, gclist = %p, env = %p, p = %p\n", $o->nupvalues, $o->gclist, $o->env, $o->p + else + printf "CClosure: nupvalues = %u, gclist = %p, env = %p, f = %p\np", $o->nupvalues, $o->gclist, $o->env, $o->f + end + end + if $type == 9 + # UserData + end + if $type == 10 + # Thread + end + end +end + +define prL + if L > 0 + printf " stack: %u\n", L->top-L->base + printf " hooking: %u, %u, %u, %u, %p\n", L->hookmask, L->allowhook, L->basehookcount, L->hookcount, L->hook + end +end + +define dumpstrt + set $st = $arg0 + set $i = 0 + while $i< $st->size + set $o = &(((TString *)($st->hash[$i]))->tsv) + while $o + if $o->next + printf "Slot: %5i %p %p %08x %02x %4u", $i, $o, $o->next, $o->hash, $o->marked, $o->len + else + printf "Slot: %5i %p %08x %02x %4u", $i, $o, $o->hash, $o->marked, $o->len + end + if $o->marked & 0x80 + printf "* %s\n", *(char **)($o+1) + else + printf " %s\n", (char *)($o+1) + end + set $o = &(((TString *)($o->next))->tsv) + end + set $i = $i + 1 + end +end + +define dumpRAMstrt + dumpstrt &(L->l_G->strt) +end + +set history save on +set history size 1000 + diff --git a/app/include/user_config.h b/app/include/user_config.h index 0160d84066..4af87af51c 100644 --- a/app/include/user_config.h +++ b/app/include/user_config.h @@ -12,11 +12,19 @@ // This adds the asserts in LUA. It also adds some useful extras to the // node module. This is all silent in normal operation and so can be enabled // without any harm (except for the code size increase and slight slowdown) +// Either here for a global change or in the DEFINES variable in the relevant +// Makefile for ony one subdirectory. If you want to use the remote GDB to +// handle breaks and failed assetions then enable DEVELOPMENT_USE GDB //#define DEVELOPMENT_TOOLS - +//#define DEVELOPMENT_USE_GDB #ifdef DEVELOPMENT_TOOLS +#if defined(LUA_CROSS_COMPILER) || !defined(DEVELOPMENT_USE_GDB) extern void luaL_assertfail(const char *file, int line, const char *message); #define lua_assert(x) ((x) ? (void) 0 : luaL_assertfail(__FILE__, __LINE__, #x)) +#else +extern void luaL_dbgbreak(void); +#define lua_assert(x) ((x) ? (void) 0 : luaL_dbgbreak()) +#endif #endif // This enables lots of debug output and changes the serial bit rate. This diff --git a/app/lua/lauxlib.c b/app/lua/lauxlib.c index bc9010faff..8bac5923b4 100644 --- a/app/lua/lauxlib.c +++ b/app/lua/lauxlib.c @@ -44,6 +44,101 @@ #define LUA_USECCLOSURES 0 #define LUA_USELIGHTFUNCTIONS 1 +//#define DEBUG_ALLOCATOR +#ifdef DEBUG_ALLOCATOR +/* +** {====================================================================== +** Diagnosticd version for realloc. This is enabled only if the +** DEBUG_ALLOCATOR is defined. It is a cutdown version of the allocator +** used in the Lua Test Suite -- a compromise between the ability catch +** most alloc/free errors and overruns and working within the RAM limits +** of the ESP8266 architecture. ONLY FOR HEAVY HACKERS +** ======================================================================= +*/ +#define this_realloc debug_realloc +#define ASSERT(s) if (!(s)) {asm ("break 0,0" ::);} +#define MARK 0x55 /* 01010101 (a nice pattern) */ +#define MARK4 0x55555555 +#define MARKSIZE 4 /* size of marks after each block */ +#define fillmem(mem,size) memset(mem, -MARK, size) + +typedef struct Memcontrol { /* memory-allocator control variables */ + uint32_t numblocks; + uint32_t total; + uint32_t maxmem; + uint32_t memlimit; +} Memcontrol; +static Memcontrol mc = {0,0,0,32768}; + +typedef union MemHeader { + L_Umaxalign a; /* ensures maximum alignment for Header */ + struct { + size_t size; + int mark; + } d; +} MemHeader; + +static void freeblock (MemHeader *block) { + if (block) { + size_t size = block->d.size; + fillmem(block, sizeof(MemHeader) + size + MARKSIZE); /* erase block */ + c_free(block); /* actually free block */ + mc.numblocks--; /* update counts */ + mc.total -= size; + } +} + + +void *debug_realloc (void *b, size_t oldsize, size_t size) { + MemHeader *block = cast(MemHeader *, b); + int i; + if (block == NULL) { + oldsize = 0; + } else { + block--; /* go to real header */ + ASSERT(block->d.mark == MARK4); + ASSERT(oldsize == block->d.size); + for (i = 0; i < MARKSIZE; i++) /* check marks after block */ + ASSERT (cast(char *, b)[oldsize + i] == MARK); + } + if (size == 0) { + freeblock(block); + return NULL; + } else if (size > oldsize && mc.total+size-oldsize > mc.memlimit) + return NULL; /* fake a memory allocation error */ + else { + MemHeader *newblock; + int i; + size_t commonsize = (oldsize < size) ? oldsize : size; + size_t realsize = sizeof(MemHeader) + size + MARKSIZE; + newblock = cast(MemHeader *, c_malloc(realsize)); /* alloc a new block */ + if (newblock == NULL) + return NULL; /* really out of memory? */ + if (block) { + memcpy(newblock + 1, block + 1, commonsize); /* copy old contents */ + freeblock(block); /* erase (and check) old copy */ + } + /* initialize new part of the block with something weird */ + fillmem(cast(char *, newblock + 1) + commonsize, size - commonsize); + /* initialize marks after block */ + newblock->d.mark = MARK4; + newblock->d.size = size; + for (i = 0; i < MARKSIZE; i++) + cast(char *, newblock + 1)[size + i] = MARK; + mc.total += size; + if (mc.total > mc.maxmem) + mc.maxmem = mc.total; + mc.numblocks++; + return (newblock + 1); + } +} + + +/* }====================================================================== */ +#else +#define this_realloc(p,os,s) c_realloc(p,s) +#endif + /* ** {====================================================== ** Error-report functions @@ -786,8 +881,12 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { void *nptr; if (nsize == 0) { +#ifdef DEBUG_ALLOCATOR + return (void *)this_realloc(ptr, osize, nsize); +#else c_free(ptr); return NULL; +#endif } if (L != NULL && (mode & EGC_ALWAYS)) /* always collect memory if requested */ luaC_fullgc(L); @@ -798,18 +897,45 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { if(G(L)->memlimit > 0 && (mode & EGC_ON_MEM_LIMIT) && l_check_memlimit(L, nsize - osize)) return NULL; } - nptr = (void *)c_realloc(ptr, nsize); + nptr = (void *)this_realloc(ptr, osize, nsize); if (nptr == NULL && L != NULL && (mode & EGC_ON_ALLOC_FAILURE)) { luaC_fullgc(L); /* emergency full collection. */ - nptr = (void *)c_realloc(ptr, nsize); /* try allocation again */ + nptr = (void *)this_realloc(ptr, osize, nsize); /* try allocation again */ } return nptr; } LUALIB_API void luaL_assertfail(const char *file, int line, const char *message) { dbg_printf("ASSERT@%s(%d): %s\n", file, line, message); +#if defined(LUA_CROSS_COMPILER) + exit(1); +#endif } +#ifdef DEVELOPMENT_USE_GDB +/* + * This is a simple stub used by lua_assert() if DEVELOPMENT_USE_GDB is defined. + * Instead of crashing out with an assert error, this hook starts the GDB remote + * stub if not already running and then issues a break. The rationale here is + * that when testing the developer migght be using screen/PuTTY to work ineractively + * with the Lua Interpreter via UART0. However if an assert triggers, then there + * is the option to exit the interactive session and start the Xtensa remote GDB + * which will then sync up with the remote GDB client to allow forensics of the error. + */ +extern void gdbstub_init(void); + +LUALIB_API void luaL_dbgbreak(void) { + static int repeat_entry = 0; + if (repeat_entry == 0) { + dbg_printf("Start up the gdb stub if not already started\n"); + gdbstub_init(); + repeat_entry = 1; + } + asm("break 0,0" ::); +} +#endif + + static int panic (lua_State *L) { (void)L; /* to avoid warnings */ #if defined(LUA_USE_STDIO) diff --git a/app/modules/gdbstub.c b/app/modules/gdbstub.c index 9c13861a5e..8b0c4ebdd4 100644 --- a/app/modules/gdbstub.c +++ b/app/modules/gdbstub.c @@ -2,7 +2,8 @@ * This module, when enabled with the LUA_USE_MODULES_GDBSTUB define causes * the gdbstub code to be included and enabled to handle all fatal exceptions. * This allows you to use the lx106 gdb to catch the exception and then poke - * around. You can't continue from an exception (at least not easily). + * around. You can continue from a break, but attempting to continue from an + * exception usually fails. * * This should not be included in production builds as any exception will * put the nodemcu into a state where it is waiting for serial input and it has @@ -41,8 +42,8 @@ static int lgdbstub_open(lua_State *L) { static const LUA_REG_TYPE gdbstub_map[] = { { LSTRKEY( "brk" ), LFUNCVAL( lgdbstub_break ) }, { LSTRKEY( "gdboutput" ), LFUNCVAL( lgdbstub_gdboutput) }, - + { LSTRKEY( "open" ), LFUNCVAL( lgdbstub_open) }, { LNILKEY, LNILVAL } }; -NODEMCU_MODULE(GDBSTUB, "gdbstub", gdbstub_map, lgdbstub_open); +NODEMCU_MODULE(GDBSTUB, "gdbstub", gdbstub_map, NULL); diff --git a/app/user/user_exceptions.c b/app/user/user_exceptions.c index d95c84d872..a3d6333394 100644 --- a/app/user/user_exceptions.c +++ b/app/user/user_exceptions.c @@ -40,7 +40,6 @@ static exception_handler_fn load_store_handler; - void load_non_32_wide_handler (struct exception_frame *ef, uint32_t cause) { /* If this is not EXCCAUSE_LOAD_STORE_ERROR you're doing it wrong! */ @@ -73,13 +72,15 @@ void load_non_32_wide_handler (struct exception_frame *ef, uint32_t cause) { die: /* Turns out we couldn't fix this, so try and chain to the handler - * that was set by the SDK. If none then trigger a system break instead - * and hang if the break doesn't get handled. This is effectively - * what would happen if the default handler was installed. */ + * that was set. (This is typically a remote GDB break). If none + * then trigger a system break instead and hang if the break doesn't + * get handled. This is effectively what would happen if the default + * handler was installed. */ if (load_store_handler) { load_store_handler(ef, cause); + return; } - asm ("break 1, 1"); + asm ("break 1, 1"); while (1) {} } From 4ae52c232c337e28f849845d47305c2e0c5cd313 Mon Sep 17 00:00:00 2001 From: TerryE Date: Thu, 8 Mar 2018 00:20:59 +0000 Subject: [PATCH 04/61] Alpha working wersion for third party evaluation --- .gdbinit | 73 +++++- Makefile | 2 +- app/Makefile | 46 +--- app/coap/Makefile | 2 +- app/{dhtlib => dht}/Makefile | 2 +- app/{dhtlib => dht}/dht.c | 0 app/{dhtlib => dht}/dht.h | 0 app/include/module.h | 17 +- app/include/user_config.h | 21 +- app/include/user_modules.h | 14 +- app/lua/Makefile | 3 +- app/lua/lapi.c | 11 +- app/lua/lauxlib.c | 106 ++++++--- app/lua/lbaselib.c | 5 - app/lua/ldblib.c | 36 +++ app/lua/lflash.c | 224 ++++++++++++++++++ app/lua/lfunc.c | 2 +- app/lua/lfunc.h | 3 - app/lua/lgc.c | 31 ++- app/lua/lgc.h | 8 + app/lua/linit.c | 78 ++++++ app/lua/lmathlib.c | 6 +- app/lua/lobject.c | 11 +- app/lua/lobject.h | 192 ++------------- app/lua/lrodefs.h | 2 +- app/lua/lrotable.c | 15 +- app/lua/lrotable.h | 20 +- app/lua/lstate.c | 12 +- app/lua/lstate.h | 4 + app/lua/lstring.c | 69 +++--- app/lua/lstring.h | 8 +- app/lua/ltable.c | 6 +- app/lua/ltable.h | 4 +- app/lua/ltm.c | 3 +- app/lua/lua.c | 178 ++------------ app/lua/lua.h | 1 - app/lua/luac_cross.h | 1 + app/lua/luac_cross/Makefile | 30 +-- app/lua/luac_cross/lflashimg.c | 36 +-- app/lua/{ => luac_cross}/liolib.c | 378 +++++++++--------------------- app/lua/luac_cross/luac.c | 29 ++- app/lua/luaconf.h | 10 +- app/lua/lundump.c | 4 +- app/lua/lvm.c | 2 +- app/modules/Makefile | 2 +- app/modules/linit.c | 78 ------ app/modules/node.c | 15 +- app/mqtt/Makefile | 2 +- app/pcm/Makefile | 2 +- app/platform/common.c | 44 +++- app/platform/platform.c | 21 +- app/platform/platform.h | 3 + app/tsl2561/Makefile | 2 +- app/u8glib/Makefile | 2 +- app/ucglib/Makefile | 2 +- app/user/user_main.c | 5 + docs/en/modules/node.md | 33 ++- ld/nodemcu.ld | 4 +- tools/Makefile | 26 +- 59 files changed, 986 insertions(+), 960 deletions(-) rename app/{dhtlib => dht}/Makefile (98%) rename app/{dhtlib => dht}/dht.c (100%) rename app/{dhtlib => dht}/dht.h (100%) create mode 100644 app/lua/lflash.c create mode 100644 app/lua/linit.c rename app/lua/{ => luac_cross}/liolib.c (52%) delete mode 100644 app/modules/linit.c diff --git a/.gdbinit b/.gdbinit index 4d31c1df87..8e1afba5ca 100644 --- a/.gdbinit +++ b/.gdbinit @@ -5,6 +5,15 @@ # single hardware breakpoint which can be used as an hb or a wa. You have to # remember to delete the previous one, so the br macro does this for you. # +file app/.output/eagle/debug/image/eagle.app.v6.out +#set remotedebug 1 +set remotelogfile gdb_rsp_logfile.txt +set serial baud 115200 +set remote hardware-breakpoint-limit 1 +set remote hardware-watchpoint-limit 1 +#set debug xtensa 4 +target remote /dev/ttyUSB0 + set confirm off set print null-stop define br @@ -13,10 +22,30 @@ define br end set pagination off +define prTS + set $o = &(((TString *)($arg0))->tsv) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + printf "String: hash = 0x%08x, len = %u : %s\n", $o->hash, $o->len, (char *)(&$o[1]) +end +define prTnodes + set $o = (Table *)($arg0) + set $n = 1<<($o->lsizenode) + set $i = 0 + while $i < $n + set $nd = ($o->node) + $i + if $nd->i_key.nk.tt && $nd->i_val.tt + if $nd->i_key.nk.tt == 6 + printf "%4u: %s %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt else + printf "%4u: %2i %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt + end + end + set $i = $i +1 + end +end define prTV if $arg0 - set $type = $arg0.tt - set $val = $arg0.value + set $type = ($arg0).tt + set $val = ($arg0).value if $type == 0 # NIL @@ -24,34 +53,33 @@ define prTV end if $type == 1 # Boolean - printf "Boolean: %u\n", $val->n + printf "Boolean: %u\n", $val.n end if $type == 2 # ROTable - printf "ROTable: %p\n", $val->p + printf "ROTable: %p\n", $val.p end if $type == 3 # Light Function - printf "Light Func: %p\n",p $arg $val->p + printf "Light Func: %p\n", $val.p end if $type == 4 # Light User Data - printf "Light Udata: %p\n", $val->pend + printf "Light Udata: %p\n", $val.p end if $type == 5 # Number - printf "Boolean: %u\n", $val->n + printf "Number: %u\n", $val.n end if $type == 6 - # TString - set $o = &($val.gc->ts.tsv) - printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked - printf "String: hash = 0x%08x, len = %u : %s\n", $o->hash, $o->len, (char *)($ts+1) + prTS $arg0 end if $type == 7 # Table - __printComHdr $arg0 - set $ts = (TString *)$val->p + set $o = &($val->gc.h) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + printf "Nodes: %4i %p\n", 2<<($o->lsizenode), $o->nodes + printf "Arry: %4i %p\n", $o->sizearray, $o->array end if $type == 8 # Function @@ -106,6 +134,25 @@ define dumpRAMstrt dumpstrt &(L->l_G->strt) end +define dumpROstrt + dumpstrt &(L->l_G->ROstrt) +end + +define graylist + set $n = $arg0 + while $n + printf "%p %2u %02X\n",$n, $n->gch.tt, $n->gch.marked + set $n=$n->gch.next + end +end + +define prPC + printf "Excuting instruction %i: %08x\n", (pc - cl->p->code)+1-1, i +end + +define prT + print *(Table*)($arg0) +end set history save on set history size 1000 diff --git a/Makefile b/Makefile index 840f7a3be2..81d89252ee 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,7 @@ ifdef DEBUG CCFLAGS += -ggdb -O0 LDFLAGS += -ggdb else - CCFLAGS += -Os + CCFLAGS += -O2 endif ############################################################# diff --git a/app/Makefile b/app/Makefile index c2250ead6c..a590f74141 100644 --- a/app/Makefile +++ b/app/Makefile @@ -20,93 +20,64 @@ FLAVOR = debug ifndef PDIR # { GEN_IMAGES= eagle.app.v6.out GEN_BINS= eagle.app.v6.bin -SPECIAL_MKTARGETS=$(APP_MKTARGETS) +OPT_MKTARGETS := coap crypto dht http mqtt pcm sjson sqlite3 tsl2561 u8glib ucglib websocket +SEL_MKTARGETS := $(shell $(CC) -E -dM include/user_modules.h | sed -n '/^\#define LUA_USE_MODULES_/{s/.\{24\}\(.*\)/\L\1/; p}') +OPT_SEL_MKTARGETS := $(foreach tgt,$(OPT_MKTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) +OPT_SEL_COMPONENTS := $(foreach tgt,$(OPT_SEL_MKTARGETS),$(tgt)/lib$(tgt).a) +SPECIAL_MKTARGETS :=$(APP_MKTARGETS) + SUBDIRS= \ user \ driver \ - pcm \ mbedtls \ platform \ libc \ lua \ lwip \ - coap \ - mqtt \ task \ - u8glib \ - ucglib \ smart \ modules \ spiffs \ - crypto \ - dhtlib \ - tsl2561 \ net \ - http \ fatfs \ esp-gdbstub \ - websocket \ swTimer \ misc \ pm \ - sjson \ - sqlite3 \ - + $(OPT_SEL_MKTARGETS) endif # } PDIR APPDIR = . LDDIR = ../ld -CCFLAGS += -Os - TARGET_LDFLAGS = \ -nostdlib \ -Wl,-EL \ --longcalls \ --text-section-literals -ifeq ($(FLAVOR),debug) - TARGET_LDFLAGS += -g -Os -endif - -ifeq ($(FLAVOR),release) - TARGET_LDFLAGS += -Os -endif - LD_FILE = $(LDDIR)/nodemcu.ld COMPONENTS_eagle.app.v6 = \ user/libuser.a \ driver/libdriver.a \ - pcm/pcm.a \ platform/libplatform.a \ task/libtask.a \ libc/liblibc.a \ lua/liblua.a \ lwip/liblwip.a \ - coap/coap.a \ - mqtt/mqtt.a \ - u8glib/u8glib.a \ - ucglib/ucglib.a \ smart/smart.a \ spiffs/spiffs.a \ fatfs/libfatfs.a \ - crypto/libcrypto.a \ - dhtlib/libdhtlib.a \ - tsl2561/tsl2561lib.a \ - http/libhttp.a \ pm/libpm.a \ - websocket/libwebsocket.a \ esp-gdbstub/libgdbstub.a \ net/libnodemcu_net.a \ mbedtls/libmbedtls.a \ modules/libmodules.a \ swTimer/libswtimer.a \ misc/libmisc.a \ - sjson/libsjson.a \ - sqlite3/libsqlite3.a \ - + $(OPT_SEL_COMPONENTS) # Inspect the modules library and work out which modules need to be linked. # For each enabled module, a symbol name of the form XYZ_module_selected is @@ -194,6 +165,5 @@ INCLUDES += -I ./ PDIR := ../$(PDIR) sinclude $(PDIR)Makefile - .PHONY: FORCE FORCE: diff --git a/app/coap/Makefile b/app/coap/Makefile index 3947069c06..a0c55e0d54 100644 --- a/app/coap/Makefile +++ b/app/coap/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = coap.a +GEN_LIBS = libcoap.a endif ############################################################# diff --git a/app/dhtlib/Makefile b/app/dht/Makefile similarity index 98% rename from app/dhtlib/Makefile rename to app/dht/Makefile index 9ef52484ed..9c3024450e 100644 --- a/app/dhtlib/Makefile +++ b/app/dht/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = libdhtlib.a +GEN_LIBS = libdht.a endif diff --git a/app/dhtlib/dht.c b/app/dht/dht.c similarity index 100% rename from app/dhtlib/dht.c rename to app/dht/dht.c diff --git a/app/dhtlib/dht.h b/app/dht/dht.h similarity index 100% rename from app/dhtlib/dht.h rename to app/dht/dht.h diff --git a/app/include/module.h b/app/include/module.h index 50b56cb37c..b727fa9b97 100644 --- a/app/include/module.h +++ b/app/include/module.h @@ -1,4 +1,4 @@ -#if !defined(__MODULE_H_) && !defined(LUA_CROSS_COMPILER) +#ifndef __MODULE_H__ #define __MODULE_H__ #include "user_modules.h" @@ -38,8 +38,11 @@ #define MODULE_PASTE_(x,y) x##y #define MODULE_EXPAND_PASTE_(x,y) MODULE_PASTE_(x,y) -#define LOCK_IN_SECTION(s) __attribute__((used,unused,section(s))) - +#ifdef LUA_CROSS_COMPILER +#define LOCK_IN_SECTION(s) __attribute__((used,unused,section(".rodata1." #s))) +#else +#define LOCK_IN_SECTION(s) __attribute__((used,unused,section(".lua_" #s))) +#endif /* For the ROM table, we name the variable according to ( | denotes concat): * cfgname | _module_selected | LUA_USE_MODULES_##cfgname * where the LUA_USE_MODULES_XYZ macro is first expanded to yield either @@ -51,20 +54,20 @@ * to be linked in. */ #define NODEMCU_MODULE(cfgname, luaname, map, initfunc) \ - const LOCK_IN_SECTION(".lua_libs") \ + const LOCK_IN_SECTION(libs) \ luaL_Reg MODULE_PASTE_(lua_lib_,cfgname) = { luaname, initfunc }; \ - const LOCK_IN_SECTION(".lua_rotable") \ + const LOCK_IN_SECTION(rotable) \ luaR_table MODULE_EXPAND_PASTE_(cfgname,MODULE_EXPAND_PASTE_(_module_selected,MODULE_PASTE_(LUA_USE_MODULES_,cfgname))) \ = { luaname, map } /* System module registration support, not using LUA_USE_MODULES_XYZ. */ #define BUILTIN_LIB_INIT(name, luaname, initfunc) \ - const LOCK_IN_SECTION(".lua_libs") \ + const LOCK_IN_SECTION(libs) \ luaL_Reg MODULE_PASTE_(lua_lib_,name) = { luaname, initfunc } #define BUILTIN_LIB(name, luaname, map) \ - const LOCK_IN_SECTION(".lua_rotable") \ + const LOCK_IN_SECTION(rotable) \ luaR_table MODULE_PASTE_(lua_rotable_,name) = { luaname, map } #if !defined(LUA_CROSS_COMPILER) && !(MIN_OPT_LEVEL==2 && LUA_OPTIMIZE_MEMORY==2) diff --git a/app/include/user_config.h b/app/include/user_config.h index 4af87af51c..60b846ea8c 100644 --- a/app/include/user_config.h +++ b/app/include/user_config.h @@ -12,8 +12,9 @@ // This adds the asserts in LUA. It also adds some useful extras to the // node module. This is all silent in normal operation and so can be enabled // without any harm (except for the code size increase and slight slowdown) -// Either here for a global change or in the DEFINES variable in the relevant -// Makefile for ony one subdirectory. If you want to use the remote GDB to +// You can either set these defines here to operate globally or you edit the +// relevant Makefile setting them in the DEFINES variable is you only want to +// enable extra debug for specific subdirs. If you want to use the remote GDB to // handle breaks and failed assetions then enable DEVELOPMENT_USE GDB //#define DEVELOPMENT_TOOLS //#define DEVELOPMENT_USE_GDB @@ -54,6 +55,8 @@ extern void luaL_dbgbreak(void); #define NODE_ERR #endif /* NODE_ERROR */ +#define LUA_USE_BUILTIN_DEBUG_MINIMAL // for debug.getregistry() and debug.traceback() + #define GPIO_INTERRUPT_ENABLE #define GPIO_INTERRUPT_HOOK_ENABLE // #define GPIO_SAFE_NO_INTR_ENABLE @@ -86,18 +89,22 @@ extern void luaL_dbgbreak(void); // maximum number of open files for SPIFFS #define SPIFFS_MAX_OPEN_FILES 4 -// Uncomment this next line for fastest startup -// It reduces the format time dramatically -// #define SPIFFS_MAX_FILESYSTEM_SIZE 32768 +// Uncomment this next line for fastest startup and set the FS only to what +// your application needs. This reduces the format time dramatically +//#define SPIFFS_MAX_FILESYSTEM_SIZE 0x10000 // // You can force the spiffs file system to be at a fixed location -// #define SPIFFS_FIXED_LOCATION 0x100000 +//#define SPIFFS_FIXED_LOCATION 0x100000 // // You can force the SPIFFS file system to end on the next !M boundary // (minus the 16k parameter space). THis is useful for certain OTA scenarios // #define SPIFFS_SIZE_1M_BOUNDARY -// #define LUA_NUMBER_INTEGRAL +//#define LUA_NUMBER_INTEGRAL + +// If you want to enable Lua Flash Store (LFS) then set the following define to +// the size of the store. This can be any multiple of 4kB up to a maximum 256Kb. +//#define LUA_FLASH_STORE 0x10000 #define READLINE_INTERVAL 80 #define LUA_TASK_PRIO USER_TASK_PRIO_0 diff --git a/app/include/user_modules.h b/app/include/user_modules.h index 1afdde13f4..2cd9b7395a 100644 --- a/app/include/user_modules.h +++ b/app/include/user_modules.h @@ -1,15 +1,7 @@ #ifndef __USER_MODULES_H__ #define __USER_MODULES_H__ -#define LUA_USE_BUILTIN_STRING // for string.xxx() -#define LUA_USE_BUILTIN_TABLE // for table.xxx() -#define LUA_USE_BUILTIN_COROUTINE // for coroutine.xxx() -#define LUA_USE_BUILTIN_MATH // for math.xxx(), partially work -// #define LUA_USE_BUILTIN_IO // for io.xxx(), partially work -// #define LUA_USE_BUILTIN_OS // for os.xxx(), not work -// #define LUA_USE_BUILTIN_DEBUG -#define LUA_USE_BUILTIN_DEBUG_MINIMAL // for debug.getregistry() and debug.traceback() #ifndef LUA_CROSS_COMPILER @@ -65,13 +57,13 @@ //#define LUA_USE_MODULES_SJSON //#define LUA_USE_MODULES_SNTP //#define LUA_USE_MODULES_SOMFY -#define LUA_USE_MODULES_SPI +//#define LUA_USE_MODULES_SPI //#define LUA_USE_MODULES_SQLITE3 //#define LUA_USE_MODULES_STRUCT //#define LUA_USE_MODULES_SWITEC -// #define LUA_USE_MODULES_TCS34725 +//#define LUA_USE_MODULES_TCS34725 //#define LUA_USE_MODULES_TM1829 -#define LUA_USE_MODULES_TLS +//#define LUA_USE_MODULES_TLS #define LUA_USE_MODULES_TMR //#define LUA_USE_MODULES_TSL2561 //#define LUA_USE_MODULES_U8G diff --git a/app/lua/Makefile b/app/lua/Makefile index 35860d6650..a1f2e5ab50 100644 --- a/app/lua/Makefile +++ b/app/lua/Makefile @@ -25,7 +25,8 @@ STD_CFLAGS=-std=gnu11 -Wimplicit # makefile at its root level - these are then overridden # for a subtree within the makefile rooted therein # -#DEFINES += +#DEFINES += -DDEVELOPMENT_TOOLS -DDEVELOPMENT_USE_GDB -DNODE_DEBUG -DBREAK_ON_STARTUP_PIN=1 +#EXTRA_CCFLAGS += -ggdb -O0 ############################################################# # Recursion Magic - Don't touch this!! diff --git a/app/lua/lapi.c b/app/lua/lapi.c index 3f783cbaea..00c3746aa0 100644 --- a/app/lua/lapi.c +++ b/app/lua/lapi.c @@ -414,7 +414,7 @@ LUA_API const void *lua_topointer (lua_State *L, int idx) { case LUA_TROTABLE: return rvalue(o); case LUA_TLIGHTFUNCTION: - return pvalue(o); + return fvalue(o); default: return NULL; } } @@ -459,15 +459,6 @@ LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) { } -LUA_API void lua_pushrolstring (lua_State *L, const char *s, size_t len) { - lua_lock(L); - luaC_checkGC(L); - setsvalue2s(L, L->top, luaS_newrolstr(L, s, len)); - api_incr_top(L); - lua_unlock(L); -} - - LUA_API void lua_pushstring (lua_State *L, const char *s) { if (s == NULL) lua_pushnil(L); diff --git a/app/lua/lauxlib.c b/app/lua/lauxlib.c index 8bac5923b4..c01eb4d517 100644 --- a/app/lua/lauxlib.c +++ b/app/lua/lauxlib.c @@ -46,6 +46,13 @@ //#define DEBUG_ALLOCATOR #ifdef DEBUG_ALLOCATOR +#ifdef LUA_CROSS_COMPILER +static void break_hook(void) +#define ASSERT(s) if (!(s)) {break_hook();} +#else +#define ASSERT(s) if (!(s)) {asm ("break 0,0" ::);} +#endif + /* ** {====================================================================== ** Diagnosticd version for realloc. This is enabled only if the @@ -56,31 +63,72 @@ ** ======================================================================= */ #define this_realloc debug_realloc -#define ASSERT(s) if (!(s)) {asm ("break 0,0" ::);} #define MARK 0x55 /* 01010101 (a nice pattern) */ -#define MARK4 0x55555555 -#define MARKSIZE 4 /* size of marks after each block */ -#define fillmem(mem,size) memset(mem, -MARK, size) +#define MARKSIZE 2*sizeof(size_t) /* size of marks after each block */ +#define fillmem(mem,size) memset(mem, ~MARK, size) -typedef struct Memcontrol { /* memory-allocator control variables */ - uint32_t numblocks; - uint32_t total; - uint32_t maxmem; - uint32_t memlimit; -} Memcontrol; -static Memcontrol mc = {0,0,0,32768}; - -typedef union MemHeader { +typedef union MemHeader MemHeader; +union MemHeader { L_Umaxalign a; /* ensures maximum alignment for Header */ struct { size_t size; - int mark; - } d; -} MemHeader; + MemHeader *next; + size_t mark[2]; + }; +}; + +typedef struct Memcontrol { /* memory-allocator control variables */ + MemHeader *start; + lu_int32 numblocks; + lu_int32 total; + lu_int32 maxmem; + lu_int32 memlimit; +} Memcontrol; +static Memcontrol mc = {NULL,0,0,0,32768*64}; +static size_t marker[2] = {0,0}; + +static void scanBlocks (void) { + MemHeader *p = mc.start; + int i; + char s,e; + for (i=0; p ;i++) { + s = memcmp(p->mark, marker, MARKSIZE) ? '<' : ' '; + e = memcmp(cast(char *, p+1) + p->size, marker, MARKSIZE) ? '>' : ' '; + c_printf("%4u %p %8lu %c %c\n", i, p, p->size, s, e); + ASSERT(p->next); + p = p->next; + } +} + +static int checkBlocks (void) { + MemHeader *p = mc.start; + while(p) { + if (memcmp(p->mark, marker, MARKSIZE) || + memcmp(cast(char *, p+1) + p->size, marker, MARKSIZE)) { + scanBlocks(); + return 0; + } + p = p->next; + } + return 1; +} + static void freeblock (MemHeader *block) { if (block) { - size_t size = block->d.size; + MemHeader *p = mc.start; + MemHeader *next = block->next; + size_t size = block->size; + ASSERT(checkBlocks()); + if (p == block) { + mc.start = next; + } else { + while (p->next != block) { + ASSERT(p); + p = p->next; + } + p->next = next; + } fillmem(block, sizeof(MemHeader) + size + MARKSIZE); /* erase block */ c_free(block); /* actually free block */ mc.numblocks--; /* update counts */ @@ -88,18 +136,17 @@ static void freeblock (MemHeader *block) { } } - void *debug_realloc (void *b, size_t oldsize, size_t size) { MemHeader *block = cast(MemHeader *, b); - int i; + ASSERT(checkBlocks()); + if (!marker[0]) memset(marker, MARK, MARKSIZE); if (block == NULL) { oldsize = 0; } else { block--; /* go to real header */ - ASSERT(block->d.mark == MARK4); - ASSERT(oldsize == block->d.size); - for (i = 0; i < MARKSIZE; i++) /* check marks after block */ - ASSERT (cast(char *, b)[oldsize + i] == MARK); + ASSERT(!memcmp(block->mark, marker, MARKSIZE)) + ASSERT(oldsize == block->size); + ASSERT(!memcmp(cast(char *, b)+oldsize, marker, MARKSIZE)); } if (size == 0) { freeblock(block); @@ -108,7 +155,6 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) { return NULL; /* fake a memory allocation error */ else { MemHeader *newblock; - int i; size_t commonsize = (oldsize < size) ? oldsize : size; size_t realsize = sizeof(MemHeader) + size + MARKSIZE; newblock = cast(MemHeader *, c_malloc(realsize)); /* alloc a new block */ @@ -119,12 +165,14 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) { freeblock(block); /* erase (and check) old copy */ } /* initialize new part of the block with something weird */ - fillmem(cast(char *, newblock + 1) + commonsize, size - commonsize); + if (size > commonsize) + fillmem(cast(char *, newblock + 1) + commonsize, size - commonsize); /* initialize marks after block */ - newblock->d.mark = MARK4; - newblock->d.size = size; - for (i = 0; i < MARKSIZE; i++) - cast(char *, newblock + 1)[size + i] = MARK; + memset(newblock->mark, MARK, MARKSIZE); + newblock->size = size; + newblock->next = mc.start; + mc.start = newblock; + memset(cast(char *, newblock + 1)+ size, MARK, MARKSIZE); mc.total += size; if (mc.total > mc.maxmem) mc.maxmem = mc.total; diff --git a/app/lua/lbaselib.c b/app/lua/lbaselib.c index 02dad4635f..a08f3eaa3d 100644 --- a/app/lua/lbaselib.c +++ b/app/lua/lbaselib.c @@ -712,10 +712,5 @@ static void base_open (lua_State *L) { LUALIB_API int luaopen_base (lua_State *L) { base_open(L); -#if LUA_OPTIMIZE_MEMORY == 0 - luaL_register(L, LUA_COLIBNAME, co_funcs); - return 2; -#else return 1; -#endif } diff --git a/app/lua/ldblib.c b/app/lua/ldblib.c index 1097897077..e084e23374 100644 --- a/app/lua/ldblib.c +++ b/app/lua/ldblib.c @@ -17,6 +17,8 @@ #include "lauxlib.h" #include "lualib.h" #include "lrotable.h" +#include "lstring.h" +#include "lflash.h" #include "user_modules.h" @@ -26,6 +28,39 @@ static int db_getregistry (lua_State *L) { return 1; } +static int db_getstrings (lua_State *L) { + size_t i,n; + stringtable *tb; + GCObject *o; +#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) + const char *opt = lua_tolstring (L, 1, &n); + if (n==3 && memcmp(opt, "ROM", 4) == 0) { + if (G(L)->ROstrt.hash == NULL) + return 0; + tb = &G(L)->ROstrt; + } + else +#endif + tb = &G(L)->strt; + lua_settop(L, 0); + lua_createtable(L, tb->nuse, 0); /* create table the same size as the strt */ + for (i=0, n=1; isize; i++) { + for(o = tb->hash[i]; o; o=o->gch.next) { + TString *ts =cast(TString *, o); + lua_pushnil(L); + setsvalue2s(L, L->top-1, ts); + lua_rawseti(L, -2, n++); /* enumerate the strt, adding elements */ + } + } + lua_getfield(L, LUA_GLOBALSINDEX, "table"); + lua_getfield(L, -1, "sort"); /* look up table.sort function */ + lua_replace(L, -2); /* dump the table table */ + lua_pushvalue(L, -2); /* duplicate the strt_copy ref */ + lua_call(L, 1, 0); /* table.sort(strt_copy) */ + return 1; +} + + #ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL static int db_getmetatable (lua_State *L) { @@ -395,6 +430,7 @@ const LUA_REG_TYPE dblib[] = { {LSTRKEY("getlocal"), LFUNCVAL(db_getlocal)}, #endif {LSTRKEY("getregistry"), LFUNCVAL(db_getregistry)}, + {LSTRKEY("getstrings"), LFUNCVAL(db_getstrings)}, #ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL {LSTRKEY("getmetatable"), LFUNCVAL(db_getmetatable)}, {LSTRKEY("getupvalue"), LFUNCVAL(db_getupvalue)}, diff --git a/app/lua/lflash.c b/app/lua/lflash.c new file mode 100644 index 0000000000..0c0636a83c --- /dev/null +++ b/app/lua/lflash.c @@ -0,0 +1,224 @@ +/* +** $Id: lflash.c +** See Copyright Notice in lua.h +*/ + +#define lflash_c +#define LUA_CORE +#define LUAC_CROSS_FILE +#include "lua.h" + +#ifdef LUA_FLASH_STORE +#include "lobject.h" +#include "lauxlib.h" +#include "lstate.h" +#include "lfunc.h" +#include "lflash.h" +#include "platform.h" +#include "vfs.h" + +#include "c_fcntl.h" +#include "c_stdio.h" +#include "c_stdlib.h" +#include "c_string.h" + +/* + * Flash memory is a fixed memory addressable block that is serially allocated by the + * luac build process and the out image can be downloaded into SPIFSS and loaded into + * flash with a node.flash.load() command. See luac_cross/lflashimg.c for the build + * process. + */ + +static char *flashAddr; +static uint32_t flashAddrPhys; +static uint32_t flashSector; +static uint32_t curOffset; + +#define ALIGN(s) (((s)+sizeof(size_t)-1) & ((size_t) (- (signed) sizeof(size_t)))) +#define ALIGN_BITS(s) (((uint32_t)s) & (sizeof(size_t)-1)) +#define ALL_SET cast(uint32_t, -1) +#define FLASH_SIZE LUA_FLASH_STORE +#define FLASH_PAGE_SIZE INTERNAL_FLASH_SECTOR_SIZE +#define FLASH_PAGES (FLASH_SIZE/FLASH_PAGE_SIZE) + +#define BREAK_ON_STARTUP_PIN 1 // GPIO 5 or setting to 0 will disable pin startup + +#ifdef NODE_DEBUG +extern void dbg_printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); +void dumpStrt(stringtable *tb, const char *type) { + int i,j; + GCObject *o; + + NODE_DBG("\nDumping %s String table\n\n========================\n", type); + NODE_DBG("No of elements: %d\nSize of table: %d\n", tb->nuse, tb->size); + for (i=0; isize; i++) + for(o = tb->hash[i], j=0; o; (o=o->gch.next), j++ ) { + TString *ts =cast(TString *, o); + NODE_DBG("%5d %5d %08x %08x %5d %1s %s\n", + i, j, (size_t) ts, ts->tsv.hash, ts->tsv.len, + ts_isreadonly(ts) ? "R" : " ", getstr(ts)); + } +} + +LUA_API void dumpStrings(lua_State *L) { + dumpStrt(&G(L)->strt, "RAM"); + if (G(L)->ROstrt.hash) + dumpStrt(&G(L)->ROstrt, "ROM"); +} +#endif + +/* ===================================================================================== + * The next 4 functions: flashPosition, flashSetPosition, flashBlock and flashErase + * wrap writing to flash. The last two are platform dependent. Also note that any + * writes are suppressed if the global writeToFlash is false. This is used in + * phase I where the pass is used to size the structures in flash. + */ +static char *flashPosition(void){ + return flashAddr + curOffset; +} + + +static char *flashSetPosition(uint32_t offset){ + NODE_DBG("flashSetPosition(%04x)\n", offset); + curOffset = offset; + return flashPosition(); +} + + +static char *flashBlock(const void* b, size_t size) { + void *cur = flashPosition(); + NODE_DBG("flashBlock((%04x),%08x,%04x)\n", curOffset,b,size); + lua_assert(ALIGN_BITS(b) == 0 && ALIGN_BITS(size) == 0); + platform_flash_write(b, flashAddrPhys+curOffset, size); + curOffset += size; + return cur; +} + +static void flashErase(uint32_t start, uint32_t end){ + int i; + if (start == -1) start = FLASH_PAGES - 1; + if (end == -1) end = FLASH_PAGES - 1; + NODE_DBG("flashErase(%04x,%04x)\n", flashSector+start, flashSector+end); + for (i = start; i<=end; i++) + platform_flash_erase_sector( flashSector + i ); +} + + +/* ===================================================================================== + * Hook in user_main.c to allocate flash memory for the lua flash store + */ +void luaN_user_init(void) { + curOffset = 0; + flashSector = platform_flash_reserve_section( FLASH_SIZE, &flashAddrPhys ); + flashAddr = cast(char *,platform_flash_phys2mapped(flashAddrPhys)); + NODE_DBG("Flash initialised: %x %08x\n", flashSector, flashAddr); +} + + +/* + * Hook in lstate.c:f_luaopen() to set up ROstrt and ROpvmain if needed + */ +LUAI_FUNC void luaN_init (lua_State *L) { + FlashHeader *fh = cast(FlashHeader *, flashAddr); + if (fh->flash_sig == FLASH_SIG && + fh->pROhash != ALL_SET && + fh->mainProto != ALL_SET) { + G(L)->ROstrt.hash = cast(GCObject **, fh->pROhash); + G(L)->ROstrt.nuse = fh->nROuse ; + G(L)->ROstrt.size = fh->nROsize; + G(L)->ROpvmain = cast(Proto *,fh->mainProto); + } +} + +#define BYTE_OFFSET(t,f) cast(size_t, &(cast(t *, NULL)->f)) +/* + * Rehook address chain to correct Flash byte addressed within the mapped adress space + * Note that on input each 32-bit address field is split into 2×16-bit subfields + * - the lu_int16 offset of the target address being referenced + * - the lu_int16 offset of the next address pointer. + */ + +static int rebuild_core (int fd, uint32_t size, lu_int32 *buf) { + int bi; /* byte offset into memory mapped LFS of current buffer */ + int wNextOffset = BYTE_OFFSET(FlashHeader,mainProto)/sizeof(lu_int32); + int wj; /* word offset into current input buffer */ + for (bi = 0; bi < size; bi += FLASH_PAGE_SIZE) { + int wi = bi / sizeof(lu_int32); + int blen = ((bi + FLASH_PAGE_SIZE) < size) ? FLASH_PAGE_SIZE : size - bi; + int wlen = blen / sizeof(lu_int32); + if (vfs_read(fd, buf , blen) != blen) + return 0; + + for (wj = 0; wj < wlen; wj++) { + if ((wi + wj) == wNextOffset) { /* this word is the next linked address */ + int wTargetOffset = buf[wj]&0xFFFF; + wNextOffset = buf[wj]>>16; + lua_assert(!wNextOffset || (wNextOffset>(wi+wj) && wNextOffsetROpvmain) { + Closure *cl = luaF_newLclosure(L, 0, hvalue(gt(L))); + cl->l.p = G(L)->ROpvmain; + lua_settop(L, 1); + setclvalue(L, L->top-1, cl); + return 1; + } + return 0; +} + +#endif diff --git a/app/lua/lfunc.c b/app/lua/lfunc.c index 3d0dd13395..fe502f6bd9 100644 --- a/app/lua/lfunc.c +++ b/app/lua/lfunc.c @@ -146,7 +146,7 @@ void luaF_freeproto (lua_State *L, Proto *f) { luaM_freearray(L, f->k, f->sizek, TValue); luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar); luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *); - if (!proto_is_readonly(f)) { + if (!proto_isreadonly(f)) { luaM_freearray(L, f->code, f->sizecode, Instruction); #ifdef LUA_OPTIMIZE_DEBUG if (f->packedlineinfo) { diff --git a/app/lua/lfunc.h b/app/lua/lfunc.h index 1450bb7d91..2dc7266b6a 100644 --- a/app/lua/lfunc.h +++ b/app/lua/lfunc.h @@ -18,9 +18,6 @@ #define sizeLclosure(n) (cast(int, sizeof(LClosure)) + \ cast(int, sizeof(TValue *)*((n)-1))) -#define proto_readonly(p) l_setbit((p)->marked, READONLYBIT) -#define proto_is_readonly(p) testbit((p)->marked, READONLYBIT) - LUAI_FUNC Proto *luaF_newproto (lua_State *L); LUAI_FUNC Closure *luaF_newCclosure (lua_State *L, int nelems, Table *e); LUAI_FUNC Closure *luaF_newLclosure (lua_State *L, int nelems, Table *e); diff --git a/app/lua/lgc.c b/app/lua/lgc.c index e41a779d53..2f860cafc0 100644 --- a/app/lua/lgc.c +++ b/app/lua/lgc.c @@ -28,6 +28,9 @@ #define GCSWEEPCOST 10 #define GCFINALIZECOST 100 +#if READONLYMASK != (1<gch.marked, WHITE0BIT, WHITE1BIT) #define black2gray(x) resetbit((x)->gch.marked, BLACKBIT) -#define stringmark(s) reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT) +#define stringmark(s) if (!isLFSobject(&(s)->tsv)) {reset2bits((s)->tsv.marked, WHITE0BIT, WHITE1BIT);} #define isfinalized(u) testbit((u)->marked, FINALIZEDBIT) @@ -61,12 +64,17 @@ static void removeentry (Node *n) { lua_assert(ttisnil(gval(n))); - if (iscollectable(gkey(n))) + if (ttype(gkey(n)) != LUA_TDEADKEY && iscollectable(gkey(n))) + lua_assert(!isLFSobject(&((gkey(n))->value.gc->gch))); setttype(gkey(n), LUA_TDEADKEY); /* dead key; remove it */ } static void reallymarkobject (global_State *g, GCObject *o) { + /* don't mark LFS Protos (or strings) */ + if (o->gch.tt == LUA_TPROTO && isLFSobject(&(o->gch))) + return; + lua_assert(iswhite(o) && !isdead(g, o)); white2gray(o); switch (o->gch.tt) { @@ -180,6 +188,8 @@ static int traversetable (global_State *g, Table *h) { while (i--) markvalue(g, &h->array[i]); } + if (luaH_isdummy (h->node)) + return weakkey || weakvalue; i = sizenode(h); while (i--) { Node *n = gnode(h, i); @@ -202,6 +212,8 @@ static int traversetable (global_State *g, Table *h) { */ static void traverseproto (global_State *g, Proto *f) { int i; + if (isLFSobject(f)) + return; /* don't traverse Protos in LFS */ if (f->source) stringmark(f->source); for (i=0; isizek; i++) /* mark literals */ markvalue(g, &f->k[i]); @@ -317,7 +329,7 @@ static l_mem propagatemark (global_State *g) { sizeof(TValue) * p->sizek + sizeof(LocVar) * p->sizelocvars + sizeof(TString *) * p->sizeupvalues + - (proto_is_readonly(p) ? 0 : sizeof(Instruction) * p->sizecode + + (proto_isreadonly(p) ? 0 : sizeof(Instruction) * p->sizecode + #ifdef LUA_OPTIMIZE_DEBUG (p->packedlineinfo ? c_strlen(cast(char *, p->packedlineinfo))+1 : @@ -388,7 +400,10 @@ static void cleartable (GCObject *l) { static void freeobj (lua_State *L, GCObject *o) { switch (o->gch.tt) { - case LUA_TPROTO: luaF_freeproto(L, gco2p(o)); break; + case LUA_TPROTO: + lua_assert(!isLFSobject(&(o->gch))); + luaF_freeproto(L, gco2p(o)); + break; case LUA_TFUNCTION: luaF_freeclosure(L, gco2cl(o)); break; case LUA_TUPVAL: luaF_freeupval(L, gco2uv(o)); break; case LUA_TTABLE: luaH_free(L, gco2h(o)); break; @@ -398,6 +413,7 @@ static void freeobj (lua_State *L, GCObject *o) { break; } case LUA_TSTRING: { + lua_assert(!isLFSobject(&(o->gch))); G(L)->strt.nuse--; luaM_freemem(L, o, sizestring(gco2ts(o))); break; @@ -420,6 +436,7 @@ static GCObject **sweeplist (lua_State *L, GCObject **p, lu_mem count) { global_State *g = G(L); int deadmask = otherwhite(g); while ((curr = *p) != NULL && count-- > 0) { + lua_assert(!isLFSobject(&(curr->gch)) || curr->gch.tt == LUA_TTHREAD); if (curr->gch.tt == LUA_TTHREAD) /* sweep open upvalues of each thread */ sweepwholelist(L, &gco2th(curr)->openupval); if ((curr->gch.marked ^ WHITEBITS) & deadmask) { /* not dead? */ @@ -538,7 +555,7 @@ static void atomic (lua_State *L) { size_t udsize; /* total size of userdata to be finalized */ /* remark occasional upvalues of (maybe) dead threads */ remarkupvals(g); - /* traverse objects cautch by write barrier and by 'remarkupvals' */ + /* traverse objects caucht by write barrier and by 'remarkupvals' */ propagateall(g); /* remark weak tables */ g->gray = g->weak; @@ -694,10 +711,10 @@ void luaC_barrierf (lua_State *L, GCObject *o, GCObject *v) { global_State *g = G(L); lua_assert(isblack(o) && iswhite(v) && !isdead(g, v) && !isdead(g, o)); lua_assert(g->gcstate != GCSfinalize && g->gcstate != GCSpause); - lua_assert(ttype(&o->gch) != LUA_TTABLE); + lua_assert(o->gch.tt != LUA_TTABLE); /* must keep invariant? */ if (g->gcstate == GCSpropagate) - reallymarkobject(g, v); /* restore invariant */ + reallymarkobject(g, v); /* Restore invariant */ else /* don't mind */ makewhite(g, o); /* mark as white just to avoid other barriers */ } diff --git a/app/lua/lgc.h b/app/lua/lgc.h index 9c26932b46..ed994d09ea 100644 --- a/app/lua/lgc.h +++ b/app/lua/lgc.h @@ -79,6 +79,7 @@ #define VALUEWEAKBIT 4 #define FIXEDBIT 5 #define SFIXEDBIT 6 +#define LFSBIT 6 #define READONLYBIT 7 #define WHITEBITS bit2mask(WHITE0BIT, WHITE1BIT) @@ -100,6 +101,13 @@ #define isfixedstack(x) testbit((x)->marked, FIXEDSTACKBIT) #define fixedstack(x) l_setbit((x)->marked, FIXEDSTACKBIT) #define unfixedstack(x) resetbit((x)->marked, FIXEDSTACKBIT) +#ifdef LUA_FLASH_STORE +#define isLFSobject(x) testbit((x)->marked, LFSBIT) +#define stringfix(s) if (!test2bits((s)->tsv.marked, FIXEDBIT, LFSBIT)) {l_setbit((s)->tsv.marked, FIXEDBIT);} +#else +#define isLFSobject(x) (0) +#define stringfix(s) {l_setbit((s)->tsv.marked, FIXEDBIT);} +#endif #define luaC_checkGC(L) { \ condhardstacktests(luaD_reallocstack(L, L->stacksize - EXTRA_STACK - 1)); \ diff --git a/app/lua/linit.c b/app/lua/linit.c new file mode 100644 index 0000000000..1a7c4b5813 --- /dev/null +++ b/app/lua/linit.c @@ -0,0 +1,78 @@ +/* +** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $ +** Initialization of libraries for lua.c +** See Copyright Notice in lua.h +*/ + + +#define linit_c +#define LUA_LIB +#define LUAC_CROSS_FILE + +#include "lua.h" + +#include "lualib.h" +#include "lauxlib.h" +#include "luaconf.h" +#include "module.h" +#if defined(LUA_CROSS_COMPILER) +BUILTIN_LIB( start_list, NULL, NULL); +BUILTIN_LIB_INIT( start_list, NULL, NULL); +#endif +extern const luaR_entry strlib[], tab_funcs[], dblib[], + co_funcs[], math_map[], syslib[]; + +BUILTIN_LIB_INIT( BASE, "", luaopen_base); +BUILTIN_LIB_INIT( LOADLIB, LUA_LOADLIBNAME, luaopen_package); + +BUILTIN_LIB( STRING, LUA_STRLIBNAME, strlib); +BUILTIN_LIB_INIT( STRING, LUA_STRLIBNAME, luaopen_string); + +BUILTIN_LIB( TABLE, LUA_TABLIBNAME, tab_funcs); +BUILTIN_LIB_INIT( TABLE, LUA_TABLIBNAME, luaopen_table); + +BUILTIN_LIB( DBG, LUA_DBLIBNAME, dblib); +BUILTIN_LIB_INIT( DBG, LUA_DBLIBNAME, luaopen_debug); + +BUILTIN_LIB( CO, LUA_COLIBNAME, co_funcs); + +BUILTIN_LIB( MATH, LUA_MATHLIBNAME, math_map); + +#if defined(LUA_CROSS_COMPILER) +extern const luaR_entry syslib[], iolib[]; +BUILTIN_LIB( OS, LUA_OSLIBNAME, syslib); +BUILTIN_LIB_INIT( IO, LUA_IOLIBNAME, luaopen_io); +BUILTIN_LIB( end_list, NULL, NULL); +BUILTIN_LIB_INIT( end_list, NULL, NULL); +/* + * These base addresses are internal to this module for cross compile builds + * This also exploits feature of the GCC code generator that the variables are + * emitted in either normal OR reverse order within PSECT. + */ +#define isascending(n) ((&(n ## _end_list)-&(n ## _start_list))>0) +static const luaL_Reg *lua_libs; +const luaR_table *lua_rotable; +#else +/* These base addresses are Xtensa toolchain linker constants for Firmware builds */ +extern const luaL_Reg lua_libs_base[]; +extern const luaR_table lua_rotable_base[]; +static const luaL_Reg *lua_libs = lua_libs_base; +const luaR_table *lua_rotable = lua_rotable_base; +#endif + +void luaL_openlibs (lua_State *L) { +#if defined(LUA_CROSS_COMPILER) +lua_libs = (isascending(lua_lib) ? &lua_lib_start_list : &lua_lib_end_list) + 1; +lua_rotable = (isascending(lua_rotable) ? &lua_rotable_start_list : &lua_rotable_end_list) + 1; +#endif + const luaL_Reg *lib = lua_libs; + for (; lib->name; lib++) { + if (lib->func) + { + lua_pushcfunction(L, lib->func); + lua_pushstring(L, lib->name); + lua_call(L, 1, 0); + } + } +} + diff --git a/app/lua/lmathlib.c b/app/lua/lmathlib.c index e3fda445fd..8a3b975461 100644 --- a/app/lua/lmathlib.c +++ b/app/lua/lmathlib.c @@ -326,7 +326,7 @@ const LUA_REG_TYPE math_map[] = { {LSTRKEY("randomseed"), LFUNCVAL(math_randomseed)}, {LSTRKEY("sqrt"), LFUNCVAL(math_sqrt)}, #if LUA_OPTIMIZE_MEMORY > 0 - {LSTRKEY("huge"), LNUMVAL(LONG_MAX)}, + {LSTRKEY("huge"), LNUMVAL(INT_MAX)}, #endif #else {LSTRKEY("abs"), LFUNCVAL(math_abs)}, @@ -374,7 +374,7 @@ const LUA_REG_TYPE math_map[] = { */ #if defined LUA_NUMBER_INTEGRAL -# include "c_limits.h" /* for LONG_MAX */ +# include "c_limits.h" /* for INT_MAX */ #endif LUALIB_API int luaopen_math (lua_State *L) { @@ -383,7 +383,7 @@ LUALIB_API int luaopen_math (lua_State *L) { #else luaL_register(L, LUA_MATHLIBNAME, math_map); # if defined LUA_NUMBER_INTEGRAL - lua_pushnumber(L, LONG_MAX); + lua_pushnumber(L, INT_MAX); lua_setfield(L, -2, "huge"); # else lua_pushnumber(L, PI); diff --git a/app/lua/lobject.c b/app/lua/lobject.c index 6a68455943..640378d0da 100644 --- a/app/lua/lobject.c +++ b/app/lua/lobject.c @@ -53,7 +53,8 @@ int luaO_fb2int (int x) { int luaO_log2 (unsigned int x) { - static const lu_byte log_2[256] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = { +#ifdef LUA_CROSS_COMPILER + static const lu_byte log_2[256] = { 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, @@ -65,10 +66,12 @@ int luaO_log2 (unsigned int x) { }; int l = -1; while (x >= 256) { l += 8; x >>= 8; } -#ifdef LUA_CROSS_COMPILER return l + log_2[x]; #else - return l + byte_of_aligned_array(log_2,x); + /* Use Normalization Shift Amount Unsigned: 0x1=>31 up to 0xffffffff =>0 + * See Xtensa Instruction Set Architecture (ISA) Refman P 462 */ + asm volatile ("nsau %0, %1;" :"=r"(x) : "r"(x)); + return 32 - x; #endif } @@ -103,7 +106,7 @@ int luaO_str2d (const char *s, lua_Number *result) { #if defined(LUA_CROSS_COMPILER) { long lres = strtoul(s, &endptr, 16); -#if LONG_MAX != 2147483647L +#if INT_MAX != 2147483647L if (lres & ~0xffffffffL) *result = cast_num(-1); else if (lres & 0x80000000L) diff --git a/app/lua/lobject.h b/app/lua/lobject.h index 5b020953da..518ab5071e 100644 --- a/app/lua/lobject.h +++ b/app/lua/lobject.h @@ -23,10 +23,10 @@ #define NUM_TAGS (LAST_TAG+1) -/* mask for 'read-only' objects. must match READONLYBIT in lgc.h' */ -#define READONLYMASK 128 - - +#define READONLYMASK (1<<7) /* denormalised bitmask for READONLYBIT and */ +#ifdef LUA_FLASH_STORE +#define LFSMASK (1<<6) /* LFSBIT to avoid include proliferation */ +#endif /* ** Extra tags for non-values */ @@ -55,86 +55,33 @@ typedef struct GCheader { CommonHeader; } GCheader; - +#if defined(LUA_PACK_VALUE) || defined(ELUA_ENDIAN_BIG) || defined(ELUA_ENDIAN_SMALL) +# error "NodeMCU does not support the eLua LUA_PACK_VALUE and ELUA_ENDIAN defines" +#endif /* ** Union of all Lua values */ -#if defined( LUA_PACK_VALUE ) && defined( ELUA_ENDIAN_BIG ) -typedef union { - struct { - int _pad0; - GCObject *gc; - }; - struct { - int _pad1; - void *p; - }; - lua_Number n; - struct { - int _pad2; - int b; - }; -} Value; -#else // #if defined( LUA_PACK_VALUE ) && defined( ELUA_ENDIAN_BIG ) typedef union { GCObject *gc; void *p; lua_Number n; int b; } Value; -#endif // #if defined( LUA_PACK_VALUE ) && defined( ELUA_ENDIAN_BIG ) /* ** Tagged Values */ -#ifndef LUA_PACK_VALUE #define TValuefields Value value; int tt #define LUA_TVALUE_NIL {NULL}, LUA_TNIL typedef struct lua_TValue { TValuefields; } TValue; -#else // #ifndef LUA_PACK_VALUE -#ifdef ELUA_ENDIAN_LITTLE -#define TValuefields union { \ - struct { \ - int _pad0; \ - int tt_sig; \ - } _ts; \ - struct { \ - int _pad; \ - short tt; \ - short sig; \ - } _t; \ - Value value; \ -} -#define LUA_TVALUE_NIL {0, add_sig(LUA_TNIL)} -#else // #ifdef ELUA_ENDIAN_LITTLE -#define TValuefields union { \ - struct { \ - int tt_sig; \ - int _pad0; \ - } _ts; \ - struct { \ - short sig; \ - short tt; \ - int _pad; \ - } _t; \ - Value value; \ -} -#define LUA_TVALUE_NIL {add_sig(LUA_TNIL), 0} -#endif // #ifdef ELUA_ENDIAN_LITTLE -#define LUA_NOTNUMBER_SIG (-1) -#define add_sig(tt) ( 0xffff0000 | (tt) ) - -typedef TValuefields TValue; -#endif // #ifndef LUA_PACK_VALUE /* Macros to test type */ -#ifndef LUA_PACK_VALUE #define ttisnil(o) (ttype(o) == LUA_TNIL) #define ttisnumber(o) (ttype(o) == LUA_TNUMBER) #define ttisstring(o) (ttype(o) == LUA_TSTRING) @@ -146,27 +93,11 @@ typedef TValuefields TValue; #define ttislightuserdata(o) (ttype(o) == LUA_TLIGHTUSERDATA) #define ttisrotable(o) (ttype(o) == LUA_TROTABLE) #define ttislightfunction(o) (ttype(o) == LUA_TLIGHTFUNCTION) -#else // #ifndef LUA_PACK_VALUE -#define ttisnil(o) (ttype_sig(o) == add_sig(LUA_TNIL)) -#define ttisnumber(o) ((o)->_t.sig != LUA_NOTNUMBER_SIG) -#define ttisstring(o) (ttype_sig(o) == add_sig(LUA_TSTRING)) -#define ttistable(o) (ttype_sig(o) == add_sig(LUA_TTABLE)) -#define ttisfunction(o) (ttype_sig(o) == add_sig(LUA_TFUNCTION)) -#define ttisboolean(o) (ttype_sig(o) == add_sig(LUA_TBOOLEAN)) -#define ttisuserdata(o) (ttype_sig(o) == add_sig(LUA_TUSERDATA)) -#define ttisthread(o) (ttype_sig(o) == add_sig(LUA_TTHREAD)) -#define ttislightuserdata(o) (ttype_sig(o) == add_sig(LUA_TLIGHTUSERDATA)) -#define ttisrotable(o) (ttype_sig(o) == add_sig(LUA_TROTABLE)) -#define ttislightfunction(o) (ttype_sig(o) == add_sig(LUA_TLIGHTFUNCTION)) -#endif // #ifndef LUA_PACK_VALUE + /* Macros to access values */ -#ifndef LUA_PACK_VALUE -#define ttype(o) ((o)->tt) -#else // #ifndef LUA_PACK_VALUE -#define ttype(o) ((o)->_t.sig == LUA_NOTNUMBER_SIG ? (o)->_t.tt : LUA_TNUMBER) -#define ttype_sig(o) ((o)->_ts.tt_sig) -#endif // #ifndef LUA_PACK_VALUE + +#define ttype(o) ((void) (o)->value, (o)->tt) #define gcvalue(o) check_exp(iscollectable(o), (o)->value.gc) #define pvalue(o) check_exp(ttislightuserdata(o), (o)->value.p) #define rvalue(o) check_exp(ttisrotable(o), (o)->value.p) @@ -186,24 +117,15 @@ typedef TValuefields TValue; /* ** for internal debug only */ -#ifndef LUA_PACK_VALUE + #define checkconsistency(obj) \ lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch.tt)) #define checkliveness(g,obj) \ lua_assert(!iscollectable(obj) || \ ((ttype(obj) == (obj)->value.gc->gch.tt) && !isdead(g, (obj)->value.gc))) -#else // #ifndef LUA_PACK_VALUE -#define checkconsistency(obj) \ - lua_assert(!iscollectable(obj) || (ttype(obj) == (obj)->value.gc->gch._t.tt)) - -#define checkliveness(g,obj) \ - lua_assert(!iscollectable(obj) || \ - ((ttype(obj) == (obj)->value.gc->gch._t.tt) && !isdead(g, (obj)->value.gc))) -#endif // #ifndef LUA_PACK_VALUE /* Macros to set values */ -#ifndef LUA_PACK_VALUE #define setnilvalue(obj) ((obj)->tt=LUA_TNIL) #define setnvalue(obj,x) \ @@ -257,69 +179,10 @@ typedef TValuefields TValue; i_o->value.gc=i_x; i_o->tt=LUA_TPROTO; \ checkliveness(G(L),i_o); } - - - #define setobj(L,obj1,obj2) \ { const TValue *o2=(obj2); TValue *o1=(obj1); \ o1->value = o2->value; o1->tt=o2->tt; \ checkliveness(G(L),o1); } -#else // #ifndef LUA_PACK_VALUE -#define setnilvalue(obj) ( ttype_sig(obj) = add_sig(LUA_TNIL) ) - -#define setnvalue(obj,x) \ - { TValue *i_o=(obj); i_o->value.n=(x); } - -#define setpvalue(obj,x) \ - { TValue *i_o=(obj); i_o->value.p=(x); i_o->_ts.tt_sig=add_sig(LUA_TLIGHTUSERDATA);} - -#define setrvalue(obj,x) \ - { TValue *i_o=(obj); i_o->value.p=(x); i_o->_ts.tt_sig=add_sig(LUA_TROTABLE);} - -#define setfvalue(obj,x) \ - { TValue *i_o=(obj); i_o->value.p=(x); i_o->_ts.tt_sig=add_sig(LUA_TLIGHTFUNCTION);} - -#define setbvalue(obj,x) \ - { TValue *i_o=(obj); i_o->value.b=(x); i_o->_ts.tt_sig=add_sig(LUA_TBOOLEAN);} - -#define setsvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TSTRING); \ - checkliveness(G(L),i_o); } - -#define setuvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TUSERDATA); \ - checkliveness(G(L),i_o); } - -#define setthvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TTHREAD); \ - checkliveness(G(L),i_o); } - -#define setclvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TFUNCTION); \ - checkliveness(G(L),i_o); } - -#define sethvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TTABLE); \ - checkliveness(G(L),i_o); } - -#define setptvalue(L,obj,x) \ - { TValue *i_o=(obj); \ - i_o->value.gc=cast(GCObject *, (x)); i_o->_ts.tt_sig=add_sig(LUA_TPROTO); \ - checkliveness(G(L),i_o); } - - - - -#define setobj(L,obj1,obj2) \ - { const TValue *o2=(obj2); TValue *o1=(obj1); \ - o1->value = o2->value; \ - checkliveness(G(L),o1); } -#endif // #ifndef LUA_PACK_VALUE /* ** different types of sets, according to destination @@ -340,13 +203,7 @@ typedef TValuefields TValue; #define setobj2n setobj #define setsvalue2n setsvalue -#ifndef LUA_PACK_VALUE -#define setttype(obj, tt) (ttype(obj) = (tt)) -#else // #ifndef LUA_PACK_VALUE -/* considering it used only in lgc to set LUA_TDEADKEY */ -/* we could define it this way */ -#define setttype(obj, _tt) ( ttype_sig(obj) = add_sig(_tt) ) -#endif // #ifndef LUA_PACK_VALUE +#define setttype(obj, stt) ((void) (obj)->value, (obj)->tt = (stt)) #define iscollectable(o) (ttype(o) >= LUA_TSTRING) @@ -367,9 +224,16 @@ typedef union TString { } tsv; } TString; - -#define getstr(ts) (((ts)->tsv.marked & READONLYMASK) ? cast(const char *, *(const char**)((ts) + 1)) : cast(const char *, (ts) + 1)) -#define svalue(o) getstr(rawtsvalue(o)) +#ifdef LUA_CROSS_COMPILER +#define isreadonly(o) (0) +#else +#define isreadonly(o) ((o).marked & READONLYMASK) +#endif +#define ts_isreadonly(ts) isreadonly((ts)->tsv) +#define getstr(ts) (ts_isreadonly(ts) ? \ + cast(const char *, *(const char**)((ts) + 1)) : \ + cast(const char *, (ts) + 1)) +#define svalue(o) getstr(rawtsvalue(o)) @@ -418,6 +282,7 @@ typedef struct Proto { lu_byte is_vararg; lu_byte maxstacksize; } Proto; +#define proto_isreadonly(p) isreadonly(*(p)) /* masks for new-style vararg */ @@ -487,7 +352,6 @@ typedef union Closure { ** Tables */ -#ifndef LUA_PACK_VALUE typedef union TKey { struct { TValuefields; @@ -497,16 +361,6 @@ typedef union TKey { } TKey; #define LUA_TKEY_NIL {LUA_TVALUE_NIL, NULL} -#else // #ifndef LUA_PACK_VALUE -typedef struct TKey { - TValue tvk; - struct { - struct Node *next; /* for chaining */ - } nk; -} TKey; - -#define LUA_TKEY_NIL {LUA_TVALUE_NIL}, {NULL} -#endif // #ifndef LUA_PACK_VALUE typedef struct Node { TValue i_val; diff --git a/app/lua/lrodefs.h b/app/lua/lrodefs.h index e9bbe7feed..451b36216e 100644 --- a/app/lua/lrodefs.h +++ b/app/lua/lrodefs.h @@ -15,7 +15,7 @@ #undef LNILVAL #undef LREGISTER -#if (MIN_OPT_LEVEL > 0) && (LUA_OPTIMIZE_MEMORY >= MIN_OPT_LEVEL) +#if LUA_OPTIMIZE_MEMORY >=1 #define LUA_REG_TYPE luaR_entry #define LSTRKEY LRO_STRKEY #define LNUMKEY LRO_NUMKEY diff --git a/app/lua/lrotable.c b/app/lua/lrotable.c index 96e80bc9c4..a5cbb7cae9 100644 --- a/app/lua/lrotable.c +++ b/app/lua/lrotable.c @@ -14,11 +14,10 @@ #define LUAR_FINDVALUE 1 /* Externally defined read-only table array */ -extern const luaR_table lua_rotable[]; +extern const luaR_table *lua_rotable; /* Find a global "read only table" in the constant lua_rotable array */ void* luaR_findglobal(const char *name, unsigned len) { -#ifndef LUA_CROSS_COMPILER unsigned i; if (c_strlen(name) > LUA_MAX_ROTABLE_NAME) @@ -27,7 +26,6 @@ void* luaR_findglobal(const char *name, unsigned len) { if (*lua_rotable[i].name != '\0' && c_strlen(lua_rotable[i].name) == len && !c_strncmp(lua_rotable[i].name, name, len)) { return (void*)(lua_rotable[i].pentries); } -#endif return NULL; } @@ -87,7 +85,7 @@ static void luaR_next_helper(lua_State *L, const luaR_entry *pentries, int pos, if (pentries[pos].key.type != LUA_TNIL) { /* Found an entry */ if (pentries[pos].key.type == LUA_TSTRING) - setsvalue(L, key, luaS_newro(L, pentries[pos].key.id.strkey)) + setsvalue(L, key, luaS_new(L, pentries[pos].key.id.strkey)) else setnvalue(key, (lua_Number)pentries[pos].key.id.numkey) setobj2s(L, val, &pentries[pos].value); @@ -129,10 +127,15 @@ void luaR_getcstr(char *dest, const TString *src, size_t maxsize) { /* Return 1 if the given pointer is a rotable */ #ifdef LUA_META_ROTABLES - +#ifdef LUA_CROSS_COMPILER +extern char edata[]; +int luaR_isrotable(void *p) { + return (char*)p <= edata; +} +#else #include "compiler.h" - int luaR_isrotable(void *p) { return RODATA_START_ADDRESS <= (char*)p && (char*)p <= RODATA_END_ADDRESS; } #endif +#endif diff --git a/app/lua/lrotable.h b/app/lua/lrotable.h index e8963e3b96..aba263527f 100644 --- a/app/lua/lrotable.h +++ b/app/lua/lrotable.h @@ -4,32 +4,16 @@ #define lrotable_h #include "lua.h" -#include "llimits.h" -#include "lobject.h" #include "luaconf.h" +#include "lobject.h" +#include "llimits.h" /* Macros one can use to define rotable entries */ -#ifndef LUA_PACK_VALUE #define LRO_FUNCVAL(v) {{.p = v}, LUA_TLIGHTFUNCTION} #define LRO_LUDATA(v) {{.p = v}, LUA_TLIGHTUSERDATA} #define LRO_NUMVAL(v) {{.n = v}, LUA_TNUMBER} #define LRO_ROVAL(v) {{.p = (void*)v}, LUA_TROTABLE} #define LRO_NILVAL {{.p = NULL}, LUA_TNIL} -#else // #ifndef LUA_PACK_VALUE -#define LRO_NUMVAL(v) {.value.n = v} -#ifdef ELUA_ENDIAN_LITTLE -#define LRO_FUNCVAL(v) {{(int)v, add_sig(LUA_TLIGHTFUNCTION)}} -#define LRO_LUDATA(v) {{(int)v, add_sig(LUA_TLIGHTUSERDATA)}} -#define LRO_ROVAL(v) {{(int)v, add_sig(LUA_TROTABLE)}} -#define LRO_NILVAL {{0, add_sig(LUA_TNIL)}} -#else // #ifdef ELUA_ENDIAN_LITTLE -#define LRO_FUNCVAL(v) {{add_sig(LUA_TLIGHTFUNCTION), (int)v}} -#define LRO_LUDATA(v) {{add_sig(LUA_TLIGHTUSERDATA), (int)v}} -#define LRO_ROVAL(v) {{add_sig(LUA_TROTABLE), (int)v}} -#define LRO_NILVAL {{add_sig(LUA_TNIL), 0}} -#endif // #ifdef ELUA_ENDIAN_LITTLE -#endif // #ifndef LUA_PACK_VALUE - #define LRO_STRKEY(k) {LUA_TSTRING, {.strkey = k}} #define LRO_NUMKEY(k) {LUA_TNUMBER, {.numkey = k}} #define LRO_NILKEY {LUA_TNIL, {.strkey=NULL}} diff --git a/app/lua/lstate.c b/app/lua/lstate.c index b428974210..a0cb60dcdf 100644 --- a/app/lua/lstate.c +++ b/app/lua/lstate.c @@ -13,6 +13,7 @@ #include "ldebug.h" #include "ldo.h" +#include "lflash.h" #include "lfunc.h" #include "lgc.h" #include "llex.h" @@ -72,9 +73,12 @@ static void f_luaopen (lua_State *L, void *ud) { sethvalue(L, gt(L), luaH_new(L, 0, 2)); /* table of globals */ sethvalue(L, registry(L), luaH_new(L, 0, 2)); /* registry */ luaS_resize(L, MINSTRTABSIZE); /* initial size of string table */ +#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) + luaN_init(L); /* optionally map RO string table */ +#endif luaT_init(L); luaX_init(L); - luaS_fix(luaS_newliteral(L, MEMERRMSG)); + stringfix(luaS_newliteral(L, MEMERRMSG)); g->GCthreshold = 4*g->totalbytes; } @@ -191,6 +195,12 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { g->memlimit = EGC_INITIAL_MEMLIMIT; #else g->memlimit = 0; +#endif +#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) + g->ROstrt.size = 0; + g->ROstrt.nuse = 0; + g->ROstrt.hash = NULL; + g->ROpvmain = NULL; #endif for (i=0; imt[i] = NULL; if (luaD_rawrunprotected(L, f_luaopen, NULL) != 0) { diff --git a/app/lua/lstate.h b/app/lua/lstate.h index 1b3c363a84..75f88a1207 100644 --- a/app/lua/lstate.h +++ b/app/lua/lstate.h @@ -94,6 +94,10 @@ typedef struct global_State { UpVal uvhead; /* head of double-linked list of all open upvalues */ struct Table *mt[NUM_TAGS]; /* metatables for basic types */ TString *tmname[TM_N]; /* array with tag-method names */ +#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) + stringtable ROstrt; /* Flash-based hash table for RO strings */ + Proto *ROpvmain; /* Flash-based Proto main */ +#endif } global_State; diff --git a/app/lua/lstring.c b/app/lua/lstring.c index 8f03e52a72..2257c1464d 100644 --- a/app/lua/lstring.c +++ b/app/lua/lstring.c @@ -61,7 +61,7 @@ static TString *newlstr (lua_State *L, const char *str, size_t l, tb = &G(L)->strt; if ((tb->nuse + 1) > cast(lu_int32, tb->size) && tb->size <= MAX_INT/2) luaS_resize(L, tb->size*2); /* too crowded */ - ts = cast(TString *, luaM_malloc(L, readonly ? sizeof(char**)+sizeof(TString) : (l+1)*sizeof(char)+sizeof(TString))); + ts = cast(TString *, luaM_malloc(L, sizeof(TString) + (readonly ? sizeof(char**) : (l+1)*sizeof(char)))); ts->tsv.len = l; ts->tsv.hash = h; ts->tsv.marked = luaC_white(G(L)); @@ -71,7 +71,7 @@ static TString *newlstr (lua_State *L, const char *str, size_t l, ((char *)(ts+1))[l] = '\0'; /* ending 0 */ } else { *(char **)(ts+1) = (char *)str; - luaS_readonly(ts); + l_setbit((ts)->tsv.marked, READONLYBIT); } h = lmod(h, tb->size); ts->tsv.next = tb->hash[h]; /* chain new entry */ @@ -80,14 +80,29 @@ static TString *newlstr (lua_State *L, const char *str, size_t l, return ts; } +#include "compiler.h" +static int lua_is_ptr_in_ro_area(const char *p) { +#ifdef LUA_CROSS_COMPILER + return 0; +#else + return p >= RODATA_START_ADDRESS && p <= RODATA_END_ADDRESS; +#endif +} -static TString *luaS_newlstr_helper (lua_State *L, const char *str, size_t l, int readonly) { +/* + * The string algorithm has been modified to be LFS-friendly. The previous eLua + * algo used the address of the string was in flash and the string was >4 bytes + * This creates miminal savings and prevents the use of LFS based strings + */ + +LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { GCObject *o; unsigned int h = cast(unsigned int, l); /* seed */ size_t step = (l>>5)+1; /* if string is too long, don't hash all its chars */ size_t l1; for (l1=l; l1>=step; l1-=step) /* compute hash */ h = h ^ ((h<<5)+(h>>2)+cast(unsigned char, str[l1-1])); + for (o = G(L)->strt.hash[lmod(h, G(L)->strt.size)]; o != NULL; o = o->gch.next) { @@ -98,35 +113,27 @@ static TString *luaS_newlstr_helper (lua_State *L, const char *str, size_t l, in return ts; } } - return newlstr(L, str, l, h, readonly); /* not found */ -} - -static int lua_is_ptr_in_ro_area(const char *p) { -#ifdef LUA_CROSS_COMPILER - return 0; -#else - -#include "compiler.h" - - return p >= RODATA_START_ADDRESS && p <= RODATA_END_ADDRESS; +#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) + /* + * The RAM strt is searched first since RAM access is faster tham Flash access. + * If a miss, then search the RO string table. + */ + if (G(L)->ROstrt.hash) { + for (o = G(L)->ROstrt.hash[lmod(h, G(L)->ROstrt.size)]; + o != NULL; + o = o->gch.next) { + TString *ts = rawgco2ts(o); + if (ts->tsv.len == l && (memcmp(str, getstr(ts), l) == 0)) { + return ts; + } + } + } #endif -} - -TString *luaS_newlstr (lua_State *L, const char *str, size_t l) { - // If the pointer is in a read-only memory and the string is at least 4 chars in length, - // create it as a read-only string instead - if(lua_is_ptr_in_ro_area(str) && l+1 > sizeof(char**) && l == c_strlen(str)) - return luaS_newlstr_helper(L, str, l, LUAS_READONLY_STRING); - else - return luaS_newlstr_helper(L, str, l, LUAS_REGULAR_STRING); -} - - -LUAI_FUNC TString *luaS_newrolstr (lua_State *L, const char *str, size_t l) { - if(l+1 > sizeof(char**) && l == c_strlen(str)) - return luaS_newlstr_helper(L, str, l, LUAS_READONLY_STRING); - else // no point in creating a RO string, as it would actually be larger - return luaS_newlstr_helper(L, str, l, LUAS_REGULAR_STRING); + /* New additions to the RAM strt are tagged as readonly if the string address + * is in the CTEXT segment (target only, not luac.cross) */ + int readonly = (lua_is_ptr_in_ro_area(str) && l+1 > sizeof(char**) && + l == c_strlen(str) ? LUAS_READONLY_STRING : LUAS_REGULAR_STRING); + return newlstr(L, str, l, h, readonly); /* not found */ } diff --git a/app/lua/lstring.h b/app/lua/lstring.h index b4cc3dda0e..6c5d8f6665 100644 --- a/app/lua/lstring.h +++ b/app/lua/lstring.h @@ -13,22 +13,16 @@ #include "lstate.h" -#define sizestring(s) (sizeof(union TString)+(luaS_isreadonly(s) ? sizeof(char **) : ((s)->len+1)*sizeof(char))) +#define sizestring(s) (sizeof(union TString)+(testbit((s)->marked, READONLYBIT) ? sizeof(char **) : ((s)->len+1)*sizeof(char))) #define sizeudata(u) (sizeof(union Udata)+(u)->len) #define luaS_new(L, s) (luaS_newlstr(L, s, c_strlen(s))) -#define luaS_newro(L, s) (luaS_newrolstr(L, s, c_strlen(s))) #define luaS_newliteral(L, s) (luaS_newlstr(L, "" s, \ (sizeof(s)/sizeof(char))-1)) -#define luaS_fix(s) l_setbit((s)->tsv.marked, FIXEDBIT) -#define luaS_readonly(s) l_setbit((s)->tsv.marked, READONLYBIT) -#define luaS_isreadonly(s) testbit((s)->marked, READONLYBIT) - LUAI_FUNC void luaS_resize (lua_State *L, int newsize); LUAI_FUNC Udata *luaS_newudata (lua_State *L, size_t s, Table *e); LUAI_FUNC TString *luaS_newlstr (lua_State *L, const char *str, size_t l); -LUAI_FUNC TString *luaS_newrolstr (lua_State *L, const char *str, size_t l); #endif diff --git a/app/lua/ltable.c b/app/lua/ltable.c index 2e486512ed..9a5f91bce7 100644 --- a/app/lua/ltable.c +++ b/app/lua/ltable.c @@ -749,12 +749,12 @@ int luaH_getn_ro (void *t) { return len; } -#if defined(LUA_DEBUG) +int luaH_isdummy (Node *n) { return n == dummynode; } +#if defined(LUA_DEBUG) Node *luaH_mainposition (const Table *t, const TValue *key) { return mainposition(t, key); } +#endif -int luaH_isdummy (Node *n) { return n == dummynode; } -#endif diff --git a/app/lua/ltable.h b/app/lua/ltable.h index 4835f2c3fb..d8c26d9af8 100644 --- a/app/lua/ltable.h +++ b/app/lua/ltable.h @@ -34,11 +34,9 @@ LUAI_FUNC int luaH_next (lua_State *L, Table *t, StkId key); LUAI_FUNC int luaH_next_ro (lua_State *L, void *t, StkId key); LUAI_FUNC int luaH_getn (Table *t); LUAI_FUNC int luaH_getn_ro (void *t); +LUAI_FUNC int luaH_isdummy (Node *n); #if defined(LUA_DEBUG) LUAI_FUNC Node *luaH_mainposition (const Table *t, const TValue *key); -LUAI_FUNC int luaH_isdummy (Node *n); #endif - - #endif diff --git a/app/lua/ltm.c b/app/lua/ltm.c index fccbbe6727..6b27ccc0d1 100644 --- a/app/lua/ltm.c +++ b/app/lua/ltm.c @@ -14,6 +14,7 @@ #include "lobject.h" #include "lstate.h" +#include "lgc.h" #include "lstring.h" #include "ltable.h" #include "ltm.h" @@ -39,7 +40,7 @@ void luaT_init (lua_State *L) { int i; for (i=0; itmname[i] = luaS_new(L, luaT_eventname[i]); - luaS_fix(G(L)->tmname[i]); /* never collect these names */ + stringfix(G(L)->tmname[i]); /* never collect these names */ } } diff --git a/app/lua/lua.c b/app/lua/lua.c index 3082bb288b..f5c7461f7b 100644 --- a/app/lua/lua.c +++ b/app/lua/lua.c @@ -13,6 +13,7 @@ #include "user_version.h" #include "driver/readline.h" #include "driver/uart.h" +#include "platform.h" #define lua_c @@ -21,7 +22,9 @@ #include "lauxlib.h" #include "lualib.h" #include "legc.h" - +#ifdef LUA_FLASH_STORE +#include "lflash.h" +#endif #include "os_type.h" lua_State *globalL = NULL; @@ -30,44 +33,6 @@ lua_Load gLoad; static const char *progname = LUA_PROGNAME; -#if 0 -static void lstop (lua_State *L, lua_Debug *ar) { - (void)ar; /* unused arg. */ - lua_sethook(L, NULL, 0, 0); - luaL_error(L, "interrupted!"); -} - - -static void laction (int i) { - // signal(i, SIG_DFL); - /* if another SIGINT happens before lstop, - terminate process (default action) */ - lua_sethook(globalL, lstop, LUA_MASKCALL | LUA_MASKRET | LUA_MASKCOUNT, 1); -} - - -static void print_usage (void) { -#if defined(LUA_USE_STDIO) - c_fprintf(c_stderr, -#else - luai_writestringerror( -#endif - "usage: %s [options] [script [args]].\n" - "Available options are:\n" - " -e stat execute string " LUA_QL("stat") "\n" - " -l name require library " LUA_QL("name") "\n" - " -m limit set memory limit. (units are in Kbytes)\n" - " -i enter interactive mode after executing " LUA_QL("script") "\n" - " -v show version information\n" - " -- stop handling options\n" - " - execute stdin and stop handling options\n" - , - progname); -#if defined(LUA_USE_STDIO) - c_fflush(c_stderr); -#endif -} -#endif static void l_message (const char *pname, const char *msg) { #if defined(LUA_USE_STDIO) @@ -154,17 +119,11 @@ static int getargs (lua_State *L, char **argv, int n) { return narg; } -#if 0 -static int dofile (lua_State *L, const char *name) { - int status = luaL_loadfile(L, name) || docall(L, 0, 1); - return report(L, status); -} -#else static int dofsfile (lua_State *L, const char *name) { int status = luaL_loadfsfile(L, name) || docall(L, 0, 1); return report(L, status); } -#endif + static int dostring (lua_State *L, const char *s, const char *name) { int status = luaL_loadbuffer(L, s, c_strlen(s), name) || docall(L, 0, 1); @@ -201,92 +160,6 @@ static int incomplete (lua_State *L, int status) { return 0; /* else... */ } -#if 0 -static int pushline (lua_State *L, int firstline) { - char buffer[LUA_MAXINPUT]; - char *b = buffer; - size_t l; - const char *prmt = get_prompt(L, firstline); - if (lua_readline(L, b, prmt) == 0) - return 0; /* no input */ - l = c_strlen(b); - if (l > 0 && b[l-1] == '\n') /* line ends with newline? */ - b[l-1] = '\0'; /* remove it */ - if (firstline && b[0] == '=') /* first line starts with `=' ? */ - lua_pushfstring(L, "return %s", b+1); /* change it to `return' */ - else - lua_pushstring(L, b); - lua_freeline(L, b); - return 1; -} - - -static int loadline (lua_State *L) { - int status; - lua_settop(L, 0); - if (!pushline(L, 1)) - return -1; /* no input */ - for (;;) { /* repeat until gets a complete line */ - status = luaL_loadbuffer(L, lua_tostring(L, 1), lua_strlen(L, 1), "=stdin"); - if (!incomplete(L, status)) break; /* cannot try to add lines? */ - if (!pushline(L, 0)) /* no more input? */ - return -1; - lua_pushliteral(L, "\n"); /* add a new line... */ - lua_insert(L, -2); /* ...between the two lines */ - lua_concat(L, 3); /* join them */ - } - lua_saveline(L, 1); - lua_remove(L, 1); /* remove line */ - return status; -} - - -static void dotty (lua_State *L) { - int status; - const char *oldprogname = progname; - progname = NULL; - while ((status = loadline(L)) != -1) { - if (status == 0) status = docall(L, 0, 0); - report(L, status); - if (status == 0 && lua_gettop(L) > 0) { /* any result to print? */ - lua_getglobal(L, "print"); - lua_insert(L, 1); - if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0) - l_message(progname, lua_pushfstring(L, - "error calling " LUA_QL("print") " (%s)", - lua_tostring(L, -1))); - } - } - lua_settop(L, 0); /* clear stack */ - -#if defined(LUA_USE_STDIO) - c_fputs("\n", c_stdout); - c_fflush(c_stdout); -#else - luai_writeline(); -#endif - - progname = oldprogname; -} - - -static int handle_script (lua_State *L, char **argv, int n) { - int status; - const char *fname; - int narg = getargs(L, argv, n); /* collect arguments */ - lua_setglobal(L, "arg"); - fname = argv[n]; - if (c_strcmp(fname, "-") == 0 && c_strcmp(argv[n-1], "--") != 0) - fname = NULL; /* stdin */ - status = luaL_loadfile(L, fname); - lua_insert(L, -(narg+1)); - if (status == 0) - status = docall(L, narg, 0); - else - lua_pop(L, narg); - return report(L, status); -} -#endif /* check that argument has no extra characters at the end */ #define notail(x) {if ((x)[2] != '\0') return -1;} @@ -368,11 +241,7 @@ static int handle_luainit (lua_State *L) { const char *init = c_getenv(LUA_INIT); if (init == NULL) return 0; /* status OK */ else if (init[0] == '@') -#if 0 - return dofile(L, init+1); -#else return dofsfile(L, init+1); -#endif else return dostring(L, init, "=" LUA_INIT); } @@ -397,34 +266,13 @@ static int pmain (lua_State *L) { lua_gc(L, LUA_GCRESTART, 0); print_version(L); s->status = handle_luainit(L); -#if 0 - if (s->status != 0) return 0; -#endif script = collectargs(argv, &has_i, &has_v, &has_e); if (script < 0) { /* invalid args? */ -#if 0 - print_usage(); -#endif s->status = 1; return 0; } - // if (has_v) print_version(); s->status = runargs(L, argv, (script > 0) ? script : s->argc); if (s->status != 0) return 0; -#if 0 - if (script) - s->status = handle_script(L, argv, script); - if (s->status != 0) return 0; - if (has_i) - dotty(L); - else if (script == 0 && !has_e && !has_v) { - if (lua_stdin_is_tty()) { - print_version(); - dotty(L); - } - else dofile(L, NULL); /* executes stdin as a file */ - } -#endif return 0; } @@ -439,6 +287,12 @@ int lua_main (int argc, char **argv) { #endif int status; struct Smain s; + +#if defined(NODE_DEBUG) && defined(DEVELOPMENT_USE_GDB) && BREAK_ON_STARTUP_PIN > 0 + platform_gpio_mode( BREAK_ON_STARTUP_PIN, PLATFORM_GPIO_INPUT, PLATFORM_GPIO_PULLUP ); + lua_assert(platform_gpio_read(BREAK_ON_STARTUP_PIN)); // Break if pin pulled low +#endif + lua_State *L = lua_open(); /* create state */ if (L == NULL) { l_message(argv[0], "cannot create state: not enough memory"); @@ -446,7 +300,9 @@ int lua_main (int argc, char **argv) { } s.argc = argc; s.argv = argv; + status = lua_cpcall(L, &pmain, &s); + report(L, status); gLoad.L = L; @@ -468,11 +324,8 @@ int lua_main (int argc, char **argv) { void lua_handle_input (bool force) { - while (gLoad.L && (force || readline (&gLoad))) - { + if (gLoad.L && (force || readline (&gLoad))) dojob (&gLoad); - force = false; - } } void donejob(lua_Load *load){ @@ -602,12 +455,11 @@ static bool readline(lua_Load *load){ { /* Get a empty line, then go to get a new line */ c_puts(load->prmt); - continue; } else { load->done = 1; need_dojob = true; - break; } + continue; } /* other control character or not an acsii character */ diff --git a/app/lua/lua.h b/app/lua/lua.h index 69fcc95bb0..b6f6c413b1 100644 --- a/app/lua/lua.h +++ b/app/lua/lua.h @@ -173,7 +173,6 @@ LUA_API void (lua_pushnil) (lua_State *L); LUA_API void (lua_pushnumber) (lua_State *L, lua_Number n); LUA_API void (lua_pushinteger) (lua_State *L, lua_Integer n); LUA_API void (lua_pushlstring) (lua_State *L, const char *s, size_t l); -LUA_API void (lua_pushrolstring) (lua_State *L, const char *s, size_t l); LUA_API void (lua_pushstring) (lua_State *L, const char *s); LUA_API const char *(lua_pushvfstring) (lua_State *L, const char *fmt, va_list argp); diff --git a/app/lua/luac_cross.h b/app/lua/luac_cross.h index 8dba4620e2..f4a4da83ed 100644 --- a/app/lua/luac_cross.h +++ b/app/lua/luac_cross.h @@ -31,6 +31,7 @@ #define c_freopen freopen #define c_getc getc #define c_getenv getenv +#define c_malloc malloc #define c_memcmp memcmp #define c_memcpy memcpy #define c_printf printf diff --git a/app/lua/luac_cross/Makefile b/app/lua/luac_cross/Makefile index e58ec38e1e..25e97c4c31 100644 --- a/app/lua/luac_cross/Makefile +++ b/app/lua/luac_cross/Makefile @@ -7,30 +7,29 @@ .NOTPARALLEL: CCFLAGS:= -I.. -I../../include -I../../../include -I ../../libc -LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm +LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -Wl,-Map=mapfile CCFLAGS += -Wall -DEFINES += -DLUA_CROSS_COMPILER +DEFINES += -DLUA_CROSS_COMPILER -DLUA_OPTIMIZE_MEMORY=2 TARGET = host -ifeq ($(FLAVOR),release) +ifeq ($(FLAVOR),debug) + CCFLAGS += -O0 -g + TARGET_LDFLAGS += -O0 -g +else + FLAVOR = release CCFLAGS += -O2 TARGET_LDFLAGS += -O2 -else - FLAVOR = debug - CCFLAGS += -O2 -g - TARGET_LDFLAGS += -O2 -g endif -LUACSRC := luac.c lflashimg.c loslib.c print.c -LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c \ - ldebug.c ldo.c ldump.c lfunc.c lgc.c \ - llex.c lmathlib.c lmem.c loadlib.c lobject.c \ - lopcodes.c lparser.c lrotable.c lstate.c lstring.c \ - lstrlib.c ltable.c ltablib.c ltm.c lundump.c \ - lvm.c lzio.c +LUACSRC := luac.c lflashimg.c liolib.c loslib.c print.c +LUASRC := lapi.c lauxlib.c lbaselib.c lcode.c ldblib.c ldebug.c \ + ldo.c ldump.c lfunc.c lgc.c linit.c llex.c \ + lmathlib.c lmem.c loadlib.c lobject.c lopcodes.c lparser.c \ + lrotable.c lstate.c lstring.c lstrlib.c ltable.c ltablib.c \ + ltm.c lundump.c lvm.c lzio.c LIBCSRC := c_stdlib.c # @@ -83,6 +82,3 @@ $(ODIR)/%.d: %.c $(CC) -M $(CFLAGS) $< > $@.$$$$; \ sed 's,\($*\.o\)[ :]*,$(ODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ - -# echo 's,\($*\.o\)[ :]*,$(ODIR)/\1 $@ : ,g'; \ - diff --git a/app/lua/luac_cross/lflashimg.c b/app/lua/luac_cross/lflashimg.c index 94844f8582..ee21f067e8 100644 --- a/app/lua/luac_cross/lflashimg.c +++ b/app/lua/luac_cross/lflashimg.c @@ -224,7 +224,7 @@ static void createROstrt(lua_State *L, FlashHeader *fh) { toFlashAddr(L, *e, fts); // add reference to TS to lookup vector toFlashAddr(L, fts->next, last); // and chain to previous entry if any fts->tt = LUA_TSTRING; // Set as String - fts->marked = bitmask(FIXEDBIT); // Fixed with no Whitebits set + fts->marked = bitmask(LFSBIT); // LFS string with no Whitebits set fts->hash = hash; // add hash fts->len = len; // and length memcpy(flashAlloc(L, ALIGN(len+1)), p, ALIGN(len+1)); // copy string @@ -262,14 +262,21 @@ static void *resolveTString(lua_State* L, TString *s) { * src Source of record * returns Address of destination record */ +#define TARGET_TV_SIZE (2*sizeof(lua_Number)) static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { /* ToS is the string address mapping table */ if (n == 0) return NULL; - int i; + int i, recsize; void *newts; - // A bit of a botch because fmt is either "V" or a string of WORDSIZE specifiers */ - int recsize = fmt[0]=='V' ? 16 : WORDSIZE * strlen(fmt); + /* A bit of a botch because fmt is either "V" or a string of WORDSIZE specifiers */ + /* The size 8 for integer builds and 16 for float ones on both architectures */ + if (fmt[0]=='V') { + lua_assert(fmt[1] == 0); /* V formats must be singetons */ + recsize = TARGET_TV_SIZE; + } else { + recsize = WORDSIZE * strlen(fmt); + } uint *d = cast(uint *, flashAlloc(L, n * recsize)); uint *dest = d; @@ -284,8 +291,8 @@ static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { switch (*p++) { case 'A': toFlashAddr(L, *d, *cast(void**, s)); - d++; s += FLASH_WORDS(size_t); + d++; break; case 'I': *d++ = *s++; @@ -293,22 +300,23 @@ static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { case 'S': newts = resolveTString(L, *cast(TString **, s)); toFlashAddr(L, *d, newts); - d++; s += FLASH_WORDS(size_t); + d++; break; case 'V': - memcpy(d, s, sizeof(TValue)); + /* This code has to work for both Integer and Float build variants */ + memset(d, 0, TARGET_TV_SIZE); TValue *sv = cast(TValue *, s); if (ttisstring(sv)) { - newts = resolveTString(L, rawtsvalue(sv)); - toFlashAddr(L, *d, newts); - d[1] = 0; - } else { + toFlashAddr(L, *d, resolveTString(L, rawtsvalue(sv))); + } else { /* non-collectable types all of size lua_Number */ lua_assert(!iscollectable(sv)); + *cast(lua_Number*,d) = *cast(lua_Number*,s); } - d += FLASH_WORDS(TValue); + *cast(int *,cast(lua_Number*,d)+1) = ttype(sv); s += FLASH_WORDS(TValue); - break; + d += TARGET_TV_SIZE/WORDSIZE; + break; default: lua_assert (0); } @@ -334,7 +342,7 @@ static void *functionToFlash(lua_State* L, const Proto* orig) { memcpy (&f, orig, sizeof(Proto)); f.gclist = NULL; f.next = NULL; - l_setbit(f.marked, FIXEDBIT); + l_setbit(f.marked, LFSBIT); /* OK to set the LFSBIT on a stack-cloned copy */ if (f.sizep) { /* clone included Protos */ Proto **p = luaM_newvector(L, f.sizep, Proto *); diff --git a/app/lua/liolib.c b/app/lua/luac_cross/liolib.c similarity index 52% rename from app/lua/liolib.c rename to app/lua/luac_cross/liolib.c index 4ac31fe448..e333a557a8 100644 --- a/app/lua/liolib.c +++ b/app/lua/luac_cross/liolib.c @@ -5,14 +5,14 @@ */ -// #include "c_errno.h" -#include "c_stdio.h" -#include "c_stdlib.h" -#include "c_string.h" -#include "vfs.h" +#include +#include +#include +#include #define liolib_c #define LUA_LIB +#define LUA_OPTIMIZE_MEMORY 2 #include "lua.h" @@ -20,26 +20,21 @@ #include "lualib.h" #include "lrotable.h" - #define IO_INPUT 1 #define IO_OUTPUT 2 #define IO_STDERR 0 -#if LUA_OPTIMIZE_MEMORY != 2 -#define LUA_IO_GETFIELD(f) lua_rawgeti(L, LUA_ENVIRONINDEX, f) -#define LUA_IO_SETFIELD(f) lua_rawseti(L, LUA_ENVIRONINDEX, f) -#else -#define LUA_IO_GETFIELD(f) lua_rawgeti(L, LUA_REGISTRYINDEX, liolib_keys[f]) -#define LUA_IO_SETFIELD(f) lua_rawseti(L, LUA_REGISTRYINDEX, liolib_keys[f]) +#define LUA_IO_GETFIELD(f) lua_rawgeti(L, LUA_REGISTRYINDEX,(int)(liolib_keys[f])) +#define LUA_IO_SETFIELD(f) lua_rawseti(L, LUA_REGISTRYINDEX,(int)(liolib_keys[f])) /* "Pseudo-random" keys for the registry */ -static const int liolib_keys[] = {(int)&luaL_callmeta, (int)&luaL_typerror, (int)&luaL_argerror}; -#endif +static const size_t liolib_keys[] = {(size_t)&luaL_callmeta, (size_t)&luaL_typerror, (size_t)&luaL_argerror}; static const char *const fnames[] = {"input", "output"}; + static int pushresult (lua_State *L, int i, const char *filename) { - int en = vfs_ferrno(0); /* calls to Lua API may change this value */ + int en = errno; /* calls to Lua API may change this value */ if (i) { lua_pushboolean(L, 1); return 1; @@ -47,9 +42,9 @@ static int pushresult (lua_State *L, int i, const char *filename) { else { lua_pushnil(L); if (filename) - lua_pushfstring(L, "%s: err(%d)", filename, en); + lua_pushfstring(L, "%s: %s", filename, strerror(en)); else - lua_pushfstring(L, "err(%d)", en); + lua_pushfstring(L, "%s", strerror(en)); lua_pushinteger(L, en); return 3; } @@ -57,12 +52,12 @@ static int pushresult (lua_State *L, int i, const char *filename) { static void fileerror (lua_State *L, int arg, const char *filename) { - lua_pushfstring(L, "%s: err(%d)", filename, vfs_ferrno(0)); + lua_pushfstring(L, "%s: %s", filename, strerror(errno)); luaL_argerror(L, arg, lua_tostring(L, -1)); } -#define tofilep(L) ((int *)luaL_checkudata(L, 1, LUA_FILEHANDLE)) +#define tofilep(L) ((FILE **)luaL_checkudata(L, 1, LUA_FILEHANDLE)) static int io_type (lua_State *L) { @@ -72,7 +67,7 @@ static int io_type (lua_State *L) { lua_getfield(L, LUA_REGISTRYINDEX, LUA_FILEHANDLE); if (ud == NULL || !lua_getmetatable(L, 1) || !lua_rawequal(L, -2, -1)) lua_pushnil(L); /* not a file */ - else if (*((int *)ud) < FS_OPEN_OK) + else if (*((FILE **)ud) == NULL) lua_pushliteral(L, "closed file"); else lua_pushliteral(L, "file"); @@ -80,9 +75,9 @@ static int io_type (lua_State *L) { } -static int tofile (lua_State *L) { - int *f = tofilep(L); - if (*f < FS_OPEN_OK) +static FILE *tofile (lua_State *L) { + FILE **f = tofilep(L); + if (*f == NULL) luaL_error(L, "attempt to use a closed file"); return *f; } @@ -94,91 +89,52 @@ static int tofile (lua_State *L) { ** before opening the actual file; so, if there is a memory error, the ** file is not left opened. */ -static int *newfile (lua_State *L) { - int *pf = (int *)lua_newuserdata(L, sizeof(int)); - *pf = FS_OPEN_OK - 1; /* file handle is currently `closed' */ +static FILE **newfile (lua_State *L) { + FILE **pf = (FILE **)lua_newuserdata(L, sizeof(FILE *)); + *pf = NULL; /* file handle is currently `closed' */ luaL_getmetatable(L, LUA_FILEHANDLE); lua_setmetatable(L, -2); return pf; } -#if LUA_OPTIMIZE_MEMORY != 2 -/* -** function to (not) close the standard files stdin, stdout, and stderr -*/ -static int io_noclose (lua_State *L) { - lua_pushnil(L); - lua_pushliteral(L, "cannot close standard file"); - return 2; -} - -#if 0 -/* -** function to close 'popen' files -*/ -static int io_pclose (lua_State *L) { - int *p = tofilep(L); - int ok = lua_pclose(L, *p); - *p = FS_OPEN_OK - 1; - return pushresult(L, ok, NULL); -} -#endif - -/* -** function to close regular files -*/ -static int io_fclose (lua_State *L) { - int *p = tofilep(L); - int ok = (vfs_close(*p) == 0); - *p = FS_OPEN_OK - 1; - return pushresult(L, ok, NULL); -} -#endif - static int aux_close (lua_State *L) { -#if LUA_OPTIMIZE_MEMORY != 2 - lua_getfenv(L, 1); - lua_getfield(L, -1, "__close"); - return (lua_tocfunction(L, -1))(L); -#else - int *p = tofilep(L); - if(*p == c_stdin || *p == c_stdout || *p == c_stderr) + FILE **p = tofilep(L); + if(*p == stdin || *p == stdout || *p == stderr) { lua_pushnil(L); lua_pushliteral(L, "cannot close standard file"); - return 2; + return 2; } - int ok = (vfs_close(*p) == 0); - *p = FS_OPEN_OK - 1; + int ok = (fclose(*p) == 0); + *p = NULL; return pushresult(L, ok, NULL); -#endif } static int io_close (lua_State *L) { if (lua_isnone(L, 1)) - LUA_IO_GETFIELD(IO_OUTPUT); + lua_rawgeti(L, LUA_ENVIRONINDEX, IO_OUTPUT); tofile(L); /* make sure argument is a file */ return aux_close(L); } static int io_gc (lua_State *L) { - int f = *tofilep(L); + FILE *f = *tofilep(L); /* ignore closed files */ - if (f != FS_OPEN_OK - 1) + if (f != NULL) aux_close(L); return 0; } static int io_tostring (lua_State *L) { - int f = *tofilep(L); - if (f == FS_OPEN_OK - 1) + FILE *f = *tofilep(L); + if (f == NULL) lua_pushliteral(L, "file (closed)"); else - lua_pushfstring(L, "file (%i)", f); + lua_pushfstring(L, "file (%p)", f); return 1; } @@ -186,42 +142,19 @@ static int io_tostring (lua_State *L) { static int io_open (lua_State *L) { const char *filename = luaL_checkstring(L, 1); const char *mode = luaL_optstring(L, 2, "r"); - int *pf = newfile(L); - *pf = vfs_open(filename, mode); - return (*pf == FS_OPEN_OK - 1) ? pushresult(L, 0, filename) : 1; + FILE **pf = newfile(L); + *pf = fopen(filename, mode); + return (*pf == NULL) ? pushresult(L, 0, filename) : 1; } -/* -** this function has a separated environment, which defines the -** correct __close for 'popen' files -*/ -#if 0 -static int io_popen (lua_State *L) { - const char *filename = luaL_checkstring(L, 1); - const char *mode = luaL_optstring(L, 2, "r"); - int *pf = newfile(L); - *pf = lua_popen(L, filename, fs_mode2flags(mode)); - return (*pf == FS_OPEN_OK - 1) ? pushresult(L, 0, filename) : 1; -} - - -static int io_tmpfile (lua_State *L) { - int *pf = newfile(L); - *pf = tmpfile(); - return (*pf == FS_OPEN_OK - 1) ? pushresult(L, 0, NULL) : 1; -} -#endif - -static int getiofile (lua_State *L, int findex) { - int *pf; - LUA_IO_GETFIELD(findex); - pf = (int *)lua_touserdata(L, -1); - if (pf == NULL || *pf == FS_OPEN_OK - 1){ - luaL_error(L, "default %s file is closed", fnames[findex - 1]); - return FS_OPEN_OK - 1; - } - return *pf; +static FILE *getiofile (lua_State *L, int findex) { + FILE *f; + lua_rawgeti(L, LUA_ENVIRONINDEX, findex); + f = *(FILE **)lua_touserdata(L, -1); + if (f == NULL) + luaL_error(L, "standard %s file is closed", fnames[findex - 1]); + return f; } @@ -229,19 +162,19 @@ static int g_iofile (lua_State *L, int f, const char *mode) { if (!lua_isnoneornil(L, 1)) { const char *filename = lua_tostring(L, 1); if (filename) { - int *pf = newfile(L); - *pf = vfs_open(filename, mode); - if (*pf == FS_OPEN_OK - 1) + FILE **pf = newfile(L); + *pf = fopen(filename, mode); + if (*pf == NULL) fileerror(L, 1, filename); } else { tofile(L); /* check that it's a valid file handle */ lua_pushvalue(L, 1); } - LUA_IO_SETFIELD(f); + lua_rawseti(L, LUA_ENVIRONINDEX, f); } /* return current value */ - LUA_IO_GETFIELD(f); + lua_rawgeti(L, LUA_ENVIRONINDEX, f); return 1; } @@ -276,14 +209,14 @@ static int f_lines (lua_State *L) { static int io_lines (lua_State *L) { if (lua_isnoneornil(L, 1)) { /* no arguments? */ /* will iterate over default input */ - LUA_IO_GETFIELD(IO_INPUT); + lua_rawgeti(L, LUA_ENVIRONINDEX, IO_INPUT); return f_lines(L); } else { const char *filename = luaL_checkstring(L, 1); - int *pf = newfile(L); - *pf = vfs_open(filename, "r"); - if (*pf == FS_OPEN_OK - 1) + FILE **pf = newfile(L); + *pf = fopen(filename, "r"); + if (*pf == NULL) fileerror(L, 1, filename); aux_lines(L, lua_gettop(L), 1); return 1; @@ -297,10 +230,10 @@ static int io_lines (lua_State *L) { ** ======================================================= */ -#if 0 -static int read_number (lua_State *L, int f) { + +static int read_number (lua_State *L, FILE *f) { lua_Number d; - if (fs_scanf(f, LUA_NUMBER_SCAN, &d) == 1) { + if (fscanf(f, LUA_NUMBER_SCAN, &d) == 1) { lua_pushnumber(L, d); return 1; } @@ -309,27 +242,27 @@ static int read_number (lua_State *L, int f) { return 0; /* read fails */ } } -#endif -static int test_eof (lua_State *L, int f) { - int c = vfs_getc(f); - vfs_ungetc(c, f); + +static int test_eof (lua_State *L, FILE *f) { + int c = getc(f); + ungetc(c, f); lua_pushlstring(L, NULL, 0); return (c != EOF); } -#if 0 -static int read_line (lua_State *L, int f) { + +static int read_line (lua_State *L, FILE *f) { luaL_Buffer b; luaL_buffinit(L, &b); for (;;) { size_t l; char *p = luaL_prepbuffer(&b); - if (fs_gets(p, LUAL_BUFFERSIZE, f) == NULL) { /* eof? */ + if (fgets(p, LUAL_BUFFERSIZE, f) == NULL) { /* eof? */ luaL_pushresult(&b); /* close buffer */ return (lua_objlen(L, -1) > 0); /* check whether read something */ } - l = c_strlen(p); + l = strlen(p); if (l == 0 || p[l-1] != '\n') luaL_addsize(&b, l); else { @@ -339,27 +272,9 @@ static int read_line (lua_State *L, int f) { } } } -#else -static int read_line (lua_State *L, int f) { - luaL_Buffer b; - luaL_buffinit(L, &b); - signed char c; - do { - c = (signed char)vfs_getc(f); - if (c==EOF) { - break; - } - if (c != '\n') { - luaL_addchar(&b, c); - } - } while (c != '\n'); - luaL_pushresult(&b); /* close buffer */ - return (lua_objlen(L, -1) > 0); /* check whether read something */ -} -#endif -static int read_chars (lua_State *L, int f, size_t n) { +static int read_chars (lua_State *L, FILE *f, size_t n) { size_t rlen; /* how much to read */ size_t nr; /* number of chars actually read */ luaL_Buffer b; @@ -368,7 +283,7 @@ static int read_chars (lua_State *L, int f, size_t n) { do { char *p = luaL_prepbuffer(&b); if (rlen > n) rlen = n; /* cannot read more than asked */ - nr = vfs_read(f, p, rlen); + nr = fread(p, sizeof(char), rlen, f); luaL_addsize(&b, nr); n -= nr; /* still have to read `n' chars */ } while (n > 0 && nr == rlen); /* until end of count or eof */ @@ -377,11 +292,11 @@ static int read_chars (lua_State *L, int f, size_t n) { } -static int g_read (lua_State *L, int f, int first) { +static int g_read (lua_State *L, FILE *f, int first) { int nargs = lua_gettop(L) - 1; int success; int n; - //vfs_clearerr(f); + clearerr(f); if (nargs == 0) { /* no arguments? */ success = read_line(L, f); n = first+1; /* to return 1 result */ @@ -398,11 +313,9 @@ static int g_read (lua_State *L, int f, int first) { const char *p = lua_tostring(L, n); luaL_argcheck(L, p && p[0] == '*', n, "invalid option"); switch (p[1]) { -#if 0 case 'n': /* number */ success = read_number(L, f); break; -#endif case 'l': /* line */ success = read_line(L, f); break; @@ -416,7 +329,7 @@ static int g_read (lua_State *L, int f, int first) { } } } - if (vfs_ferrno(f)) + if (ferror(f)) return pushresult(L, 0, NULL); if (!success) { lua_pop(L, 1); /* remove last result */ @@ -437,15 +350,13 @@ static int f_read (lua_State *L) { static int io_readline (lua_State *L) { - int *pf = (int *)lua_touserdata(L, lua_upvalueindex(1)); + FILE *f = *(FILE **)lua_touserdata(L, lua_upvalueindex(1)); int sucess; - if (pf == NULL || *pf == FS_OPEN_OK - 1){ /* file is already closed? */ + if (f == NULL) /* file is already closed? */ luaL_error(L, "file is already closed"); - return 0; - } - sucess = read_line(L, *pf); - if (vfs_ferrno(*pf)) - return luaL_error(L, "err(%d)", vfs_ferrno(*pf)); + sucess = read_line(L, f); + if (ferror(f)) + return luaL_error(L, "%s", strerror(errno)); if (sucess) return 1; else { /* EOF */ if (lua_toboolean(L, lua_upvalueindex(2))) { /* generator created file? */ @@ -460,22 +371,19 @@ static int io_readline (lua_State *L) { /* }====================================================== */ -static int g_write (lua_State *L, int f, int arg) { +static int g_write (lua_State *L, FILE *f, int arg) { int nargs = lua_gettop(L) - 1; int status = 1; for (; nargs--; arg++) { -#if 0 if (lua_type(L, arg) == LUA_TNUMBER) { /* optimization: could be done exactly as for strings */ status = status && - fs_printf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) > 0; + fprintf(f, LUA_NUMBER_FMT, lua_tonumber(L, arg)) > 0; } - else -#endif - { + else { size_t l; const char *s = luaL_checklstring(L, arg, &l); - status = status && (vfs_write(f, s, l) == l); + status = status && (fwrite(s, sizeof(char), l, f) == l); } } return pushresult(L, status, NULL); @@ -493,159 +401,103 @@ static int f_write (lua_State *L) { static int f_seek (lua_State *L) { - static const int mode[] = {VFS_SEEK_SET, VFS_SEEK_CUR, VFS_SEEK_END}; + static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END}; static const char *const modenames[] = {"set", "cur", "end", NULL}; - int f = tofile(L); + FILE *f = tofile(L); int op = luaL_checkoption(L, 2, "cur", modenames); long offset = luaL_optlong(L, 3, 0); - op = vfs_lseek(f, offset, mode[op]); + op = fseek(f, offset, mode[op]); if (op) return pushresult(L, 0, NULL); /* error */ else { - lua_pushinteger(L, vfs_tell(f)); + lua_pushinteger(L, ftell(f)); return 1; } } -#if 0 + static int f_setvbuf (lua_State *L) { static const int mode[] = {_IONBF, _IOFBF, _IOLBF}; static const char *const modenames[] = {"no", "full", "line", NULL}; - int f = tofile(L); + FILE *f = tofile(L); int op = luaL_checkoption(L, 2, NULL, modenames); lua_Integer sz = luaL_optinteger(L, 3, LUAL_BUFFERSIZE); int res = setvbuf(f, NULL, mode[op], sz); return pushresult(L, res == 0, NULL); } -#endif static int io_flush (lua_State *L) { - return pushresult(L, vfs_flush(getiofile(L, IO_OUTPUT)) == 0, NULL); + return pushresult(L, fflush(getiofile(L, IO_OUTPUT)) == 0, NULL); } static int f_flush (lua_State *L) { - return pushresult(L, vfs_flush(tofile(L)) == 0, NULL); + return pushresult(L, fflush(tofile(L)) == 0, NULL); } -#undef MIN_OPT_LEVEL #define MIN_OPT_LEVEL 2 #include "lrodefs.h" -#if LUA_OPTIMIZE_MEMORY == 2 const LUA_REG_TYPE iolib_funcs[] = { -#else -const LUA_REG_TYPE iolib[] = { -#endif - {LSTRKEY("close"), LFUNCVAL(io_close)}, - {LSTRKEY("flush"), LFUNCVAL(io_flush)}, - {LSTRKEY("input"), LFUNCVAL(io_input)}, - {LSTRKEY("lines"), LFUNCVAL(io_lines)}, - {LSTRKEY("open"), LFUNCVAL(io_open)}, - {LSTRKEY("output"), LFUNCVAL(io_output)}, - // {LSTRKEY("popen"), LFUNCVAL(io_popen)}, - {LSTRKEY("read"), LFUNCVAL(io_read)}, - // {LSTRKEY("tmpfile"), LFUNCVAL(io_tmpfile)}, - {LSTRKEY("type"), LFUNCVAL(io_type)}, - {LSTRKEY("write"), LFUNCVAL(io_write)}, + {LSTRKEY("close"), LFUNCVAL(io_close)}, + {LSTRKEY("flush"), LFUNCVAL(io_flush)}, + {LSTRKEY("input"), LFUNCVAL(io_input)}, + {LSTRKEY("lines"), LFUNCVAL(io_lines)}, + {LSTRKEY("open"), LFUNCVAL(io_open)}, + {LSTRKEY("output"), LFUNCVAL(io_output)}, + {LSTRKEY("read"), LFUNCVAL(io_read)}, + {LSTRKEY("type"), LFUNCVAL(io_type)}, + {LSTRKEY("write"), LFUNCVAL(io_write)}, + {LSTRKEY("__index"), LROVAL(iolib_funcs)}, {LNILKEY, LNILVAL} }; -#if LUA_OPTIMIZE_MEMORY == 2 -static int luaL_index(lua_State *L) +/* Note that IO objects use a RAM metatable created to allow extensibility */ + +static int io_index(lua_State *L) { return luaR_findfunction(L, iolib_funcs); } - + const luaL_Reg iolib[] = { - {"__index", luaL_index}, + {"__index", io_index}, {NULL, NULL} }; -#endif #undef MIN_OPT_LEVEL #define MIN_OPT_LEVEL 1 #include "lrodefs.h" const LUA_REG_TYPE flib[] = { - {LSTRKEY("close"), LFUNCVAL(io_close)}, - {LSTRKEY("flush"), LFUNCVAL(f_flush)}, - {LSTRKEY("lines"), LFUNCVAL(f_lines)}, - {LSTRKEY("read"), LFUNCVAL(f_read)}, - {LSTRKEY("seek"), LFUNCVAL(f_seek)}, - // {LSTRKEY("setvbuf"), LFUNCVAL(f_setvbuf)}, - {LSTRKEY("write"), LFUNCVAL(f_write)}, - {LSTRKEY("__gc"), LFUNCVAL(io_gc)}, + {LSTRKEY("close"), LFUNCVAL(io_close)}, + {LSTRKEY("flush"), LFUNCVAL(f_flush)}, + {LSTRKEY("lines"), LFUNCVAL(f_lines)}, + {LSTRKEY("read"), LFUNCVAL(f_read)}, + {LSTRKEY("seek"), LFUNCVAL(f_seek)}, + {LSTRKEY("setvbuf"), LFUNCVAL(f_setvbuf)}, + {LSTRKEY("write"), LFUNCVAL(f_write)}, + {LSTRKEY("__gc"), LFUNCVAL(io_gc)}, {LSTRKEY("__tostring"), LFUNCVAL(io_tostring)}, -#if LUA_OPTIMIZE_MEMORY > 0 - {LSTRKEY("__index"), LROVAL(flib)}, -#endif + {LSTRKEY("__index"), LROVAL(flib)}, {LNILKEY, LNILVAL} }; -static void createmeta (lua_State *L) { -#if LUA_OPTIMIZE_MEMORY == 0 - luaL_newmetatable(L, LUA_FILEHANDLE); /* create metatable for file handles */ - lua_pushvalue(L, -1); /* push metatable */ - lua_setfield(L, -2, "__index"); /* metatable.__index = metatable */ - luaL_register(L, NULL, flib); /* file methods */ -#else - luaL_rometatable(L, LUA_FILEHANDLE, (void*)flib); /* create metatable for file handles */ -#endif -} - -static void createstdfile (lua_State *L, int f, int k, const char *fname) { +static void createstdfile (lua_State *L, FILE *f, int k, const char *fname) { *newfile(L) = f; -#if LUA_OPTIMIZE_MEMORY != 2 - if (k > 0) { - lua_pushvalue(L, -1); - lua_rawseti(L, LUA_ENVIRONINDEX, k); - } - lua_pushvalue(L, -2); /* copy environment */ - lua_setfenv(L, -2); /* set it */ - lua_setfield(L, -3, fname); -#else + lua_pushvalue(L, -1); - lua_rawseti(L, LUA_REGISTRYINDEX, liolib_keys[k]); + lua_rawseti(L, LUA_REGISTRYINDEX, (int)(liolib_keys[k])); lua_setfield(L, -2, fname); -#endif } -#if LUA_OPTIMIZE_MEMORY != 2 -static void newfenv (lua_State *L, lua_CFunction cls) { - lua_createtable(L, 0, 1); - lua_pushcfunction(L, cls); - lua_setfield(L, -2, "__close"); -} -#endif - LUALIB_API int luaopen_io (lua_State *L) { - createmeta(L); -#if LUA_OPTIMIZE_MEMORY != 2 - /* create (private) environment (with fields IO_INPUT, IO_OUTPUT, __close) */ - newfenv(L, io_fclose); - lua_replace(L, LUA_ENVIRONINDEX); - /* open library */ - luaL_register(L, LUA_IOLIBNAME, iolib); - newfenv(L, io_noclose); /* close function for default files */ -#else + luaL_rometatable(L, LUA_FILEHANDLE, (void*)flib); /* create metatable for file handles */ luaL_register_light(L, LUA_IOLIBNAME, iolib); lua_pushvalue(L, -1); lua_setmetatable(L, -2); -#endif -#if 0 /* create (and set) default files */ - createstdfile(L, c_stdin, IO_INPUT, "stdin"); - createstdfile(L, c_stdout, IO_OUTPUT, "stdout"); - createstdfile(L, c_stderr, IO_STDERR, "stderr"); - -#if LUA_OPTIMIZE_MEMORY != 2 - lua_pop(L, 1); /* pop environment for default files */ - lua_getfield(L, -1, "popen"); - newfenv(L, io_pclose); /* create environment for 'popen' */ - lua_setfenv(L, -2); /* set fenv for 'popen' */ - lua_pop(L, 1); /* pop 'popen' */ -#endif -#endif + createstdfile(L, stdin, IO_INPUT, "stdin"); + createstdfile(L, stdout, IO_OUTPUT, "stdout"); + createstdfile(L, stderr, 0, "stderr"); return 1; } diff --git a/app/lua/luac_cross/luac.c b/app/lua/luac_cross/luac.c index 2dd909fc5c..a2fd103419 100644 --- a/app/lua/luac_cross/luac.c +++ b/app/lua/luac_cross/luac.c @@ -18,7 +18,7 @@ #include "lua.h" #include "lauxlib.h" - +#include "lualib.h" #include "ldo.h" #include "lfunc.h" #include "lmem.h" @@ -37,6 +37,7 @@ static int flash=0; /* output flash image */ static int lookup=0; /* output lookup-style master combination header */ static char Output[]={ OUTPUT }; /* default output file name */ static const char* output=Output; /* actual output file name */ +static const char* execute; /* executed a Lua file */ static const char* progname=PROGNAME; /* actual program name */ static DumpTargetInfo target; @@ -66,6 +67,7 @@ static void usage(const char* message) " - process stdin\n" " -l list\n" " -o name output to file " LUA_QL("name") " (default is \"%s\")\n" + " -e name execute a lua source file\n" " -f output a flash image file\n" " -i generate lookup combination master (default with option -f)\n" " -p parse only\n" @@ -93,8 +95,14 @@ static int doargs(int argc, char* argv[]) if (version) ++version; break; } - else if (IS("-")) /* end of options; use stdin */ + else if (IS("-")) /* end of options; use stdin */ break; + else if (IS("-e")) /* execute a lua source file file */ + { + execute=argv[++i]; + if (execute ==NULL || *execute==0 || *execute=='-' ) + usage(LUA_QL("-e") " needs argument"); + } else if (IS("-f")) /* Flash image file */ { flash=1; @@ -242,12 +250,25 @@ static int pmain(lua_State* L) const Proto* f; int i; if (!lua_checkstack(L,argc)) fatal("too many input files"); + if (execute) + { + if (luaL_loadfile(L,execute)!=0) fatal(lua_tostring(L,-1)); + luaL_openlibs(L); + lua_pushstring(L, execute); + if (lua_pcall(L, 1, 1, 0)) fatal(lua_tostring(L,-1)); + if (!lua_isfunction(L, -1)) + { + lua_pop(L,1); + if(argc == 0) return 0; + execute = NULL; + } + } for (i=0; i1); if (dumping) { @@ -286,7 +307,7 @@ int main(int argc, char* argv[]) int i=doargs(argc,argv); argc-=i; argv+=i; - if (argc<=0) usage("no input files given"); + if (argc<=0 && execute==0) usage("no input files given"); L=lua_open(); if (L==NULL) fatal("not enough memory for state"); s.argc=argc; diff --git a/app/lua/luaconf.h b/app/lua/luaconf.h index d039b18f4f..aaeba816f4 100644 --- a/app/lua/luaconf.h +++ b/app/lua/luaconf.h @@ -167,7 +167,7 @@ #define LUA_INTEGER ptrdiff_t #else #if !defined LUA_INTEGRAL_LONGLONG - #define LUA_INTEGER long + #define LUA_INTEGER int #else #define LUA_INTEGER long long #endif // #if !defined LUA_INTEGRAL_LONGLONG @@ -487,7 +487,7 @@ extern int readline4lua(const char *prompt, char *buffer, int length); /* 16-bit ints */ #define LUAI_UINT32 unsigned long #define LUAI_INT32 long -#define LUAI_MAXINT32 LONG_MAX +#define LUAI_MAXINT32 INT_MAX #define LUAI_UMEM unsigned long #define LUAI_MEM long #endif @@ -607,8 +607,8 @@ extern int readline4lua(const char *prompt, char *buffer, int length); */ #if defined LUA_NUMBER_INTEGRAL #if !defined LUA_INTEGRAL_LONGLONG - #define LUA_NUMBER_SCAN "%ld" - #define LUA_NUMBER_FMT "%ld" + #define LUA_NUMBER_SCAN "%d" + #define LUA_NUMBER_FMT "%d" #else #define LUA_NUMBER_SCAN "%lld" #define LUA_NUMBER_FMT "%lld" @@ -894,7 +894,7 @@ union luai_Cast { double l_d; long l_l; }; /* If you define the next macro you'll get the ability to set rotables as metatables for tables/userdata/types (but the VM might run slower) */ -#if (LUA_OPTIMIZE_MEMORY == 2) && !defined(LUA_CROSS_COMPILER) +#if (LUA_OPTIMIZE_MEMORY == 2) #define LUA_META_ROTABLES #endif diff --git a/app/lua/lundump.c b/app/lua/lundump.c index 76178c200b..0baedf2939 100644 --- a/app/lua/lundump.c +++ b/app/lua/lundump.c @@ -172,7 +172,7 @@ static TString* LoadString(LoadState* S) } else { s = (char*)luaZ_get_crt_address(S->Z); LoadBlock(S,NULL,size); - return luaS_newrolstr(S->L,s,size-1); + return luaS_newlstr(S->L,s,size-1); } } } @@ -280,7 +280,7 @@ static Proto* LoadFunction(LoadState* S, TString* p) Proto* f; if (++S->L->nCcalls > LUAI_MAXCCALLS) error(S,"code too deep"); f=luaF_newproto(S->L); - if (luaZ_direct_mode(S->Z)) proto_readonly(f); + if (luaZ_direct_mode(S->Z)) l_setbit((f)->marked, READONLYBIT); setptvalue2s(S->L,S->L->top,f); incr_top(S->L); f->source=LoadString(S); if (f->source==NULL) f->source=p; f->linedefined=LoadInt(S); diff --git a/app/lua/lvm.c b/app/lua/lvm.c index 51cf9f215e..0e256d8f62 100644 --- a/app/lua/lvm.c +++ b/app/lua/lvm.c @@ -41,7 +41,7 @@ LUA_NUMBER luai_ipow(LUA_NUMBER a, LUA_NUMBER b) { LUA_NUMBER c = 1; for (;;) { if (b & 1) - c *= a; + c *= a; b = b >> 1; if (b == 0) return c; diff --git a/app/modules/Makefile b/app/modules/Makefile index 316bd011e6..23d298b74e 100644 --- a/app/modules/Makefile +++ b/app/modules/Makefile @@ -50,7 +50,7 @@ INCLUDES += -I ../pcm INCLUDES += -I ../platform INCLUDES += -I ../spiffs INCLUDES += -I ../smart -INCLUDES += -I ../dhtlib +INCLUDES += -I ../dht INCLUDES += -I ../fatfs INCLUDES += -I ../http INCLUDES += -I ../sjson diff --git a/app/modules/linit.c b/app/modules/linit.c deleted file mode 100644 index da14b73b14..0000000000 --- a/app/modules/linit.c +++ /dev/null @@ -1,78 +0,0 @@ -/* -** $Id: linit.c,v 1.14.1.1 2007/12/27 13:02:25 roberto Exp $ -** Initialization of libraries for lua.c -** See Copyright Notice in lua.h -*/ - - -#define linit_c -#define LUA_LIB -#define LUAC_CROSS_FILE - -#include "lua.h" - -#include "lualib.h" -#include "lauxlib.h" -#include "luaconf.h" -#include "module.h" - - -BUILTIN_LIB_INIT( BASE, "", luaopen_base); -BUILTIN_LIB_INIT( LOADLIB, LUA_LOADLIBNAME, luaopen_package); - -#if defined(LUA_USE_BUILTIN_IO) -BUILTIN_LIB_INIT( IO, LUA_IOLIBNAME, luaopen_io); -#endif - -#if defined (LUA_USE_BUILTIN_STRING) -extern const luaR_entry strlib[]; -BUILTIN_LIB_INIT( STRING, LUA_STRLIBNAME, luaopen_string); -BUILTIN_LIB( STRING, LUA_STRLIBNAME, strlib); -#endif - -#if defined(LUA_USE_BUILTIN_TABLE) -extern const luaR_entry tab_funcs[]; -BUILTIN_LIB_INIT( TABLE, LUA_TABLIBNAME, luaopen_table); -BUILTIN_LIB( TABLE, LUA_TABLIBNAME, tab_funcs); -#endif - -#if defined(LUA_USE_BUILTIN_DEBUG) || defined(LUA_USE_BUILTIN_DEBUG_MINIMAL) -extern const luaR_entry dblib[]; -BUILTIN_LIB_INIT( DBG, LUA_DBLIBNAME, luaopen_debug); -BUILTIN_LIB( DBG, LUA_DBLIBNAME, dblib); -#endif - -#if defined(LUA_USE_BUILTIN_OS) -extern const luaR_entry syslib[]; -BUILTIN_LIB( OS, LUA_OSLIBNAME, syslib); -#endif - -#if defined(LUA_USE_BUILTIN_COROUTINE) -extern const luaR_entry co_funcs[]; -BUILTIN_LIB( CO, LUA_COLIBNAME, co_funcs); -#endif - -#if defined(LUA_USE_BUILTIN_MATH) -extern const luaR_entry math_map[]; -BUILTIN_LIB( MATH, LUA_MATHLIBNAME, math_map); -#endif - -#ifdef LUA_CROSS_COMPILER -const luaL_Reg lua_libs[] = {{NULL, NULL}}; -const luaR_table lua_rotable[] = {{NULL, NULL}}; -#else -extern const luaL_Reg lua_libs[]; -#endif - -void luaL_openlibs (lua_State *L) { - const luaL_Reg *lib = lua_libs; - for (; lib->name; lib++) { - if (lib->func) - { - lua_pushcfunction(L, lib->func); - lua_pushstring(L, lib->name); - lua_call(L, 1, 0); - } - } -} - diff --git a/app/modules/node.c b/app/modules/node.c index 8302ec8cfe..bfc5ae06b8 100644 --- a/app/modules/node.c +++ b/app/modules/node.c @@ -17,7 +17,9 @@ #include "platform.h" #include "lrodefs.h" - +#ifdef LUA_FLASH_STORE +#include "lflash.h" +#endif #include "c_types.h" #include "c_string.h" #include "driver/uart.h" @@ -134,7 +136,6 @@ static int node_chipid( lua_State* L ) // lua_pushinteger(L, vdd33); // return 1; // } - // Lua: flashid() static int node_flashid( lua_State* L ) { @@ -574,6 +575,13 @@ static const LUA_REG_TYPE node_task_map[] = { { LSTRKEY( "HIGH_PRIORITY" ), LNUMVAL( TASK_PRIORITY_HIGH ) }, { LNILKEY, LNILVAL } }; +#ifdef LUA_FLASH_STORE +static const LUA_REG_TYPE node_flash_map[] = { + { LSTRKEY( "reload" ), LFUNCVAL( luaN_reload_reboot ) }, + { LSTRKEY( "index" ), LFUNCVAL( luaN_index ) }, + { LNILKEY, LNILVAL } +}; +#endif static const LUA_REG_TYPE node_map[] = { @@ -601,6 +609,9 @@ static const LUA_REG_TYPE node_map[] = { LSTRKEY( "random" ), LFUNCVAL( node_random) }, #ifdef LUA_OPTIMIZE_DEBUG { LSTRKEY( "stripdebug" ), LFUNCVAL( node_stripdebug ) }, +#endif +#ifdef LUA_FLASH_STORE + { LSTRKEY( "flash") , LROVAL( node_flash_map ) }, #endif { LSTRKEY( "egc" ), LROVAL( node_egc_map ) }, { LSTRKEY( "task" ), LROVAL( node_task_map ) }, diff --git a/app/mqtt/Makefile b/app/mqtt/Makefile index 925cb5b7e3..efa5055cb5 100644 --- a/app/mqtt/Makefile +++ b/app/mqtt/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = mqtt.a +GEN_LIBS = libmqtt.a endif STD_CFLAGS=-std=gnu11 -Wimplicit diff --git a/app/pcm/Makefile b/app/pcm/Makefile index efa7e3bdd6..18ae9c4428 100644 --- a/app/pcm/Makefile +++ b/app/pcm/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = pcm.a +GEN_LIBS = libpcm.a endif STD_CFLAGS=-std=gnu11 -Wimplicit diff --git a/app/platform/common.c b/app/platform/common.c index aa6fdba7f6..1140cf9af1 100644 --- a/app/platform/common.c +++ b/app/platform/common.c @@ -67,22 +67,54 @@ uint32_t platform_flash_get_num_sectors(void) #endif // #ifdef INTERNAL_FLASH_SECTOR_SIZE } +static uint32_t allocated = 0; +static uint32_t phys_flash_used_end = 0; //Phyiscal address of last byte in last flash used sector + +uint32_t platform_flash_reserve_section( uint32_t regsize, uint32_t *start ) +{ + // Return Flash sector no (and optional flash mapped address of first allocated byte) + + if(phys_flash_used_end == 0) + flashh_find_sector(platform_flash_mapped2phys( (uint32_t)_flash_used_end - 1), NULL, &phys_flash_used_end ); + + /* find sector and last byte address of previous allocation */ + uint32_t end; + uint32_t sect = flashh_find_sector( phys_flash_used_end + allocated, NULL, &end ); + if(start) + *start = end + 1; + + /* allocated regions are always sector aligned */ + flashh_find_sector( phys_flash_used_end + allocated + regsize, NULL, &end ); + allocated = end - phys_flash_used_end; + + NODE_DBG("Flash base: %08x %08x %08x\n", regsize, allocated, phys_flash_used_end); + return sect + 1; +} + uint32_t platform_flash_get_first_free_block_address( uint32_t *psect ) { // Round the total used flash size to the closest flash block address uint32_t start, end, sect; NODE_DBG("_flash_used_end:%08x\n", (uint32_t)_flash_used_end); +#if 0 if(_flash_used_end>0){ // find the used sector sect = flashh_find_sector( platform_flash_mapped2phys ( (uint32_t)_flash_used_end - 1), NULL, &end ); - if( psect ) - *psect = sect + 1; - return end + 1; + sect++; + start = end + 1; }else{ sect = flashh_find_sector( 0, &start, NULL ); // find the first free sector - if( psect ) - *psect = sect; - return start; } + if(_flash_used_end>0){ // find the used sector + uint32_t sta1, sec1; + sec1 = platform_flash_reserve_section( 0, &sta1 ); + NODE_DBG("Flash base: %p %p %p %p\n", sect, start, sec1, sta1); + } +#endif + sect = _flash_used_end ? platform_flash_reserve_section( 0, &start ) : + flashh_find_sector( 0, &start, NULL ); + if( psect ) + *psect = sect; + return start; } uint32_t platform_flash_write( const void *from, uint32_t toaddr, uint32_t size ) diff --git a/app/platform/platform.c b/app/platform/platform.c index 89d5070e6f..c296bb3cdb 100644 --- a/app/platform/platform.c +++ b/app/platform/platform.c @@ -879,7 +879,7 @@ uint32_t platform_s_flash_write( const void *from, uint32_t toaddr, uint32_t siz if(SPI_FLASH_RESULT_OK == r) return size; else{ - NODE_ERR( "ERROR in flash_write: r=%d at %08X\n", ( int )r, ( unsigned )toaddr); + NODE_ERR( "ERROR in flash_write: r=%d at %p\n", ( int )r, ( unsigned )toaddr); return 0; } } @@ -917,7 +917,7 @@ uint32_t platform_s_flash_read( void *to, uint32_t fromaddr, uint32_t size ) if(SPI_FLASH_RESULT_OK == r) return size; else{ - NODE_ERR( "ERROR in flash_read: r=%d at %08X\n", ( int )r, ( unsigned )fromaddr); + NODE_ERR( "ERROR in flash_read: r=%d at %p\n", ( int )r, ( unsigned )fromaddr); return 0; } } @@ -928,15 +928,26 @@ int platform_flash_erase_sector( uint32_t sector_id ) return flash_erase( sector_id ) == SPI_FLASH_RESULT_OK ? PLATFORM_OK : PLATFORM_ERR; } -uint32_t platform_flash_mapped2phys (uint32_t mapped_addr) +static uint32_t flash_map_meg_offset () { uint32_t cache_ctrl = READ_PERI_REG(CACHE_FLASH_CTRL_REG); if (!(cache_ctrl & CACHE_FLASH_ACTIVE)) return -1; bool b0 = (cache_ctrl & CACHE_FLASH_MAPPED0) ? 1 : 0; bool b1 = (cache_ctrl & CACHE_FLASH_MAPPED1) ? 1 : 0; - uint32_t meg = (b1 << 1) | b0; - return mapped_addr - INTERNAL_FLASH_MAPPED_ADDRESS + meg * 0x100000; + return ((b1 << 1) | b0) * 0x100000; +} + +uint32_t platform_flash_mapped2phys (uint32_t mapped_addr) +{ + uint32_t meg = flash_map_meg_offset(); + return (meg&1) ? -1 : mapped_addr - INTERNAL_FLASH_MAPPED_ADDRESS + meg ; +} + +uint32_t platform_flash_phys2mapped (uint32_t phys_addr) +{ + uint32_t meg = flash_map_meg_offset(); + return (meg&1) ? -1 : phys_addr + INTERNAL_FLASH_MAPPED_ADDRESS - meg; } void* platform_print_deprecation_note( const char *msg, const char *time_frame) diff --git a/app/platform/platform.h b/app/platform/platform.h index a1ab812b96..aba89a0582 100644 --- a/app/platform/platform.h +++ b/app/platform/platform.h @@ -268,8 +268,11 @@ uint32_t platform_eth_get_elapsed_time(void); // ***************************************************************************** // Internal flash erase/write functions +uint32_t platform_flash_reserve_section( uint32_t regsize, uint32_t *start ); uint32_t platform_flash_get_first_free_block_address( uint32_t *psect ); uint32_t platform_flash_get_sector_of_address( uint32_t addr ); +uint32_t platform_flash_mapped2phys (uint32_t mapped_addr); +uint32_t platform_flash_phys2mapped (uint32_t phys_addr); uint32_t platform_flash_write( const void *from, uint32_t toaddr, uint32_t size ); uint32_t platform_flash_read( void *to, uint32_t fromaddr, uint32_t size ); uint32_t platform_s_flash_write( const void *from, uint32_t toaddr, uint32_t size ); diff --git a/app/tsl2561/Makefile b/app/tsl2561/Makefile index 7963bd5dd9..762105c019 100644 --- a/app/tsl2561/Makefile +++ b/app/tsl2561/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = tsl2561lib.a +GEN_LIBS = libtsl2561.a endif STD_CFLAGS=-std=gnu11 -Wimplicit diff --git a/app/u8glib/Makefile b/app/u8glib/Makefile index 7495a1d76b..773f40bb95 100644 --- a/app/u8glib/Makefile +++ b/app/u8glib/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = u8glib.a +GEN_LIBS = libu8glib.a endif STD_CFLAGS=-std=gnu11 -Wimplicit diff --git a/app/ucglib/Makefile b/app/ucglib/Makefile index 6a9c929b9c..ddd3d94fee 100644 --- a/app/ucglib/Makefile +++ b/app/ucglib/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = ucglib.a +GEN_LIBS = libucglib.a endif STD_CFLAGS=-std=gnu11 -Wimplicit diff --git a/app/user/user_main.c b/app/user/user_main.c index 97c1836514..16b44f7301 100644 --- a/app/user/user_main.c +++ b/app/user/user_main.c @@ -240,6 +240,7 @@ user_rf_cal_sector_set(void) return rf_cal_sec; } +extern void luaN_user_init(void); /****************************************************************************** * FunctionName : user_init * Description : entry of user application, init user function here @@ -261,5 +262,9 @@ void user_init(void) system_set_os_print(0); #endif +#ifdef LUA_FLASH_STORE + luaN_user_init(); +#endif + system_init_done_cb(nodemcu_init); } diff --git a/docs/en/modules/node.md b/docs/en/modules/node.md index e34c31f3d9..85a7ce35cd 100644 --- a/docs/en/modules/node.md +++ b/docs/en/modules/node.md @@ -173,7 +173,7 @@ system heap size left in bytes (number) ## node.info() -Returns NodeMCU version, chipid, flashid, flash size, flash mode, flash speed. +Returns NodeMCU version, chipid, flashid, flash size, flash mode, flash speed, and Lua File Store (LFS) usage statics. #### Syntax `node.info()` @@ -496,6 +496,37 @@ provides more detailed information on the EGC. `node.egc.setmode(node.egc.ALWAYS, 4096) -- This is the default setting at startup.` `node.egc.setmode(node.egc.ON_ALLOC_FAILURE) -- This is the fastest activeEGC mode.` +# node.flash module + +## node.flash.index() + +Returns the function reference for a function in the LFS (Lua Flash Store). + +#### Syntax +`node.flash.index()` + +#### Parameters +None + +#### Returns +- In the case where the LFS in not loaded, `node.flash.index` evaluates to `nil` +- If the LFS is loaded, this returns the index function within the LFS which indexes its contents. This index function can itself to called to interrogate or access the LFS contents: + - In that case where the function is called with the name of a valid module in the LFS, the function is returned in the same way the `load()` and the other Lua load functions do. + - Otherwise the function returns a list of module names in the LFS. Note that the first entry in the list is the Unix datetime of he build. + +## node.flash.reload() + +Reload the LFS (Lua Flash Store) with the flash image provided. Flash images are generated on the host machine using the `luac.cross`commnad. + +#### Syntax +`node.flash.rebuild(imageName)` + +#### Parameters +`imageName` The of name of a image file in the filesystem to be loaded into the LFS. + +#### Returns +_Not applicable_. The ESP will load the LFS image and immediately reboot. Control is not returned to the calling application. + # node.task module ## node.task.post() diff --git a/ld/nodemcu.ld b/ld/nodemcu.ld index 80a8005827..2a66a906eb 100644 --- a/ld/nodemcu.ld +++ b/ld/nodemcu.ld @@ -234,11 +234,11 @@ SECTIONS /* Link-time arrays containing the defs for the included modules */ . = ALIGN(4); - lua_libs = ABSOLUTE(.); + lua_libs_base = ABSOLUTE(.); /* Allow either empty define or defined-to-1 to include the module */ KEEP(*(.lua_libs)) LONG(0) LONG(0) /* Null-terminate the array */ - lua_rotable = ABSOLUTE(.); + lua_rotable_base = ABSOLUTE(.); KEEP(*(.lua_rotable)) LONG(0) LONG(0) /* Null-terminate the array */ diff --git a/tools/Makefile b/tools/Makefile index b5c5b30e8f..608e985008 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -5,8 +5,8 @@ FSSOURCE ?= ../local/fs/ LUASOURCE ?= ../local/lua/ FLASHSIZE ?= 4mb 32mb 8mb +FLASH_SW = -S SUBDIRS = -HOSTCC ?= gcc OBJDUMP = $(or $(shell which objdump),xtensa-lx106-elf-objdump) @@ -20,16 +20,16 @@ SPIFFSFILES ?= $(patsubst $(FSSOURCE)%,%,$(shell find $(FSSOURCE) -name '*' '!' # Get the filesize of /bin/0x10000.bin and SPIFFS sizing # -FLASH_USED_END := $$((0x`$(OBJDUMP) -t ../app/.output/eagle/debug/image/eagle.app.v6.out |grep _flash_used_end |cut -f1 -d" "` - 0x40200000)) -FLASH_FS_SIZE := $(shell $(HOSTCC) -E -dM - <../app/include/user_config.h | grep SPIFFS_MAX_FILESYSTEM_SIZE| cut -d ' ' -f 3) -FLASH_FS_LOC := $(shell $(HOSTCC) -E -dM - <../app/include/user_config.h | grep SPIFFS_FIXED_LOCATION| cut -d ' ' -f 3) +FLASH_FS_SIZE := $(shell $(CC) -E -dM - <../app/include/user_config.h | grep SPIFFS_MAX_FILESYSTEM_SIZE| cut -d ' ' -f 3) -ifneq (FLASH_FS_SIZE,'') +ifneq ($(strip $(FLASH_FS_SIZE)),) FLASHSIZE = $(shell printf "0x%x" $(FLASH_FS_SIZE)) +FLASH_SW = -c endif -ifeq (FLASH_FS_LOC,'') -FLASH_FS_LOC := $(FLASH_USED_END) +FLASH_FS_LOC := $(shell $(CC) -E -dM - <../app/include/user_config.h | grep SPIFFS_FIXED_LOCATION| cut -d ' ' -f 3) +ifeq ($(strip $(FLASH_FS_LOC)),) +FLASH_FS_LOC := $(shell printf "0x%x" $$((0x$(shell $(OBJDUMP) -t ../app/.output/eagle/debug/image/eagle.app.v6.out |grep " _flash_used_end" |cut -f1 -d" ") - 0x40200000))) else FLASH_FS_LOC := $(shell printf "0x%x" $(FLASH_FS_LOC)) endif @@ -42,6 +42,16 @@ endif all: spiffsscript +.PHONY: TEST + +TEST: + @echo $(FLASHSIZE) + @echo $(FLASH_FS_SIZE) + @echo $(FLASH_FS_LOC) + @echo $(FLASH_USED_END) + +spiffsimg/spiffsimg: + .PHONY: spiffsimg .PHONY: spiffsimg/spiffsimg @@ -56,7 +66,7 @@ spiffsscript: remove-image LFSimage spiffsimg/spiffsimg rm -f ./spiffsimg/spiffs.lst @echo "" >> ./spiffsimg/spiffs.lst @$(foreach f, $(SPIFFSFILES), echo "import $(FSSOURCE)$(f) $(f)" >> ./spiffsimg/spiffs.lst ;) - $(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -f ../bin/0x%x-$(sz).img -c $(sz) -U $(FLASH_FS_LOC) -r ./spiffsimg/spiffs.lst -d; ) + $(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -f ../bin/0x%x-$(sz).img $(FLASH_SW) $(sz) -U $(FLASH_FS_LOC) -r ./spiffsimg/spiffs.lst -d; ) @$(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then echo Built $$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) LFSimage: $(LUASOURCE)*.lua From 88bd9e01d387d9ccf14f260ed9ecdb651b6e2244 Mon Sep 17 00:00:00 2001 From: TerryE Date: Thu, 19 Apr 2018 16:27:47 +0100 Subject: [PATCH 05/61] LFS patch updates following review --- .gdbinit | 136 +------------- .gdbinitlua | 182 +++++++++++++++++++ .gitignore | 2 + app/Makefile | 13 +- app/include/user_config.h | 273 +++++++++++++++++++---------- app/include/user_modules.h | 4 +- app/libc/c_stdlib.c | 39 +---- app/lua/Makefile | 4 +- app/lua/lauxlib.c | 5 +- app/lua/ldo.c | 3 + app/lua/lflash.c | 90 +++++++--- app/lua/lflash.h | 18 +- app/lua/lobject.c | 2 +- app/lua/lobject.h | 6 + app/lua/lparser.c | 12 +- app/lua/ltable.c | 3 +- app/lua/ltablib.c | 2 +- app/lua/lua.c | 15 +- app/lua/luac_cross/Makefile | 4 +- app/lua/luac_cross/lflashimg.c | 81 +++++---- app/lua/luac_cross/luac.c | 110 +++++++----- app/lua/luaconf.h | 7 +- app/modules/node.c | 20 +-- docs/en/modules/node.md | 61 ++++--- lua_examples/lfs/lfs_fragments.lua | 124 +++++++++++++ tools/Makefile | 12 +- 26 files changed, 797 insertions(+), 431 deletions(-) create mode 100644 .gdbinitlua create mode 100644 lua_examples/lfs/lfs_fragments.lua diff --git a/.gdbinit b/.gdbinit index 8e1afba5ca..c27be95090 100644 --- a/.gdbinit +++ b/.gdbinit @@ -20,139 +20,15 @@ define br d hb $arg0 end -set pagination off - -define prTS - set $o = &(((TString *)($arg0))->tsv) - printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked - printf "String: hash = 0x%08x, len = %u : %s\n", $o->hash, $o->len, (char *)(&$o[1]) -end -define prTnodes - set $o = (Table *)($arg0) - set $n = 1<<($o->lsizenode) - set $i = 0 - while $i < $n - set $nd = ($o->node) + $i - if $nd->i_key.nk.tt && $nd->i_val.tt - if $nd->i_key.nk.tt == 6 - printf "%4u: %s %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt else - printf "%4u: %2i %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt - end - end - set $i = $i +1 - end -end -define prTV - if $arg0 - set $type = ($arg0).tt - set $val = ($arg0).value - - if $type == 0 - # NIL - printf "Nil\n" - end - if $type == 1 - # Boolean - printf "Boolean: %u\n", $val.n - end - if $type == 2 - # ROTable - printf "ROTable: %p\n", $val.p - end - if $type == 3 - # Light Function - printf "Light Func: %p\n", $val.p - end - if $type == 4 - # Light User Data - printf "Light Udata: %p\n", $val.p - end - if $type == 5 - # Number - printf "Number: %u\n", $val.n - end - if $type == 6 - prTS $arg0 - end - if $type == 7 - # Table - set $o = &($val->gc.h) - printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked - printf "Nodes: %4i %p\n", 2<<($o->lsizenode), $o->nodes - printf "Arry: %4i %p\n", $o->sizearray, $o->array - end - if $type == 8 - # Function - set $o = &($val->gc.cl.c) - printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked - if $o->isC == 0 - set $o = &($val->gc.cl.l) - printf "LClosure: nupvalues = %u, gclist = %p, env = %p, p = %p\n", $o->nupvalues, $o->gclist, $o->env, $o->p - else - printf "CClosure: nupvalues = %u, gclist = %p, env = %p, f = %p\np", $o->nupvalues, $o->gclist, $o->env, $o->f - end - end - if $type == 9 - # UserData - end - if $type == 10 - # Thread - end - end -end - -define prL - if L > 0 - printf " stack: %u\n", L->top-L->base - printf " hooking: %u, %u, %u, %u, %p\n", L->hookmask, L->allowhook, L->basehookcount, L->hookcount, L->hook - end -end - -define dumpstrt - set $st = $arg0 - set $i = 0 - while $i< $st->size - set $o = &(((TString *)($st->hash[$i]))->tsv) - while $o - if $o->next - printf "Slot: %5i %p %p %08x %02x %4u", $i, $o, $o->next, $o->hash, $o->marked, $o->len - else - printf "Slot: %5i %p %08x %02x %4u", $i, $o, $o->hash, $o->marked, $o->len - end - if $o->marked & 0x80 - printf "* %s\n", *(char **)($o+1) - else - printf " %s\n", (char *)($o+1) - end - set $o = &(((TString *)($o->next))->tsv) - end - set $i = $i + 1 - end -end -define dumpRAMstrt - dumpstrt &(L->l_G->strt) -end - -define dumpROstrt - dumpstrt &(L->l_G->ROstrt) -end - -define graylist - set $n = $arg0 - while $n - printf "%p %2u %02X\n",$n, $n->gch.tt, $n->gch.marked - set $n=$n->gch.next - end -end - -define prPC - printf "Excuting instruction %i: %08x\n", (pc - cl->p->code)+1-1, i +define upto + d + hb $arg0 + c end -define prT - print *(Table*)($arg0) -end +set pagination off +set history filename ~/.gdb_history set history save on set history size 1000 diff --git a/.gdbinitlua b/.gdbinitlua new file mode 100644 index 0000000000..b832fab5f1 --- /dev/null +++ b/.gdbinitlua @@ -0,0 +1,182 @@ + +set pagination off +set print null-stop + +define prTS + set $o = &(((TString *)($arg0))->tsv) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + printf "String: hash = 0x%08x, len = %u : %s\n", $o->hash, $o->len, (char *)(&$o[1]) +end + +define prTnodes + set $o = (Table *)($arg0) + set $n = 1<<($o->lsizenode) + set $i = 0 + while $i < $n + set $nd = ($o->node) + $i + if $nd->i_key.nk.tt && $nd->i_val.tt + if $nd->i_key.nk.tt == 6 + printf "%4u: %s %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt + else + printf "%4u: %2i %2i\n", $i, $nd->i_key.nk.tt , $nd->i_val.tt + end + end + set $i = $i +1 + end +end +define prTV + if $arg0 + set $type = ($arg0).tt + set $val = ($arg0).value + + if $type == 0 + # NIL + printf "Nil\n" + end + if $type == 1 + # Boolean + printf "Boolean: %u\n", $val.n + end + if $type == 2 + # ROTable + printf "ROTable: %p\n", $val.p + end + if $type == 3 + # Light Function + printf "Light Func: %p\n", $val.p + end + if $type == 4 + # Light User Data + printf "Light Udata: %p\n", $val.p + end + if $type == 5 + # Number + printf "Number: %u\n", $val.n + end + if $type == 6 + prTS $arg0 + end + if $type == 7 + # Table + set $o = &($val->gc.h) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + printf "Nodes: %4i %p\n", 2<<($o->lsizenode), $o->node + printf "Arry: %4i %p\n", $o->sizearray, $o->array + end + if $type == 8 + # Function + set $o = &($val->gc.cl.c) + printf "Common header: next = %p, marked = 0x%01x\n", $o->next, $o->marked + if $o->isC == 0 + set $o = &($val->gc.cl.l) + printf "LClosure: nupvalues = %u, gclist = %p, env = %p, p = %p\n", \ + $o->nupvalues, $o->gclist, $o->env, $o->p + else + printf "CClosure: nupvalues = %u, gclist = %p, env = %p, f = %p\np", \ + $o->nupvalues, $o->gclist, $o->env, $o->f + end + end + if $type == 9 + # UserData + end + if $type == 10 + # Thread + end + end +end + +define prT + print *(Table*)($arg0) +end + +define prL + if L > 0 + printf " stack: %u\n", L->top-L->base + printf " hooking: %u, %u, %u, %u, %p\n", L->hookmask, L->allowhook, L->basehookcount, L->hookcount, L->hook + end +end + +define dumpstrt + set $st = $arg0 + set $i = 0 + while $i< $st->size + set $o = &(((TString *)($st->hash[$i]))->tsv) + while $o + if $o->next + printf "Slot: %5i %p %p %08x %02x %4u", \ + $i, $o, $o->next, $o->hash, $o->marked, $o->len + else + printf "Slot: %5i %p %08x %02x %4u", \ + $i, $o, $o->hash, $o->marked, $o->len + end + if $o->marked & 0x80 + printf "* %s\n", *(char **)($o+1) + else + printf " %s\n", (char *)($o+1) + end + set $o = &(((TString *)($o->next))->tsv) + end + set $i = $i + 1 + end +end + +define dumpRAMstrt + dumpstrt &(L->l_G->strt) +end + +define dumpROstrt + dumpstrt &(L->l_G->ROstrt) +end + +define graylist + set $n = $arg0 + while $n + printf "%p %2u %02X\n",$n, $n->gch.tt, $n->gch.marked + set $n=$n->gch.next + end +end + +define prPC + printf "Excuting instruction %i: %08x\n", (pc - cl->p->code)+1-1, i +end + + +define where + set $f=cl->p + printf "<%s:%u,%u>, opcode %u\n",\ + (char *)$f->source+17, $f->linedefined, $f->lastlinedefined, pc - $f->code +end + +define callinfo + printf "%p: ", L->ci + print *L->ci +end + +define luastack + set $i = 0 + set $ci = L->base_ci + set $s = L->stack + set $last = L->stack_last - L->stack + printf "stack = %p, last: %i, size: %i, " , $s, $last, L->stacksize + if $last+6==L->stacksize + printf "(OK)\n" + else + printf "(MISMATCH)\n" + end + printf " Ndx top base func\n" + while $ci <= L->ci + printf "%3u %6i %6i %6i\n", $i++, $ci->top-$s, $ci->base-$s, ($ci++)->func-$s + end +end + +define stacklen + printf "%i top: %p, base: %p\n", \ + L->ci->top - L->base, L->ci->top, L->base +end + +define stackcheck + set $ci = L->ci + printf "Used: %i, Headroom: %i, Total: %i\n", \ + L->top-$ci->base-1, $ci->top-L->top+1, $ci->top-$ci->base +end + diff --git a/.gitignore b/.gitignore index 337f056c4f..8ad76014d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ sdk/ cache/ .ccache/ +local/ +luac.cross user_config.h server-ca.crt diff --git a/app/Makefile b/app/Makefile index a590f74141..14c2205f1d 100644 --- a/app/Makefile +++ b/app/Makefile @@ -20,11 +20,14 @@ FLAVOR = debug ifndef PDIR # { GEN_IMAGES= eagle.app.v6.out GEN_BINS= eagle.app.v6.bin -OPT_MKTARGETS := coap crypto dht http mqtt pcm sjson sqlite3 tsl2561 u8glib ucglib websocket -SEL_MKTARGETS := $(shell $(CC) -E -dM include/user_modules.h | sed -n '/^\#define LUA_USE_MODULES_/{s/.\{24\}\(.*\)/\L\1/; p}') -OPT_SEL_MKTARGETS := $(foreach tgt,$(OPT_MKTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) -OPT_SEL_COMPONENTS := $(foreach tgt,$(OPT_SEL_MKTARGETS),$(tgt)/lib$(tgt).a) -SPECIAL_MKTARGETS :=$(APP_MKTARGETS) +OPT_MKTARGETS := coap crypto dht http mqtt pcm sjson sqlite3 tsl2561 websocket +OPT_MKLIBTARGETS := u8g ucg +SEL_MKTARGETS := $(shell $(CC) -E -dM include/user_modules.h | sed -n '/^\#define LUA_USE_MODULES_/{s/.\{24\}\(.*\)/\L\1/; p}') +OPT_SEL_MKLIBTARGETS := $(foreach tgt,$(OPT_MKLIBTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) +OPT_SEL_MKTARGETS := $(foreach tgt,$(OPT_MKTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) \ + $(foreach tgt,$(OPT_SEL_MKLIBTARGETS),$(tgt)lib) +OPT_SEL_COMPONENTS := $(foreach tgt,$(OPT_SEL_MKTARGETS),$(tgt)/lib$(tgt).a) +SPECIAL_MKTARGETS :=$(APP_MKTARGETS) SUBDIRS= \ user \ diff --git a/app/include/user_config.h b/app/include/user_config.h index 60b846ea8c..5a46338400 100644 --- a/app/include/user_config.h +++ b/app/include/user_config.h @@ -1,23 +1,191 @@ #ifndef __USER_CONFIG_H__ #define __USER_CONFIG_H__ -// #define FLASH_512K -// #define FLASH_1M -// #define FLASH_2M -// #define FLASH_4M -// #define FLASH_8M -// #define FLASH_16M +// The firmware supports a range of Flash sizes, though 4Mbyte seems to be +// currently the most common. Current builds include a discovery function +// which is enabled by FLASH_AUTOSIZE, but you can override this by commenting +// this out and enabling the explicitly size, e.g. FLASH_4M. Valid sizes are +// FLASH_512K, FLASH_1M, FLASH_2M, FLASH_4M, FLASH_8M, FLASH_16M. + #define FLASH_AUTOSIZE +//#define FLASH_4M + + +// The firmware now selects a baudrate of 115,200 by default, but the driver also +// includes automatic baud rate detection at start-up by default. If you want to +// change the default rate then vaild rates are 300, 600, 1200, 2400, 4800, 9600, +// 19200, 31250, 38400, 57600, 74880, 115200, 230400, 256000, 460800 [, 921600, +// 1843200, 368640]. Note that the last 3 rates are not recommended as these +// might be unreliable. + +#define BIT_RATE_DEFAULT BIT_RATE_115200 +#define BIT_RATE_AUTOBAUD + + +// Three separate build variants are now supported. The main difference is in the +// processing of numeric data types. If LUA_NUMBER_INTEGRAL is defined, then +// all numeric calculations are done in integer, with divide being an integer +// operations, and decimal fraction constants are illegal. Otherwise all +// numeric operations use floating point, though they are exact for integer +// expressions < 2^53. The main advantage of INTEGRAL builds is that the basic +// internal storage unit, the TValue, is 8 bytes long, rather than the default +// on floating point builds of 16 bytes. We have now also introduced an +// experimental option LUA_PACK_TVALUES which reduces the floating point TValues +// to 12 bytes without any performance impact. + +//#define LUA_NUMBER_INTEGRAL +//#define LUA_PACK_TVALUES + + +// The Lua Flash Store (LFS) allows you to store Lua code in Flash memory and +// the Lua VMS will execute this code directly from flash without needing any +// RAM overhead. If you want to enable LFS then set the following define to +// the size of the store that you need. This can be any multiple of 4kB up to +// a maximum 256Kb. + +//#define LUA_FLASH_STORE 0x10000 + + +// By default Lua executes the file init.lua at start up. The following +// define allows you to replace this with an alternative startup. Warning: +// you must protect this execution otherwise you will enter a panic loop. +// The example provided executes the LFS module "_init" at startup or fails +// through to the interactive prompt. +// ********* WARNING THIS OPTION ISN'T CURRENTLY WORKING +//#define LUA_INIT_STRING "local fi=node.flashindex; return pcall(fi and fi'_init')" +// ********* WARNING THIS OPTION ISN'T CURRENTLY WORKING + + +// NodeMCU supports two file systems: SPIFFS and FATFS, the first is available +// on all ESP8266 modules. The latter requires extra H/W so is less common. +// If you use SPIFFS then there are a number of options which impact the +// RAM overhead and performance of the file system. +// +// If you use the spiffsimg tool to create your own FS images on your dev PC +// then we recommend that you fix the location and size of the FS, allowing +// some headroom for rebuilding flash images and LFS. As an alternative to +// fixing the size of the FS, you can force the SPIFFS file system to end on +// the next 1Mb boundary. This is useful for certain OTA scenarios. In +// general, limiting the size of the FS only to what your application needs +// gives the fastest start-up and imaging times. + +#define BUILD_SPIFFS +//#define BUILD_FATFS + +//#define SPIFFS_FIXED_LOCATION 0x100000 +//#define SPIFFS_MAX_FILESYSTEM_SIZE 0x10000 +//#define SPIFFS_SIZE_1M_BOUNDARY +#define SPIFFS_CACHE 1 // Enable if you use you SPIFFS in R/W mode +#define SPIFFS_MAX_OPEN_FILES 4 // maximum number of open files for SPIFFS +#define FS_OBJ_NAME_LEN 31 // maximum length of a filename + + +// The HTTPS stack requires client SSL to be enabled. The SSL buffer size is +// used only for espconn-layer secure connections, and is ignored otherwise. +// Some HTTPS applications require a larger buffer size to work. See +// https://github.com/nodemcu/nodemcu-firmware/issues/1457 for details. +// The SHA2 and MD2 libraries are also used by the crypto functions. The +// MD2 function are implemented in the ROM BIOS, and the SHA2 by NodeMCU +// code, so only enable SHA2 if you need this functionality. + +//#define CLIENT_SSL_ENABLE +//#define MD2_ENABLE +#define SHA2_ENABLE +#define SSL_BUFFER_SIZE 5120 + + +// GPIO_INTERRUPT_ENABLE needs to be defined if your application uses the +// gpio.trig() or related GPIO interrupt service routine code. Likewise the +// GPIO interrupt hook is requited for a few modules such as rotary. If you +// don't require this functionality, then we recommend commenting out these +// options which removes any associated runtime overhead. + +#define GPIO_INTERRUPT_ENABLE +#define GPIO_INTERRUPT_HOOK_ENABLE + + +// If your application uses the light sleep functions and you wish the +// firmware to manage timer rescheduling over sleeps (the CPU clock is +// suspended so timers get out of sync) then enable the following options + +//#define ENABLE_TIMER_SUSPEND +//#define PMSLEEP_ENABLE + + +// The WiFi module optionally offers an enhanced level of WiFi connection +// management, using internal timer callbacks. Whilst many Lua developers +// prefer to implement equivalent features in Lua, others will prefer the +// Wifi module to do this for them. Uncomment the following to enable +// this functionality. The event sub-options are ignore if the SMART +// functionality is not enabled. + +//#define WIFI_SMART_ENABLE +#define WIFI_SDK_EVENT_MONITOR_ENABLE +#define WIFI_EVENT_MONITOR_DISCONNECT_REASON_LIST_ENABLE + + +// Whilst the DNS client details can be configured through the WiFi API, +// the defaults can be exposed temporarily during start-up. The following +// WIFI_STA options allow you to configure this in the firmware. If the +// WIFI_STA_HOSTNAME is not defined then the hostname will default to +// to the last 3 octets (6 hexadecimal digits) of MAC address with the +// prefix "NODE-". If it is defined then the hostname must only contain +// alphanumeric characters. If you are imaging multiple modules with this +// firmware then you must also define WIFI_STA_HOSTNAME_APPEND_MAC to +// append the last 3 octets of the MAC address. Note that the total +// Hostname MUST be 32 chars or less. + +//#define WIFI_STA_HOSTNAME "NodeMCU" +//#define WIFI_STA_HOSTNAME_APPEND_MAC + + +// If you use the enduser_setup module, then you can also set the default +// SSID when this module is running in AP mode. + +#define ENDUSER_SETUP_AP_SSID "SetupGadget" + + +// The following sections are only relevent for those developers who are +// developing modules or core Lua changes and configure how extra diagnostics +// are enabled in the firmware. These should only be configured if you are +// building your own custom firmware and have full access to the firmware +// source code. + +// Enabling DEVELOPMENT_TOOLS adds the asserts in LUA and also some useful +// extras to the node module. These are silent in normal operation and so can +// be enabled without any harm (except for the code size increase and slight +// slowdown). If you want to use the remote GDB to handle breaks and failed +// assertions then enable the DEVELOPMENT_USE GDB option. A supplimentary +// define DEVELOPMENT_BREAK_ON_STARTUP_PIN allows you to define a GPIO pin, +// which if pulled low at start-up will immediately initiate a GDB session. + +// The DEVELOP_VERSION option enables lots of debug output, and is normally +// only used by hardcore developers. + +// These options can be enabled globally here or you can alternatively use +// the DEFINES variable in the relevant Makefile to set these on a per +// directory basis. If you do this then you can also set the corresponding +// compile options (-O0 -ggdb) on a per directory as well. -// This adds the asserts in LUA. It also adds some useful extras to the -// node module. This is all silent in normal operation and so can be enabled -// without any harm (except for the code size increase and slight slowdown) -// You can either set these defines here to operate globally or you edit the -// relevant Makefile setting them in the DEFINES variable is you only want to -// enable extra debug for specific subdirs. If you want to use the remote GDB to -// handle breaks and failed assetions then enable DEVELOPMENT_USE GDB //#define DEVELOPMENT_TOOLS //#define DEVELOPMENT_USE_GDB +//#define DEVELOPMENT_BREAK_ON_STARTUP_PIN 1 +//#define DEVELOP_VERSION + + +// *** Heareafter, there be demons *** + +// The remaining options are advanced configuration options and you should only +// change this if you have tracked the implications through the Firmware sources +// and understand the these. + +#define LUA_TASK_PRIO USER_TASK_PRIO_0 +#define LUA_PROCESS_LINE_SIG 2 +#define LUA_OPTIMIZE_DEBUG 2 +#define READLINE_INTERVAL 80 +#define STRBUF_DEFAULT_INCREMENT 3 +#define LUA_USE_BUILTIN_DEBUG_MINIMAL // for debug.getregistry() and debug.traceback() + #ifdef DEVELOPMENT_TOOLS #if defined(LUA_CROSS_COMPILER) || !defined(DEVELOPMENT_USE_GDB) extern void luaL_assertfail(const char *file, int line, const char *message); @@ -28,19 +196,11 @@ extern void luaL_dbgbreak(void); #endif #endif -// This enables lots of debug output and changes the serial bit rate. This -// is normally only used by hardcore developers -// #define DEVELOP_VERSION #ifdef DEVELOP_VERSION #define NODE_DEBUG #define COAP_DEBUG #endif /* DEVELOP_VERSION */ -#define BIT_RATE_DEFAULT BIT_RATE_115200 - -// This enables automatic baud rate detection at startup -#define BIT_RATE_AUTOBAUD - #define NODE_ERROR #ifdef NODE_DEBUG @@ -55,12 +215,7 @@ extern void luaL_dbgbreak(void); #define NODE_ERR #endif /* NODE_ERROR */ -#define LUA_USE_BUILTIN_DEBUG_MINIMAL // for debug.getregistry() and debug.traceback() - -#define GPIO_INTERRUPT_ENABLE -#define GPIO_INTERRUPT_HOOK_ENABLE // #define GPIO_SAFE_NO_INTR_ENABLE - #define ICACHE_STORE_TYPEDEF_ATTR __attribute__((aligned(4),packed)) #define ICACHE_STORE_ATTR __attribute__((aligned(4))) #define ICACHE_RAM_ATTR __attribute__((section(".iram0.text"))) @@ -70,69 +225,5 @@ extern void luaL_dbgbreak(void); #define NO_INTR_CODE inline #endif -// SSL buffer size used only for espconn-layer secure connections. -// See https://github.com/nodemcu/nodemcu-firmware/issues/1457 for conversation details. -#define SSL_BUFFER_SIZE 5120 - -//#define CLIENT_SSL_ENABLE -//#define MD2_ENABLE -#define SHA2_ENABLE - -#define BUILD_SPIFFS -#define SPIFFS_CACHE 1 - -//#define BUILD_FATFS - -// maximum length of a filename -#define FS_OBJ_NAME_LEN 31 - -// maximum number of open files for SPIFFS -#define SPIFFS_MAX_OPEN_FILES 4 - -// Uncomment this next line for fastest startup and set the FS only to what -// your application needs. This reduces the format time dramatically -//#define SPIFFS_MAX_FILESYSTEM_SIZE 0x10000 -// -// You can force the spiffs file system to be at a fixed location -//#define SPIFFS_FIXED_LOCATION 0x100000 -// -// You can force the SPIFFS file system to end on the next !M boundary -// (minus the 16k parameter space). THis is useful for certain OTA scenarios -// #define SPIFFS_SIZE_1M_BOUNDARY - -//#define LUA_NUMBER_INTEGRAL - -// If you want to enable Lua Flash Store (LFS) then set the following define to -// the size of the store. This can be any multiple of 4kB up to a maximum 256Kb. -//#define LUA_FLASH_STORE 0x10000 - -#define READLINE_INTERVAL 80 -#define LUA_TASK_PRIO USER_TASK_PRIO_0 -#define LUA_PROCESS_LINE_SIG 2 -#define LUA_OPTIMIZE_DEBUG 2 - -#define ENDUSER_SETUP_AP_SSID "SetupGadget" - -/* - * A valid hostname only contains alphanumeric and hyphen(-) characters, with no hyphens at first or last char - * if WIFI_STA_HOSTNAME not defined: hostname will default to NODE-xxxxxx (xxxxxx being last 3 octets of MAC address) - * if WIFI_STA_HOSTNAME defined: hostname must only contain alphanumeric characters - * if WIFI_STA_HOSTNAME_APPEND_MAC not defined: Hostname MUST be 32 chars or less - * if WIFI_STA_HOSTNAME_APPEND_MAC defined: Hostname MUST be 26 chars or less, since last 3 octets of MAC address will be appended - * if defined hostname is invalid: hostname will default to NODE-xxxxxx (xxxxxx being last 3 octets of MAC address) -*/ -//#define WIFI_STA_HOSTNAME "NodeMCU" -//#define WIFI_STA_HOSTNAME_APPEND_MAC - -//#define WIFI_SMART_ENABLE - -#define WIFI_SDK_EVENT_MONITOR_ENABLE -#define WIFI_EVENT_MONITOR_DISCONNECT_REASON_LIST_ENABLE - -////#define ENABLE_TIMER_SUSPEND -//#define PMSLEEP_ENABLE - - -#define STRBUF_DEFAULT_INCREMENT 32 - #endif /* __USER_CONFIG_H__ */ + diff --git a/app/include/user_modules.h b/app/include/user_modules.h index 2cd9b7395a..d1c7f6eb4a 100644 --- a/app/include/user_modules.h +++ b/app/include/user_modules.h @@ -1,8 +1,6 @@ #ifndef __USER_MODULES_H__ #define __USER_MODULES_H__ - - #ifndef LUA_CROSS_COMPILER // The default configuration is designed to run on all ESP modules including the 512 KB modules like ESP-01 and only @@ -57,7 +55,7 @@ //#define LUA_USE_MODULES_SJSON //#define LUA_USE_MODULES_SNTP //#define LUA_USE_MODULES_SOMFY -//#define LUA_USE_MODULES_SPI +#define LUA_USE_MODULES_SPI //#define LUA_USE_MODULES_SQLITE3 //#define LUA_USE_MODULES_STRUCT //#define LUA_USE_MODULES_SWITEC diff --git a/app/libc/c_stdlib.c b/app/libc/c_stdlib.c index 50c685c222..a58aee441e 100644 --- a/app/libc/c_stdlib.c +++ b/app/libc/c_stdlib.c @@ -16,14 +16,8 @@ #include "c_types.h" #include "c_string.h" -// const char *lua_init_value = "print(\"Hello world\")"; -const char *lua_init_value = "@init.lua"; +extern const char lua_init_value[]; -// int c_abs(int x){ -// return x>0?x:0-x; -// } -// void c_exit(int e){ -// } const char *c_getenv(const char *__string) { if (c_strcmp(__string, "LUA_INIT") == 0) @@ -32,38 +26,7 @@ const char *c_getenv(const char *__string) } return NULL; } -// make sure there is enough memory before real malloc, otherwise malloc will panic and reset -// void *c_malloc(size_t __size){ -// if(__size>system_get_free_heap_size()){ -// NODE_ERR("malloc: not enough memory\n"); -// return NULL; -// } -// return (void *)os_malloc(__size); -// } - -// void *c_zalloc(size_t __size){ -// if(__size>system_get_free_heap_size()){ -// NODE_ERR("zalloc: not enough memory\n"); -// return NULL; -// } -// return (void *)os_zalloc(__size); -// } - -// void c_free(void *p){ -// // NODE_ERR("free1: %d\n", system_get_free_heap_size()); -// os_free(p); -// // NODE_ERR("-free1: %d\n", system_get_free_heap_size()); -// }c_stdlib.s - - -// int c_rand(void){ -// } -// void c_srand(unsigned int __seed){ -// } - -// int c_atoi(const char *__nptr){ -// } #include <_ansi.h> //#include //#include "mprec.h" diff --git a/app/lua/Makefile b/app/lua/Makefile index a1f2e5ab50..c51c73125e 100644 --- a/app/lua/Makefile +++ b/app/lua/Makefile @@ -25,8 +25,8 @@ STD_CFLAGS=-std=gnu11 -Wimplicit # makefile at its root level - these are then overridden # for a subtree within the makefile rooted therein # -#DEFINES += -DDEVELOPMENT_TOOLS -DDEVELOPMENT_USE_GDB -DNODE_DEBUG -DBREAK_ON_STARTUP_PIN=1 -#EXTRA_CCFLAGS += -ggdb -O0 +DEFINES += -DDEVELOPMENT_TOOLS -DDEVELOPMENT_USE_GDB -DNODE_DEBUG -DDEVELOPMENT_BREAK_ON_STARTUP_PIN=1 +EXTRA_CCFLAGS += -ggdb -O0 ############################################################# # Recursion Magic - Don't touch this!! diff --git a/app/lua/lauxlib.c b/app/lua/lauxlib.c index c01eb4d517..a321bbbf64 100644 --- a/app/lua/lauxlib.c +++ b/app/lua/lauxlib.c @@ -775,8 +775,9 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { lf.f = c_freopen(filename, "rb", lf.f); /* reopen in binary mode */ if (lf.f == NULL) return errfile(L, "reopen", fnameindex); /* skip eventual `#!...' */ - while ((c = c_getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) ; - lf.extraline = 0; + while ((c = c_getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) {} + + lf.extraline = 0; } c_ungetc(c, lf.f); status = lua_load(L, getF, &lf, lua_tostring(L, -1)); diff --git a/app/lua/ldo.c b/app/lua/ldo.c index 9a2ddd0e76..fa9e9fdcbf 100644 --- a/app/lua/ldo.c +++ b/app/lua/ldo.c @@ -144,8 +144,11 @@ static void correctstack (lua_State *L, TValue *oldstack) { void luaD_reallocstack (lua_State *L, int newsize) { TValue *oldstack = L->stack; int realsize = newsize + 1 + EXTRA_STACK; + int block_status = is_block_gc(L); lua_assert(L->stack_last - L->stack == L->stacksize - EXTRA_STACK - 1); + set_block_gc(L); /* The GC MUST be blocked during stack reallocaiton */ luaM_reallocvector(L, L->stack, L->stacksize, realsize, TValue); + if (!block_status) unset_block_gc(L); /* Honour the previous block status */ L->stacksize = realsize; L->stack_last = L->stack+newsize; correctstack(L, oldstack); diff --git a/app/lua/lflash.c b/app/lua/lflash.c index 0c0636a83c..6c7f16c692 100644 --- a/app/lua/lflash.c +++ b/app/lua/lflash.c @@ -107,11 +107,13 @@ static void flashErase(uint32_t start, uint32_t end){ /* ===================================================================================== * Hook in user_main.c to allocate flash memory for the lua flash store */ +extern void luaL_dbgbreak(void); //<<<<<<<<<<<<< Temp void luaN_user_init(void) { curOffset = 0; flashSector = platform_flash_reserve_section( FLASH_SIZE, &flashAddrPhys ); flashAddr = cast(char *,platform_flash_phys2mapped(flashAddrPhys)); NODE_DBG("Flash initialised: %x %08x\n", flashSector, flashAddr); +// luaL_dbgbreak(); //<<<<<<<<<<<<< Temp } @@ -120,9 +122,15 @@ void luaN_user_init(void) { */ LUAI_FUNC void luaN_init (lua_State *L) { FlashHeader *fh = cast(FlashHeader *, flashAddr); - if (fh->flash_sig == FLASH_SIG && + /* + * For the LFS to be valid, its signature has to be correct for this build variant, + * thr ROhash and main proto fields must be defined and the main proto address + * be within the LFS address bounds. (This last check is primarily to detect the + * direct imaging of an absolute LFS with the wrong base address. + */ + if ((fh->flash_sig & (~FLASH_SIG_ABSOLUTE)) == FLASH_SIG && fh->pROhash != ALL_SET && - fh->mainProto != ALL_SET) { + ((fh->mainProto - cast(FlashAddr, fh)) < fh->flash_size)) { G(L)->ROstrt.hash = cast(GCObject **, fh->pROhash); G(L)->ROstrt.nuse = fh->nROuse ; G(L)->ROstrt.size = fh->nROsize; @@ -138,7 +146,7 @@ LUAI_FUNC void luaN_init (lua_State *L) { * - the lu_int16 offset of the next address pointer. */ -static int rebuild_core (int fd, uint32_t size, lu_int32 *buf) { +static int rebuild_core (int fd, uint32_t size, lu_int32 *buf, int is_absolute) { int bi; /* byte offset into memory mapped LFS of current buffer */ int wNextOffset = BYTE_OFFSET(FlashHeader,mainProto)/sizeof(lu_int32); int wj; /* word offset into current input buffer */ @@ -149,14 +157,17 @@ static int rebuild_core (int fd, uint32_t size, lu_int32 *buf) { if (vfs_read(fd, buf , blen) != blen) return 0; - for (wj = 0; wj < wlen; wj++) { - if ((wi + wj) == wNextOffset) { /* this word is the next linked address */ - int wTargetOffset = buf[wj]&0xFFFF; - wNextOffset = buf[wj]>>16; - lua_assert(!wNextOffset || (wNextOffset>(wi+wj) && wNextOffset>16; + lua_assert(!wNextOffset || (wNextOffset>(wi+wj) && wNextOffsetROpvmain) { - Closure *cl = luaF_newLclosure(L, 0, hvalue(gt(L))); - cl->l.p = G(L)->ROpvmain; - lua_settop(L, 1); - setclvalue(L, L->top-1, cl); - return 1; + int n = lua_gettop(L); + + /* Return nil + the LFS base address if the LFS isn't loaded */ + if(!(G(L)->ROpvmain)) { + lua_settop(L, 0); + lua_pushnil(L); + lua_pushinteger(L, (lua_Integer) flashAddr); + lua_pushinteger(L, flashAddrPhys); + return 3; } - return 0; + + /* Push the LClosure of the LFS index function */ + Closure *cl = luaF_newLclosure(L, 0, hvalue(gt(L))); + cl->l.p = G(L)->ROpvmain; + lua_settop(L, n+1); + setclvalue(L, L->top-1, cl); + + /* Move it infront of the arguments and call the index function */ + lua_insert(L, 1); + lua_call(L, n, LUA_MULTRET); + + /* Return it if the response if a single value (the function) */ + if (lua_gettop(L) == 1) + return 1; + + lua_assert(lua_gettop(L) == 2); + + /* Otherwise add the base address of the LFS, and its size bewteen the */ + /* Unix time and the module list, then return all 4 params. */ + lua_pushinteger(L, (lua_Integer) flashAddr); + lua_insert(L, 2); + lua_pushinteger(L, flashAddrPhys); + lua_insert(L, 3); + lua_pushinteger(L, cast(FlashHeader *, flashAddr)->flash_size); + lua_insert(L, 4); + return 5; } #endif diff --git a/app/lua/lflash.h b/app/lua/lflash.h index 2a4322a3a6..9fa87cd0f7 100644 --- a/app/lua/lflash.h +++ b/app/lua/lflash.h @@ -10,7 +10,23 @@ #include "lstate.h" #include "lzio.h" -#define FLASH_SIG 0xfafaaf00 +#ifdef LUA_NUNBER_INTEGRAL +# define FLASH_SIG_B1 0x02 +#else +# define FLASH_SIG_B1 0x00 +#endif + +#ifdef LUA_PACK_TVALUES +#ifdef LUA_NUNBER_INTEGRAL +#error "LUA_PACK_TVALUES is only valid for Floating point builds" +#endif +# define FLASH_SIG_B2 0x04 +#else +# define FLASH_SIG_B2 0x00 +#endif +#define FLASH_SIG_ABSOLUTE 0x01 +#define FLASH_SIG_IN_PROGRESS 0x08 +#define FLASH_SIG (0xfafaaf50 | FLASH_SIG_B2 | FLASH_SIG_B1) typedef lu_int32 FlashAddr; typedef struct { diff --git a/app/lua/lobject.c b/app/lua/lobject.c index 640378d0da..bca1f8a843 100644 --- a/app/lua/lobject.c +++ b/app/lua/lobject.c @@ -71,7 +71,7 @@ int luaO_log2 (unsigned int x) { /* Use Normalization Shift Amount Unsigned: 0x1=>31 up to 0xffffffff =>0 * See Xtensa Instruction Set Architecture (ISA) Refman P 462 */ asm volatile ("nsau %0, %1;" :"=r"(x) : "r"(x)); - return 32 - x; + return 31 - x; #endif } diff --git a/app/lua/lobject.h b/app/lua/lobject.h index 518ab5071e..e1f1962d4f 100644 --- a/app/lua/lobject.h +++ b/app/lua/lobject.h @@ -77,9 +77,15 @@ typedef union { #define TValuefields Value value; int tt #define LUA_TVALUE_NIL {NULL}, LUA_TNIL +#if defined(LUA_PACK_TVALUES) && !defined(LUA_CROSS_COMPILER) +#pragma pack(4) +#endif typedef struct lua_TValue { TValuefields; } TValue; +#if defined(LUA_PACK_TVALUES) && !defined(LUA_CROSS_COMPILER) +#pragma pack() +#endif /* Macros to test type */ #define ttisnil(o) (ttype(o) == LUA_TNIL) diff --git a/app/lua/lparser.c b/app/lua/lparser.c index 7b14c3d25d..ae95535983 100644 --- a/app/lua/lparser.c +++ b/app/lua/lparser.c @@ -916,12 +916,11 @@ static int block_follow (int token) { static void block (LexState *ls) { /* block -> chunk */ FuncState *fs = ls->fs; - BlockCnt *pbl = (BlockCnt*)luaM_malloc(ls->L,sizeof(BlockCnt)); - enterblock(fs, pbl, 0); + BlockCnt bl; + enterblock(fs, &bl, 0); chunk(ls); - lua_assert(pbl->breaklist == NO_JUMP); + lua_assert(bl.breaklist == NO_JUMP); leaveblock(fs); - luaM_free(ls->L,pbl); } @@ -1081,13 +1080,13 @@ static int exp1 (LexState *ls) { static void forbody (LexState *ls, int base, int line, int nvars, int isnum) { /* forbody -> DO block */ - BlockCnt *pbl = (BlockCnt*)luaM_malloc(ls->L,sizeof(BlockCnt)); + BlockCnt bl; FuncState *fs = ls->fs; int prep, endfor; adjustlocalvars(ls, 3); /* control variables */ checknext(ls, TK_DO); prep = isnum ? luaK_codeAsBx(fs, OP_FORPREP, base, NO_JUMP) : luaK_jump(fs); - enterblock(fs, pbl, 0); /* scope for declared variables */ + enterblock(fs, &bl, 0); /* scope for declared variables */ adjustlocalvars(ls, nvars); luaK_reserveregs(fs, nvars); block(ls); @@ -1097,7 +1096,6 @@ static void forbody (LexState *ls, int base, int line, int nvars, int isnum) { luaK_codeABC(fs, OP_TFORLOOP, base, 0, nvars); luaK_fixline(fs, line); /* pretend that `OP_FOR' starts the loop */ luaK_patchlist(fs, (isnum ? endfor : luaK_jump(fs)), prep + 1); - luaM_free(ls->L,pbl); } diff --git a/app/lua/ltable.c b/app/lua/ltable.c index 9a5f91bce7..73f64a0a4d 100644 --- a/app/lua/ltable.c +++ b/app/lua/ltable.c @@ -445,7 +445,8 @@ static void resize (lua_State *L, Table *t, int nasize, int nhsize) { int oldasize = t->sizearray; if (nasize > oldasize) /* array part must grow? */ setarrayvector(L, t, nasize); - resize_hashpart(L, t, nhsize); + if (t->node != dummynode || nhsize>0) + resize_hashpart(L, t, nhsize); if (nasize < oldasize) { /* array part must shrink? */ t->sizearray = nasize; /* re-insert elements from vanishing slice */ diff --git a/app/lua/ltablib.c b/app/lua/ltablib.c index 8b0a810b3b..30eff7dfea 100644 --- a/app/lua/ltablib.c +++ b/app/lua/ltablib.c @@ -137,7 +137,7 @@ static void addfield (lua_State *L, luaL_Buffer *b, int i) { if (!lua_isstring(L, -1)) luaL_error(L, "invalid value (%s) at index %d in table for " LUA_QL("concat"), luaL_typename(L, -1), i); - luaL_addvalue(b); + luaL_addvalue(b); } diff --git a/app/lua/lua.c b/app/lua/lua.c index f5c7461f7b..642f765ba4 100644 --- a/app/lua/lua.c +++ b/app/lua/lua.c @@ -237,6 +237,12 @@ static int runargs (lua_State *L, char **argv, int n) { } +#ifdef LUA_INIT_STRING +const char lua_init_value[] = LUA_INIT_STRING; +#else +const char lua_init_value[] = "@init.lua"; +#endif + static int handle_luainit (lua_State *L) { const char *init = c_getenv(LUA_INIT); if (init == NULL) return 0; /* status OK */ @@ -288,9 +294,10 @@ int lua_main (int argc, char **argv) { int status; struct Smain s; -#if defined(NODE_DEBUG) && defined(DEVELOPMENT_USE_GDB) && BREAK_ON_STARTUP_PIN > 0 - platform_gpio_mode( BREAK_ON_STARTUP_PIN, PLATFORM_GPIO_INPUT, PLATFORM_GPIO_PULLUP ); - lua_assert(platform_gpio_read(BREAK_ON_STARTUP_PIN)); // Break if pin pulled low +#if defined(NODE_DEBUG) && defined(DEVELOPMENT_USE_GDB) && \ + defined(DEVELOPMENT_BREAK_ON_STARTUP_PIN) && DEVELOPMENT_BREAK_ON_STARTUP_PIN > 0 + platform_gpio_mode( DEVELOPMENT_BREAK_ON_STARTUP_PIN, PLATFORM_GPIO_INPUT, PLATFORM_GPIO_PULLUP ); + lua_assert(platform_gpio_read(DEVELOPMENT_BREAK_ON_STARTUP_PIN)); // Break if pin pulled low #endif lua_State *L = lua_open(); /* create state */ @@ -324,7 +331,7 @@ int lua_main (int argc, char **argv) { void lua_handle_input (bool force) { - if (gLoad.L && (force || readline (&gLoad))) + while (gLoad.L && (force || readline (&gLoad))) dojob (&gLoad); } diff --git a/app/lua/luac_cross/Makefile b/app/lua/luac_cross/Makefile index 25e97c4c31..fe66c8b2a2 100644 --- a/app/lua/luac_cross/Makefile +++ b/app/lua/luac_cross/Makefile @@ -7,7 +7,7 @@ .NOTPARALLEL: CCFLAGS:= -I.. -I../../include -I../../../include -I ../../libc -LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -Wl,-Map=mapfile +LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld -lm -ldl -Wl,-Map=mapfile CCFLAGS += -Wall @@ -69,7 +69,9 @@ test : clean : $(RM) -r $(ODIR) +ifneq ($(MAKECMDGOALS),clean) -include $(DEPS) +endif $(ODIR)/%.o: %.c @mkdir -p $(ODIR); diff --git a/app/lua/luac_cross/lflashimg.c b/app/lua/luac_cross/lflashimg.c index ee21f067e8..77836e2ec8 100644 --- a/app/lua/luac_cross/lflashimg.c +++ b/app/lua/luac_cross/lflashimg.c @@ -33,37 +33,42 @@ typedef unsigned int uint; /* * * This dumper is a variant of the standard ldump, in that instead of producing a - * binary loader format that lundump can load, it produced an image file that can be + * binary loader format that lundump can load, it produces an image file that can be * directly mapped or copied into addressable memory. The typical application is on * small memory IoT devices which support programmable flash storage such as the * ESP8266. A 64 Kb LFS image has 16Kb words and will enable all program-related - * storage to be accessed directly from flash, leaving the RAM for true R/W application - * data. + * storage to be accessed directly from flash, leaving the RAM for true R/W + * application data. * - * The start address of the Lua Flash Store (LFS) is build-dependent,. However, by - * adopting a position independent image format, cross compilation can leave this - * detail to the on-device image loader. As all objects in the LFS can be treated as - * multiples of 4-byte words. Although some record field are byte-size and can be byte - * packed, all other fields are word aligned, and in particular any address references - * within the LFS are word-aligned and also refer to word-aligned addresses within the - * LFS. - * - * In order to make the LFS position independent, such addresses are stored in a - * special format, where each PIC address is two 16-bit unsigned offsets: + * The start address of the Lua Flash Store (LFS) is build-dependent, and the cross + * compiler '-a' option allows the developer to fix the LFS at a defined flash memory + * address. Alternatively and by default the cross compilation adopts a position + * independent image format, which permits the on-device image loader to load the LFS + * image at an appropriate base within the flash address space. As all objects in the + * LFS can be treated as multiples of 4-byte words, also all address fields are both + * word aligned, and any address references within the LFS are also word-aligned, + * such addresses are stored in a special format, where each PI address is two + * 16-bit unsigned offsets: * * Bits 0-15 is the offset into the LFS that this address refers to * Bits 16-31 is the offset linking to the PIC next address. * * Hence the LFS can be up to 256Kb in length and the flash loader can use the forward - * links to chain down from the mainProto address at offet 3 to all image addresses - * during load and convert them to the corresponding correct absolute memory addresses. + * links to chain down PI address from the mainProto address at offet 3 to all image + * addresses during load and convert them to the corresponding correct absolute memory + * addresses. This reloation process is skipped for absolute addressed images (which + * are identified by the FLASH_SIG_ABSOLUTE bit setting in the flash signature. * * The flash image has a standard header detailed in lflash.h * * Note that luac.cross may be compiled on any little-endian machine with 32 or 64 bit - * word length so Flash addresses cant be handled as standard C pointers as size_t and - * int may not have the same size. Hence addresses with the must be declared as the - * FlashAddr type rather than typed C pointers and must be accessed through macros. + * word length so Flash addresses can't be handled as standard C pointers as size_t + * and int may not have the same size. Hence addresses with the must be declared as + * the FlashAddr type rather than typed C pointers and must be accessed through macros. + * + * ALso note that image built with a given LUA_PACK_TVALUES / LUA_NUNBER_INTEGRAL + * combination must be loaded into a corresponding firmware build. Hence these + * configuration options are also included in the FLash Signature. * * The Flash image is assembled up by first building the RO stringtable containing * all strings used in the compiled proto hierarchy. This is followed by the Protos. @@ -103,7 +108,6 @@ extern void __attribute__((noreturn)) luac_fatal(const char* message); #define DBG_PRINT(...) ((void)0) #endif -#define FLASH_SIG 0xfafaaf00 /* * Serial allocator. Throw a luac-style out of memory error is allocaiton fails. */ @@ -258,11 +262,16 @@ static void *resolveTString(lua_State* L, TString *s) { * In order to simplify repacking of structures from the host format to that target * format, this simple copy routine is data-driven by a simple format specifier. * n Number of consecutive records to be processed - * fmt A string of A,I, S, V specifiers spanning the record. + * fmt A string of A, I, S, V specifiers spanning the record. * src Source of record * returns Address of destination record */ +#if defined(LUA_PACK_TVALUES) +#define TARGET_TV_SIZE (sizeof(lua_Number)+sizeof(lu_int32)) +#else #define TARGET_TV_SIZE (2*sizeof(lua_Number)) +#endif + static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { /* ToS is the string address mapping table */ if (n == 0) @@ -270,7 +279,8 @@ static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { int i, recsize; void *newts; /* A bit of a botch because fmt is either "V" or a string of WORDSIZE specifiers */ - /* The size 8 for integer builds and 16 for float ones on both architectures */ + /* The size 8 / 12 / 16 bytes for integer builds, packed TV and default TVs resp */ + if (fmt[0]=='V') { lua_assert(fmt[1] == 0); /* V formats must be singetons */ recsize = TARGET_TV_SIZE; @@ -288,6 +298,7 @@ static void *flashCopy(lua_State* L, int n, const char *fmt, void *src) { /* All input address types (A,S,V) are aligned to size_t boundaries */ if (*p != 'I' && ((size_t)s)&(sizeof(size_t)-1)) s++; + switch (*p++) { case 'A': toFlashAddr(L, *d, *cast(void**, s)); @@ -368,33 +379,41 @@ static void *functionToFlash(lua_State* L, const Proto* orig) { } /* - * Scan through the tagged address to form linked chain. Do the scan backwards - * from at last octaword including curOffset, as this makes the 'last' address - * forward reference for the on-chip LFS loader. + * Scan through the tagged addresses. This operates in one of two modes. + * - If address is non-zero then the offset is converted back into an absolute + * mapped flash address using the specified address base. + * + * - If the address is zero then form a form linked chain with the upper 16 bits + * the link to the last offset. As the scan is backwards, this 'last' address + * becomes forward reference for the on-chip LFS loader. */ -void linkPICaddresses(void){ +void linkAddresses(lu_int32 address){ int i, last = 0; for (i = curOffset-1 ; i >= 0; i--) { if (flashAddrTag[i]) { lua_assert(flashImage[i]mainProto, functionToFlash(L, main)); - fh->flash_sig = FLASH_SIG; + fh->flash_sig = FLASH_SIG + (address ? FLASH_SIG_ABSOLUTE : 0); fh->flash_size = curOffset*WORDSIZE; - linkPICaddresses(); + linkAddresses(address); lua_unlock(L); int status = w(L, flashImage, curOffset * sizeof(uint), data); lua_lock(L); diff --git a/app/lua/luac_cross/luac.c b/app/lua/luac_cross/luac.c index a2fd103419..039d9670ad 100644 --- a/app/lua/luac_cross/luac.c +++ b/app/lua/luac_cross/luac.c @@ -34,7 +34,8 @@ static int listing=0; /* list bytecodes? */ static int dumping=1; /* dump bytecodes? */ static int stripping=0; /* strip debug information? */ static int flash=0; /* output flash image */ -static int lookup=0; /* output lookup-style master combination header */ +static lu_int32 address=0; /* output flash image at absolute location */ +static int lookup=0; /* output lookup-style master combination header */ static char Output[]={ OUTPUT }; /* default output file name */ static const char* output=Output; /* actual output file name */ static const char* execute; /* executed a Lua file */ @@ -69,6 +70,7 @@ static void usage(const char* message) " -o name output to file " LUA_QL("name") " (default is \"%s\")\n" " -e name execute a lua source file\n" " -f output a flash image file\n" + " -a addr generate an absolute, rather than position independent flash image file\n" " -i generate lookup combination master (default with option -f)\n" " -p parse only\n" " -s strip debug information\n" @@ -79,6 +81,8 @@ static void usage(const char* message) } #define IS(s) (strcmp(argv[i],s)==0) +#define IROM0_SEG 0x40210000ul +#define IROM0_SEGMAX 0x00100000ul static int doargs(int argc, char* argv[]) { @@ -105,8 +109,15 @@ static int doargs(int argc, char* argv[]) } else if (IS("-f")) /* Flash image file */ { - flash=1; - lookup=1; + flash=lookup=1; + } + else if (IS("-a")) /* Absolue flash image file */ + { + flash=lookup=1; + address=strtol(argv[++i],NULL,0); + size_t offset = (unsigned) (address -IROM0_SEG); + if (offset > IROM0_SEGMAX) + usage(LUA_QL("-e") " absolute address must be valid flash address"); } else if (IS("-i")) /* lookup */ lookup = 1; @@ -159,7 +170,7 @@ static TString *corename(lua_State *L, const TString *filename) * then luac generates a main function to reference all sub-main prototypes. * This is one of two types: * Type 0 The standard luac combination main - * Type 1 A lookup wrapper that facilitates indexing into the gernated protos + * Type 1 A lookup wrapper that facilitates indexing into the generated protos */ static const Proto* combine(lua_State* L, int n, int type) { @@ -167,64 +178,76 @@ static const Proto* combine(lua_State* L, int n, int type) return toproto(L,-1); else { - int i,pc,stacksize; - Instruction *code; + int i; + Instruction *pc; Proto* f=luaF_newproto(L); setptvalue2s(L,L->top,f); incr_top(L); f->source=luaS_newliteral(L,"=(" PROGNAME ")"); f->p=luaM_newvector(L,n,Proto*); f->sizep=n; - for (i=0; ip[i]=toproto(L,i-n-1); + for (i=0; ip[i]=toproto(L,i-n-1); pc=0; - if (type == 0) - { + if (type == 0) { /* * Type 0 is as per the standard luac, which is just a main routine which * invokes all of the compiled functions sequentially. This is fine if * they are self registering modules, but useless otherwise. */ - stacksize = 1; - code=luaM_newvector(L,2*n+1,Instruction); - for (i=0; inumparams = 0; + f->maxstacksize = 1; + f->sizecode = 2*n + 1 ; + f->sizek = 0; + f->code = luaM_newvector(L, f->sizecode , Instruction); + f->k = luaM_newvector(L,f->sizek,TValue); + + for (i=0, pc = f->code; ik=luaM_newvector(L,n+1,TValue); - f->sizek=n+1; - setnvalue(f->k, (lua_Number) time(NULL)); - for (i=0; i LFIELDS_PER_FLUSH) { +#define NO_MOD_ERR_(n) ": Number of modules > " #n +#define NO_MOD_ERR(n) NO_MOD_ERR_(n) + usage(LUA_QL("-f") NO_MOD_ERR(LFIELDS_PER_FLUSH)); + } + f->numparams = 1; + f->maxstacksize = n + 3; + f->sizecode = 5*n + 5 ; + f->sizek = n + 1; + f->sizelocvars = 0; + f->code = luaM_newvector(L, f->sizecode , Instruction); + f->k = luaM_newvector(L,f->sizek,TValue); + for (i=0, pc = f->code; ik+i+1,corename(L, f->p[i]->source)); - code[pc++]=CREATE_ABC(OP_EQ,0,0,RKASK(i+1)); - code[pc++]=CREATE_ABx(OP_JMP,0,MAXARG_sBx+2); - code[pc++]=CREATE_ABx(OP_CLOSURE,1,i); - code[pc++]=CREATE_ABC(OP_RETURN,1,2,0); + setsvalue2n(L,f->k+i,corename(L, f->p[i]->source)); + *pc++ = CREATE_ABC(OP_EQ,0,0,RKASK(i)); + *pc++ = CREATE_ABx(OP_JMP,0,MAXARG_sBx+2); + *pc++ = CREATE_ABx(OP_CLOSURE,1,i); + *pc++ = CREATE_ABC(OP_RETURN,1,2,0); } - for (i=0; i<=n; i++) code[pc++]=CREATE_ABx(OP_LOADK,i+1,i); - /* should be a block loop */ - code[pc++]=CREATE_ABC(OP_RETURN,1,2+n,0); - code[pc++]=CREATE_ABC(OP_RETURN,0,1,0); + + setnvalue(f->k+n, (lua_Number) time(NULL)); + + *pc++ = CREATE_ABx(OP_LOADK,1,n); + *pc++ = CREATE_ABC(OP_NEWTABLE,2,luaO_int2fb(i),0); + for (i=0; inumparams=1; - f->maxstacksize=stacksize; - f->code=code; - f->sizecode=pc; + lua_assert((pc-f->code) == f->sizecode); + return f; } } @@ -240,7 +263,8 @@ struct Smain { char** argv; }; -extern uint dumpToFlashImage (lua_State* L,const Proto *main, lua_Writer w, void* data, int strip); +extern uint dumpToFlashImage (lua_State* L,const Proto *main, lua_Writer w, + void* data, int strip, lu_int32 address); static int pmain(lua_State* L) { @@ -278,7 +302,7 @@ static int pmain(lua_State* L) lua_lock(L); if (flash) { - result=dumpToFlashImage(L,f,writer, D, stripping); + result=dumpToFlashImage(L,f,writer, D, stripping, address); } else { result=luaU_dump_crosscompile(L,f,writer,D,stripping,target); diff --git a/app/lua/luaconf.h b/app/lua/luaconf.h index aaeba816f4..d6c144cb6e 100644 --- a/app/lua/luaconf.h +++ b/app/lua/luaconf.h @@ -38,6 +38,11 @@ #define LUA_WIN #endif + +#if defined(LUA_CROSS_COMPILER) +#define LUA_USE_LINUX +#endif + #if defined(LUA_USE_LINUX) #define LUA_USE_POSIX #define LUA_USE_DLOPEN /* needs an extra library: -ldl */ @@ -59,7 +64,7 @@ #if defined(LUA_USE_POSIX) #define LUA_USE_MKSTEMP #define LUA_USE_ISATTY -#define LUA_USE_POPEN +//#define LUA_USE_POPEN #define LUA_USE_ULONGJMP #endif diff --git a/app/modules/node.c b/app/modules/node.c index bfc5ae06b8..fc419ac72c 100644 --- a/app/modules/node.c +++ b/app/modules/node.c @@ -575,27 +575,25 @@ static const LUA_REG_TYPE node_task_map[] = { { LSTRKEY( "HIGH_PRIORITY" ), LNUMVAL( TASK_PRIORITY_HIGH ) }, { LNILKEY, LNILVAL } }; -#ifdef LUA_FLASH_STORE -static const LUA_REG_TYPE node_flash_map[] = { - { LSTRKEY( "reload" ), LFUNCVAL( luaN_reload_reboot ) }, - { LSTRKEY( "index" ), LFUNCVAL( luaN_index ) }, - { LNILKEY, LNILVAL } -}; -#endif static const LUA_REG_TYPE node_map[] = { + { LSTRKEY( "heap" ), LFUNCVAL( node_heap ) }, + { LSTRKEY( "info" ), LFUNCVAL( node_info ) }, + { LSTRKEY( "task" ), LROVAL( node_task_map ) }, +#ifdef LUA_FLASH_STORE + { LSTRKEY( "flashreload" ), LFUNCVAL( luaN_reload_reboot ) }, + { LSTRKEY( "flashindex" ), LFUNCVAL( luaN_index ) }, +#endif { LSTRKEY( "restart" ), LFUNCVAL( node_restart ) }, { LSTRKEY( "dsleep" ), LFUNCVAL( node_deepsleep ) }, #ifdef PMSLEEP_ENABLE { LSTRKEY( "sleep" ), LFUNCVAL( node_sleep ) }, PMSLEEP_INT_MAP, #endif - { LSTRKEY( "info" ), LFUNCVAL( node_info ) }, { LSTRKEY( "chipid" ), LFUNCVAL( node_chipid ) }, { LSTRKEY( "flashid" ), LFUNCVAL( node_flashid ) }, { LSTRKEY( "flashsize" ), LFUNCVAL( node_flashsize) }, - { LSTRKEY( "heap" ), LFUNCVAL( node_heap ) }, { LSTRKEY( "input" ), LFUNCVAL( node_input ) }, { LSTRKEY( "output" ), LFUNCVAL( node_output ) }, // Moved to adc module, use adc.readvdd33() @@ -609,12 +607,8 @@ static const LUA_REG_TYPE node_map[] = { LSTRKEY( "random" ), LFUNCVAL( node_random) }, #ifdef LUA_OPTIMIZE_DEBUG { LSTRKEY( "stripdebug" ), LFUNCVAL( node_stripdebug ) }, -#endif -#ifdef LUA_FLASH_STORE - { LSTRKEY( "flash") , LROVAL( node_flash_map ) }, #endif { LSTRKEY( "egc" ), LROVAL( node_egc_map ) }, - { LSTRKEY( "task" ), LROVAL( node_task_map ) }, #ifdef DEVELOPMENT_TOOLS { LSTRKEY( "osprint" ), LFUNCVAL( node_osprint ) }, #endif diff --git a/docs/en/modules/node.md b/docs/en/modules/node.md index 85a7ce35cd..af5a570e76 100644 --- a/docs/en/modules/node.md +++ b/docs/en/modules/node.md @@ -145,6 +145,36 @@ none #### Returns flash ID (number) +## node.flashindex() + +Returns the function reference for a function in the LFS (Lua Flash Store). + +#### Syntax +`node.flashindex()` + +#### Parameters +`modulename` The name of the module to be loaded. If this is `nil` or invalid then an info list is returned + +#### Returns +- In the case where the LFS in not loaded, `node.flashindex` evaluates to `nil`, followed by the flash and mapped base addresss of the LFS +- If the LFS is loaded and the function is called with the name of a valid module in the LFS, then the function is returned in the same way the `load()` and the other Lua load functions do. +- Otherwise an extended info list is returned: the Unix time of the LFS build, the flash and mapped base addresses of the LFS and its current length, and an array of the valid module names in the LFS. + +## node.flashreload() + +Reload the LFS (Lua Flash Store) with the flash image provided. Flash images are generated on the host machine using the `luac.cross`commnad. + +#### Syntax +`node.flashreload(imageName)` + +#### Parameters +`imageName` The of name of a image file in the filesystem to be loaded into the LFS. + +#### Returns +If the LFS image has the incorrect signature or size, then `false` is returned. +In the case of the `imagename` being a valid LFS image, this is then loaded into flash. The ESP is then immediately rebooted so control is not returned to the calling application. + + ## node.flashsize() Returns the flash chip size in bytes. On 4MB modules like ESP-12 the return value is 4194304 = 4096KB. @@ -496,37 +526,6 @@ provides more detailed information on the EGC. `node.egc.setmode(node.egc.ALWAYS, 4096) -- This is the default setting at startup.` `node.egc.setmode(node.egc.ON_ALLOC_FAILURE) -- This is the fastest activeEGC mode.` -# node.flash module - -## node.flash.index() - -Returns the function reference for a function in the LFS (Lua Flash Store). - -#### Syntax -`node.flash.index()` - -#### Parameters -None - -#### Returns -- In the case where the LFS in not loaded, `node.flash.index` evaluates to `nil` -- If the LFS is loaded, this returns the index function within the LFS which indexes its contents. This index function can itself to called to interrogate or access the LFS contents: - - In that case where the function is called with the name of a valid module in the LFS, the function is returned in the same way the `load()` and the other Lua load functions do. - - Otherwise the function returns a list of module names in the LFS. Note that the first entry in the list is the Unix datetime of he build. - -## node.flash.reload() - -Reload the LFS (Lua Flash Store) with the flash image provided. Flash images are generated on the host machine using the `luac.cross`commnad. - -#### Syntax -`node.flash.rebuild(imageName)` - -#### Parameters -`imageName` The of name of a image file in the filesystem to be loaded into the LFS. - -#### Returns -_Not applicable_. The ESP will load the LFS image and immediately reboot. Control is not returned to the calling application. - # node.task module ## node.task.post() diff --git a/lua_examples/lfs/lfs_fragments.lua b/lua_examples/lfs/lfs_fragments.lua new file mode 100644 index 0000000000..1d027533df --- /dev/null +++ b/lua_examples/lfs/lfs_fragments.lua @@ -0,0 +1,124 @@ +-- First time image boot to discover the confuration +-- +-- If you want to use absolute address LFS load or SPIFFS imaging, then boot the +-- image for the first time bare, that is without either LFS or SPIFFS preloaded +-- then enter the following commands interactively through the UART: +-- +local _,mapa,fa=node.flashindex(); return ('0x%x, 0x%x, 0x%x'):format( + mapa,fa,file.fscfg()) +-- +-- This will print out 3 hex constants: the absolute address used in the +-- 'luac.cross -a' options and the flash adresses of the LFS and SPIFFS. +-- +--[[ So you would need these commands to image your ESP module: +USB=/dev/ttyUSB0 # or whatever the device of your USB is +NODEMCU=~/nodemcu # The root of your NodeMCU file hierarchy +SRC=$NODEMCU/local/lua # your source directory for your LFS Lua files. +BIN=$NODEMCU/bin +ESPTOOL=$NODEMCU/tools/esptool.py + +$ESPTOOL --port $USB erase_flash # Do this is you are having load funnies +$ESPTOOL --port $USB --baud 460800 write_flash -fm dio 0x00000 \ + $BIN/0x00000.bin 0x10000 $BIN/0x10000.bin +# +# Now restart your module and use whatever your intective tool is to do the above +# cmds, so if this outputs 0x4027b000, -0x7b000, 0x100000 then you can do +# +$NODEMCU/luac.cross -a 0x4027b000 -o $BIN/0x7b000-flash.img $SRC/*.lua +$ESPTOOL --port $USB --baud 460800 write_flash -fm dio 0x7b000 \ + $BIN/0x7b000-flash.img +# and if you've setup a SPIFFS then +$ESPTOOL --port $USB --baud 460800 write_flash -fm dio 0x100000 \ + $BIN/0x100000-0x10000.img +# and now you are good to go +]] + +----------------------------------------------------------------------------------- +-- +-- It is a good idea to add an _init.lua module to your LFS and do most of the +-- LFS module related initialisaion in this. This example uses standard Lua +-- features to simplify the LFS API. +-- +-- The first adds a 'LFS' table to _G and uses the __index metamethod to resolve +-- functions in the LFS, so you can execute the main function of module 'fred' +-- by doing LFS.fred(params) +-- +-- The second adds the LFS to the require searchlist so that you can require a +-- Lua module 'jean' in the LFS by simply doing require "jean". However not that +-- this is at the search entry following the FS searcher, so if you also have +-- jean.lc or jean.lua in SPIFFS, then this will get preferentially loaded, +-- albeit into RAM. (Useful, for development). +-- +do + local index = node.flashindex + local lfs_t = { __index = function(_, name) + local fn, ba = index(name) + if not ba then return fn end -- or return nil implied + end} + getfenv().LFS = setmetatable(lfs_t,lfs_t) + + local function loader_flash(module) + local fn, ba = index(module) + return ba and "Module not in LFS" or fn + end + package.loaders[3] = loader_flash + +end + +----------------------------------------------------------------------------------- +-- +-- File: init.lua +-- +-- With the previous example you still need an init.lua to bootstrap the _init +-- module in LFS. Here is an example. It's a good idea either to use a timer +-- delay or a GPIO pin during development, so that you as developer can break into +-- the boot sequence if there is a problem with the _init bootstrap that is causing +-- a panic loop. Here is one example of how you might do this. You have a second to +-- inject tmr.stop(0) into UART0. Extend if your reactions can't meet this. +-- +-- You also want to do autoload the LFS, for example by adding the following: +-- +if node.flashindex() == nil then + node.flashreload('flash.img') +end + +tmr.alarm(0, 1000, tmr.ALARM_SINGLE, + function() + local fi=node.flashindex; return pcall(fi and fi'_init') + end) + +----------------------------------------------------------------------------------- +-- +-- The debug.getstrings function can be used to get a listing of the RAM (or ROM +-- if LFS is loaded), as per the following example, so you can do this at the +-- interactive prompt or call it as a debug function during a running application. +-- +do + local a=debug.getstrings'RAM' + for i =1, #a do a[i] = ('%q'):format(a[i]) end + print ('local preload='..table.concat(a,',')) +end + +----------------------------------------------------------------------------------- +-- +-- File: LFS_dummy_strings.lua +-- +-- luac.cross -f will generate a ROM string table that includes all strings +-- referenced in the loaded modules. If you want to preload other string constants +-- hen the trick is to include a dummy module in the LFS. You never need to call +-- this. It's inclusion is enough to add the strings to the ROM table. Once in +-- the ROM table, then you can use them in your application without incuring any +-- RAM or Lua Garbage Collector (LGC) overhead. Here is a useful starting point, +-- but you can add to this for your application. +-- +-- The trick is to build the LFS as normal then run the previous example from your +-- running application and append these lines to this file. +-- +local preload = "?.lc;?.lua", "@init.lua", "_G", "_LOADED", "_LOADLIB", "__add", +"__call", "__concat", "__div", "__eq", "__gc", "__index", "__le", "__len", "__lt", +"__mod", "__mode", "__mul", "__newindex", "__pow", "__sub", "__tostring", "__unm", +"collectgarbage", "cpath", "debug", "file", "file.obj", "file.vol", "flash", +"getstrings", "index", "ipairs", "list", "loaded", "loader", "loaders", "loadlib", +"module", "net.tcpserver", "net.tcpsocket", "net.udpsocket", "newproxy", "package", +"pairs", "path", "preload", "reload", "require", "seeall", "wdclr" + diff --git a/tools/Makefile b/tools/Makefile index 608e985008..99dcacb7d0 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -34,6 +34,7 @@ else FLASH_FS_LOC := $(shell printf "0x%x" $(FLASH_FS_LOC)) endif +LFSSOURCES := $(wildcard $(LUASOURCE)/*.lua) ############################################################# # Rules base @@ -68,9 +69,14 @@ spiffsscript: remove-image LFSimage spiffsimg/spiffsimg @$(foreach f, $(SPIFFSFILES), echo "import $(FSSOURCE)$(f) $(f)" >> ./spiffsimg/spiffs.lst ;) $(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -f ../bin/0x%x-$(sz).img $(FLASH_SW) $(sz) -U $(FLASH_FS_LOC) -r ./spiffsimg/spiffs.lst -d; ) @$(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then echo Built $$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) - -LFSimage: $(LUASOURCE)*.lua - ../luac.cross -f -o $(FSSOURCE)flash.img $(LUASOURCE)*.lua + +ifneq ($(LFSSOURCES),) +LFSimage: $(LFSSOURCES) + ../luac.cross -f -o $(FSSOURCE)flash.img $(LFSSOURCES) +else +LFSimage: + rm -f $(FSSOURCE)flash.img +endif remove-image: $(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then rm -f ../bin/$$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) From 4f7af452a8651f0409841c53016175b4926953a8 Mon Sep 17 00:00:00 2001 From: TerryE Date: Fri, 20 Apr 2018 02:34:52 +0100 Subject: [PATCH 06/61] corrections to dev merge --- app/Makefile | 6 +----- app/lua/Makefile | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/Makefile b/app/Makefile index ca8b820464..711cf7a2bd 100644 --- a/app/Makefile +++ b/app/Makefile @@ -44,8 +44,6 @@ SUBDIRS= \ net \ fatfs \ esp-gdbstub \ - swTimer \ - misc \ pm \ $(OPT_SEL_MKTARGETS) @@ -78,8 +76,6 @@ COMPONENTS_eagle.app.v6 = \ net/libnodemcu_net.a \ mbedtls/libmbedtls.a \ modules/libmodules.a \ - swTimer/libswtimer.a \ - misc/libmisc.a \ $(OPT_SEL_COMPONENTS) @@ -141,7 +137,7 @@ CONFIGURATION_DEFINES = -D__ets__ \ -DLWIP_OPEN_SRC \ -DPBUF_RSV_FOR_WLAN \ -DEBUF_LWIP \ - -DUSE_OPTIMIZE_PRINTF \ + -DUSE_OPTIMIZE_PRINTF \ -DMBEDTLS_USER_CONFIG_FILE=\"user_mbedtls.h\" \ DEFINES += \ diff --git a/app/lua/Makefile b/app/lua/Makefile index c51c73125e..ff7291bde6 100644 --- a/app/lua/Makefile +++ b/app/lua/Makefile @@ -25,8 +25,8 @@ STD_CFLAGS=-std=gnu11 -Wimplicit # makefile at its root level - these are then overridden # for a subtree within the makefile rooted therein # -DEFINES += -DDEVELOPMENT_TOOLS -DDEVELOPMENT_USE_GDB -DNODE_DEBUG -DDEVELOPMENT_BREAK_ON_STARTUP_PIN=1 -EXTRA_CCFLAGS += -ggdb -O0 +#DEFINES += -DDEVELOPMENT_TOOLS -DDEVELOPMENT_USE_GDB -DDEVELOPMENT_BREAK_ON_STARTUP_PIN=1 +#EXTRA_CCFLAGS += -ggdb -O0 ############################################################# # Recursion Magic - Don't touch this!! From 4f21224d563b5481362d0eda0045908cf485fb27 Mon Sep 17 00:00:00 2001 From: TerryE Date: Fri, 22 Jun 2018 22:29:16 +0100 Subject: [PATCH 07/61] LFS patch updates following review II and testing --- app/coap/endpoints.c | 16 +- app/esp-gdbstub/Makefile | 2 +- app/include/user_config.h | 141 ++++++++++------- app/libc/c_stdlib.c | 12 -- app/libc/c_stdlib.h | 3 +- app/lua/lauxlib.c | 4 +- app/lua/lflash.c | 46 +++--- app/lua/lflash.h | 5 +- app/lua/lgc.c | 3 +- app/lua/loadlib.c | 2 +- app/lua/lua.c | 42 +++-- app/lua/luac_cross/lflashimg.c | 2 +- app/modules/node.c | 22 +-- app/platform/common.c | 54 ++----- app/platform/flash_api.c | 6 +- app/platform/platform.c | 30 ++-- app/platform/platform.h | 6 +- app/user/user_main.c | 19 +-- docs/en/lcd.md | 101 ++++++++++++ docs/en/lfs.md | 246 +++++++++++++++++++++++++++++ docs/en/modules/node.md | 10 +- ld/nodemcu.ld | 7 +- lua_examples/lfs/_init.lua | 83 ++++++++++ lua_examples/lfs/dummy_strings.lua | 37 +++++ lua_examples/lfs/lfs_fragments.lua | 79 ++------- mkdocs.yml | 7 +- tools/Makefile | 2 +- 27 files changed, 684 insertions(+), 303 deletions(-) create mode 100644 docs/en/lcd.md create mode 100644 docs/en/lfs.md create mode 100644 lua_examples/lfs/_init.lua create mode 100644 lua_examples/lfs/dummy_strings.lua diff --git a/app/coap/endpoints.c b/app/coap/endpoints.c index 81e124ccc4..013cef7f70 100644 --- a/app/coap/endpoints.c +++ b/app/coap/endpoints.c @@ -162,7 +162,8 @@ static int handle_post_function(const coap_endpoint_t *ep, coap_rw_buffer_t *scr return coap_make_response(scratch, outpkt, NULL, 0, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_NOT_FOUND, COAP_CONTENTTYPE_NONE); } -extern lua_Load gLoad; +extern int lua_put_line(const char *s, size_t l); + static const coap_endpoint_path_t path_command = {2, {"v1", "c"}}; static int handle_post_command(const coap_endpoint_t *ep, coap_rw_buffer_t *scratch, const coap_packet_t *inpkt, coap_packet_t *outpkt, uint8_t id_hi, uint8_t id_lo) { @@ -170,16 +171,9 @@ static int handle_post_command(const coap_endpoint_t *ep, coap_rw_buffer_t *scra return coap_make_response(scratch, outpkt, NULL, 0, id_hi, id_lo, &inpkt->tok, COAP_RSPCODE_BAD_REQUEST, COAP_CONTENTTYPE_TEXT_PLAIN); if (inpkt->payload.len > 0) { - lua_Load *load = &gLoad; - if(load->line_position == 0){ - coap_buffer_to_string(load->line, load->len,&inpkt->payload); - load->line_position = c_strlen(load->line)+1; - // load->line[load->line_position-1] = '\n'; - // load->line[load->line_position] = 0; - // load->line_position++; - load->done = 1; - NODE_DBG("Get command:\n"); - NODE_DBG(load->line); // buggy here + char line[LUA_MAXINPUT]; + if (!coap_buffer_to_string(line, LUA_MAXINPUT, &inpkt->payload) && + lua_put_line(line, c_strlen(line))) { NODE_DBG("\nResult(if any):\n"); system_os_post (LUA_TASK_PRIO, LUA_PROCESS_LINE_SIG, 0); } diff --git a/app/esp-gdbstub/Makefile b/app/esp-gdbstub/Makefile index 4e6e8b44b0..871b00ffc3 100644 --- a/app/esp-gdbstub/Makefile +++ b/app/esp-gdbstub/Makefile @@ -23,7 +23,7 @@ endif # makefile at its root level - these are then overridden # for a subtree within the makefile rooted therein # -#DEFINES += +#DEFINES += -DGDBSTUB_REDIRECT_CONSOLE_OUTPUT ############################################################# # Recursion Magic - Don't touch this!! diff --git a/app/include/user_config.h b/app/include/user_config.h index c1377961a7..27568233fa 100644 --- a/app/include/user_config.h +++ b/app/include/user_config.h @@ -1,46 +1,48 @@ #ifndef __USER_CONFIG_H__ #define __USER_CONFIG_H__ -// The firmware supports a range of Flash sizes, though 4Mbyte seems to be -// currently the most common. Current builds include a discovery function +// The firmware supports a range of Flash sizes, though 4 Mbyte seems to be +// the most common currently. NodeMCU builds include a discovery function // which is enabled by FLASH_AUTOSIZE, but you can override this by commenting // this out and enabling the explicitly size, e.g. FLASH_4M. Valid sizes are // FLASH_512K, FLASH_1M, FLASH_2M, FLASH_4M, FLASH_8M, FLASH_16M. - + #define FLASH_AUTOSIZE //#define FLASH_4M -// The firmware now selects a baudrate of 115,200 by default, but the driver also -// includes automatic baud rate detection at start-up by default. If you want to -// change the default rate then vaild rates are 300, 600, 1200, 2400, 4800, 9600, -// 19200, 31250, 38400, 57600, 74880, 115200, 230400, 256000, 460800 [, 921600, -// 1843200, 368640]. Note that the last 3 rates are not recommended as these -// might be unreliable. - +// The firmware now selects a baudrate of 115,200 by default, but the driver +// also includes automatic baud rate detection at start-up. If you want to change +// the default rate then vaild rates are 300, 600, 1200, 2400, 4800, 9600, 19200, +// 31250, 38400, 57600, 74880, 115200, 230400, 256000, 460800 [, 921600, 1843200, +// 368640]. Note that the last 3 rates are not recommended as these might be +// unreliable, but 460800 seems to work well for most USB-serial devices. + #define BIT_RATE_DEFAULT BIT_RATE_115200 -#define BIT_RATE_AUTOBAUD +//#define BIT_RATE_AUTOBAUD // Three separate build variants are now supported. The main difference is in the // processing of numeric data types. If LUA_NUMBER_INTEGRAL is defined, then -// all numeric calculations are done in integer, with divide being an integer +// all numeric calculations are done in integer, with divide being an integer // operations, and decimal fraction constants are illegal. Otherwise all // numeric operations use floating point, though they are exact for integer -// expressions < 2^53. The main advantage of INTEGRAL builds is that the basic -// internal storage unit, the TValue, is 8 bytes long, rather than the default -// on floating point builds of 16 bytes. We have now also introduced an -// experimental option LUA_PACK_TVALUES which reduces the floating point TValues -// to 12 bytes without any performance impact. +// expressions < 2^53. + +// The main advantage of INTEGRAL builds is that the basic internal storage unit, +// the TValue, is 8 bytes long. We have now reduced the size of FP TValues to +// 12 bytes rather than the previous 16 as this gives a material RAM saving with +// no performance loss. However, you can define LUA_DWORD_ALIGNED_TVALUES and +// this will force 16 byte TValues on FP builds. //#define LUA_NUMBER_INTEGRAL -//#define LUA_PACK_TVALUES +//#define LUA_DWORD_ALIGNED_TVALUES // The Lua Flash Store (LFS) allows you to store Lua code in Flash memory and -// the Lua VMS will execute this code directly from flash without needing any +// the Lua VMS will execute this code directly from flash without needing any // RAM overhead. If you want to enable LFS then set the following define to -// the size of the store that you need. This can be any multiple of 4kB up to +// the size of the store that you need. This can be any multiple of 4kB up to // a maximum 256Kb. //#define LUA_FLASH_STORE 0x10000 @@ -48,45 +50,45 @@ // By default Lua executes the file init.lua at start up. The following // define allows you to replace this with an alternative startup. Warning: -// you must protect this execution otherwise you will enter a panic loop. +// you must protect this execution otherwise you will enter a panic loop; +// the simplest way is to wrap the action in a function invoked by a pcall. // The example provided executes the LFS module "_init" at startup or fails // through to the interactive prompt. -// ********* WARNING THIS OPTION ISN'T CURRENTLY WORKING -//#define LUA_INIT_STRING "local fi=node.flashindex; return pcall(fi and fi'_init')" -// ********* WARNING THIS OPTION ISN'T CURRENTLY WORKING + +//#define LUA_INIT_STRING "pcall(function() node.flashindex'_init'() end)" // NodeMCU supports two file systems: SPIFFS and FATFS, the first is available // on all ESP8266 modules. The latter requires extra H/W so is less common. -// If you use SPIFFS then there are a number of options which impact the -// RAM overhead and performance of the file system. -// +// If you use SPIFFS then there are a number of options which impact the +// RAM overhead and performance of the file system. + // If you use the spiffsimg tool to create your own FS images on your dev PC // then we recommend that you fix the location and size of the FS, allowing // some headroom for rebuilding flash images and LFS. As an alternative to -// fixing the size of the FS, you can force the SPIFFS file system to end on +// fixing the size of the FS, you can force the SPIFFS file system to end on // the next 1Mb boundary. This is useful for certain OTA scenarios. In -// general, limiting the size of the FS only to what your application needs +// general, limiting the size of the FS only to what your application needs // gives the fastest start-up and imaging times. #define BUILD_SPIFFS -//#define BUILD_FATFS - //#define SPIFFS_FIXED_LOCATION 0x100000 -//#define SPIFFS_MAX_FILESYSTEM_SIZE 0x10000 +//#define SPIFFS_MAX_FILESYSTEM_SIZE 0x20000 //#define SPIFFS_SIZE_1M_BOUNDARY -#define SPIFFS_CACHE 1 // Enable if you use you SPIFFS in R/W mode +#define SPIFFS_CACHE 1 // Enable if you use you SPIFFS in R/W mode #define SPIFFS_MAX_OPEN_FILES 4 // maximum number of open files for SPIFFS #define FS_OBJ_NAME_LEN 31 // maximum length of a filename +//#define BUILD_FATFS + // The HTTPS stack requires client SSL to be enabled. The SSL buffer size is -// used only for espconn-layer secure connections, and is ignored otherwise. +// used only for espconn-layer secure connections, and is ignored otherwise. // Some HTTPS applications require a larger buffer size to work. See // https://github.com/nodemcu/nodemcu-firmware/issues/1457 for details. -// The SHA2 and MD2 libraries are also used by the crypto functions. The -// MD2 function are implemented in the ROM BIOS, and the SHA2 by NodeMCU -// code, so only enable SHA2 if you need this functionality. +// The SHA2 and MD2 libraries are also optionally used by the crypto functions. +// The SHA1 and MD5 function are implemented in the ROM BIOS. The MD2 and SHA2 +// are by firmware code, and can be enabled if you need this functionality. //#define CLIENT_SSL_ENABLE //#define MD2_ENABLE @@ -97,15 +99,15 @@ // GPIO_INTERRUPT_ENABLE needs to be defined if your application uses the // gpio.trig() or related GPIO interrupt service routine code. Likewise the // GPIO interrupt hook is requited for a few modules such as rotary. If you -// don't require this functionality, then we recommend commenting out these -// options which removes any associated runtime overhead. +// don't require this functionality, then commenting out these options out +// will remove any associated runtime overhead. #define GPIO_INTERRUPT_ENABLE #define GPIO_INTERRUPT_HOOK_ENABLE -// If your application uses the light sleep functions and you wish the -// firmware to manage timer rescheduling over sleeps (the CPU clock is +// If your application uses the light sleep functions and you wish the +// firmware to manage timer rescheduling over sleeps (the CPU clock is // suspended so timers get out of sync) then enable the following options //#define ENABLE_TIMER_SUSPEND @@ -115,24 +117,32 @@ // The WiFi module optionally offers an enhanced level of WiFi connection // management, using internal timer callbacks. Whilst many Lua developers // prefer to implement equivalent features in Lua, others will prefer the -// Wifi module to do this for them. Uncomment the following to enable -// this functionality. The event sub-options are ignore if the SMART -// functionality is not enabled. +// Wifi module to do this for them. Uncomment the following to enable +// this functionality. See the relevant WiFi module documentation for +// further details, as the scope of these changes is not obvious. +// Enable the wifi.startsmart() and wifi.stopsmart() //#define WIFI_SMART_ENABLE + +// Enable wifi.sta.config() event callbacks #define WIFI_SDK_EVENT_MONITOR_ENABLE + +// Enable creation on the wifi.eventmon.reason table #define WIFI_EVENT_MONITOR_DISCONNECT_REASON_LIST_ENABLE +// Enable use of the WiFi.monitor sub-module +//#define LUA_USE_MODULES_WIFI_MONITOR + // Whilst the DNS client details can be configured through the WiFi API, // the defaults can be exposed temporarily during start-up. The following // WIFI_STA options allow you to configure this in the firmware. If the -// WIFI_STA_HOSTNAME is not defined then the hostname will default to -// to the last 3 octets (6 hexadecimal digits) of MAC address with the +// WIFI_STA_HOSTNAME is not defined then the hostname will default to +// to the last 3 octets (6 hexadecimal digits) of MAC address with the // prefix "NODE-". If it is defined then the hostname must only contain // alphanumeric characters. If you are imaging multiple modules with this -// firmware then you must also define WIFI_STA_HOSTNAME_APPEND_MAC to -// append the last 3 octets of the MAC address. Note that the total +// firmware then you must also define WIFI_STA_HOSTNAME_APPEND_MAC to +// append the last 3 octets of the MAC address. Note that the total // Hostname MUST be 32 chars or less. //#define WIFI_STA_HOSTNAME "NodeMCU" @@ -145,7 +155,7 @@ #define ENDUSER_SETUP_AP_SSID "SetupGadget" -// The following sections are only relevent for those developers who are +// The following sections are only relevent for those developers who are // developing modules or core Lua changes and configure how extra diagnostics // are enabled in the firmware. These should only be configured if you are // building your own custom firmware and have full access to the firmware @@ -153,18 +163,18 @@ // Enabling DEVELOPMENT_TOOLS adds the asserts in LUA and also some useful // extras to the node module. These are silent in normal operation and so can -// be enabled without any harm (except for the code size increase and slight -// slowdown). If you want to use the remote GDB to handle breaks and failed +// be enabled without any harm (except for the code size increase and slight +// slowdown). If you want to use the remote GDB to handle breaks and failed // assertions then enable the DEVELOPMENT_USE GDB option. A supplimentary -// define DEVELOPMENT_BREAK_ON_STARTUP_PIN allows you to define a GPIO pin, +// define DEVELOPMENT_BREAK_ON_STARTUP_PIN allows you to define a GPIO pin, // which if pulled low at start-up will immediately initiate a GDB session. -// The DEVELOP_VERSION option enables lots of debug output, and is normally +// The DEVELOP_VERSION option enables lots of debug output, and is normally // only used by hardcore developers. -// These options can be enabled globally here or you can alternatively use +// These options can be enabled globally here or you can alternatively use // the DEFINES variable in the relevant Makefile to set these on a per -// directory basis. If you do this then you can also set the corresponding +// directory basis. If you do this then you can also set the corresponding // compile options (-O0 -ggdb) on a per directory as well. //#define DEVELOPMENT_TOOLS @@ -196,19 +206,24 @@ extern void luaL_dbgbreak(void); #endif #endif +#if !defined(LUA_NUMBER_INTEGRAL) && defined (LUA_DWORD_ALIGNED_TVALUES) + #define LUA_PACK_TVALUES +#else + #undef LUA_PACK_TVALUES +#endif + #ifdef DEVELOP_VERSION #define NODE_DEBUG #define COAP_DEBUG #endif /* DEVELOP_VERSION */ -#define NODE_ERROR - #ifdef NODE_DEBUG #define NODE_DBG dbg_printf #else #define NODE_DBG #endif /* NODE_DEBUG */ +#define NODE_ERROR #ifdef NODE_ERROR #define NODE_ERR dbg_printf #else @@ -218,9 +233,14 @@ extern void luaL_dbgbreak(void); // #define GPIO_SAFE_NO_INTR_ENABLE #define ICACHE_STORE_TYPEDEF_ATTR __attribute__((aligned(4),packed)) #define ICACHE_STORE_ATTR __attribute__((aligned(4))) -#define ICACHE_RAM_STRING(x) ICACHE_RAM_STRING2(x) -#define ICACHE_RAM_STRING2(x) #x -#define ICACHE_RAM_ATTR __attribute__((section(".iram0.text." __FILE__ "." ICACHE_RAM_STRING(__LINE__)))) +#define ICACHE_STRING(x) ICACHE_STRING2(x) +#define ICACHE_STRING2(x) #x +#define ICACHE_RAM_ATTR \ + __attribute__((section(".iram0.text." __FILE__ "." ICACHE_STRING(__LINE__)))) +#define ICACHE_FLASH_RESERVED_ATTR \ + __attribute__((section(".irom.reserved." __FILE__ "." ICACHE_STRING(__LINE__)),\ + used,unused,aligned(INTERNAL_FLASH_SECTOR_SIZE))) + #ifdef GPIO_SAFE_NO_INTR_ENABLE #define NO_INTR_CODE ICACHE_RAM_ATTR __attribute__ ((noinline)) #else @@ -228,4 +248,3 @@ extern void luaL_dbgbreak(void); #endif #endif /* __USER_CONFIG_H__ */ - diff --git a/app/libc/c_stdlib.c b/app/libc/c_stdlib.c index a58aee441e..4f39cc8631 100644 --- a/app/libc/c_stdlib.c +++ b/app/libc/c_stdlib.c @@ -15,18 +15,6 @@ #include "c_stdlib.h" #include "c_types.h" #include "c_string.h" - -extern const char lua_init_value[]; - -const char *c_getenv(const char *__string) -{ - if (c_strcmp(__string, "LUA_INIT") == 0) - { - return lua_init_value; - } - return NULL; -} - #include <_ansi.h> //#include //#include "mprec.h" diff --git a/app/libc/c_stdlib.h b/app/libc/c_stdlib.h index bb2836d53a..171c7fbb2e 100644 --- a/app/libc/c_stdlib.h +++ b/app/libc/c_stdlib.h @@ -46,8 +46,7 @@ // void c_exit(int); -// c_getenv() get env "LUA_INIT" string for lua initialization. -const char *c_getenv(const char *__string); +//const char *c_getenv(const char *__string); // void *c_malloc(size_t __size); // void *c_zalloc(size_t __size); diff --git a/app/lua/lauxlib.c b/app/lua/lauxlib.c index 381c98430f..c6d6f5ba07 100644 --- a/app/lua/lauxlib.c +++ b/app/lua/lauxlib.c @@ -48,7 +48,7 @@ //#define DEBUG_ALLOCATOR #ifdef DEBUG_ALLOCATOR #ifdef LUA_CROSS_COMPILER -static void break_hook(void) +static void break_hook(void) {} #define ASSERT(s) if (!(s)) {break_hook();} #else #define ASSERT(s) if (!(s)) {asm ("break 0,0" ::);} @@ -186,7 +186,7 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) { /* }====================================================================== */ #else #define this_realloc(p,os,s) c_realloc(p,s) -#endif +#endif /* DEBUG_ALLOCATOR */ /* ** {====================================================== diff --git a/app/lua/lflash.c b/app/lua/lflash.c index 6c7f16c692..f5c4d9085a 100644 --- a/app/lua/lflash.c +++ b/app/lua/lflash.c @@ -41,7 +41,7 @@ static uint32_t curOffset; #define FLASH_PAGE_SIZE INTERNAL_FLASH_SECTOR_SIZE #define FLASH_PAGES (FLASH_SIZE/FLASH_PAGE_SIZE) -#define BREAK_ON_STARTUP_PIN 1 // GPIO 5 or setting to 0 will disable pin startup +char flash_region_base[FLASH_SIZE] ICACHE_FLASH_RESERVED_ATTR; #ifdef NODE_DEBUG extern void dbg_printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2))); @@ -94,6 +94,7 @@ static char *flashBlock(const void* b, size_t size) { return cur; } + static void flashErase(uint32_t start, uint32_t end){ int i; if (start == -1) start = FLASH_PAGES - 1; @@ -104,38 +105,41 @@ static void flashErase(uint32_t start, uint32_t end){ } -/* ===================================================================================== - * Hook in user_main.c to allocate flash memory for the lua flash store - */ -extern void luaL_dbgbreak(void); //<<<<<<<<<<<<< Temp -void luaN_user_init(void) { - curOffset = 0; - flashSector = platform_flash_reserve_section( FLASH_SIZE, &flashAddrPhys ); - flashAddr = cast(char *,platform_flash_phys2mapped(flashAddrPhys)); - NODE_DBG("Flash initialised: %x %08x\n", flashSector, flashAddr); -// luaL_dbgbreak(); //<<<<<<<<<<<<< Temp -} - - /* * Hook in lstate.c:f_luaopen() to set up ROstrt and ROpvmain if needed */ LUAI_FUNC void luaN_init (lua_State *L) { +// luaL_dbgbreak(); + curOffset = 0; + flashAddr = flash_region_base; + flashAddrPhys = platform_flash_mapped2phys((uint32_t)flashAddr); + flashSector = platform_flash_get_sector_of_address(flashAddrPhys); FlashHeader *fh = cast(FlashHeader *, flashAddr); + /* * For the LFS to be valid, its signature has to be correct for this build variant, * thr ROhash and main proto fields must be defined and the main proto address * be within the LFS address bounds. (This last check is primarily to detect the * direct imaging of an absolute LFS with the wrong base address. */ - if ((fh->flash_sig & (~FLASH_SIG_ABSOLUTE)) == FLASH_SIG && - fh->pROhash != ALL_SET && - ((fh->mainProto - cast(FlashAddr, fh)) < fh->flash_size)) { - G(L)->ROstrt.hash = cast(GCObject **, fh->pROhash); - G(L)->ROstrt.nuse = fh->nROuse ; - G(L)->ROstrt.size = fh->nROsize; - G(L)->ROpvmain = cast(Proto *,fh->mainProto); + + if ((fh->flash_sig & (~FLASH_SIG_ABSOLUTE)) != FLASH_SIG ) { + NODE_ERR("Flash sig not correct: %p vs %p\n", + fh->flash_sig & (~FLASH_SIG_ABSOLUTE), FLASH_SIG); + return; + } + + if (fh->pROhash == ALL_SET || + ((fh->mainProto - cast(FlashAddr, fh)) >= fh->flash_size)) { + NODE_ERR("Flash size check failed: %p vs 0xFFFFFFFF; %p >= %p\n", + fh->mainProto - cast(FlashAddr, fh), fh->flash_size); + return; } + + G(L)->ROstrt.hash = cast(GCObject **, fh->pROhash); + G(L)->ROstrt.nuse = fh->nROuse ; + G(L)->ROstrt.size = fh->nROsize; + G(L)->ROpvmain = cast(Proto *,fh->mainProto); } #define BYTE_OFFSET(t,f) cast(size_t, &(cast(t *, NULL)->f)) diff --git a/app/lua/lflash.h b/app/lua/lflash.h index 9fa87cd0f7..d3ba862b08 100644 --- a/app/lua/lflash.h +++ b/app/lua/lflash.h @@ -10,14 +10,14 @@ #include "lstate.h" #include "lzio.h" -#ifdef LUA_NUNBER_INTEGRAL +#ifdef LUA_NUMBER_INTEGRAL # define FLASH_SIG_B1 0x02 #else # define FLASH_SIG_B1 0x00 #endif #ifdef LUA_PACK_TVALUES -#ifdef LUA_NUNBER_INTEGRAL +#ifdef LUA_NUMBER_INTEGRAL #error "LUA_PACK_TVALUES is only valid for Floating point builds" #endif # define FLASH_SIG_B2 0x04 @@ -40,7 +40,6 @@ typedef struct { lu_int32 fill2; /* reserved */ } FlashHeader; -void luaN_user_init(void); LUAI_FUNC void luaN_init (lua_State *L); LUAI_FUNC int luaN_flashSetup (lua_State *L); LUAI_FUNC int luaN_reload_reboot (lua_State *L); diff --git a/app/lua/lgc.c b/app/lua/lgc.c index 2f860cafc0..939c4d29b3 100644 --- a/app/lua/lgc.c +++ b/app/lua/lgc.c @@ -65,7 +65,8 @@ static void removeentry (Node *n) { lua_assert(ttisnil(gval(n))); if (ttype(gkey(n)) != LUA_TDEADKEY && iscollectable(gkey(n))) - lua_assert(!isLFSobject(&((gkey(n))->value.gc->gch))); +// The gkey is always in RAM so it can be marked as DEAD even though it +// refers to an LFS object. setttype(gkey(n), LUA_TDEADKEY); /* dead key; remove it */ } diff --git a/app/lua/loadlib.c b/app/lua/loadlib.c index a697b74c6f..f884c3ca3a 100644 --- a/app/lua/loadlib.c +++ b/app/lua/loadlib.c @@ -613,7 +613,7 @@ static int ll_seeall (lua_State *L) { static void setpath (lua_State *L, const char *fieldname, const char *envname, const char *def) { - const char *path = c_getenv(envname); + const char *path = NULL; /* getenv(envname) not used in NodeMCU */; if (path == NULL) /* no environment variable? */ lua_pushstring(L, def); /* use default */ else { diff --git a/app/lua/lua.c b/app/lua/lua.c index 642f765ba4..6071a9f4ff 100644 --- a/app/lua/lua.c +++ b/app/lua/lua.c @@ -29,11 +29,9 @@ lua_State *globalL = NULL; -lua_Load gLoad; - +static lua_Load gLoad; static const char *progname = LUA_PROGNAME; - static void l_message (const char *pname, const char *msg) { #if defined(LUA_USE_STDIO) if (pname) c_fprintf(c_stderr, "%s: ", pname); @@ -237,19 +235,16 @@ static int runargs (lua_State *L, char **argv, int n) { } -#ifdef LUA_INIT_STRING -const char lua_init_value[] = LUA_INIT_STRING; -#else -const char lua_init_value[] = "@init.lua"; +#ifndef LUA_INIT_STRING +#define LUA_INIT_STRING "@init.lua" #endif static int handle_luainit (lua_State *L) { - const char *init = c_getenv(LUA_INIT); - if (init == NULL) return 0; /* status OK */ - else if (init[0] == '@') + const char *init = LUA_INIT_STRING; + if (init[0] == '@') return dofsfile(L, init+1); else - return dostring(L, init, "=" LUA_INIT); + return dostring(L, init, LUA_INIT); } @@ -284,7 +279,6 @@ static int pmain (lua_State *L) { static void dojob(lua_Load *load); static bool readline(lua_Load *load); -char line_buffer[LUA_MAXINPUT]; #ifdef LUA_RPC int main (int argc, char **argv) { @@ -315,24 +309,39 @@ int lua_main (int argc, char **argv) { gLoad.L = L; gLoad.firstline = 1; gLoad.done = 0; - gLoad.line = line_buffer; + gLoad.line = c_malloc(LUA_MAXINPUT); gLoad.len = LUA_MAXINPUT; gLoad.line_position = 0; gLoad.prmt = get_prompt(L, 1); dojob(&gLoad); - NODE_DBG("Heap size::%d.\n",system_get_free_heap_size()); + NODE_DBG("Heap size:%d.\n",system_get_free_heap_size()); legc_set_mode( L, EGC_ALWAYS, 4096 ); // legc_set_mode( L, EGC_ON_MEM_LIMIT, 4096 ); // lua_close(L); return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS; } +int lua_put_line(const char *s, size_t l) { + if (s == NULL || ++l < LUA_MAXINPUT || gLoad.line_position > 0) + return 0; + c_memcpy(gLoad.line, s, l); + gLoad.line[l] = '\0'; + gLoad.line_position = l; + gLoad.done = 1; + NODE_DBG("Get command: %s\n", gLoad.line); + return 1; +} + void lua_handle_input (bool force) { - while (gLoad.L && (force || readline (&gLoad))) + while (gLoad.L && (force || readline (&gLoad))) { + NODE_DBG("Handle Input: first=%u, pos=%u, len=%u, actual=%u, line=%s\n", gLoad.firstline, + gLoad.line_position, gLoad.len, c_strlen(gLoad.line), gLoad.line); dojob (&gLoad); + force = false; + } } void donejob(lua_Load *load){ @@ -462,11 +471,12 @@ static bool readline(lua_Load *load){ { /* Get a empty line, then go to get a new line */ c_puts(load->prmt); + continue; } else { load->done = 1; need_dojob = true; + break; } - continue; } /* other control character or not an acsii character */ diff --git a/app/lua/luac_cross/lflashimg.c b/app/lua/luac_cross/lflashimg.c index 77836e2ec8..9b47d4d1b2 100644 --- a/app/lua/luac_cross/lflashimg.c +++ b/app/lua/luac_cross/lflashimg.c @@ -155,7 +155,7 @@ static void *fromFashAddr(FlashAddr a) { * Add a TS found in the Proto Load to the table at the ToS */ static void addTS(lua_State *L, TString *ts) { - lua_assert(ttisstring(&(ts->tsv))); + lua_assert(ts->tsv.tt==LUA_TSTRING); lua_pushnil(L); setsvalue(L, L->top-1, ts); lua_pushinteger(L, 1); diff --git a/app/modules/node.c b/app/modules/node.c index 3fc6f40cf4..52c291d704 100644 --- a/app/modules/node.c +++ b/app/modules/node.c @@ -169,26 +169,16 @@ static int node_heap( lua_State* L ) return 1; } -extern lua_Load gLoad; +extern int lua_put_line(const char *s, size_t l); extern bool user_process_input(bool force); + // Lua: input("string") -static int node_input( lua_State* L ) -{ +static int node_input( lua_State* L ) { size_t l = 0; const char *s = luaL_checklstring(L, 1, &l); - if (s != NULL && l > 0 && l < LUA_MAXINPUT - 1) - { - lua_Load *load = &gLoad; - if (load->line_position == 0) { - c_memcpy(load->line, s, l); - load->line[l + 1] = '\0'; - load->line_position = c_strlen(load->line) + 1; - load->done = 1; - NODE_DBG("Get command:\n"); - NODE_DBG(load->line); // buggy here - NODE_DBG("\nResult(if any):\n"); - user_process_input(true); - } + if (lua_put_line(s, l)) { + NODE_DBG("Result (if any):\n"); + user_process_input(true); } return 0; } diff --git a/app/platform/common.c b/app/platform/common.c index 1140cf9af1..7de2a9484a 100644 --- a/app/platform/common.c +++ b/app/platform/common.c @@ -24,7 +24,7 @@ extern char _flash_used_end[]; // Helper function: find the flash sector in which an address resides // Return the sector number, as well as the start and end address of the sector -static uint32_t flashh_find_sector( uint32_t address, uint32_t *pstart, uint32_t *pend ) +static uint32_t flash_find_sector( uint32_t address, uint32_t *pstart, uint32_t *pend ) { #ifdef INTERNAL_FLASH_SECTOR_SIZE // All the sectors in the flash have the same size, so just align the address @@ -53,7 +53,7 @@ static uint32_t flashh_find_sector( uint32_t address, uint32_t *pstart, uint32_t uint32_t platform_flash_get_sector_of_address( uint32_t addr ) { - return flashh_find_sector( addr, NULL, NULL ); + return flash_find_sector( addr, NULL, NULL ); } uint32_t platform_flash_get_num_sectors(void) @@ -67,54 +67,22 @@ uint32_t platform_flash_get_num_sectors(void) #endif // #ifdef INTERNAL_FLASH_SECTOR_SIZE } -static uint32_t allocated = 0; -static uint32_t phys_flash_used_end = 0; //Phyiscal address of last byte in last flash used sector - -uint32_t platform_flash_reserve_section( uint32_t regsize, uint32_t *start ) -{ - // Return Flash sector no (and optional flash mapped address of first allocated byte) - - if(phys_flash_used_end == 0) - flashh_find_sector(platform_flash_mapped2phys( (uint32_t)_flash_used_end - 1), NULL, &phys_flash_used_end ); - - /* find sector and last byte address of previous allocation */ - uint32_t end; - uint32_t sect = flashh_find_sector( phys_flash_used_end + allocated, NULL, &end ); - if(start) - *start = end + 1; - - /* allocated regions are always sector aligned */ - flashh_find_sector( phys_flash_used_end + allocated + regsize, NULL, &end ); - allocated = end - phys_flash_used_end; - - NODE_DBG("Flash base: %08x %08x %08x\n", regsize, allocated, phys_flash_used_end); - return sect + 1; -} - uint32_t platform_flash_get_first_free_block_address( uint32_t *psect ) { // Round the total used flash size to the closest flash block address uint32_t start, end, sect; NODE_DBG("_flash_used_end:%08x\n", (uint32_t)_flash_used_end); -#if 0 - if(_flash_used_end>0){ // find the used sector - sect = flashh_find_sector( platform_flash_mapped2phys ( (uint32_t)_flash_used_end - 1), NULL, &end ); - sect++; - start = end + 1; - }else{ - sect = flashh_find_sector( 0, &start, NULL ); // find the first free sector - } if(_flash_used_end>0){ // find the used sector - uint32_t sta1, sec1; - sec1 = platform_flash_reserve_section( 0, &sta1 ); - NODE_DBG("Flash base: %p %p %p %p\n", sect, start, sec1, sta1); + sect = flash_find_sector( platform_flash_mapped2phys ( (uint32_t)_flash_used_end - 1), NULL, &end ); + if( psect ) + *psect = sect + 1; + return end + 1; + } else { + sect = flash_find_sector( 0, &start, NULL ); // find the first free sector + if( psect ) + *psect = sect; + return start; } -#endif - sect = _flash_used_end ? platform_flash_reserve_section( 0, &start ) : - flashh_find_sector( 0, &start, NULL ); - if( psect ) - *psect = sect; - return start; } uint32_t platform_flash_write( const void *from, uint32_t toaddr, uint32_t size ) diff --git a/app/platform/flash_api.c b/app/platform/flash_api.c index 05f1239043..6901afc059 100644 --- a/app/platform/flash_api.c +++ b/app/platform/flash_api.c @@ -116,10 +116,11 @@ bool flash_rom_set_size_type(uint8_t size) uint8_t data[SPI_FLASH_SEC_SIZE] ICACHE_STORE_ATTR; if (SPI_FLASH_RESULT_OK == spi_flash_read(0, (uint32 *)data, SPI_FLASH_SEC_SIZE)) { - ((SPIFlashInfo *)(&data[0]))->size = size; + NODE_DBG("\nflash_rom_set_size_type(%u), was %u\n", size, ((SPIFlashInfo *)data)->size ); + ((SPIFlashInfo *)data)->size = size; if (SPI_FLASH_RESULT_OK == spi_flash_erase_sector(0 * SPI_FLASH_SEC_SIZE)) { - NODE_DBG("\nERASE SUCCESS\n"); + NODE_DBG("\nSECTOR 0 ERASE SUCCESS\n"); } if (SPI_FLASH_RESULT_OK == spi_flash_write(0, (uint32 *)data, SPI_FLASH_SEC_SIZE)) { @@ -266,6 +267,7 @@ bool flash_rom_set_speed(uint32_t speed) if (SPI_FLASH_RESULT_OK == spi_flash_read(0, (uint32 *)data, SPI_FLASH_SEC_SIZE)) { ((SPIFlashInfo *)(&data[0]))->speed = speed_type; + NODE_DBG("\nflash_rom_set_speed(%u), was %u\n", speed_type, ((SPIFlashInfo *)(&data[0]))->speed ); if (SPI_FLASH_RESULT_OK == spi_flash_erase_sector(0 * SPI_FLASH_SEC_SIZE)) { NODE_DBG("\nERASE SUCCESS\n"); diff --git a/app/platform/platform.c b/app/platform/platform.c index c296bb3cdb..789c31ffdb 100644 --- a/app/platform/platform.c +++ b/app/platform/platform.c @@ -879,7 +879,7 @@ uint32_t platform_s_flash_write( const void *from, uint32_t toaddr, uint32_t siz if(SPI_FLASH_RESULT_OK == r) return size; else{ - NODE_ERR( "ERROR in flash_write: r=%d at %p\n", ( int )r, ( unsigned )toaddr); + NODE_ERR( "ERROR in flash_write: r=%d at %p\n", r, toaddr); return 0; } } @@ -917,37 +917,35 @@ uint32_t platform_s_flash_read( void *to, uint32_t fromaddr, uint32_t size ) if(SPI_FLASH_RESULT_OK == r) return size; else{ - NODE_ERR( "ERROR in flash_read: r=%d at %p\n", ( int )r, ( unsigned )fromaddr); + NODE_ERR( "ERROR in flash_read: r=%d at %p\n", r, fromaddr); return 0; } } int platform_flash_erase_sector( uint32_t sector_id ) { + NODE_DBG( "flash_erase_sector(%u)\n", sector_id); system_soft_wdt_feed (); return flash_erase( sector_id ) == SPI_FLASH_RESULT_OK ? PLATFORM_OK : PLATFORM_ERR; } -static uint32_t flash_map_meg_offset () -{ +static uint32_t flash_map_meg_offset (void) { uint32_t cache_ctrl = READ_PERI_REG(CACHE_FLASH_CTRL_REG); if (!(cache_ctrl & CACHE_FLASH_ACTIVE)) return -1; - bool b0 = (cache_ctrl & CACHE_FLASH_MAPPED0) ? 1 : 0; - bool b1 = (cache_ctrl & CACHE_FLASH_MAPPED1) ? 1 : 0; - return ((b1 << 1) | b0) * 0x100000; + uint32_t m0 = (cache_ctrl & CACHE_FLASH_MAPPED0) ? 0x100000 : 0; + uint32_t m1 = (cache_ctrl & CACHE_FLASH_MAPPED1) ? 0x200000 : 0; + return m0 + m1; } - -uint32_t platform_flash_mapped2phys (uint32_t mapped_addr) -{ - uint32_t meg = flash_map_meg_offset(); - return (meg&1) ? -1 : mapped_addr - INTERNAL_FLASH_MAPPED_ADDRESS + meg ; + +uint32_t platform_flash_mapped2phys (uint32_t mapped_addr) { + uint32_t meg = flash_map_meg_offset(); + return (meg&1) ? -1 : mapped_addr - INTERNAL_FLASH_MAPPED_ADDRESS + meg ; } -uint32_t platform_flash_phys2mapped (uint32_t phys_addr) -{ - uint32_t meg = flash_map_meg_offset(); - return (meg&1) ? -1 : phys_addr + INTERNAL_FLASH_MAPPED_ADDRESS - meg; +uint32_t platform_flash_phys2mapped (uint32_t phys_addr) { + uint32_t meg = flash_map_meg_offset(); + return (meg&1) ? -1 : phys_addr + INTERNAL_FLASH_MAPPED_ADDRESS - meg; } void* platform_print_deprecation_note( const char *msg, const char *time_frame) diff --git a/app/platform/platform.h b/app/platform/platform.h index aba89a0582..50503bc4c2 100644 --- a/app/platform/platform.h +++ b/app/platform/platform.h @@ -268,11 +268,8 @@ uint32_t platform_eth_get_elapsed_time(void); // ***************************************************************************** // Internal flash erase/write functions -uint32_t platform_flash_reserve_section( uint32_t regsize, uint32_t *start ); uint32_t platform_flash_get_first_free_block_address( uint32_t *psect ); uint32_t platform_flash_get_sector_of_address( uint32_t addr ); -uint32_t platform_flash_mapped2phys (uint32_t mapped_addr); -uint32_t platform_flash_phys2mapped (uint32_t phys_addr); uint32_t platform_flash_write( const void *from, uint32_t toaddr, uint32_t size ); uint32_t platform_flash_read( void *to, uint32_t fromaddr, uint32_t size ); uint32_t platform_s_flash_write( const void *from, uint32_t toaddr, uint32_t size ); @@ -282,13 +279,14 @@ int platform_flash_erase_sector( uint32_t sector_id ); /** * Translated a mapped address to a physical flash address, based on the - * current flash cache mapping. + * current flash cache mapping, and v.v. * @param mapped_addr Address to translate (>= INTERNAL_FLASH_MAPPED_ADDRESS) * @return the corresponding physical flash address, or -1 if flash cache is * not currently active. * @see Cache_Read_Enable. */ uint32_t platform_flash_mapped2phys (uint32_t mapped_addr); +uint32_t platform_flash_phys2mapped (uint32_t phys_addr); // ***************************************************************************** // Allocator support diff --git a/app/user/user_main.c b/app/user/user_main.c index 16b44f7301..c49a304250 100644 --- a/app/user/user_main.c +++ b/app/user/user_main.c @@ -129,8 +129,7 @@ bool user_process_input(bool force) { return task_post_low(input_sig, force); } -void nodemcu_init(void) -{ +void nodemcu_init(void) { NODE_ERR("\n"); // Initialize platform first for lua modules. if( platform_init() != PLATFORM_OK ) @@ -139,11 +138,13 @@ void nodemcu_init(void) NODE_DBG("Can not init platform for modules.\n"); return; } - - if( flash_detect_size_byte() != flash_rom_get_size_byte() ) { - NODE_ERR("Self adjust flash size.\n"); + uint32_t size_detected = flash_detect_size_byte(); + uint32_t size_from_rom = flash_rom_get_size_byte(); + if( size_detected != size_from_rom ) { + NODE_ERR("Self adjust flash size. 0x%x (ROM) -> 0x%x (Detected)\n", + size_from_rom, size_detected); // Fit hardware real flash size. - flash_rom_set_size_byte(flash_detect_size_byte()); + flash_rom_set_size_byte(size_detected); system_restart (); // Don't post the start_lua task, we're about to reboot... @@ -240,7 +241,6 @@ user_rf_cal_sector_set(void) return rf_cal_sec; } -extern void luaN_user_init(void); /****************************************************************************** * FunctionName : user_init * Description : entry of user application, init user function here @@ -261,10 +261,5 @@ void user_init(void) #ifndef NODE_DEBUG system_set_os_print(0); #endif - -#ifdef LUA_FLASH_STORE - luaN_user_init(); -#endif - system_init_done_cb(nodemcu_init); } diff --git a/docs/en/lcd.md b/docs/en/lcd.md new file mode 100644 index 0000000000..5e167fd902 --- /dev/null +++ b/docs/en/lcd.md @@ -0,0 +1,101 @@ +## Lua Compact Debug (LCD) + +LCD (Lua Compact Debug) was developed in Sept 2015 by Terry Ellison as a patch to the Lua system to decrease the RAM usage of Lua scripts. This makes it possible to run larger Lua scripts on systems with limited RAM. Its use is most typically for eLua-type applications, and in this version it targets the **NodeMCU** implementation for the ESP8266 chipsets. + +This section gives a full description of LCD. If you are writing **NodeMCU** Lua modules, then this paper will be of interest to you, as it shows how to use LCD in an easy to configure way. *Note that the default `user_config.h` has enabled LCD at a level 2 stripdebug since mid-2016*. + +### Motivation + +The main issue that led me to write this patch is the relatively high Lua memory consumption of its embedded debug information, as this typically results in a 60% memory increase for most Lua code. This information is generated when any Lua source is complied because the Lua parser uses this as meta information during the compilation process. It is then retained by default for use in generating debug information. The only standard method of removing this information is to use the “strip” option when precompiling source using a standard eLua **luac.cross** on the host, or (in the case of NodeMCU) using the `node.compile()` function on the target environment. + +Most application developers that are new to embedded development simply live with this overhead, because either they aren't familiar with these advanced techniques, or they want to keep the source line information in error messages for debugging. + +The standard Lua compiler generates fixed 4 byte instructions which are interpreted by the Lua VM during execution. The debug information consists of a map from instruction count to source line number (4 bytes per instruction) and two tables keyed by the names of each local and upvalue. These tables contain metadata on these variables used in the function. This information can be accessed to enable symbolic debugging of Lua source (which isn't supported on **NodeMCU** platforms anyway), and the line number information is also used to generate error messages. + +This overhead is sufficient large on limited RAM systems to replace this scheme by making two changes which optimize for space rather than time: + +- The encoding scheme used in this patch typically uses 1 byte per source line instead of 4 bytes per instruction, and this represents a 10 to 20-fold reduction in the size of this vector. The access time during compile is still **O(1)**, and **O(N)** during runtime error handling, where **N** is number of non-blank lines in the function. In practice this might add a few microseconds to the time take to generate the error message for typical embedded functions. + +- The line number, local and upvalue information is needed during the compilation of a given compilation unit (a source file or source string), but its only use after this is for debugging and so can be discarded. (This is what the `luac -s` option and `node.compile()` do). The line number information if available is used in error reporting. An extra API call has therefore been added to discarded this debug information on completion of the compilation. + +To minimise the impact within the C source code for the Lua system, an extra system define **LUA_OPTIMIZE_DEBUG** can be set in the `user_config.h` file to configure a given firmware build. This define sets the default value for all compiles and can take one of four values: + +1. (or not defined) use the default Lua scheme. +2. Use compact line encoding scheme and retain all debug information. +3. Use compact line encoding scheme and only retain line number debug information. +4. Discard all debug information on completion of compile. + +Building the firmware with the 0 option compiles to the pre-patch version. Options 1-3 generate the `strip_debug()` function, which allows this default value to be set at runtime. + +_Note that options 2 and 3 can also change the default behaviour of the `loadstring()` function in that any functions declared within the string cannot inherited any outer locals within the parent hierarchy as upvalues if these have been stripped of the locals and upvalues information._ + +### Details + +There are various API calls which compile and load Lua source code. During compilation each variable name is parsed, and is then resolved in the following order: + +- Against the list of local variables declared so far in the current scope is scanned for a match. + +- Against the local variable lists for each of the lexically parent functions are then scanned for a match, and if found the variable is tagged as an _upvalue_. + +- If unmatched against either of these local scopes then the variable defaults to being a global reference. + +The parser and code generator must therefore access the line mapping, upvalues, and locals information tables maintained in each function Prototype header during source compilation. This scoping scheme works because function compilation is recursive: if function A contains the definition of function B which contains the definition of function C, then the compilation of A is paused to compile B and this is in turn paused to compile C; then B complete and then A completes. + +The variable meta information is stored in standard Lua tables which are allocated using the standard Lua doubling algorithm and hence they can contain a lot of unused space. The parser therefore calls `close_func()` once compilation of a function has been completed to trim these vectors to the final sizes. + +The patch makes the following if `LUA_OPTIMIZE_DEBUG` > 0. (The existing functionality is preserved if this define is zero or undefined.) + +- It adds an extra API call: `stripdebug([level[, function]])` as discussed below. + +- It extends the trim logic in `close_func()` to replace this trim action by deleting the information according to the current default debug optimization level. + +- The `lineinfo` vector associated with each function is replaced by a `packedlineinfo` string using a run length encoding scheme that uses a repeat of an optional line number delta (this is omitted if the line offset is zero) and a count of the number of instruction generated for that source line. This scheme uses roughly an **M** byte vector where **M** is the number of non-blank source lines, as opposed to a **4N** byte vector where **N** is the number of VM instruction. This vector is built sequentially during code generation so it is this patch conditionally replaces the current map with an algorithm to generate the packed version on the fly. + +The `stripdebug([level[, function]])` call is processed as follows: + +- If both arguments are omitted then the function returns the current default strip level. + +- If the function parameter is omitted, then the level is used as the default setting for future compiles. The level must be 1-3 corresponding to the above debug optimization settings. Hence if `stripdebug(3)` is included in **init.lua**, then all debug information will be stripped out of subsequently compiled functions. + +- The function parameter if present is parsed in the same way as the function argument in `setfenv()` (except that the integer 0 level is not permitted, and this function tree corresponding to this scope is walked to implement this debug optimization level. + +The `packedlineinfo` encoding scheme is as follows: + +- It comprises a repeat of (optional) line delta + VM instruction count (IC) for that line starting from a base line number of zero. The line deltas are optional because line deltas of +1 are assumed as default and therefore not emitted. + +- ICs are stored as a single byte with the high bit set to zero. Sequences longer than 126 instructions for a single sequence are rare, but can be are encoded using a multi byte sequence using 0 line deltas, e.g. 126 (0) 24 for a line generating 150 VM instructions. The high bit is always unset, and note that this scheme reserves the code 0x7F as discussed below. + +- Line deltas are stored with the high bit set and are variable (little-endian) in length. Since deltas are always delimited by an IC which has the top bit unset, the length of each delta can be determined from these delimiters. Deltas are stored as signed ones-compliment with the sign bit in the second bit of low order byte, that is in the format (in binary) `1snnnnnnn [1nnnnnnn]*`, with `s` denoting the sign and `n…n` the value element using the following map. This means that a single byte is used encode line deltas in the range -63 … 65; two bytes used to encode line deltas in the range -8191 … 8193, etc.. +```C + value = (sign == 1) ? -delta : delta - 2 +``` + +- This approach has no arbitrary limits, in that it can accommodate any line delta or IC count. Though in practice, most deltas are omitted and multi-byte sequences are rarely generated. + +- The codes 0x00 and 0x7F are reserved in this scheme. This is because Lua allocates such growing vectors on a size-doubling basis. The line info vector is always null terminated so that the standard **strlen()** function can be used to determine its length. Any unused bytes between the last IC and the terminating null are filled with 0x7F. + +The current mapping scheme has **O(1)** access, but with a code-space overhead of some 140%. This alternative approach has been designed to be space optimized rather than time optimized. It requires the actual IC to line number map to be computed by linearly enumerating the string from the low instruction end during execution, resulting in an **O(N)** access cost, where **N** is the number of bytes in the encoded vector. However, code generation builds this information incrementally, and so only appends to it (or occasionally updates the last element's line number), and the patch adds a couple of fields to the parser `FuncState` record to enable efficient **O(1)** access during compilation. + +### Testing + +Essentially testing any eLua compiler or runtime changes are a total pain, because eLua is designed to be build against a **newlib**-based ELF. Newlib uses a stripped down set of headers and libraries that are intended for embedded use (rather than being ran over a standard operating system). Gdb support is effectively non-existent, so I found it just easier first to develop this code on a standard Lua build running under Linux (and therefore with full gdb support), and then port the patch to NodeMCU once tested and working. + +I tested my patch in standard Lua built with "make generic" and against the [Lua 5.1 suite](http://lua-users.org/lists/lua-l/2006-03/msg00723.html). The test suite was an excellent testing tool, and it revealed a number of cases that exposed logic flaws in my approach, resulting from Lua's approach of not carrying out inline status testing by instead implementing a throw / catch strategy. In fact I realised that I had to redesign the vector generation algorithm to handle this robustly. + +As with all eLua builds the patch assumes Lua will not be executing in a multithreaded environment with OS threads running different lua_States. (This is also the case for the NodeMCU firmware). It executes the full test suite cleanly as maximum test levels and I also added some specific tests to cover new **stripdebug** usecases. + +Once this testing was completed, I then ported the patch to the NodeMCU build. This was pretty straight forward as this code is essentially independent of the NodeMCU functional changes. The only real issue as to ensure that the NodeMCU `c_strlen()` calls replaced the standard `strlen()`, etc. + +I then built both `luac.cross` and firmware images with the patch disable to ensure binary compatibility with the non-patched version and then with the patch enabled at optimization level 3. + +In use there is little noticeable difference other than the code size during development are pretty much the same as when running with `node.compile()` stripped code. The new option 2 (retaining packed line info only) has such a minimal size impact that its worth using this all the time. I've also added a separate patch to NodeMCU (which this assumes) so that errors now generate a full traceback. + +### How to enable LCD + +Enabling LCD is simple: all you need is a patched version and define `LUA_OPTIMIZE_DEBUG` at the default level that you want in `app/include/user_config.h` and do a normal make. + +Without this define enabled, the unpatched version is generated. + +Note that since `node.compile()` strips all debug information, old **.lc** files generated by this command will still run under the patched firmware, but binary files which retain debug information will not work across patched and non-patched versions. + +Other than optionally including a `node.stripdebug(N)` or whatever in your **init.lua**, the patch is otherwise transparent at an application level. diff --git a/docs/en/lfs.md b/docs/en/lfs.md new file mode 100644 index 0000000000..91327d3cce --- /dev/null +++ b/docs/en/lfs.md @@ -0,0 +1,246 @@ +# Lua Flash Store (LFS) + +## Background + +An IoT device such as the ESP8266 has very different processor characteristics from the CPU in a typical PC: + +- Conventional CPUs have a lot of RAM, typically more than 1 Gb, that is used to store both code and data. IoT processors like the ESP variants use a [modified Harvard architecture](https://en.wikipedia.org/wiki/Modified_Harvard_architecture) where code can also be executed out of flash memory that is mapped into a address region separate from the limited RAM. + +- Conventional CPU motherboards include RAM and a lot of support chips. ESP modules are postage stamp-sized and typically comprise one ESP [SoC](https://en.wikipedia.org/wiki/System_on_a_chip) and a flash memory chip used to store firmware and a limited file system. + +Lua was originally designed as a general embeddable extension language for applications that would typically run on systems such as a PC, but its design goals of speed, portability, small kernel size, extensibility and ease-of-use also make Lua a good choice for embedded use on an IoT platform. Our NodeMCU firmware implementation was therefore constrained by the standard Lua core runtime system (**RTS**) that assumes a conventional CPU architecture with both Lua code and data in RAM; however ESP8266 modules only have approximately 48Kb RAM for application use, even though the firmware itself executes out of the larger flash-based program memory. + +This Lua Flash Store (**LFS**) patch modifies the NodeMCU Lua RTS to allow Lua code and its associated constant data to be executed directly out of flash-memory, just as the firmware itself is executed. This now enables NodeMCU Lua developers to create Lua applications with up to 256Kb Lua code and read-only (**RO**) constants executing out of flash, so that all of the RAM is available for read-write (**RW**) data. + +Though the ESP architecture does allow RW operations to flash, these are constrained by the write limitations of NAND flash architecture, as writing involves the block erasing of 4Kb pages and then overwriting each pach with new content. Whilst it is possible (as with SPIFFS) to develop R/W file systems working within this constraint, memory-mapped read access to flash is cached through a RAM cache in order to accelerate code execution, and this makes it practically impossible to modify executable code pages on the fly. Hence the LFS patch must work within a reflash-and-restart paradigm for reloading the LFS. + +The LFS patch does this by adding two API new calls to the `node` module: one to reflash the LFS and restart the processor, and one to access the LFS store once loaded. Under the hood, it also addresses all of the technical issues to make this magic happen. + +The remainder of this paper is split into two sections: + +- The first section provides an overview the issues that a Lua developer needs to understand at an application level to use LFS effectively. + +- The second gives more details on the technical issues that were addressed in order to implement the patch. This is a good overview for those that are interested, but many application programmers won't care how the magic happens, just that it does. + + +## Using LFS + +### Selecting the firmware + +Power developers might want to use Docker or their own build environment as per our [Building the firmware](https://nodemcu.readthedocs.io/en/master/en/build/) documentation, and so `app/include/user_config.h` has now been updated to include the necessary documentation on how to select the configuration options to make an LFS firmware build. + +However, most Lua developers seem to prefer the convenience of our [Cloud Build Service](https://nodemcu-build.com/), so we will add two extra menu options to facilitate building LFS images: + +Variable | Option +---------|------------ +LFS size | (none, 32Kb, 64Kb, 94Kb) The default is none. Selecting a numeric value builds in the corresponding LFS. +SPIFFS size | (default or a multiple of 64Kb) The cloud build will base the SPIFFS at 1Mb if an explicit size is specified. + +You must choose an explicit (non-default) LFS size to enable the use of LFS. Whilst you can use a default (maximal) SPIFFS configuration, most developers find it more useful to work with a fixed SPIFFS that has been sized to match their application reqirements. + +### Choosing your development lifecycle + + The build environment for generating the firmware images is Linux-based, but as you can use our cloud build service to generate these, you can develop NodeMCU applications on pretty much any platform including Windows and MacOS. Unfortunately LFS images must be built off-ESP on a host platform, so you must be able to run the `luac.cross` cross compiler on your development machine to build LFS images. + +- For Windows 10 developers, the easiest method of achieving this is to install the [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux). Most WSL users install the Ubuntu Bash shell as well; note that this is just a shell and some core GNU utilities (somewhat similar to Cygwin) rather than a full Ubuntu OS, as WSL extends the NT kernel to support the direct execution of Linux ELF images. WSL can directly run the `luac.cross` and `spiffsimg` that are build as part of the firmware. You will also need the `esptool.py` tool but `python.org` already provides Python releases for Windows. + +- Linux users can just use these tools natively. + +- In principle, only the build environment components needed to support `luac.cross` and `spiffsimg` are the `app/lua/lua_cross` and `tools/spifsimg` subdirectory makes. It should be straight forward to get these working under any environment which provides POSIX runtime support, including MacOS and Cygwin (for windows versions prior to Win10), but suitable developer effort is required to generate suitable executables; any volunteers? + +Most Lua developers seem to start with the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, a 'simple to use' IDE that enables beginning Lua developers to get started. However, ESPlorer relies on a UART connection and this can be slow and cumbersome, and it doesn't scale well for larger ESP application. + +So many experienced Lua developers switch to a rapid development cycle where they use a development machine to maintain your master Lua source. Going this route will allow you use your favourite program editor and source control, with one of various techniques for compiling the lua on-host and downloading the compiled code to the ESP: + +- If you use a fixed SPIFFS image (I find 128Kb is enough for most of my applications), then you can script recompiling your LC files, rebuilding a SPIFFS image and loading it onto the ESP using `esptool.py` in less than 60 sec. You can either embed the LFS.img in the SPIFFS, or you can use the `luac.cross -a` option to directly load the new LFS image into the LFS region within the firmware. + +- I now have an LFS aware version of my LuaOTA provisioning system (see `lua_examples/luaOTA`). This handles all of the incremental compiling and LFS reloads transparently. This is typically integrated into the ESP application. + +- Another option would be to include the FTP and Telnet modules in the base LFS image and to use telnet and FTP to update your system. (Given that a 64Kb LFS can store thousands of lines of Lua, doing this isn't much of an issue.) + +My current practice is to use a small bootstrap `init.lua` file in SPIFFS to load the `_init` module from LFS, and this does all of the actual application initialisation. My `init.lua`: + +- Is really a Lua binary (`.lc`) file renamed to a `.lua` extension. Using a binary init file avoids loading the Lua compiler. This works because even though the firmware looks for `init.lua`, the file extension itself is a just a convention; it is treated as a Lua binary if it has the correct Lua binary header. + +- Includes a 1 sec delay before connecting to the Wifi. This is a "just in case" when I am developing. This is enough to allow me to paste a `file.remove'init.lua'` into the UART if I want to do different development paths. + +No doubt some standard usecase / templates will be developed by the community over the next six months. + +### Programming Techniques and approachs + +I have found that moving code into LFS has changed my coding style, as I tend to use larger modules and I don't worry about in-memory code size. This facilitates a more 'keep it simple stupid' coding style, so my ESP Lua code now looks more similar to host-based Lua code. I still prefer to keep the module that I am currently testing in SPIFFS, and only move modules into LFS once they are stable. However if you use `require` to load modules then this can all be handled by the require loader. + +Here is the code fragment that I use in my `_init` module to do this magic: + +```Lua +do + local index = node.flashindex + -- Setup the LFS object + local lfs_t = { + __index = function(_, name) + local fn_ut, ba, ma, size, modules = index(name) + if not ba then + return fn_ut + elseif name == '_time' then + return fn_ut + elseif name == '_config' then + local fs_ma, fs_size = file.fscfg() + return {ba, ma, fs_ma, size, fs_size} + elseif name == '_list' then + return modules + else + return nil + end + end, + __newindex = function(_, name, value) + error("LFS is readonly. Invalid write to LFS." .. name, 2) + end + } + rawset(getfenv(),'LFS', setmetatable(lfs_t,lfs_t)) + -- And add LFS to the require path list + local function loader_flash(module) + local fn, ba = index(module) + return ba and "Module not in LFS" or fn + end + package.loaders[3] = loader_flash + +end +``` + +Once this has been executed, if you have a function module `func1` in LFS, then `LFS.func1(x,y,z)` just works as you would expect. The LFS properties `_time`, `_config` and `_list` can be used to access the other LFS metadata that you need. + +Of course, if you use Lua modules to build your application then `require "some_module"` will automatically path in and load your modules from LFS. Note that SPIFFS is still ahead of LFS in this search list, so if you have a dev version in SPIFFS, say, then this will be loaded first. However, if you want to want to swap this search order so that the LFS is searched first, then set `package.loaders[1] = loader_flash` in your `_init` code. If you need to swap the search order temporarily for development or debugging, then do this after you've run the `_init` code: + +```Lua +do local pl = package.loaders; pl[1],pl[3] = pl[3],pl[1]; end +``` + +Whilst LFS is primarily used to store compiled modules, it also includes its own string table and any strings loaded into this can be used in your Lua application without taking any space in RAM. Hence, you might also want to preload any other frequently used strings into LFS as this will both save RAM use and reduced the Lua-custom Garbage Collector (**LGC**) overheads. + +The patch adds an extra debug function `getstrings()` function to help you determine what strings are worth adding to LFS. This takes an optional string argument `'RAM'` (the default) or `'ROM'`, and returns a list of the strings in the corresponding table. So the following example can be used to get a listing of the strings in RAM. You can enter the following Lua at the interactive prompt or call it as a debug function during a running application in order to generate this string list. + +```Lua +do + local a=debug.getstrings'RAM' + for i =1, #a do a[i] = ('%q'):format(a[i]) end + print ('local preload='..table.concat(a,',')) +end +``` + +If you then create a file, say `LFS_dummy_strings.lua`, and put these `local preload` lines in it, and include this file in your `luac.cross -f`, then the cross compiler will generate a ROM string table that includes all strings referenced in this dummy module. You never need to call this module; just it's inclusion in the LFS build is enough to add the strings to the ROM table. Once in the ROM table, then you can use them subsequently in your application without incurring any RAM or LGC overhead. The following example is a useful starting point, but if needed then you can add to this +for your application. + +```Lua +local preload = "?.lc;?.lua", "@init.lua", "_G", "_LOADED", "_LOADLIB", "__add", +"__call", "__concat", "__div", "__eq", "__gc", "__index", "__le", "__len", "__lt", +"__mod", "__mode", "__mul", "__newindex", "__pow", "__sub", "__tostring", "__unm", +"collectgarbage", "cpath", "debug", "file", "file.obj", "file.vol", "flash", +"getstrings", "index", "ipairs", "list", "loaded", "loader", "loaders", "loadlib", +"module", "net.tcpserver", "net.tcpsocket", "net.udpsocket", "newproxy", "package", +"pairs", "path", "preload", "reload", "require", "seeall", "wdclr" +``` + +## Technical Issues + +Whilst memory capacity isn't a material constraint on most conventional machines, the Lua RTS still embeds some features to minimise overall memory usage. In particular: + +- The more resource intensive data types are know as _collectable objects_, and the RTS includes a LGC which regularly scans these collectable resources to determine which are no longer in use, so that their associated memory can be reclaimed and reused. + +- The Lua RTS also treats strings and compiled function code as collectable objects, so that these can also be LGCed when no longer referenced + +The compiled code, as executed by Lua RTS, internally comprises one or more function prototypes (which use a `Proto` structure type) plus their associated vectors (constants, instructions and meta data for debug). Most of these compiled constant types are basic (e.g. numbers) and the only collectable constant data type are strings. The other collectable types such as arrays are actually created at runtime by executing Lua compiled instructions to build each resource dynamically. + +Currently, when any Lua file is loaded into an ESP application, the RTS loads the corresponding compiled version into RAM. Each compiled function has its own Proto structure hierarchy, but this hierarchy is not exposed directly to the running application; instead the compiler generate `CLOSURE` instruction which is executed at runtime to bind the Proto to a Lua function value thus creating a [closure](https://en.wikipedia.org/wiki/Closure_(computer_programming)). Since this occurs at runtime, any `Proto` can be bound to multiple closures. A Lua closure can have multiple RW [Upvalues](https://www.lua.org/pil/27.3.3.html) bound to it, and so function value is much like a Lua object in that it is refering to something that can contain RW state, even though the `Proto` hierarchy itself is intrinsically RO. + +Whilst advanced ESP Lua programmers can use overlay techniques to ensure that only active functions are loaded into RAM and thus increase the effective application size, this adds to runtime and program complexity. Moving Lua "program" resources into ESP Flash addressable memory typically doubles the effective RAM available, and largley removes the need to complicate applications code to facilitate overlaying. + +Any RO resources that are relocated to a flash address space: + +- Must not be collected. Also RW references to RO resources must be robustly handled by the LGC. +- Cannot reference to any volatile RW data elements (though RW resources can refer to RO resources). + +All strings in Lua are [interned](https://en.wikipedia.org/wiki/String_interning), so that only one copy of any string is kept in memory and most string manipulation uses the address of this single copy as a unique reference. This uniqueness and the LGC of strings is facilitated by using a global string table that is hooked into the Lua Global State. Under standard Lua, any new string is first resolved against RAM string table, with only the string-misses being added to the string table. The LFS patch adds a second RO string table in flash and which contains all strings used in LFS Protos. Maintaining integrity across the two RAM and RO string tables is simple and low-cost, with LFS resolution process extended across both the RAM and ROM string tables. Hence any strings already in the ROM string table will generate a unique string reference without the need to add an additional entry in the RAM table. This both significantly reduces the size of the RAM string table, and removes a lot of strings from the LCG scanning. + +Note that early development implementations of the LFS build process allowed on-target ESP builds. Unfortunately, we found in practice that the Lua compiler was so resource hungry that it was impractical to get this to scale to usable application sizes, and we therefore abandoned this approach, moving the LFS build process onto the development host machine by embedding this into `luac.cross`. This approach avoids all of the update integrity issues involved in building a new LFS which might require RO resources already referenced in the RW ones. + +Any LFS image can be loaded in the LFS store by one of two mechanisms: + +- The image can be build on the host and then copied into SPIFFS. Calling the `node.flashreload()` API with this filename will load the image, and then schedule a restart to leave the ESP in normal application mode, but with an updated flash block. This sequence is essentially atomic. Once called, the only exit is the reboot. + +- The second option is to build the LFS image using the `-a` option to base it at the correct absolute address of the LFS store for a given firmware image. The LFS can then be flashed to the ESP along with the firmware image. + +The LFS store is a fixed size for any given firmware build (configurable by the a pplication developer through `user_config.h`) and is at a build-specific base address within the `ICACHE_FLASH` address space. This is used to store the ROM string table and the set of `Proto` hierarchies corresponding to a list of Lua files in the loaded image. + +A separate `node.flashindex()` function creates a new Lua closure based on a module loaded into LFS and more specfically its flash-based prototype; whilst this access function is not transparent at a coding level, this is no different functionally than already having to handle `lua` and `lc` files and the existing range of load functions (`load`,`loadfile`, `loadstring`). Either way, creating a closure on flash-based prototype is _fast_ in terms of runtime. (It is basically a single instruction rather than a compile, and it has minimal RAM impact.) + +### Basic approach + +This **LFS** patch uses two string tables: the standard Lua RAM-based table (`RWstrt`) and a second RO flash-based one (`ROstrt`). The `RWstrt` is searched first when resolving new string requests, and then the `ROstrt`. Any string not already in either table is then added to the `RWstrt`, so this means that the RAM-based string table only contains application strings that are not already defined in the `ROstrt`. + +Any Lua file compiled into the LFS image includes its main function prototype and all the child resources that are linked in its `Proto` structure; so all of these resources are compiled into the LFS image with this entire hierarchy self-consistently within the flash memory. + +```C + TValue *k; Constants used by the function + Instruction *code The Lua VM instuction codes + struct Proto **p; Functions defined inside the function + int *lineinfo; Debug map from opcodes to source lines + struct LocVar *locvars; Debug information about local variables + TString **upvalues Debug information about upvalue names + TString *source String name associated with source file + ``` + +Such LFS images are created by `luac.cross` using the `-f` option, and this builds a flash image based on the list of modules provided but with a master "main" function of the form: + +```Lua +local n = ...,1518283691 -- The Unix Time of the compile +if n == "module1" then return module1 end +if n == "module2" then return module2 end +-- and so on +if n == "moduleN" then return module2 end +return 1518283691,"module1","module2", --[[ ... ]] ""moduleN" +``` + +You can't actually code this Lua because the modules are in separate compilation units, but the compiler being a compiler can just emit the compiled code directly. (See `app/lua/luac_cross/luac.c` for the details.) + +The deep cross-copy of the `Proto` hierarchy is also complicated because current hosts are typically 64bit whereas the ESPs are 32bit, so the structures need repacking. (See `app/lua/luac_cross/luac.c` for the details.) + +With this patch, the `luac.cross` build has been moved into the overall application hierarchy and is now simply a part of the NodeMCU make. The old Lua script has been removed from the `tools` directory, together with the need to have Lua preinstalled on the host. + +The LFS image is by default position independent, so is independent of the actual NodeMCU target image. You just have to copy it to the target file system and execute a `reload` to copy this to the correct location, relocating all address to the correct base. (See `app/lua/lflash.c` for the details.) This process is fast. However, -a `luac.cross -a` also allows absolute address images to be built for direct flashing into the LFS store during provisioning. + +### Impact of the Lua Garbage Collector + +The LGC applies to what the Lua VM classifies as collectable objects (strings, tables, functions, userdata, threads -- known collectively as `GCObjects`). A simple two "colour" LGC was used in previous Lua versions, but Lua 5.1 introduced the Dijkstra's 3-colour (*white*, *grey*, *black*) variant that enabled the LGC to operate in an incremental mode. This permits smaller LGC steps interspersed by LGC pause, and is very useful for larger scale Lua implementations. Whilst this is probably not really needed for IoT devices, NodeMCU follows this standard Lua 5.1 implementation, albeit with the `elua` EGC changes. + +In fact, two *white* flavours are used to support incremental working (so this 3-colour algorithm really uses 4). All newly allocated collectable objects are marked as the current *white*, and include a link in their header to enable scanning through all such Lua objects. They may also be referenced directly or indirectly via one of the Lua application's *roots*: the global environment, the Lua registry and the stack. The LGC operates two broad phases: **mark** and **sweep**. + +The LGC algorithm is quite complex and assumes that all GCObjects are RW so that a flag byte within each object can be updated during the mark and sweep processing. LFS introduces GCObjects that are actually stored in RO memory and are therefore truly RO. Any attempt to update their content during LGC will result in the firmware crashing with a memory exception, so the LFS patch must therefore modify the LGC processing to avoid such potential updates whilst maintaining its integrity, and the remainder of this +section provides further detail on how this was achieved. + +The **mark** phase walks collectable objects by a recursive walk starting at at the LGC roots. (This is referred to as _traverse_.) Any object that is visited in this walk has its colour flipped from *white* to *grey* to denote that it is in use, and it is relinked into a grey list. The grey list is iteratively processed, removing one grey object at a time. Such objects can reference other objects (e.g. a table has many keys and values which can also be collectable objects), so each one is then also traversed and all objects reachable from it are marked, as above. After an object has been traversed, it's turned from grey to black. The LGC will walks all RW collectable objects, traversing the dependents of each in turn. As RW objects can now refer to RO ones, the traverse routines has additinal tests to skip trying to mark any RO LFS references. + +The white flavour is flipped just before entering the **sweep** phase. This phase then loops over all collectable objects. Any objects found with previous white are no longer in user, and so can be freed. The 'current' white are kept; this prevents any new objected created during a paused sweep from being accidentally collected before being marked, but this means that it takes two sweeps to free all unused objects. There are other subtleties introduced in this 3-colour algorithm such as barriers and back-tracking to maintain integrity of the LGC, and these also needed extra rules to handle RO GCObjects correclty, but detailed explanation of these is really outside the scope of this paper. + +As well as standard collectable GCOobjets: + +- Standard Lua has the concept of **fixed** objects. (E.g. the main thread). These won't be collected by the LGC, but they may refer to objects that aren't fixed, so the LGC still has to walk through an fixed objects. + +- eLua added the the concept of **readonly** objects, which confusingly are a hybrid RW/RO implementation, where the underlying string resource is stored as a program constant in flash memory but the `TSstring` structure which points to this is still kept in RAM and can by GCed, except that in this case the LGC does not free the RO string constant itself. + +- LFS introduces a third variant **flash** object for `LUA_TPROTO` and `LUA_TSTRING` types. Flash objects can only refer to other flash objects and are entirely located in the LFS area in flash memory. + +The LGC already processed the _fixed_ and _readonly_ object, albeit as special cases. In the case of _flash_ GCObjects, the `mark` flag is in read-only memory and therefore the LGC clearly can't use this as a RW flag in its mark and sweep processing. So the LGC skips any marking operations for flash objects. Likewise, where all other GCObjects are linked into one of a number of sweeplists using the object's `gclist` field. In the case of flash objects, the compiler presets the `mark` and `gclist` fields with the fixed and readonly mark bits set, and the list pointer to `NULL` during the compile process. + +As far as the LGC algorithm is concerned, encountering any _flash_ object in a sweep is a dead end, so that branch of the walk of the GCObject hierarchy can be terminated on encountering a flash object. This in practice all _flash_ objects are entirely removed from the LGC process, without compromising collection of RW resources. + +### General comments + +- **Reboot implementation**. Whilst the application initiated LFS reload might seem an overhead, it typically only adds a few seconds per reboot. We may also consider the future enhancement of the `esptool.py` to enable the inclusion of an LFS image into the unified application flash image. + +- **LGC reduction**. Since the cost of LGC is directly related to the size of the LGC sweep lists, moving RO resources into LFS memory removes them from the LGC scope and therefore reduces LGC runtime accordingly. + +- **Typical Usecase**. The rebuilding of a store is an occasional step in the development cycle. (Say up to 10 times a day in a typical intensive development process). Modules and source files under development would typically be executed from SPIFFS in `.lua` format. The developer is free to reorder the `package.loaders` and load any SPIFFS files in preference to Flash ones. And if stable code is moved into Flash, then there is little to be gained in storing development Lua code in SPIFFS in `lc` compiled format. + +- **Flash caching coherency**. The ESP chipset employs hardware enabled caching of the `ICACHE_FLASH` address space, and writing to the flash does not flush this cache. However, in this restart model, the CPU is always restarted before any updates are read programmatically, so this (lack of) coherence isn't an issue. + +- **Failsafe reversion**. Since the entire image is precompiled, the chances of failure during reload are small. The loader uses the Flash NAND rules to write the flash header flag in two parts: one at start of the load and again at the end. If on reboot, the flag in on incostent state, then the LFS is cleared and disabled until the next reload. diff --git a/docs/en/modules/node.md b/docs/en/modules/node.md index 2752e83309..86281fd6ad 100644 --- a/docs/en/modules/node.md +++ b/docs/en/modules/node.md @@ -150,15 +150,19 @@ flash ID (number) Returns the function reference for a function in the LFS (Lua Flash Store). #### Syntax -`node.flashindex()` +`node.flashindex(modulename)` #### Parameters `modulename` The name of the module to be loaded. If this is `nil` or invalid then an info list is returned #### Returns -- In the case where the LFS in not loaded, `node.flashindex` evaluates to `nil`, followed by the flash and mapped base addresss of the LFS +- In the case where the LFS in not loaded, `node.flashindex` evaluates to `nil`, followed by the flash and mapped base addresss of the LFS - If the LFS is loaded and the function is called with the name of a valid module in the LFS, then the function is returned in the same way the `load()` and the other Lua load functions do. -- Otherwise an extended info list is returned: the Unix time of the LFS build, the flash and mapped base addresses of the LFS and its current length, and an array of the valid module names in the LFS. +- Otherwise an extended info list is returned: the Unix time of the LFS build, the flash and mapped base addresses of the LFS and its current length, and an array of the valid module names in the LFS. + +#### Example + +The `node.flashindex()` is a low level API call that is normally wrapped using standard Lua code to present a simpler application API. See the module `_init.lua` in the `lua_examples/lfs` directory for an example of how to do this. ## node.flashreload() diff --git a/ld/nodemcu.ld b/ld/nodemcu.ld index 3b2006de29..416a4e4160 100644 --- a/ld/nodemcu.ld +++ b/ld/nodemcu.ld @@ -241,14 +241,17 @@ SECTIONS KEEP(*(.lua_rotable)) LONG(0) LONG(0) /* Null-terminate the array */ - /* SDK doesn't use libc functions, and are therefore safe to put in flash */ + /* SDK doesn't use libc functions, and are therefore safe to put in flash */ */libc.a:*.o(.text* .literal*) /* end libc functions */ + /* Reserved areas, flash page aligned and last */ + . = ALIGN(4096); + KEEP(*(.irom.reserved .irom.reserved.*)) + _irom0_text_end = ABSOLUTE(.); _flash_used_end = ABSOLUTE(.); } >irom0_0_seg :irom0_0_phdr =0xffffffff - } /* get ROM code address */ diff --git a/lua_examples/lfs/_init.lua b/lua_examples/lfs/_init.lua new file mode 100644 index 0000000000..3a6f406253 --- /dev/null +++ b/lua_examples/lfs/_init.lua @@ -0,0 +1,83 @@ +-- +-- File: _init.lua +--[[ + + This is a template for the LFS equivalent of the SPIFFS init.lua. + + It is a good idea to such an _init.lua module to your LFS and do most of the LFS + module related initialisaion in this. This example uses standard Lua features to + simplify the LFS API. + + The first section adds a 'LFS' table to _G and uses the __index metamethod to + resolve functions in the LFS, so you can execute the main function of module + 'fred' by executing LFS.fred(params), etc. It also implements some standard + readonly properties: + + LFS._time The Unix Timestamp when the luac.cross was executed. This can be + used as a version identifier. + + LFS._config This returns a table of useful configuration parameters, hence + print (("0x%6x"):format(LFS._config.lfs_base)) + gives you the parameter to use in the luac.cross -a option. + + LFS._list This returns a table of the LFS modules, hence + print(table.concat(LFS._list),'\n') + gives you a single column listing of all modules in the LFS. + +---------------------------------------------------------------------------------]] + +local index = node.flashindex + +local lfs_t = { + __index = function(_, name) + local fn_ut, ba, ma, size, modules = index(name) + if not ba then + return fn_ut + elseif name == '_time' then + return fn_ut + elseif name == '_config' then + local fs_ma, fs_size = file.fscfg() + return {lfs_base = ba, lfs_mapped = ma, lfs_size = size, + fs_mapped = fs_ma, fs_size = fs_size} + elseif name == '_list' then + return modules + else + return nil + end + end, + + __newindex = function(_, name, value) + error("LFS is readonly. Invalid write to LFS." .. name, 2) + end, + + } + +local G=getfenv() +G.LFS = setmetatable(lfs_t,lfs_t) + +--[[------------------------------------------------------------------------------- + The second section adds the LFS to the require searchlist, so that you can + require a Lua module 'jean' in the LFS by simply doing require "jean". However + note that this is at the search entry following the FS searcher, so if you also + have jean.lc or jean.lua in SPIFFS, then this SPIFFS version will get loaded into + RAM instead of using. (Useful, for development). + + Note that if you want LFS to take a higher priority than SPIFFS, the use the [2] + slot for loaders. If you want to reverse these in your init.lua or interactively + for debugging, then use + + do local pl = package.loaders; pl[2],pl[4] = pl[4],pl[2]; end +---------------------------------------------------------------------------------]] + +package.loaders[4] = function(module) -- loader_flash + local fn, ba = index(module) + return ba and "Module not in LFS" or fn +end + +--[[------------------------------------------------------------------------------- + You can add any other initialisation here, for example a couple of the globals + are never used, so setting them to nil saves a couple of global entries +---------------------------------------------------------------------------------]] + +G.module = nil -- disable Lua 5.0 style modules to save RAM +package.seeall = nil diff --git a/lua_examples/lfs/dummy_strings.lua b/lua_examples/lfs/dummy_strings.lua new file mode 100644 index 0000000000..344893cc5d --- /dev/null +++ b/lua_examples/lfs/dummy_strings.lua @@ -0,0 +1,37 @@ +-- +-- File: LFS_dummy_strings.lua +--[[ + luac.cross -f generates a ROM string table which is part of the compiled LFS + image. This table includes all strings referenced in the loaded modules. + + If you want to preload other string constants, then one way to achieve this is + to include a dummy module in the LFS that references the strings that you want + to load. You never need to call this module; it's inclusion in the LFS image is + enough to add the strings to the ROM table. Your application can use any strings + in the ROM table without incuring any RAM or Lua Garbage Collector (LGC) + overhead. + + The local preload example is a useful starting point. However, if you call the + following code in your application during testing, then this will provide a + listing of the current RAM string table. + +do + local a=debug.getstrings'RAM' + for i =1, #a do a[i] = ('%q'):format(a[i]) end + print ('local preload='..table.concat(a,',')) +end + + This will exclude any strings already in the ROM table, so the output is the list + of putative strings that you should consider adding to LFS ROM table. + +---------------------------------------------------------------------------------]] + +local preload = "?.lc;?.lua", "/\n;\n?\n!\n-", "@init.lua", "_G", "_LOADED", +"_LOADLIB", "__add", "__call", "__concat", "__div", "__eq", "__gc", "__index", +"__le", "__len", "__lt", "__mod", "__mode", "__mul", "__newindex", "__pow", +"__sub", "__tostring", "__unm", "collectgarbage", "cpath", "debug", "file", +"file.obj", "file.vol", "flash", "getstrings", "index", "ipairs", "list", "loaded", +"loader", "loaders", "loadlib", "module", "net.tcpserver", "net.tcpsocket", +"net.udpsocket", "newproxy", "package", "pairs", "path", "preload", "reload", +"require", "seeall", "wdclr", "not enough memory", "sjson.decoder","sjson.encoder", +"tmr.timer" diff --git a/lua_examples/lfs/lfs_fragments.lua b/lua_examples/lfs/lfs_fragments.lua index 1d027533df..83f70f2a12 100644 --- a/lua_examples/lfs/lfs_fragments.lua +++ b/lua_examples/lfs/lfs_fragments.lua @@ -4,8 +4,12 @@ -- image for the first time bare, that is without either LFS or SPIFFS preloaded -- then enter the following commands interactively through the UART: -- -local _,mapa,fa=node.flashindex(); return ('0x%x, 0x%x, 0x%x'):format( - mapa,fa,file.fscfg()) +do + local _,ma,fa=node.flashindex() + for n,v in pairs{LFS_MAPPED=ma, LFS_BASE=fa, SPIFFS_BASE=sa} do + print(('export %s=""0x%x"'):format(n, v) + end +end -- -- This will print out 3 hex constants: the absolute address used in the -- 'luac.cross -a' options and the flash adresses of the LFS and SPIFFS. @@ -33,37 +37,6 @@ $ESPTOOL --port $USB --baud 460800 write_flash -fm dio 0x100000 \ # and now you are good to go ]] ------------------------------------------------------------------------------------ --- --- It is a good idea to add an _init.lua module to your LFS and do most of the --- LFS module related initialisaion in this. This example uses standard Lua --- features to simplify the LFS API. --- --- The first adds a 'LFS' table to _G and uses the __index metamethod to resolve --- functions in the LFS, so you can execute the main function of module 'fred' --- by doing LFS.fred(params) --- --- The second adds the LFS to the require searchlist so that you can require a --- Lua module 'jean' in the LFS by simply doing require "jean". However not that --- this is at the search entry following the FS searcher, so if you also have --- jean.lc or jean.lua in SPIFFS, then this will get preferentially loaded, --- albeit into RAM. (Useful, for development). --- -do - local index = node.flashindex - local lfs_t = { __index = function(_, name) - local fn, ba = index(name) - if not ba then return fn end -- or return nil implied - end} - getfenv().LFS = setmetatable(lfs_t,lfs_t) - - local function loader_flash(module) - local fn, ba = index(module) - return ba and "Module not in LFS" or fn - end - package.loaders[3] = loader_flash - -end ----------------------------------------------------------------------------------- -- @@ -73,8 +46,9 @@ end -- module in LFS. Here is an example. It's a good idea either to use a timer -- delay or a GPIO pin during development, so that you as developer can break into -- the boot sequence if there is a problem with the _init bootstrap that is causing --- a panic loop. Here is one example of how you might do this. You have a second to --- inject tmr.stop(0) into UART0. Extend if your reactions can't meet this. +-- a panic loop. Here is one example of how you might do this. You have a second +-- to inject tmr.stop(0) into UART0. Extend this dealy if your reactions can't +-- meet this. -- -- You also want to do autoload the LFS, for example by adding the following: -- @@ -87,38 +61,3 @@ tmr.alarm(0, 1000, tmr.ALARM_SINGLE, local fi=node.flashindex; return pcall(fi and fi'_init') end) ------------------------------------------------------------------------------------ --- --- The debug.getstrings function can be used to get a listing of the RAM (or ROM --- if LFS is loaded), as per the following example, so you can do this at the --- interactive prompt or call it as a debug function during a running application. --- -do - local a=debug.getstrings'RAM' - for i =1, #a do a[i] = ('%q'):format(a[i]) end - print ('local preload='..table.concat(a,',')) -end - ------------------------------------------------------------------------------------ --- --- File: LFS_dummy_strings.lua --- --- luac.cross -f will generate a ROM string table that includes all strings --- referenced in the loaded modules. If you want to preload other string constants --- hen the trick is to include a dummy module in the LFS. You never need to call --- this. It's inclusion is enough to add the strings to the ROM table. Once in --- the ROM table, then you can use them in your application without incuring any --- RAM or Lua Garbage Collector (LGC) overhead. Here is a useful starting point, --- but you can add to this for your application. --- --- The trick is to build the LFS as normal then run the previous example from your --- running application and append these lines to this file. --- -local preload = "?.lc;?.lua", "@init.lua", "_G", "_LOADED", "_LOADLIB", "__add", -"__call", "__concat", "__div", "__eq", "__gc", "__index", "__le", "__len", "__lt", -"__mod", "__mode", "__mul", "__newindex", "__pow", "__sub", "__tostring", "__unm", -"collectgarbage", "cpath", "debug", "file", "file.obj", "file.vol", "flash", -"getstrings", "index", "ipairs", "list", "loaded", "loader", "loaders", "loadlib", -"module", "net.tcpserver", "net.tcpsocket", "net.udpsocket", "newproxy", "package", -"pairs", "path", "preload", "reload", "require", "seeall", "wdclr" - diff --git a/mkdocs.yml b/mkdocs.yml index 840b43cd33..e28e6386e1 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -24,13 +24,16 @@ pages: - Home: 'en/index.md' - Building the firmware: 'en/build.md' - Flashing the firmware: 'en/flash.md' - - Internal filesystem notes: 'en/spiffs.md' - - Filesystem on SD card: 'en/sdcard.md' - Uploading code: 'en/upload.md' - FAQs: - Lua Developer FAQ: 'en/lua-developer-faq.md' - Extension Developer FAQ: 'en/extn-developer-faq.md' - Hardware FAQ: 'en/hardware-faq.md' + - Whitepapers: + - Filesystem on SD card: 'en/sdcard.md' + - Internal filesystem notes: 'en/spiffs.md' + - Lua Compact Debug(LCD): 'en/lfs.md' + - Lua Flash Store(LFS): 'en/lcd.md' - Support: 'en/support.md' - Modules: - 'adc': 'en/modules/adc.md' diff --git a/tools/Makefile b/tools/Makefile index 99dcacb7d0..7356db1ec6 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -61,7 +61,7 @@ spiffsimg: spiffsimg/spiffsimg @echo Built spiffsimg in spiffsimg/spiffsimg spiffsimg/spiffsimg: - @$(MAKE) -C spiffsimg CC=$(HOSTCC) + @$(MAKE) -C spiffsimg spiffsscript: remove-image LFSimage spiffsimg/spiffsimg rm -f ./spiffsimg/spiffs.lst From 17ae6e20c784152a290b0ff23ee43f9c968efcb2 Mon Sep 17 00:00:00 2001 From: TerryE Date: Sat, 23 Jun 2018 00:37:31 +0100 Subject: [PATCH 08/61] Fix Travis build failure --- tools/spiffsimg/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/spiffsimg/Makefile b/tools/spiffsimg/Makefile index 8656d114f2..fbf73ea2d2 100644 --- a/tools/spiffsimg/Makefile +++ b/tools/spiffsimg/Makefile @@ -1,3 +1,5 @@ +CC =gcc + SRCS=\ main.c \ ../../app/spiffs/spiffs_cache.c ../../app/spiffs/spiffs_check.c ../../app/spiffs/spiffs_gc.c ../../app/spiffs/spiffs_hydrogen.c ../../app/spiffs/spiffs_nucleus.c From a3c2f48fc952582e10154cc833fa6e984b5dcdc4 Mon Sep 17 00:00:00 2001 From: TerryE Date: Tue, 26 Jun 2018 15:54:56 +0100 Subject: [PATCH 09/61] Fix makefile whitespace as per dnc40085 review --- tools/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/Makefile b/tools/Makefile index 7356db1ec6..b00f7a32bc 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -72,7 +72,7 @@ spiffsscript: remove-image LFSimage spiffsimg/spiffsimg ifneq ($(LFSSOURCES),) LFSimage: $(LFSSOURCES) - ../luac.cross -f -o $(FSSOURCE)flash.img $(LFSSOURCES) + ../luac.cross -f -o $(FSSOURCE)flash.img $(LFSSOURCES) else LFSimage: rm -f $(FSSOURCE)flash.img From 3f396cba22ebeb0a202a93ffc614cdbdacf54f68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sat, 30 Jun 2018 12:27:59 +0200 Subject: [PATCH 10/61] Fix TOC structure and LCD/LFS links --- mkdocs.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index e28e6386e1..29bb7bd94a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -25,16 +25,16 @@ pages: - Building the firmware: 'en/build.md' - Flashing the firmware: 'en/flash.md' - Uploading code: 'en/upload.md' + - Support: 'en/support.md' - FAQs: - Lua Developer FAQ: 'en/lua-developer-faq.md' - Extension Developer FAQ: 'en/extn-developer-faq.md' - Hardware FAQ: 'en/hardware-faq.md' - Whitepapers: - Filesystem on SD card: 'en/sdcard.md' - - Internal filesystem notes: 'en/spiffs.md' - - Lua Compact Debug(LCD): 'en/lfs.md' - - Lua Flash Store(LFS): 'en/lcd.md' - - Support: 'en/support.md' + - Internal filesystem: 'en/spiffs.md' + - Lua Compact Debug(LCD): 'en/lcd.md' + - Lua Flash Store(LFS): 'en/lfs.md' - Modules: - 'adc': 'en/modules/adc.md' - 'ads1115' : 'en/modules/ads1115.md' From 784058fa112b86e975403a7ed3116534b456f41f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sat, 30 Jun 2018 21:13:15 +0200 Subject: [PATCH 11/61] Work around RTD issue with new MkDocs --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 29bb7bd94a..3cc955ffd2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -3,7 +3,7 @@ site_description: Description of the NodeMCU documentation repo_url: https://github.com/nodemcu/nodemcu-firmware/ theme: readthedocs -strict: true +strict: false # mustn't be true due to https://github.com/rtfd/readthedocs.org/issues/4314 markdown_extensions: #http://pythonhosted.org/Markdown/extensions/admonition.html From 8dc6eb62dfcd1ad0ac9256d6984fcca25f70bcb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sat, 30 Jun 2018 21:50:38 +0200 Subject: [PATCH 12/61] Update comments --- rtd-requirements.txt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/rtd-requirements.txt b/rtd-requirements.txt index fa5a659e9e..5052ca20a3 100644 --- a/rtd-requirements.txt +++ b/rtd-requirements.txt @@ -1,7 +1,5 @@ ################################################################# # This file is configured in RTD -> Admin -> Advanced Settings! # ################################################################# -# RTD - MkDocs integration is broken for -# - MkDocs >= 0.17 due to in-site search failures: https://github.com/rtfd/readthedocs.org/issues/3174 -# - MkDocs >= 0.16 due to stuck fly-out menu: https://groups.google.com/d/msg/mkdocs/v7AVbeB105w/FIlE_n2-AgAJ +# Enforce a specific MkDocs version by using the standard pip requirements.txt syntax # mkdocs >= 0.16.3, < 0.17 From cb694d59afbc55bb0552f67c9447be6783f718a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sun, 1 Jul 2018 21:28:08 +0200 Subject: [PATCH 13/61] Add note about Lua mDNS client --- docs/en/modules/mdns.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/en/modules/mdns.md b/docs/en/modules/mdns.md index 315da8411c..6522c348cb 100644 --- a/docs/en/modules/mdns.md +++ b/docs/en/modules/mdns.md @@ -3,7 +3,11 @@ | :----- | :-------------------- | :---------- | :------ | | 2016-02-24 | [Philip Gladstone](https://github.com/pjsg) | [Philip Gladstone](https://github.com/pjsg) | [mdns.c](../../../app/modules/mdns.c)| -[Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) is used as part of Bonjour / Zeroconf. This allows system to identify themselves and the services that they provide on a local area network. Clients are then able to discover these systems and connect to them. +[Multicast DNS](https://en.wikipedia.org/wiki/Multicast_DNS) is used as part of Bonjour / Zeroconf. This allows systems to identify themselves and the services that they provide on a local area network. Clients are then able to discover these systems and connect to them. + +!!! note + + This is a mDNS *server* module. If you are looking for a mDNS *client* for NodeMCU (i.e. to query mDNS) then [udaygin/nodemcu-mdns-client](https://github.com/udaygin/nodemcu-mdns-client) may be an option. ## mdns.register() Register a hostname and start the mDNS service. If the service is already running, then it will be restarted with the new parameters. @@ -15,7 +19,7 @@ Register a hostname and start the mDNS service. If the service is already runnin - `hostname` The hostname for this device. Alphanumeric characters are best. - `attributes` A optional table of options. The keys must all be strings. -The `attributes` contains two sorts of attributes -- those with specific names, and those that are service specific. [RFC 6763](https://tools.ietf.org/html/rfc6763#page-13) +The `attributes` contains two sorts of attributes — those with specific names, and those that are service specific. [RFC 6763](https://tools.ietf.org/html/rfc6763#page-13) defines how extra, service specific, attributes are encoded into the DNS. One example is that if the device supports printing, then the queue name can be specified as an additional attribute. This module supports up to 10 such attributes. @@ -35,7 +39,7 @@ Various errors can be generated during argument validation. The NodeMCU must hav mdns.register("fishtank", {hardware='NodeMCU'}) -Using `dns-sd` on OS X, you can see `fishtank.local` as providing the `_http._tcp` service. You can also browse directly to `fishtank.local`. In Safari you can get all the mDNS web pages as part of your bookmarks menu. +Using `dns-sd` on macOS, you can see `fishtank.local` as providing the `_http._tcp` service. You can also browse directly to `fishtank.local`. In Safari you can get all the mDNS web pages as part of your bookmarks menu. mdns.register("fishtank", { description="Top Fishtank", service="http", port=80, location='Living Room' }) From c6ba33b749a2a5ccc77292d072e2e144ce77fe54 Mon Sep 17 00:00:00 2001 From: TerryE Date: Sun, 1 Jul 2018 23:27:16 +0100 Subject: [PATCH 14/61] New Telnet module --- lua_examples/telnet/README.md | 79 ++++++++++++ lua_examples/telnet/simple_telnet.lua | 35 ++++++ lua_examples/telnet/telnet.lua | 165 ++++++++++++++++++++++++++ 3 files changed, 279 insertions(+) create mode 100644 lua_examples/telnet/README.md create mode 100644 lua_examples/telnet/simple_telnet.lua create mode 100644 lua_examples/telnet/telnet.lua diff --git a/lua_examples/telnet/README.md b/lua_examples/telnet/README.md new file mode 100644 index 0000000000..49386f9b28 --- /dev/null +++ b/lua_examples/telnet/README.md @@ -0,0 +1,79 @@ +# Telnet Module + +| Since | Origin / Contributor | Maintainer | Source | +| :----- | :-------------------- | :---------- | :------ | +| 2014-12-22 | [Zeroday](https://github.com/funshine) | [Terry Ellison](https://github.com/TerryE) | [simple_telnet.lua](./simple_telnet.lua) | +| 2018-05-24 | [Terry Ellison](https://github.com/TerryE) | [Terry Ellison](https://github.com/TerryE) | [telnet.lua](./telnet.lua) | + + +The Lua telnet example previously provided in our distro has been moved to this +file `simple_telnet.lua` in this folder. This README discusses the version complex +implementation at the Lua module `telnet.lua`. The main reason for this complex +alternative is that a single Lua command can produce a LOT of output, and the +telnet server has to work within four constraints: + +- The SDK rules are that you can only issue one send per task invocation, so any +overflow must be buffered, and the buffer emptied using an on:sent callback (CB). + +- Since the interpeter invokes a node.output CB per field, you have a double whammy +that these fields are typically small, so using a simple array FIFO would rapidly +exhaust RAM. + +- For network efficiency, the module aggregates any FIFO buffered into sensible +sized packet, say 1024 bytes, but it must also need to handle the case when larger +string span multiple packets. However, you must flush the buffer if necessary. + +- The overall buffering strategy needs to be reasonably memory efficient and avoid +hitting the GC too hard, so where practical avoid aggregating small strings to more +than 256 chars (as NodeMCU handles \<256 using stack buffers), and avoid serial a +ggregation such as buf = buf .. str as this hammers the GC. + +So this server adopts a simple buffering scheme using a two level FIFO. The +`node.output` CB adds records to the 1st level FIFO until the #recs is \> 32 or the +total size would exceed 256 bytes. Once over this threashold, the contents of the +FIFO are concatenated into a 2nd level FIFO entry of upto 256 bytes, and the 1st +level FIFO cleared down to any residue. + +The sender dumps the 2nd level FIFO aggregating records up to 1024 bytes and once this +is empty dumps an aggrate of the 1st level. + +Lastly remember that owing to architectural limitations of the firmware, this server +can only service stdin and stdout. Lua errors are still sent to stderr which is +the UART0 device. Hence errors will fail silently. If you want to capture +errors then you will need to wrap any commands in a `pcall()` and print any +error return. + +## telnet:open() + +Open a telnet server based on the provided parameters. + +#### Syntax + +`telnet:open(ssid, pwd, port)` + +#### Parameters + +`ssid` and `password`. Strings. SSID and Password for the Wifi network. If these are +`nil` then the wifi is assumed to be configured or autoconfigured. + +`port`. Integer TCP listenting port for the Telnet service. The default is 2323 + +#### Returns + +Nothing returned (this is evaluted as `nil` in a scalar context). + +## telnet:close() + +Close a telnet server and release all resources. + +#### Syntax + +`telnet:close()` + +#### Parameters + +None + +#### Returns + +Nothing returned (this is evaluted as `nil` in a scalar context). diff --git a/lua_examples/telnet/simple_telnet.lua b/lua_examples/telnet/simple_telnet.lua new file mode 100644 index 0000000000..3f9525bbac --- /dev/null +++ b/lua_examples/telnet/simple_telnet.lua @@ -0,0 +1,35 @@ +-- a simple telnet server + +telnet_srv = net.createServer(net.TCP, 180) +telnet_srv:listen(2323, function(socket) + local fifo = {} + local fifo_drained = true + + local function sender(c) + if #fifo > 0 then + c:send(table.remove(fifo, 1)) + else + fifo_drained = true + end + end + + local function s_output(str) + table.insert(fifo, str) + if socket ~= nil and fifo_drained then + fifo_drained = false + sender(socket) + end + end + + node.output(s_output, 0) -- re-direct output to function s_ouput. + + socket:on("receive", function(c, l) + node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line + end) + socket:on("disconnection", function(c) + node.output(nil) -- un-regist the redirect output function, output goes to serial + end) + socket:on("sent", sender) + + print("Welcome to NodeMCU world.") +end) diff --git a/lua_examples/telnet/telnet.lua b/lua_examples/telnet/telnet.lua new file mode 100644 index 0000000000..3c67267ed4 --- /dev/null +++ b/lua_examples/telnet/telnet.lua @@ -0,0 +1,165 @@ +--[[ A telnet server T. Ellison, May 2018 + +This version is more complex than the simple Lua example previously provided in our +distro. The main reason is that a single Lua command can produce a LOT of output, +and the server has to work within four constraints: + + - The SDK rules are that you can only issue one send per task invocation, so any + overflow must be buffered, and the buffer emptied using an on:sent cb + + - Since the interpeter invokes a node.output cb per field, you have a double + whammy that these fields are typically small, so using a simple array FIFO + would rapidly exhaust RAM. + + - For network efficiency, you want to aggregate any FIFO buffered into sensible + sized packet, say 1024 bytes, but you also need to handle the case when larger + string span multiple packets. However, you must flush the buffer if necessary. + + - The overall buffering strategy needs to be reasonably memory efficient and avoid + hitting the GC too hard, so where practical avoid aggregating small strings to + more than 256 chars (as NodeMCU handles <256 using stack buffers), and avoid + serial aggregation such as buf = buf .. str as this hammers the GC. + +So this server adopts a simple buffering scheme using a two level FIFO. The node.output +cb adds cb records to the 1st level FIFO until the #recs is > 32 or the total size +would exceed 256 bytes. Once over this threashold, the contents of the FIFO are +concatenated into a 2nd level FIFO entry of upto 256 bytes, and the 1st level FIFO +cleared down to any residue. + +The sender dumps the 2nd level FIFO aggregating records up to 1024 bytes and once this +is empty dumps an aggrate of the 1st level. + +]] +local node, table, tmr, wifi, uwrite, tostring = + node, table, tmr, wifi, uart.write, tostring + +local function telnet_listener(socket) + local insert, remove, concat, heap, gc = + table.insert, table.remove, table.concat, node.heap, collectgarbage + local fifo1, fifo1l, fifo2, fifo2l = {}, 0, {}, 0 + local s -- s is a copy of the TCP socket if and only if sending is in progress + + local wdclr, cnt = tmr.wdclr, 0 + local function debug(fmt, ...) + if (...) then fmt = fmt:format(...) end + uwrite(0, "\r\nDBG: ",fmt,"\r\n" ) + cnt = cnt + 1 + if cnt % 10 then wdclr() end + end + + local function flushGarbage() + if heap() < 13440 then gc() end + end + + local function sendLine() + -- debug("entering sendLine") + if not s then return end + + if fifo2l + fifo1l == 0 then -- both FIFOs empty, so clear down s + s = nil + -- debug("Q cleared") + return + end + + flushGarbage() + + if #fifo2 < 4 then -- Flush FIFO1 into FIFO2 + insert(fifo2,concat(fifo1)) + -- debug("flushing %u bytes / %u recs of FIFO1 into FIFO2[%u]", fifo1l, #fifo1, #fifo2) + fifo2l, fifo1, fifo1l = fifo2l + fifo1l, {}, 0 + end + + -- send out first 4 FIFO2 recs (or all if #fifo2<5) + local rec = remove(fifo2,1) .. (remove(fifo2,1) or '') .. + (remove(fifo2,1) or '') .. (remove(fifo2,1) or '') + fifo2l = fifo2l - #rec + + flushGarbage() + s:send(rec) + -- debug( "sending %u bytes (%u buffers remain)\r\n%s ", #rec, #fifo2, rec) + end + local F1_SIZE = 256 + local function queueLine(str) + -- Note that this algo does work for strings longer than 256 but it is sub-optimal + -- as it does string splitting, but this isn't really an issue IMO, as in practice + -- fields of this size are very infrequent. + + -- debug("entering queueLine(l=%u)", #str) + + while #str > 0 do -- this is because str might be longer than the packet size! + local k, l = F1_SIZE - fifo1l, #str + local chunk + + -- Is it time to batch up and flush FIFO1 into a new FIFO2 entry? Note that it's + -- not worth splitting a string to squeeze the last ounce out of a buffer size. + + -- debug("#fifo1 = %u, k = %u, l = %u", #fifo1, k, l) + if #fifo1 >= 32 or (k < l and k < 16) then + insert(fifo2, concat(fifo1)) + -- debug("flushing %u bytes / %u recs of FIFO1 into FIFO2[%u]", fifo1l, #fifo1, #fifo2) + fifo2l, fifo1, fifo1l, k = fifo2l + fifo1l, {}, 0, F1_SIZE + end + + if l > k+16 then -- also tolerate a size overrun of 16 bytes to avoid a split + chunk, str = str:sub(1,k), str:sub(k+1) + else + chunk, str = str, '' + end + + -- debug("pushing %u bytes into FIFO1[l=%u], %u bytes remaining", #chunk, fifo1l, #str) + insert(fifo1, chunk) + fifo1l = fifo1l + #chunk + end + + if not s and socket then + s = socket + sendLine() + else + flushGarbage() + end + + end + + local function receiveLine(s, line) + -- debug( "received: %s", line) + node.input(line) + end + + local function discontect(s) + fifo1, fifo1l, fifo2, fifo2l, s = {}, 0, {}, 0, nil + node.output(nil) + end + + socket:on("receive", receiveLine) + socket:on("disconnection", discontect) + socket:on("sent", sendLine) + node.output(queueLine, 0) +end + +local listenerSocket +return { + open = function(this, ssid, pwd, port) + if ssid then + wifi.setmode(wifi.STATION, false) + wifi.sta.config { ssid = ssid, pwd = pwd, save = false } + end + tmr.alarm(0, 500, tmr.ALARM_AUTO, function() + if (sta.status() == wifi.STA_GOTIP) then + tmr.unregister(0) + print("Welcome to NodeMCU world", node.heap(), wifi.sta.getip()) + net.createServer(net.TCP, 180):listen(port or 2323, telnet_listener) + else + uwrite(0,".") + end + end) + end, + + close = function(this) + if listenerSocket then + listenerSocket:close() + package.loaded.telnet = nil + listenerSocket = nil + collectgarbage() + end + end, +} From 8dcc3c8a55ff466ebe5a69bceb90536cb0e6520f Mon Sep 17 00:00:00 2001 From: TerryE Date: Mon, 2 Jul 2018 03:16:16 +0100 Subject: [PATCH 15/61] New FTP module --- lua_modules/ftp/README.md | 107 ++++++++ lua_modules/ftp/ftpserver.lua | 500 ++++++++++++++++++++++++++++++++++ 2 files changed, 607 insertions(+) create mode 100644 lua_modules/ftp/README.md create mode 100644 lua_modules/ftp/ftpserver.lua diff --git a/lua_modules/ftp/README.md b/lua_modules/ftp/README.md new file mode 100644 index 0000000000..818c78281b --- /dev/null +++ b/lua_modules/ftp/README.md @@ -0,0 +1,107 @@ +# FTPServer Module + +This Lua module implementation provides a basic FTP server for the ESP8266. +It has been tested against a number of Table, Windows and Linux FTP clients +and browsers. + +It provides a limited subset of FTP commands that enable such clients to +tranfer files to and from the ESP's file system. Only one server can be +started at any one time, but this server can support multiple connected +sessions (some FTP clients use multiple sessions and so require this +feature). + +### Limitations + +- FTP over SSH or TLS is not currently supported so transfer is unencrypted. +- The client session , must, authentical against a single user/password. +- Only the SPIFFS filesystem is currently supported, so changing directories is treated as a NO-OP. +- This implementation has been optimised for running in LFS. +- Only PASV mode is supported as the `net` module does not allow static allocation of outbound sockets. + +### Notes + +The coding style adopted here is more similar to best practice for normal (PC) +module implementations, as using LFS permits a bias towards clarity of coding +over brevity. It includes extra logic to handle some of the edge case issues more +robustly. It also uses a standard forward reference coding pattern to allow the +code to be laid out in main routine, subroutine order. + +Most FTP clients are capable of higher transfer rates than the ESP SPIFFS write +throughput, so the server uses TCP flow control to limit upload rates to the +ESP. + +aThe following FTP commands are supported: + +- with no parameter: CDUP, NOOP, PASV, PWD, QUIT, SYST +- with one parameter: CWD, DELE, MODE, PASS, PORT, RNFR, RNTO, SIZE, TYPE, USER +- xfer commands: LIST, NLST, RETR, STOR + +This implementation is by Terry Ellison, but I wish to acknowledge the inspration +and hard work by [Neronix](https://github.com/NeiroNx) that made this possible. + +## createServer() + +Create the FTP server on the standard ports 20 and 21. The global variable `FTP` +is set to the server object. + +#### Syntax +`FTP.createServer(user, pass[, dbgFlag])` + +#### Parameters + +- `user` - Username for access to the server +- `pass` - Password for access to the server +- `dbgFlag` - optional flag. If set true then internal debug output is printed + +#### Returns +- N/A + +#### Example + +```Lua +require("ftpserver").createServer('user', 'password') +``` + +## open() + +Wrapper to createServer() which also connects to the WiFi channel. + +#### Syntax + +`FTP.open(user, pass, ssid, wifipwd, dbgFlag)` + +#### Parameters + +- `user` - Username for access to the server +- `pass` - Password for access to the server +- `ssid` - SSID for Wifi service +- `wifipwd` - password for Wifi service +- `dbgFlag` - optional flag. If set true then internal debug output is printed + +#### Returns +- N/A + +#### Example + +```Lua +require("ftpserver").open('myWifi', 'wifiPassword', 'user', 'password') +``` + +## close() + +Close down server including any sockets and return all resouces to Lua. Note that +this include removing the FTP global variable and package references. + +#### Syntax +`FTP.close()` + +#### Parameters +- none + +#### Returns +- nil + +#### Example +```Lua +FTP.close() +``` diff --git a/lua_modules/ftp/ftpserver.lua b/lua_modules/ftp/ftpserver.lua new file mode 100644 index 0000000000..7aa5075737 --- /dev/null +++ b/lua_modules/ftp/ftpserver.lua @@ -0,0 +1,500 @@ +o--[[ A simple ftp server + + This is my implementation of a FTP server using Github user Neronix's + example as inspriration, but as a cleaner Lua implementation that has been + optimised for use in LFS. The coding style adopted here is more similar to + best practice for normal (PC) module implementations, as using LFS enables + me to bias towards clarity of coding over brevity. It includes extra logic + to handle some of the edge case issues more robustly. It also uses a + standard forward reference coding pattern to allow the code to be laid out + in main routine, subroutine order. + + The app will only call one FTP.open() or FTP.createServer() at any time, + with any multiple calls requected, so FTP is a singleton static object. + However there is nothing to stop multiple clients connecting to the FTP + listener at the same time, and indeed some FTP clients do use multiple + connections, so this server can accept and create multiple CON objects. + Each CON object can also have a single DATA connection. + + Note that FTP also exposes a number of really private properties (which + could be stores in local / upvals) as FTP properties for debug purposes. +]] +local file,net,wifi,node,string,table,tmr,pairs,print,pcall, tostring = + file,net,wifi,node,string,table,tmr,pairs,print,pcall, tostring +local post = node.task.post +local FTP, cnt = {client = {}}, 0 + +-- Local functions + +local processCommand -- function(cxt, sock, data) +local processBareCmds -- function(cxt, cmd) +local processSimpleCmds -- function(cxt, cmd, arg) +local processDataCmds -- function(cxt, cmd, arg) +local dataServer -- function(cxt, n) +local ftpDataOpen -- function(dataSocket) + +-- Note these routines all used hoisted locals such as table and debug as +-- upvals for performance (ROTable lookup is slow on NodeMCU Lua), but +-- data upvals (e.g. FTP) are explicitly list is -- "upval:" comments. + +-- Note that the space between debug and the arglist is there for a reason +-- so that a simple global edit " debug(" -> "-- debug(" or v.v. to +-- toggle debug compiled into the module. + +local function debug (fmt, ...) -- upval: cnt (, print, node, tmr) + if not FTP.debug then return end + if (...) then fmt = fmt:format(...) end + print(node.heap(),fmt) + cnt = cnt + 1 + if cnt % 10 then tmr.wdclr() end +end + +--------------------------- Set up the FTP object ---------------------------- +-- FTP has three static methods: open, createServer and close +------------------------------------------------------------------------------ + +-- optional wrapper around createServer() which also starts the wifi session +function FTP.open(user, pass, ssid, pwd, dbgFlag) -- upval: FTP (, wifi, tmr, print) + if ssid then + wifi.setmode(wifi.STATION, false) + wifi.sta.config { ssid = ssid, pwd = pwd, save = false } + end + tmr.alarm(0, 500, tmr.ALARM_AUTO, function() + if (wifi.sta.status() == wifi.STA_GOTIP) then + tmr.unregister(0) + print("Welcome to NodeMCU world", node.heap(), wifi.sta.getip()) + return FTP.createServer(user, pass, dbgFlag) + else + uart.write(0,".") + end + end) +end + + +function FTP.createServer(user, pass, dbgFlag) -- upval: FTP (, debug, tostring, pcall, type, processCommand) + FTP.user, FTP.pass, FTP.debug = user, pass, dbgFlag + FTP.server = net.createServer(net.TCP, 180) + _G.FTP = FTP + debug("Server created: (userdata) %s", tostring(FTP.server)) + + FTP.server:listen(21, function(sock) -- upval: FTP (, debug, pcall, type, processCommand) + -- since a server can have multiple connections, each connection + -- has a CNX table to store connection-wide globals. + local client = FTP.client + local CNX; CNX = { + validUser = false, + cmdSocket = sock, + send = function(rec, cb) -- upval: CNX (,debug) + -- debug("Sending: %s", rec) + return CNX.cmdSocket:send(rec.."\r\n", cb) + end, --- send() + close = function(sock) -- upval: client, CNX (,debug, pcall, type) + -- debug("Closing CNX.socket=%s, sock=%s", tostring(CNX.socket), tostring(sock)) + for _,s in ipairs{'cmdSocket', 'dataServer', 'dataSocket'} do + local sck; sck,CNX[s] = CNX[s], nil + -- debug("closing CNX.%s=%s", s, tostring(sck)) + if type(sck)=='userdata' then pcall(sck.close, sck) end + end + client[sock] = nil + end -- CNX.close() + } + + local function validateUser(sock, data) -- upval: CNX, FTP (, debug, processCommand) + -- validate the logon and if then switch to processing commands + + -- debug("Authorising: %s", data) + local cmd, arg = data:match('([A-Za-z]+) *([^\r\n]*)') + local msg = "530 Not logged in, authorization required" + cmd = cmd:upper() + + if cmd == 'USER' then + CNX.validUser = (arg == FTP.user) + msg = CNX.validUser and + "331 OK. Password required" or + "530 user not found" + + elseif CNX.validUser and cmd == 'PASS' then + if arg == FTP.pass then + CNX.cwd = '/' + sock:on("receive", function(sock,data) + processCommand(CNX,sock,data) + end) -- logged on so switch to command mode + msg = "230 Login successful. Username & password correct; proceed." + else + msg = "530 Try again" + end + + elseif cmd == 'AUTH' then + msg = "500 AUTH not understood" + + end + + return CNX.send(msg) + end + + local port,ip = sock:getpeer() + -- debug("Connection accepted: (userdata) %s client %s:%u", tostring(sock), ip, port) + sock:on("receive", validateUser) + sock:on("disconnection", CNX.close) + FTP.client[sock]=CNX + + CNX.send("220 FTP server ready"); + end) -- FTP.server:listen() +end -- FTP.createServer() + + +function FTP.close() -- upval: FTP (, debug, post, tostring) + local svr = FTP.server + + local function rollupClients(client, server) -- upval: FTP (,debug, post, tostring, rollupClients) + -- this is done recursively so that we only close one client per task + local skt,cxt = next(client) + if skt then + -- debug("Client close: %s", tostring(skt)) + cxt.close(skt) + post(function() return rollupClients(client, server) end) -- upval: rollupClients, client, server + else + -- debug("Server close: %s", tostring(server)) + server:close() + server:__gc() + FTP,_G.FTP = nil, nil -- the upval FTP can only be zeroed once FTP.client is cleared. + end + end + + if svr then rollupClients(FTP.client, svr) end + package.loaded.ftpserver=nil +end -- FTP.close() + + +----------------------------- Process Command -------------------------------- +-- This splits the valid commands into one of three categories: +-- * bare commands (which take no arg) +-- * simple commands (which take) a single arg; and +-- * data commands which initiate data transfer to or from the client and +-- hence need to use CBs. +-- +-- Find strings are used do this lookup and minimise long if chains. +------------------------------------------------------------------------------ +processCommand = function(cxt, sock, data) -- upvals: (, debug, processBareCmds, processSimpleCmds, processDataCmds) + + debug("Command: %s", data) + data = data:gsub('[\r\n]+$', '') -- chomp trailing CRLF + local cmd, arg = data:match('([a-zA-Z]+) *(.*)') + cmd = cmd:upper() + local _cmd_ = '_'..cmd..'_' + + if ('_CDUP_NOOP_PASV_PWD_QUIT_SYST_'):find(_cmd_) then + processBareCmds(cxt, cmd) + elseif ('_CWD_DELE_MODE_PORT_RNFR_RNTO_SIZE_TYPE_'):find(_cmd_) then + processSimpleCmds(cxt, cmd, arg) + elseif ('_LIST_NLST_RETR_STOR_'):find(_cmd_) then + processDataCmds(cxt, cmd, arg) + else + cxt.send("500 Unknown error") + end +end -- processCommand(sock, data) + + +-------------------------- Process Bare Commands ----------------------------- +processBareCmds = function(cxt, cmd) -- upval: (dataServer) + + local send = cxt.send + + if cmd == 'CDUP' then + return send("250 OK. Current directory is "..cxt.cwd) + + elseif cmd == 'NOOP' then + return send("200 OK") + + elseif cmd == 'PASV' then + -- This FTP implementation ONLY supports PASV mode, and the passive port + -- listener is opened on receipt of the PASV command. If any data xfer + -- commands return an error if the PASV command hasn't been received. + -- Note the listener service is closed on receipt of the next PASV or + -- quit. + local ip, port, pphi, pplo, i1, i2, i3, i4, _ + _,ip = cxt.cmdSocket:getaddr() + port = 2121 + pplo = port % 256 + pphi = (port-pplo)/256 + i1,i2,i3,i4 = ip:match("(%d+).(%d+).(%d+).(%d+)") + dataServer(cxt, port) + return send( + ('227 Entering Passive Mode(%d,%d,%d,%d,%d,%d)'):format( + i1,i2,i3,i4,pphi,pplo)) + + elseif cmd == 'PWD' then + return send('257 "/" is the current directory') + + elseif cmd == 'QUIT' then + send("221 Goodbye", function() cxt.close(cxt.cmdSocket) end) + return + + elseif cmd == 'SYST' then +-- return send("215 UNKNOWN") + return send("215 UNIX Type: L8") -- must be Unix so ls is parsed correctly + + else + error('Oops. Missed '..cmd) + end +end -- processBareCmds(cmd, send) + +------------------------- Process Simple Commands ---------------------------- +local from -- needs to persist between simple commands +processSimpleCmds = function(cxt, cmd, arg) -- upval: from (, file, tostring, dataServer, debug) + + local send = cxt.send + + if cmd == 'MODE' then + return send(arg == "S" and "200 S OK" or + "504 Only S(tream) is suported") + + elseif cmd == 'PORT' then + dataServer(cxt,nil) -- clear down any PASV setting + return send("502 Active mode not supported. PORT not implemented") + + elseif cmd == 'TYPE' then + if arg == "A" then + cxt.xferType = 0 + return send("200 TYPE is now ASII") + elseif arg == "I" then + cxt.xferType = 1 + return send("200 TYPE is now 8-bit binary") + else + return send("504 Unknown TYPE") + end + end + + -- The remaining commands take a filename as an arg. Strip off leading / and ./ + arg = arg:gsub('^%.?/',''):gsub('^%.?/','') + debug("Filename is %s",arg) + + if cmd == 'CWD' then + if arg:match('^[%./]*$') then + return send("250 CWD command successful") + end + return send("550 "..arg..": No such file or directory") + + elseif cmd == 'DELE' then + if file.exists(arg) then + file.remove(arg) + if not file.exists(arg) then return send("250 Deleted "..arg) end + end + return send("550 Requested action not taken") + + elseif cmd == 'RNFR' then + from = arg + send("350 RNFR accepted") + return + + elseif cmd == 'RNTO' then + local status = from and file.rename(from, arg) + -- debug("rename('%s','%s')=%s", tostring(from), tostring(arg), tostring(status)) + from = nil + return send(status and "250 File renamed" or + "550 Requested action not taken") + elseif cmd == "SIZE" then + local st = file.stat(arg) + return send(st and ("213 "..st.size) or + "550 Could not get file size.") + + else + error('Oops. Missed '..cmd) + end +end -- processSimpleCmds(cmd, arg, send) + + +-------------------------- Process Data Commands ----------------------------- +processDataCmds = function(cxt, cmd, arg) -- upval: FTP (, pairs, file, tostring, debug, post) + + local send = cxt.send + + -- The data commands are only accepted if a PORT command is in scope + if cxt.dataServer == nil and cxt.dataSocket == nil then + return send("502 Active mode not supported. "..cmd.." not implemented") + end + + cxt.getData, cxt.setData = nil, nil + + arg = arg:gsub('^%.?/',''):gsub('^%.?/','') + + if cmd == "LIST" or cmd == "NLST" then + -- There are + local fileSize, nameList, pattern = file.list(), {}, '.' + + arg = arg:gsub('^-[a-z]* *', '') -- ignore any Unix style command parameters + arg = arg:gsub('^/','') -- ignore any leading / + + if #arg > 0 and arg ~= '.' then -- replace "*" by [^/%.]* that is any string not including / or . + pattern = arg:gsub('*','[^/%%.]*') + end + + for k,v in pairs(fileSize) do + if k:match(pattern) then + nameList[#nameList+1] = k + else + fileSize[k] = nil + end + end + table.sort(nameList) + + function cxt.getData() -- upval: cmd, fileSize, nameList (, table) + local list, user, v = {}, FTP.user + for i = 1,10 do + if #nameList == 0 then break end + local f = table.remove(nameList, 1) + list[#list+1] = (cmd == "LIST") and + ("-rw-r--r-- 1 %s %s %6u Jan 1 00:00 %s\r\n"):format(user, user, fileSize[f], f) or + (f.."\r\n") + end + return table.concat(list) + end + + elseif cmd == "RETR" then + local f = file.open(arg, "r") + if f then -- define a getter to read the file + function cxt.getData() -- upval: f + local buf = f:read(1024) + if not buf then f:close(); f = nil; end + return buf + end -- cxt.getData() + end + + elseif cmd == "STOR" then + local f = file.open(arg, "w") + if f then -- define a setter to write the file + function cxt.setData(rec) -- upval f, arg (, debug) + -- debug("writing %u bytes to %s", #rec, arg) + return f:write(rec) + end -- cxt.saveData(rec) + function cxt.fileClose() -- upval cxt, f, arg (,debug) + -- debug("closing %s", arg) + f:close(); cxt.fileClose, f = nil, nil + end -- cxt.close() + end + + end + + send((cxt.getData or cxt.setData) and "150 Accepted data connection" or + "451 Can't open/create "..arg) + if cxt.getData and cxt.dataSocket then + debug ("poking sender to initiate first xfer") + post(function() cxt.sender(cxt.dataSocket) end) + end + +end -- processDataCmds(cmd, arg, send) + + +----------------------------- Data Port Routines ----------------------------- +-- These are used to manage the data transfer over the data port. This is +-- set up lazily either by a PASV or by the first LIST NLST RETR or STOR +-- command that uses it. These also provide a sendData / receiveData cb to +-- handle the actual xfer. Also note that the sending process can be primed in +-- +---------------- Open a new data server and port --------------------------- +dataServer = function(cxt, n) -- upval: (pcall, net, ftpDataOpen, debug, tostring) + local dataServer = cxt.dataServer + if dataServer then -- close any existing listener + pcall(dataServer.close, dataServer) + end + if n then + -- Open a new listener if needed. Note that this is only used to establish + -- a single connection, so ftpDataOpen closes the server socket + cxt.dataServer = net.createServer(net.TCP, 300) + cxt.dataServer:listen(n, function(sock) -- upval: cxt, (ftpDataOpen) + ftpDataOpen(cxt,sock) + end) + -- debug("Listening on Data port %u, server %s",n, tostring(cxt.dataServer)) + else + cxt.dataServer = nil + -- debug("Stopped listening on Data port",n) + end +end -- dataServer(n) + +----------------------- Connection on FTP data port ------------------------ +ftpDataOpen = function(cxt, dataSocket) -- upval: (debug, tostring, post, pcall) + + local sport,sip = dataSocket:getaddr() + local cport,cip = dataSocket:getpeer() + debug("Opened data socket %s from %s:%u to %s:%u", tostring(dataSocket),sip,sport,cip,cport ) + cxt.dataSocket = dataSocket + + cxt.dataServer:close() + cxt.dataServer = nil + + local function cleardown(skt,type) -- upval: cxt (, debug, tostring, post, pcall) + type = type==1 and "disconnection" or "reconnection" + local which = cxt.setData and "setData" or (cxt.getData and cxt.getData or "neither") + -- debug("Cleardown entered from %s with %s", type, which) + + if cxt.setData then + cxt.fileClose() + cxt.setData = nil + cxt.send("226 Transfer complete.") + else + cxt.getData, cxt.sender = nil, nil + end + -- debug("Clearing down data socket %s", tostring(skt)) + post(function() -- upval: skt, cxt, (, pcall) + pcall(skt.close, skt); skt=nil + cxt.dataSocket = nil + end) + end + + local on_hold = false + + dataSocket:on("receive", function(skt, rec) --upval: cxt, on_hold (, debug, tstring, post, node, pcall) + local which = cxt.setData and "setData" or (cxt.getData and cxt.getData or "neither") + -- debug("Received %u data bytes with %s", #rec, which) + + if not cxt.setData then return end + + if not on_hold then + -- Cludge to stop the client flooding the ESP SPIFFS on an upload of a + -- large file. As soon as a record arrives assert a flow control hold. + -- This can take up to 5 packets to come into effect at which point the + -- low priority unhold task is executed releasing the flow again. + -- debug("Issuing hold on data socket %s", tostring(skt)) + skt:hold(); on_hold = true + post(node.task.LOW_PRIORITY, + function() -- upval: skt, on_hold (, debug, tostring)) + -- debug("Issuing unhold on data socket %s", tostring(skt)) + pcall(skt.unhold, skt); on_hold = false + end) + end + + if not cxt.setData(rec) then + -- debug("Error writing to SPIFFS") + cxt.fileClose() + cxt.setData = nil + cxt.send("552 Upload aborted. Exceeded storage allocation") + end + end) + + function cxt.sender(skt) -- upval: cxt (, debug) + debug ("entering sender") + if not cxt.getData then return end + local rec, skt = cxt.getData(), cxt.dataSocket + if rec and #rec > 0 then + -- debug("Sending %u data bytes", #rec) + skt:send(rec) + else + -- debug("Send of data completed") + skt:close() + cxt.send("226 Transfer complete.") + cxt.getData, cxt.dataSocket = nil, nil + end + end + + dataSocket:on("sent", cxt.sender) + dataSocket:on("disconnection", function(skt) return cleardown(skt,1) end) + dataSocket:on("reconnection", function(skt) return cleardown(skt,2) end) + + -- if we are sending to client then kick off the first send + if cxt.getData then cxt.sender(cxt.dataSocket) end + +end -- ftpDataOpen(socket) + +------------------------------------------------ ----------------------------- + +return FTP From 7956a47bb49228458235dc3c8f98feeeb90dafde Mon Sep 17 00:00:00 2001 From: TerryE Date: Wed, 4 Jul 2018 13:50:13 +0100 Subject: [PATCH 16/61] Add Cygwin support for app/lua/luac_cross make and spiffsimg --- app/lua/compiler.h | 47 ---------------------------------------------- app/lua/lrotable.c | 25 ++++++++++++++---------- app/lua/lstring.c | 13 ++++++++----- 3 files changed, 23 insertions(+), 62 deletions(-) delete mode 100644 app/lua/compiler.h diff --git a/app/lua/compiler.h b/app/lua/compiler.h deleted file mode 100644 index 309c49b2b3..0000000000 --- a/app/lua/compiler.h +++ /dev/null @@ -1,47 +0,0 @@ -/** - * define start/end address of ro data. - * different compiler with different implementation. - */ - -#ifndef __COMPILER_H__ -#define __COMPILER_H__ - -#if defined(__CC_ARM) // armcc - -//#warning "Please check scatter file to ensure rodata is in ER_IROM1 region." - -/* symbols reference to the scatter file */ -extern char Image$$ER_IROM1$$Base; -extern char Image$$ER_IROM1$$Limit; - -#define RODATA_START_ADDRESS (&Image$$ER_IROM1$$Base) -#define RODATA_END_ADDRESS (&Image$$ER_IROM1$$Limit) - -#elif defined(__GNUC__) // gcc - -//#warning "Please check linker script to ensure rodata is between _stext and _etext." - -/* symbols defined in linker script */ -// extern char _rodata_start; -// extern char _rodata_end; -extern char _irom0_text_start; -extern char _irom0_text_end; -// modify linker script to ensure rodata and rodata1 is between _rodata_start and _rodata_end. -// #define RODATA_START_ADDRESS (&_rodata_start) -// #define RODATA_END_ADDRESS (&_rodata_end) -#define RODATA_START_ADDRESS (&_irom0_text_start) -#define RODATA_END_ADDRESS (&_irom0_text_end) - -#else // other compilers - -/* Firstly, modify rodata's start/end address. Then, comment the line below */ -#error "Please modify RODATA_START_ADDRESS and RODATA_END_ADDRESS below." - -/* Perhaps you can use start/end address of flash */ -#define RODATA_START_ADDRESS ((char*)0x40200000) -#define RODATA_END_ADDRESS ((char*)0x40280000) - -#endif - -#endif // __COMPILER_H__ - diff --git a/app/lua/lrotable.c b/app/lua/lrotable.c index a5cbb7cae9..5ece42ffd2 100644 --- a/app/lua/lrotable.c +++ b/app/lua/lrotable.c @@ -125,17 +125,22 @@ void luaR_getcstr(char *dest, const TString *src, size_t maxsize) { } } +#ifdef LUA_META_ROTABLES +/* Set in RO check depending on platform */ +#if defined(LUA_CROSS_COMPILER) && defined(__CYGWIN__) +extern char __end__[]; +#define IN_RO_AREA(p) ((p) < __end__) +#elif defined(LUA_CROSS_COMPILER) +extern char _edata[]; +#define IN_RO_AREA(p) ((p) < _edata) +#else /* xtensa tool chain for ESP target */ +extern char _irom0_text_start[]; +extern char _irom0_text_end[]; +#define IN_RO_AREA(p) ((p) >= _irom0_text_start && (p) <= _irom0_text_end) +#endif + /* Return 1 if the given pointer is a rotable */ -#ifdef LUA_META_ROTABLES -#ifdef LUA_CROSS_COMPILER -extern char edata[]; int luaR_isrotable(void *p) { - return (char*)p <= edata; + return IN_RO_AREA((char *)p); } -#else -#include "compiler.h" -int luaR_isrotable(void *p) { - return RODATA_START_ADDRESS <= (char*)p && (char*)p <= RODATA_END_ADDRESS; -} -#endif #endif diff --git a/app/lua/lstring.c b/app/lua/lstring.c index 2257c1464d..ee84e4d7ba 100644 --- a/app/lua/lstring.c +++ b/app/lua/lstring.c @@ -80,13 +80,16 @@ static TString *newlstr (lua_State *L, const char *str, size_t l, return ts; } -#include "compiler.h" -static int lua_is_ptr_in_ro_area(const char *p) { #ifdef LUA_CROSS_COMPILER - return 0; -#else - return p >= RODATA_START_ADDRESS && p <= RODATA_END_ADDRESS; +#define IN_RO_AREA(p) (0) +#else /* xtensa tool chain for ESP */ +extern char _irom0_text_start[]; +extern char _irom0_text_end[]; +#define IN_RO_AREA(p) ((p) >= _irom0_text_start && (p) <= _irom0_text_end) #endif + +int lua_is_ptr_in_ro_area(const char *p) { + return IN_RO_AREA(p); } /* From 46236dd0918bf9c954f8592d9015b0298ac47cc0 Mon Sep 17 00:00:00 2001 From: Jedrzej Jajor Date: Sun, 8 Jul 2018 16:13:11 +0200 Subject: [PATCH 17/61] Fixed missing wifi module name. --- lua_examples/telnet/telnet.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua_examples/telnet/telnet.lua b/lua_examples/telnet/telnet.lua index 3c67267ed4..4506c78d43 100644 --- a/lua_examples/telnet/telnet.lua +++ b/lua_examples/telnet/telnet.lua @@ -144,7 +144,7 @@ return { wifi.sta.config { ssid = ssid, pwd = pwd, save = false } end tmr.alarm(0, 500, tmr.ALARM_AUTO, function() - if (sta.status() == wifi.STA_GOTIP) then + if (wifi.sta.status() == wifi.STA_GOTIP) then tmr.unregister(0) print("Welcome to NodeMCU world", node.heap(), wifi.sta.getip()) net.createServer(net.TCP, 180):listen(port or 2323, telnet_listener) From 520b853bf4cb64d209965ab2eb9d35bdb0ffa668 Mon Sep 17 00:00:00 2001 From: Gregor Date: Mon, 9 Jul 2018 01:19:19 +0200 Subject: [PATCH 18/61] Small typo in ftp server fails compilation There sneaked in an 'o' at the beginning of the file --- lua_modules/ftp/ftpserver.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua_modules/ftp/ftpserver.lua b/lua_modules/ftp/ftpserver.lua index 7aa5075737..4782da2c2c 100644 --- a/lua_modules/ftp/ftpserver.lua +++ b/lua_modules/ftp/ftpserver.lua @@ -1,4 +1,4 @@ -o--[[ A simple ftp server +--[[ A simple ftp server This is my implementation of a FTP server using Github user Neronix's example as inspriration, but as a cleaner Lua implementation that has been From 04981f7369b37585c856a32feb71eb264bf0db84 Mon Sep 17 00:00:00 2001 From: TerryE Date: Tue, 10 Jul 2018 12:46:05 +0100 Subject: [PATCH 19/61] Add cygwin support for compiling spiffsimg --- tools/spiffsimg/spiffs_typedefs.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/spiffsimg/spiffs_typedefs.h b/tools/spiffsimg/spiffs_typedefs.h index 329b3a8503..f694d125a9 100644 --- a/tools/spiffsimg/spiffs_typedefs.h +++ b/tools/spiffsimg/spiffs_typedefs.h @@ -9,6 +9,8 @@ typedef int16_t s16_t; typedef uint16_t u16_t; typedef int8_t s8_t; typedef uint8_t u8_t; -typedef long long ptrdiff_t; +#ifndef __CYGWIN__ +typedef long long ptrdiff_t; #define offsetof(type, member) __builtin_offsetof (type, member) +#endif From 2d2c189a665f4ece15d3f4fee4dbcb89208d409d Mon Sep 17 00:00:00 2001 From: Gregor Hartmann Date: Mon, 16 Jul 2018 07:48:47 +0200 Subject: [PATCH 20/61] Add checking of Lua sources to travis build (#2423) --- lua_examples/lfs/lfs_fragments.lua | 2 +- lua_examples/mqtt/mqtt_file.lua | 2 +- tools/pr-build.sh | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lua_examples/lfs/lfs_fragments.lua b/lua_examples/lfs/lfs_fragments.lua index 83f70f2a12..8863b2302f 100644 --- a/lua_examples/lfs/lfs_fragments.lua +++ b/lua_examples/lfs/lfs_fragments.lua @@ -7,7 +7,7 @@ do local _,ma,fa=node.flashindex() for n,v in pairs{LFS_MAPPED=ma, LFS_BASE=fa, SPIFFS_BASE=sa} do - print(('export %s=""0x%x"'):format(n, v) + print(('export %s=""0x%x"'):format(n, v)) end end -- diff --git a/lua_examples/mqtt/mqtt_file.lua b/lua_examples/mqtt/mqtt_file.lua index 6d0d88e40b..4d192325ec 100644 --- a/lua_examples/mqtt/mqtt_file.lua +++ b/lua_examples/mqtt/mqtt_file.lua @@ -43,7 +43,7 @@ m:on("offline", function(conn) end) m:on("message",dispatch ) -- Lua: mqtt:connect( host, port, secure, auto_reconnect, function(client) ) -m:connect(192.168.18.88,1883,0,1) +m:connect("192.168.18.88",1883,0,1) -- usage: -- another client(pc) subscribe to /topic2, will receive the test.lua content. diff --git a/tools/pr-build.sh b/tools/pr-build.sh index f7866f71ed..0670c74181 100644 --- a/tools/pr-build.sh +++ b/tools/pr-build.sh @@ -29,4 +29,8 @@ cd "$TRAVIS_BUILD_DIR"/ld || exit cd "$TRAVIS_BUILD_DIR" || exit make clean make + +LUA_FILES=`find lua_modules lua_examples -iname "*.lua"` +echo checking $LUA_FILES +./luac.cross -p $LUA_FILES ) From c39891f9de5dd8992a54dc6db9e1c2399a9e3058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Voborsk=C3=BD?= Date: Mon, 16 Jul 2018 23:08:08 +0200 Subject: [PATCH 21/61] Adding "LFS Quick Start" section --- docs/en/lfs.md | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/en/lfs.md b/docs/en/lfs.md index 91327d3cce..6d609d53c9 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -1,5 +1,62 @@ # Lua Flash Store (LFS) +## LFS Quick Start + +LFS is a way how to execute your Lua code out of ESP8266 flash memory so more RAM is available for variables and data structures. This way large Lua files can be run on ESP8266. There would not be enough RAM to execute such files in a "normal" (out of SPIFFS) way. + +This is a simple step-by-step how to use the LFS feature: +1. Get and flash LFS enabled firmware + + Either you get it from https://nodemcu-build.com/. In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. + + Another possibility is to compile own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. + + Flash the firmware to ESP8266. + +2. Select Lua files to be run from LFS + + Nice example is to run telnet and ftp client from LFS. Put the following files in 1 directory: + * [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) + * [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) + * [lua_examples/telnet/telnet.lua](../../lua_examples/telnet/telnet.lua) + * [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) + + 3. Compile the LFS image + + Windows 10 users can use the Windows Subsystem for Linux. From the directory with Lua files from the previous section run `bash` and execute the command (adjust the path as needed): + ```bash + /mnt/c/GitHub/nodemcu-firmware/luac.cross -f *.lua + ``` + or the following command which includes all Lua files except `init.lua` into LFS image can be used (`init.lua` needs to be in SPIFFS so it does not make sense to include it in the LFS image) + ```bash + /mnt/c/GitHub/nodemcu-firmware/luac.cross -f `find *.lua -not -name 'init.lua'` + ``` + As a result the `luac.out` file is created. + + 4. Upload the LFS image + + This can be done with [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool with "Upload..." (or by other means). + + 5. Flash the LFS image to LFS partition + + Run the following command on ESP + ```Lua + node.flashreload("luac.out") + ``` + + 6. Adjust the `init.lua` file + + Add the following lines: + + ```Lua + -- Execute the LFS init + node.flashindex("_init")() + -- Start telnet server + require("telnet"):open() + -- Start ftp serer + require("ftpserver").createServer('user', 'password') + ``` + ## Background An IoT device such as the ESP8266 has very different processor characteristics from the CPU in a typical PC: From 36029a08e1f74eb7bb9221f06b9820aa02044885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Voborsk=C3=BD?= Date: Wed, 18 Jul 2018 22:46:46 +0200 Subject: [PATCH 22/61] Update lfs.md --- docs/en/lfs.md | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/docs/en/lfs.md b/docs/en/lfs.md index 6d609d53c9..11a41101f0 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -4,24 +4,30 @@ LFS is a way how to execute your Lua code out of ESP8266 flash memory so more RAM is available for variables and data structures. This way large Lua files can be run on ESP8266. There would not be enough RAM to execute such files in a "normal" (out of SPIFFS) way. +The tutorial assumes that you are able to build a nodemcu-firmware on a Windows 10 host. + This is a simple step-by-step how to use the LFS feature: 1. Get and flash LFS enabled firmware - Either you get it from https://nodemcu-build.com/. In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. - - Another possibility is to compile own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. + Either you get it from [NodeMCU Build](https://nodemcu-build.com/). In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. + Another possibility is to compile own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. This file includes explanation of how to configure LFS in its comments. + + For details see section [Selecting the firmware](###Selecting-the-firmware) of the LFS documentation. + Flash the firmware to ESP8266. 2. Select Lua files to be run from LFS - Nice example is to run telnet and ftp client from LFS. Put the following files in 1 directory: + The easest way is to maintain Lua files of your project in its own directory tree on your host. Project files will be compiled by `luac.cross` to build the LFS image in next step. + + Nice example is to run telnet and ftp client from LFS. In order to do this put the following files in 1 directory: * [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) * [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) * [lua_examples/telnet/telnet.lua](../../lua_examples/telnet/telnet.lua) - * [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) - - 3. Compile the LFS image + * [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) + + 3. Build the LFS image Windows 10 users can use the Windows Subsystem for Linux. From the directory with Lua files from the previous section run `bash` and execute the command (adjust the path as needed): ```bash @@ -35,7 +41,9 @@ This is a simple step-by-step how to use the LFS feature: 4. Upload the LFS image - This can be done with [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool with "Upload..." (or by other means). + Now it's time to upload the generate LFS image file (`luasc.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. + + One way is to use the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, button "Upload...". 5. Flash the LFS image to LFS partition @@ -43,6 +51,7 @@ This is a simple step-by-step how to use the LFS feature: ```Lua node.flashreload("luac.out") ``` + The firmware will reboot the ESP8266 and modules will be available after reboot. 6. Adjust the `init.lua` file From 3f8faf8e55d0cd412752a73c0edde3ca6605e13c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Voborsk=C3=BD?= Date: Wed, 18 Jul 2018 22:51:14 +0200 Subject: [PATCH 23/61] Update lfs.md --- docs/en/lfs.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/en/lfs.md b/docs/en/lfs.md index 11a41101f0..c22a7a0ee6 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -41,7 +41,7 @@ This is a simple step-by-step how to use the LFS feature: 4. Upload the LFS image - Now it's time to upload the generate LFS image file (`luasc.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. + Now it's time to upload the generate LFS image file (`luac.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. One way is to use the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, button "Upload...". @@ -55,6 +55,8 @@ This is a simple step-by-step how to use the LFS feature: 6. Adjust the `init.lua` file + `init.lua` is the file that is first executed by the NodeMCU firmware. Usually it setups the wifi connection and executes the main Lua file. + Add the following lines: ```Lua From fd745e0981ca2c4d425c966334cef67180f0cb63 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Fri, 20 Jul 2018 22:07:16 +0100 Subject: [PATCH 24/61] Espressif SDK v2.2.1 (#2401) Minimally build and boot tested, but the changes look pretty boring --- Makefile | 16 ++++++++-------- README.md | 4 ++-- app/lwip/app/dhcpserver.c | 2 +- app/lwip/app/espconn.c | 9 ++++++++- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index e02d41f12a..9709d97a70 100644 --- a/Makefile +++ b/Makefile @@ -3,20 +3,20 @@ .NOTPARALLEL: # SDK base version, as released by Espressif -SDK_BASE_VER:=2.2.0 +SDK_BASE_VER:=2.2.1 # no patch: SDK_VER equals SDK_BASE_VER and sdk dir depends on sdk_extracted -#SDK_VER:=$(SDK_BASE_VER) -#SDK_DIR_DEPENDS:=sdk_extracted +SDK_VER:=$(SDK_BASE_VER) +SDK_DIR_DEPENDS:=sdk_extracted # with patch: SDK_VER differs from SDK_BASE_VER and sdk dir depends on sdk_patched -SDK_PATCH_VER:=f8f27ce -SDK_VER:=$(SDK_BASE_VER)-$(SDK_PATCH_VER) -SDK_DIR_DEPENDS:=sdk_patched +#SDK_PATCH_VER:=f8f27ce +#SDK_VER:=$(SDK_BASE_VER)-$(SDK_PATCH_VER) +#SDK_DIR_DEPENDS:=sdk_patched SDK_FILE_VER:=$(SDK_BASE_VER) -SDK_FILE_SHA1:=8b63f1066d3560ff77f119e8ba30a9c39e7baaad -SDK_PATCH_SHA1:=0bc21ec77b08488f04d3e1c9d161b711d07201a8 +SDK_FILE_SHA1:=48f2242d5895823709f222bf0fffce9d525996c8 +# SDK_PATCH_SHA1:=0bc21ec77b08488f04d3e1c9d161b711d07201a8 # Ensure we search "our" SDK before the tool-chain's SDK (if any) TOP_DIR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST)))) SDK_REL_DIR=sdk/esp_iot_sdk_v$(SDK_VER) diff --git a/README.md b/README.md index 5f74d7b89c..5a20f07b7e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# **NodeMCU 2.2.0** # +# **NodeMCU 2.2.1** # [![Join the chat at https://gitter.im/nodemcu/nodemcu-firmware](https://img.shields.io/gitter/room/badges/shields.svg)](https://gitter.im/nodemcu/nodemcu-firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Build Status](https://travis-ci.org/nodemcu/nodemcu-firmware.svg)](https://travis-ci.org/nodemcu/nodemcu-firmware) @@ -7,7 +7,7 @@ ### A Lua based firmware for ESP8266 WiFi SOC -NodeMCU is an [eLua](http://www.eluaproject.net/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/). The firmware is based on the [Espressif NON-OS SDK 2.2.0](https://github.com/espressif/ESP8266_NONOS_SDK/releases/tag/v2.2.0) and uses a file system based on [spiffs](https://github.com/pellepl/spiffs). The code repository consists of 98.1% C-code that glues the thin Lua veneer to the SDK. +NodeMCU is an [eLua](http://www.eluaproject.net/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/). The firmware is based on the [Espressif NON-OS SDK 2.2.1](https://github.com/espressif/ESP8266_NONOS_SDK/releases/tag/v2.2.1) and uses a file system based on [spiffs](https://github.com/pellepl/spiffs). The code repository consists of 98.1% C-code that glues the thin Lua veneer to the SDK. The NodeMCU *firmware* is a companion project to the popular [NodeMCU dev kits](https://github.com/nodemcu/nodemcu-devkit-v1.0), ready-made open source development boards with ESP8266-12E chips. diff --git a/app/lwip/app/dhcpserver.c b/app/lwip/app/dhcpserver.c index 62b4f64cce..d648cca47e 100644 --- a/app/lwip/app/dhcpserver.c +++ b/app/lwip/app/dhcpserver.c @@ -689,6 +689,7 @@ static void ICACHE_FLASH_ATTR handle_dhcp(void *arg, os_printf("dhcps: handle_dhcp-> DHCPD_STATE_ACK\n"); #endif send_ack(pmsg_dhcps, malloc_len); + wifi_softap_set_station_info(pmsg_dhcps->chaddr, &client_address.addr); break; case DHCPS_STATE_NAK://4 #if DHCPS_DEBUG @@ -1199,7 +1200,6 @@ uint32 ICACHE_FLASH_ATTR wifi_softap_dhcps_client_update(u8 *bssid, struct ip_ad node_insert_to_list(&plist,pback_node); } } - wifi_softap_set_station_info(bssid, &pdhcps_pool->ip); return pdhcps_pool->ip.addr; } diff --git a/app/lwip/app/espconn.c b/app/lwip/app/espconn.c index b03cac224a..28cce33967 100644 --- a/app/lwip/app/espconn.c +++ b/app/lwip/app/espconn.c @@ -1105,6 +1105,8 @@ espconn_set_opt(struct espconn *espconn, uint8 opt) if (value) { pnode->pcommon.espconn_opt |= opt; tpcb = pnode->pcommon.pcb; + if (NULL == tpcb) + return ESPCONN_OK; if (espconn_delay_disabled(pnode)) tcp_nagle_disable(tpcb); @@ -1143,7 +1145,8 @@ espconn_clear_opt(struct espconn *espconn, uint8 opt) tpcb = pnode->pcommon.pcb; if (espconn_keepalive_enabled(pnode)) espconn_keepalive_disable(tpcb); - + if (NULL == tpcb) + return ESPCONN_OK; if (espconn_delay_enabled(pnode)) tcp_nagle_enable(tpcb); @@ -1176,6 +1179,8 @@ sint8 ICACHE_FLASH_ATTR espconn_set_keepalive(struct espconn *espconn, uint8 lev value = espconn_find_connection(espconn, &pnode); if (value && espconn_keepalive_disabled(pnode)) { struct tcp_pcb *pcb = pnode->pcommon.pcb; + if (NULL == pcb) + return ESPCONN_OK; switch (level){ case ESPCONN_KEEPIDLE: pcb->keep_idle = 1000 * (u32_t)(*(int*)optarg); @@ -1221,6 +1226,8 @@ sint8 ICACHE_FLASH_ATTR espconn_get_keepalive(struct espconn *espconn, uint8 lev value = espconn_find_connection(espconn, &pnode); if (value && espconn_keepalive_disabled(pnode)) { struct tcp_pcb *pcb = pnode->pcommon.pcb; + if (NULL == pcb) + return ESPCONN_OK; switch (level) { case ESPCONN_KEEPIDLE: *(int*)optarg = (int)(pcb->keep_idle/1000); From 1f7593538fc655499441482488d3250bc39a9c09 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sat, 18 Nov 2017 18:03:07 +0100 Subject: [PATCH 25/61] remove u8g --- app/include/u8g_config.h | 88 - app/include/user_modules.h | 1 - app/modules/Makefile | 1 - app/modules/u8g.c | 1003 - app/modules/u8g_glue.c | 347 - app/modules/u8g_glue.h | 22 - app/u8glib/Makefile | 46 - app/u8glib/README.md | 34 - app/u8glib/u8g.h | 2072 - app/u8glib/u8g_bitmap.c | 177 - app/u8glib/u8g_circle.c | 382 - app/u8glib/u8g_clip.c | 156 - app/u8glib/u8g_com_api.c | 173 - app/u8glib/u8g_com_api_16gr.c | 94 - app/u8glib/u8g_com_i2c.c | 643 - app/u8glib/u8g_com_io.c | 452 - app/u8glib/u8g_com_null.c | 63 - app/u8glib/u8g_cursor.c | 99 - app/u8glib/u8g_delay.c | 323 - app/u8glib/u8g_dev_a2_micro_printer.c | 199 - app/u8glib/u8g_dev_flipdisc_2x7.c | 92 - app/u8glib/u8g_dev_gprof.c | 130 - app/u8glib/u8g_dev_ht1632.c | 281 - app/u8glib/u8g_dev_ili9325d_320x240.c | 326 - app/u8glib/u8g_dev_ks0108_128x64.c | 110 - app/u8glib/u8g_dev_lc7981_160x80.c | 147 - app/u8glib/u8g_dev_lc7981_240x128.c | 145 - app/u8glib/u8g_dev_lc7981_240x64.c | 145 - app/u8glib/u8g_dev_lc7981_320x64.c | 151 - app/u8glib/u8g_dev_ld7032_60x32.c | 232 - app/u8glib/u8g_dev_null.c | 67 - app/u8glib/u8g_dev_pcd8544_84x48.c | 141 - app/u8glib/u8g_dev_pcf8812_96x65.c | 138 - app/u8glib/u8g_dev_sbn1661_122x32.c | 107 - app/u8glib/u8g_dev_ssd1306_128x32.c | 303 - app/u8glib/u8g_dev_ssd1306_128x64.c | 457 - app/u8glib/u8g_dev_ssd1306_64x48.c | 201 - app/u8glib/u8g_dev_ssd1309_128x64.c | 142 - app/u8glib/u8g_dev_ssd1322_nhd31oled_bw.c | 338 - app/u8glib/u8g_dev_ssd1322_nhd31oled_gr.c | 338 - app/u8glib/u8g_dev_ssd1325_nhd27oled_bw.c | 263 - app/u8glib/u8g_dev_ssd1325_nhd27oled_bw_new.c | 232 - app/u8glib/u8g_dev_ssd1325_nhd27oled_gr.c | 255 - app/u8glib/u8g_dev_ssd1325_nhd27oled_gr_new.c | 228 - app/u8glib/u8g_dev_ssd1327_96x96_gr.c | 299 - app/u8glib/u8g_dev_ssd1351_128x128.c | 787 - app/u8glib/u8g_dev_ssd1353_160x128.c | 425 - app/u8glib/u8g_dev_st7565_64128n.c | 203 - app/u8glib/u8g_dev_st7565_dogm128.c | 190 - app/u8glib/u8g_dev_st7565_dogm132.c | 157 - app/u8glib/u8g_dev_st7565_lm6059.c | 205 - app/u8glib/u8g_dev_st7565_lm6063.c | 236 - app/u8glib/u8g_dev_st7565_nhd_c12832.c | 145 - app/u8glib/u8g_dev_st7565_nhd_c12864.c | 194 - app/u8glib/u8g_dev_st7687_c144mvgd.c | 420 - app/u8glib/u8g_dev_st7920_128x64.c | 175 - app/u8glib/u8g_dev_st7920_192x32.c | 151 - app/u8glib/u8g_dev_st7920_202x32.c | 154 - app/u8glib/u8g_dev_t6963_128x128.c | 193 - app/u8glib/u8g_dev_t6963_128x64.c | 191 - app/u8glib/u8g_dev_t6963_240x128.c | 195 - app/u8glib/u8g_dev_t6963_240x64.c | 195 - app/u8glib/u8g_dev_tls8204_84x48.c | 115 - app/u8glib/u8g_dev_uc1601_c128032.c | 201 - app/u8glib/u8g_dev_uc1608_240x128.c | 200 - app/u8glib/u8g_dev_uc1608_240x64.c | 168 - app/u8glib/u8g_dev_uc1610_dogxl160.c | 290 - app/u8glib/u8g_dev_uc1611_dogm240.c | 126 - app/u8glib/u8g_dev_uc1611_dogxl240.c | 127 - app/u8glib/u8g_dev_uc1701_dogs102.c | 157 - app/u8glib/u8g_dev_uc1701_mini12864.c | 158 - app/u8glib/u8g_ellipse.c | 393 - app/u8glib/u8g_font.c | 1512 - app/u8glib/u8g_font_data.c | 87700 ---------------- app/u8glib/u8g_line.c | 90 - app/u8glib/u8g_ll_api.c | 581 - app/u8glib/u8g_page.c | 81 - app/u8glib/u8g_pb.c | 191 - app/u8glib/u8g_pb14v1.c | 200 - app/u8glib/u8g_pb16h1.c | 213 - app/u8glib/u8g_pb16h2.c | 208 - app/u8glib/u8g_pb16v1.c | 200 - app/u8glib/u8g_pb16v2.c | 172 - app/u8glib/u8g_pb32h1.c | 208 - app/u8glib/u8g_pb8h1.c | 389 - app/u8glib/u8g_pb8h1f.c | 194 - app/u8glib/u8g_pb8h2.c | 167 - app/u8glib/u8g_pb8h8.c | 185 - app/u8glib/u8g_pb8v1.c | 184 - app/u8glib/u8g_pb8v2.c | 153 - app/u8glib/u8g_pbxh16.c | 184 - app/u8glib/u8g_pbxh24.c | 287 - app/u8glib/u8g_polygon.c | 334 - app/u8glib/u8g_rect.c | 232 - app/u8glib/u8g_rot.c | 409 - app/u8glib/u8g_scale.c | 188 - app/u8glib/u8g_state.c | 159 - app/u8glib/u8g_u16toa.c | 68 - app/u8glib/u8g_u8toa.c | 68 - app/u8glib/u8g_virtual_screen.c | 144 - docs/en/modules/u8g.md | 472 - mkdocs.yml | 1 - 102 files changed, 112968 deletions(-) delete mode 100644 app/include/u8g_config.h delete mode 100644 app/modules/u8g.c delete mode 100644 app/modules/u8g_glue.c delete mode 100644 app/modules/u8g_glue.h delete mode 100644 app/u8glib/Makefile delete mode 100644 app/u8glib/README.md delete mode 100644 app/u8glib/u8g.h delete mode 100644 app/u8glib/u8g_bitmap.c delete mode 100644 app/u8glib/u8g_circle.c delete mode 100644 app/u8glib/u8g_clip.c delete mode 100644 app/u8glib/u8g_com_api.c delete mode 100644 app/u8glib/u8g_com_api_16gr.c delete mode 100644 app/u8glib/u8g_com_i2c.c delete mode 100644 app/u8glib/u8g_com_io.c delete mode 100644 app/u8glib/u8g_com_null.c delete mode 100644 app/u8glib/u8g_cursor.c delete mode 100644 app/u8glib/u8g_delay.c delete mode 100644 app/u8glib/u8g_dev_a2_micro_printer.c delete mode 100644 app/u8glib/u8g_dev_flipdisc_2x7.c delete mode 100644 app/u8glib/u8g_dev_gprof.c delete mode 100644 app/u8glib/u8g_dev_ht1632.c delete mode 100644 app/u8glib/u8g_dev_ili9325d_320x240.c delete mode 100644 app/u8glib/u8g_dev_ks0108_128x64.c delete mode 100644 app/u8glib/u8g_dev_lc7981_160x80.c delete mode 100644 app/u8glib/u8g_dev_lc7981_240x128.c delete mode 100644 app/u8glib/u8g_dev_lc7981_240x64.c delete mode 100644 app/u8glib/u8g_dev_lc7981_320x64.c delete mode 100644 app/u8glib/u8g_dev_ld7032_60x32.c delete mode 100644 app/u8glib/u8g_dev_null.c delete mode 100644 app/u8glib/u8g_dev_pcd8544_84x48.c delete mode 100644 app/u8glib/u8g_dev_pcf8812_96x65.c delete mode 100644 app/u8glib/u8g_dev_sbn1661_122x32.c delete mode 100644 app/u8glib/u8g_dev_ssd1306_128x32.c delete mode 100644 app/u8glib/u8g_dev_ssd1306_128x64.c delete mode 100644 app/u8glib/u8g_dev_ssd1306_64x48.c delete mode 100644 app/u8glib/u8g_dev_ssd1309_128x64.c delete mode 100644 app/u8glib/u8g_dev_ssd1322_nhd31oled_bw.c delete mode 100644 app/u8glib/u8g_dev_ssd1322_nhd31oled_gr.c delete mode 100644 app/u8glib/u8g_dev_ssd1325_nhd27oled_bw.c delete mode 100644 app/u8glib/u8g_dev_ssd1325_nhd27oled_bw_new.c delete mode 100644 app/u8glib/u8g_dev_ssd1325_nhd27oled_gr.c delete mode 100644 app/u8glib/u8g_dev_ssd1325_nhd27oled_gr_new.c delete mode 100644 app/u8glib/u8g_dev_ssd1327_96x96_gr.c delete mode 100644 app/u8glib/u8g_dev_ssd1351_128x128.c delete mode 100644 app/u8glib/u8g_dev_ssd1353_160x128.c delete mode 100644 app/u8glib/u8g_dev_st7565_64128n.c delete mode 100644 app/u8glib/u8g_dev_st7565_dogm128.c delete mode 100644 app/u8glib/u8g_dev_st7565_dogm132.c delete mode 100644 app/u8glib/u8g_dev_st7565_lm6059.c delete mode 100644 app/u8glib/u8g_dev_st7565_lm6063.c delete mode 100644 app/u8glib/u8g_dev_st7565_nhd_c12832.c delete mode 100644 app/u8glib/u8g_dev_st7565_nhd_c12864.c delete mode 100644 app/u8glib/u8g_dev_st7687_c144mvgd.c delete mode 100644 app/u8glib/u8g_dev_st7920_128x64.c delete mode 100644 app/u8glib/u8g_dev_st7920_192x32.c delete mode 100644 app/u8glib/u8g_dev_st7920_202x32.c delete mode 100644 app/u8glib/u8g_dev_t6963_128x128.c delete mode 100644 app/u8glib/u8g_dev_t6963_128x64.c delete mode 100644 app/u8glib/u8g_dev_t6963_240x128.c delete mode 100644 app/u8glib/u8g_dev_t6963_240x64.c delete mode 100644 app/u8glib/u8g_dev_tls8204_84x48.c delete mode 100644 app/u8glib/u8g_dev_uc1601_c128032.c delete mode 100644 app/u8glib/u8g_dev_uc1608_240x128.c delete mode 100644 app/u8glib/u8g_dev_uc1608_240x64.c delete mode 100644 app/u8glib/u8g_dev_uc1610_dogxl160.c delete mode 100644 app/u8glib/u8g_dev_uc1611_dogm240.c delete mode 100644 app/u8glib/u8g_dev_uc1611_dogxl240.c delete mode 100644 app/u8glib/u8g_dev_uc1701_dogs102.c delete mode 100644 app/u8glib/u8g_dev_uc1701_mini12864.c delete mode 100644 app/u8glib/u8g_ellipse.c delete mode 100644 app/u8glib/u8g_font.c delete mode 100644 app/u8glib/u8g_font_data.c delete mode 100644 app/u8glib/u8g_line.c delete mode 100644 app/u8glib/u8g_ll_api.c delete mode 100644 app/u8glib/u8g_page.c delete mode 100644 app/u8glib/u8g_pb.c delete mode 100644 app/u8glib/u8g_pb14v1.c delete mode 100644 app/u8glib/u8g_pb16h1.c delete mode 100644 app/u8glib/u8g_pb16h2.c delete mode 100644 app/u8glib/u8g_pb16v1.c delete mode 100644 app/u8glib/u8g_pb16v2.c delete mode 100644 app/u8glib/u8g_pb32h1.c delete mode 100644 app/u8glib/u8g_pb8h1.c delete mode 100644 app/u8glib/u8g_pb8h1f.c delete mode 100644 app/u8glib/u8g_pb8h2.c delete mode 100644 app/u8glib/u8g_pb8h8.c delete mode 100644 app/u8glib/u8g_pb8v1.c delete mode 100644 app/u8glib/u8g_pb8v2.c delete mode 100644 app/u8glib/u8g_pbxh16.c delete mode 100644 app/u8glib/u8g_pbxh24.c delete mode 100644 app/u8glib/u8g_polygon.c delete mode 100644 app/u8glib/u8g_rect.c delete mode 100644 app/u8glib/u8g_rot.c delete mode 100644 app/u8glib/u8g_scale.c delete mode 100644 app/u8glib/u8g_state.c delete mode 100644 app/u8glib/u8g_u16toa.c delete mode 100644 app/u8glib/u8g_u8toa.c delete mode 100644 app/u8glib/u8g_virtual_screen.c delete mode 100644 docs/en/modules/u8g.md diff --git a/app/include/u8g_config.h b/app/include/u8g_config.h deleted file mode 100644 index 99a137e447..0000000000 --- a/app/include/u8g_config.h +++ /dev/null @@ -1,88 +0,0 @@ -#ifndef __U8G_CONFIG_H__ -#define __U8G_CONFIG_H__ - - -// *************************************************************************** -// Configure U8glib fonts -// -// Add a U8G_FONT_TABLE_ENTRY for each font you want to compile into the image -#define U8G_FONT_TABLE_ENTRY(font) -#define U8G_FONT_TABLE \ - U8G_FONT_TABLE_ENTRY(font_6x10) \ - U8G_FONT_TABLE_ENTRY(font_chikita) -#undef U8G_FONT_TABLE_ENTRY -// -// *************************************************************************** - - -// *************************************************************************** -// Enable display drivers -// -// Uncomment the U8G_DISPLAY_TABLE_ENTRY for the device(s) you want to -// compile into the firmware. -// Stick to the assignments to *_I2C and *_SPI tables. -// -// I2C based displays go into here: -// U8G_DISPLAY_TABLE_ENTRY(sh1106_128x64_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x32_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_64x48_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1309_128x64_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1327_96x96_gr_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1611_dogm240_i2c) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1611_dogxl240_i2c) \ - -#define U8G_DISPLAY_TABLE_ENTRY(device) -#define U8G_DISPLAY_TABLE_I2C \ - U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_i2c) \ - -// SPI based displays go into here: -// U8G_DISPLAY_TABLE_ENTRY(ld7032_60x32_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(pcd8544_84x48_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(pcf8812_96x65_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(sh1106_128x64_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x32_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1306_64x48_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1309_128x64_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1322_nhd31oled_bw_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1322_nhd31oled_gr_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1325_nhd27oled_bw_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1325_nhd27oled_gr_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1327_96x96_gr_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1351_128x128_332_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1351_128x128gh_332_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1351_128x128_hicolor_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1351_128x128gh_hicolor_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1353_160x128_332_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(ssd1353_160x128_hicolor_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_64128n_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_dogm128_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_dogm132_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_lm6059_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_lm6063_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_nhd_c12832_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(st7565_nhd_c12864_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1601_c128032_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1608_240x128_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1608_240x64_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1610_dogxl160_bw_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1610_dogxl160_gr_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1611_dogm240_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1611_dogxl240_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1701_dogs102_hw_spi) \ -// U8G_DISPLAY_TABLE_ENTRY(uc1701_mini12864_hw_spi) \ - -#define U8G_DISPLAY_TABLE_SPI \ - U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_hw_spi) \ - -#undef U8G_DISPLAY_TABLE_ENTRY - -// Special display device to provide run-length encoded framebuffer contents -// to a Lua callback: -//#define U8G_DISPLAY_FB_RLE -// -// *************************************************************************** - - -#endif /* __U8G_CONFIG_H__ */ diff --git a/app/include/user_modules.h b/app/include/user_modules.h index a3e6fab8e8..8f8c03274a 100644 --- a/app/include/user_modules.h +++ b/app/include/user_modules.h @@ -64,7 +64,6 @@ //#define LUA_USE_MODULES_TLS #define LUA_USE_MODULES_TMR //#define LUA_USE_MODULES_TSL2561 -//#define LUA_USE_MODULES_U8G #define LUA_USE_MODULES_UART //#define LUA_USE_MODULES_UCG //#define LUA_USE_MODULES_WEBSOCKET diff --git a/app/modules/Makefile b/app/modules/Makefile index 23d298b74e..37a5c1d805 100644 --- a/app/modules/Makefile +++ b/app/modules/Makefile @@ -43,7 +43,6 @@ INCLUDES += -I ./ INCLUDES += -I ../libc INCLUDES += -I ../coap INCLUDES += -I ../mqtt -INCLUDES += -I ../u8glib INCLUDES += -I ../ucglib INCLUDES += -I ../lua INCLUDES += -I ../pcm diff --git a/app/modules/u8g.c b/app/modules/u8g.c deleted file mode 100644 index 65edd9019a..0000000000 --- a/app/modules/u8g.c +++ /dev/null @@ -1,1003 +0,0 @@ -// Module for U8glib - -#include "module.h" -#include "lauxlib.h" -#include "lmem.h" - -#include "u8g.h" -#include "u8g_glue.h" - -#include "u8g_config.h" - - -// helper function: retrieve and check userdata argument -static lu8g_userdata_t *get_lud( lua_State *L ) -{ - lu8g_userdata_t *lud = (lu8g_userdata_t *)luaL_checkudata(L, 1, "u8g.display"); - luaL_argcheck(L, lud, 1, "u8g.display expected"); - return lud; -} - -// helper function: retrieve given number of integer arguments -static void lu8g_get_int_args( lua_State *L, uint8_t stack, uint8_t num, u8g_uint_t *args) -{ - while (num-- > 0) - { - *args++ = luaL_checkinteger( L, stack++ ); - } -} - - -// Lua: u8g.begin( self ) -static int lu8g_begin( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_Begin( LU8G ); - - return 0; -} - -// Lua: u8g.setFont( self, font ) -static int lu8g_setFont( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_fntpgm_uint8_t *font = (u8g_fntpgm_uint8_t *)lua_touserdata( L, 2 ); - if (font != NULL) - u8g_SetFont( LU8G, font ); - else - luaL_argerror(L, 2, "font data expected"); - - return 0; -} - -// Lua: u8g.setFontRefHeightAll( self ) -static int lu8g_setFontRefHeightAll( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontRefHeightAll( LU8G ); - - return 0; -} - -// Lua: u8g.setFontRefHeightExtendedText( self ) -static int lu8g_setFontRefHeightExtendedText( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontRefHeightExtendedText( LU8G ); - - return 0; -} - -// Lua: u8g.setFontRefHeightText( self ) -static int lu8g_setFontRefHeightText( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontRefHeightText( LU8G ); - - return 0; -} - -// Lua: u8g.setDefaultBackgroundColor( self ) -static int lu8g_setDefaultBackgroundColor( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetDefaultBackgroundColor( LU8G ); - - return 0; -} - -// Lua: u8g.setDefaultForegroundColor( self ) -static int lu8g_setDefaultForegroundColor( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetDefaultForegroundColor( LU8G ); - - return 0; -} - -// Lua: u8g.setFontPosBaseline( self ) -static int lu8g_setFontPosBaseline( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontPosBaseline( LU8G ); - - return 0; -} - -// Lua: u8g.setFontPosBottom( self ) -static int lu8g_setFontPosBottom( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontPosBottom( LU8G ); - - return 0; -} - -// Lua: u8g.setFontPosCenter( self ) -static int lu8g_setFontPosCenter( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontPosCenter( LU8G ); - - return 0; -} - -// Lua: u8g.setFontPosTop( self ) -static int lu8g_setFontPosTop( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetFontPosTop( LU8G ); - - return 0; -} - -// Lua: int = u8g.getFontAscent( self ) -static int lu8g_getFontAscent( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetFontAscent( LU8G ) ); - - return 1; -} - -// Lua: int = u8g.getFontDescent( self ) -static int lu8g_getFontDescent( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetFontDescent( LU8G ) ); - - return 1; -} - -// Lua: int = u8g.getFontLineSpacing( self ) -static int lu8g_getFontLineSpacing( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetFontLineSpacing( LU8G ) ); - - return 1; -} - -// Lua: int = u8g.getMode( self ) -static int lu8g_getMode( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetMode( LU8G ) ); - - return 1; -} - -// Lua: u8g.setContrast( self, constrast ) -static int lu8g_setContrast( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetContrast( LU8G, luaL_checkinteger( L, 2 ) ); - - return 0; -} - -// Lua: u8g.setColorIndex( self, color ) -static int lu8g_setColorIndex( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetColorIndex( LU8G, luaL_checkinteger( L, 2 ) ); - - return 0; -} - -// Lua: int = u8g.getColorIndex( self ) -static int lu8g_getColorIndex( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetColorIndex( LU8G ) ); - - return 1; -} - -static int lu8g_generic_drawStr( lua_State *L, uint8_t rot ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[2]; - lu8g_get_int_args( L, 2, 2, args ); - - const char *s = luaL_checkstring( L, (1+2) + 1 ); - if (s == NULL) - return 0; - - switch (rot) - { - case 1: - lua_pushinteger( L, u8g_DrawStr90( LU8G, args[0], args[1], s ) ); - break; - case 2: - lua_pushinteger( L, u8g_DrawStr180( LU8G, args[0], args[1], s ) ); - break; - case 3: - lua_pushinteger( L, u8g_DrawStr270( LU8G, args[0], args[1], s ) ); - break; - default: - lua_pushinteger( L, u8g_DrawStr( LU8G, args[0], args[1], s ) ); - break; - } - - return 1; -} - - -// Lua: pix_len = u8g.drawStr( self, x, y, string ) -static int lu8g_drawStr( lua_State *L ) -{ - return lu8g_generic_drawStr( L, 0 ); -} - -// Lua: pix_len = u8g.drawStr90( self, x, y, string ) -static int lu8g_drawStr90( lua_State *L ) -{ - return lu8g_generic_drawStr( L, 1 ); -} - -// Lua: pix_len = u8g.drawStr180( self, x, y, string ) -static int lu8g_drawStr180( lua_State *L ) -{ - return lu8g_generic_drawStr( L, 2 ); -} - -// Lua: pix_len = u8g.drawStr270( self, x, y, string ) -static int lu8g_drawStr270( lua_State *L ) -{ - return lu8g_generic_drawStr( L, 3 ); -} - -// Lua: u8g.drawLine( self, x1, y1, x2, y2 ) -static int lu8g_drawLine( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - u8g_DrawLine( LU8G, args[0], args[1], args[2], args[3] ); - - return 0; -} - -// Lua: u8g.drawTriangle( self, x0, y0, x1, y1, x2, y2 ) -static int lu8g_drawTriangle( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[6]; - lu8g_get_int_args( L, 2, 6, args ); - - u8g_DrawTriangle( LU8G, args[0], args[1], args[2], args[3], args[4], args[5] ); - - return 0; -} - -// Lua: u8g.drawBox( self, x, y, width, height ) -static int lu8g_drawBox( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - u8g_DrawBox( LU8G, args[0], args[1], args[2], args[3] ); - - return 0; -} - -// Lua: u8g.drawRBox( self, x, y, width, height, radius ) -static int lu8g_drawRBox( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[5]; - lu8g_get_int_args( L, 2, 5, args ); - - u8g_DrawRBox( LU8G, args[0], args[1], args[2], args[3], args[4] ); - - return 0; -} - -// Lua: u8g.drawFrame( self, x, y, width, height ) -static int lu8g_drawFrame( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - u8g_DrawFrame( LU8G, args[0], args[1], args[2], args[3] ); - - return 0; -} - -// Lua: u8g.drawRFrame( self, x, y, width, height, radius ) -static int lu8g_drawRFrame( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[5]; - lu8g_get_int_args( L, 2, 5, args ); - - u8g_DrawRFrame( LU8G, args[0], args[1], args[2], args[3], args[4] ); - - return 0; -} - -// Lua: u8g.drawDisc( self, x0, y0, rad, opt = U8G_DRAW_ALL ) -static int lu8g_drawDisc( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[3]; - lu8g_get_int_args( L, 2, 3, args ); - - u8g_uint_t opt = luaL_optinteger( L, (1+3) + 1, U8G_DRAW_ALL ); - - u8g_DrawDisc( LU8G, args[0], args[1], args[2], opt ); - - return 0; -} - -// Lua: u8g.drawCircle( self, x0, y0, rad, opt = U8G_DRAW_ALL ) -static int lu8g_drawCircle( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[3]; - lu8g_get_int_args( L, 2, 3, args ); - - u8g_uint_t opt = luaL_optinteger( L, (1+3) + 1, U8G_DRAW_ALL ); - - u8g_DrawCircle( LU8G, args[0], args[1], args[2], opt ); - - return 0; -} - -// Lua: u8g.drawEllipse( self, x0, y0, rx, ry, opt = U8G_DRAW_ALL ) -static int lu8g_drawEllipse( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - u8g_uint_t opt = luaL_optinteger( L, (1+4) + 1, U8G_DRAW_ALL ); - - u8g_DrawEllipse( LU8G, args[0], args[1], args[2], args[3], opt ); - - return 0; -} - -// Lua: u8g.drawFilledEllipse( self, x0, y0, rx, ry, opt = U8G_DRAW_ALL ) -static int lu8g_drawFilledEllipse( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - u8g_uint_t opt = luaL_optinteger( L, (1+4) + 1, U8G_DRAW_ALL ); - - u8g_DrawFilledEllipse( LU8G, args[0], args[1], args[2], args[3], opt ); - - return 0; -} - -// Lua: u8g.drawPixel( self, x, y ) -static int lu8g_drawPixel( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[2]; - lu8g_get_int_args( L, 2, 2, args ); - - u8g_DrawPixel( LU8G, args[0], args[1] ); - - return 0; -} - -// Lua: u8g.drawHLine( self, x, y, width ) -static int lu8g_drawHLine( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[3]; - lu8g_get_int_args( L, 2, 3, args ); - - u8g_DrawHLine( LU8G, args[0], args[1], args[2] ); - - return 0; -} - -// Lua: u8g.drawVLine( self, x, y, width ) -static int lu8g_drawVLine( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[3]; - lu8g_get_int_args( L, 2, 3, args ); - - u8g_DrawVLine( LU8G, args[0], args[1], args[2] ); - - return 0; -} - -// Lua: u8g.drawXBM( self, x, y, width, height, data ) -static int lu8g_drawXBM( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - const char *xbm_data = luaL_checkstring( L, (1+4) + 1 ); - if (xbm_data == NULL) - return 0; - - u8g_DrawXBM( LU8G, args[0], args[1], args[2], args[3], (const uint8_t *)xbm_data ); - - return 0; -} - -// Lua: u8g.drawBitmap( self, x, y, count, height, data ) -static int lu8g_drawBitmap( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t args[4]; - lu8g_get_int_args( L, 2, 4, args ); - - const char *bm_data = luaL_checkstring( L, (1+4) + 1 ); - if (bm_data == NULL) - return 0; - - u8g_DrawBitmap( LU8G, args[0], args[1], args[2], args[3], (const uint8_t *)bm_data ); - - return 0; -} - -// Lua: u8g.setScale2x2( self ) -static int lu8g_setScale2x2( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetScale2x2( LU8G ); - - return 0; -} - -// Lua: u8g.undoScale( self ) -static int lu8g_undoScale( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_UndoScale( LU8G ); - - return 0; -} - -// Lua: u8g.firstPage( self ) -static int lu8g_firstPage( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_FirstPage( LU8G ); - - return 0; -} - -// Lua: bool = u8g.nextPage( self ) -static int lu8g_nextPage( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushboolean( L, u8g_NextPage( LU8G ) ); - - return 1; -} - -// Lua: u8g.sleepOn( self ) -static int lu8g_sleepOn( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SleepOn( LU8G ); - - return 0; -} - -// Lua: u8g.sleepOff( self ) -static int lu8g_sleepOff( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SleepOff( LU8G ); - - return 0; -} - -// Lua: u8g.setRot90( self ) -static int lu8g_setRot90( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetRot90( LU8G ); - - return 0; -} - -// Lua: u8g.setRot180( self ) -static int lu8g_setRot180( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetRot180( LU8G ); - - return 0; -} - -// Lua: u8g.setRot270( self ) -static int lu8g_setRot270( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_SetRot270( LU8G ); - - return 0; -} - -// Lua: u8g.undoRotation( self ) -static int lu8g_undoRotation( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_UndoRotation( LU8G ); - - return 0; -} - -// Lua: width = u8g.getWidth( self ) -static int lu8g_getWidth( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetWidth( LU8G ) ); - - return 1; -} - -// Lua: height = u8g.getHeight( self ) -static int lu8g_getHeight( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - lua_pushinteger( L, u8g_GetHeight( LU8G ) ); - - return 1; -} - -// Lua: width = u8g.getStrWidth( self, string ) -static int lu8g_getStrWidth( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - const char *s = luaL_checkstring( L, 2 ); - if (s == NULL) - return 0; - - lua_pushinteger( L, u8g_GetStrWidth( LU8G, s ) ); - - return 1; -} - -// Lua: u8g.setFontLineSpacingFactor( self, factor ) -static int lu8g_setFontLineSpacingFactor( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - u8g_uint_t factor = luaL_checkinteger( L, 2 ); - - u8g_SetFontLineSpacingFactor( LU8G, factor ); - - return 0; -} - - -// device destructor -static int lu8g_close_display( lua_State *L ) -{ - lu8g_userdata_t *lud; - - if ((lud = get_lud( L )) == NULL) - return 0; - - if (lud->cb_ref != LUA_NOREF) { - // this is the fb_rle device - u8g_dev_t *fb_dev = LU8G->dev; - u8g_pb_t *fb_dev_pb = (u8g_pb_t *)(fb_dev->dev_mem); - uint8_t *fb_dev_buf = fb_dev_pb->buf; - - luaM_free( L, fb_dev_buf ); - luaM_free( L, fb_dev_pb ); - luaM_free( L, fb_dev ); - - luaL_unref( L, lud->cb_ref, LUA_REGISTRYINDEX ); - } - - return 0; -} - - -// *************************************************************************** -// Device constructors -// -// -// I2C based devices will use this function template to implement the Lua binding. -#undef U8G_DISPLAY_TABLE_ENTRY -#define U8G_DISPLAY_TABLE_ENTRY(device) \ - static int lu8g_ ## device( lua_State *L ) \ - { \ - unsigned addr = luaL_checkinteger( L, 1 ); \ - unsigned del = luaL_optinteger( L, 2, 0 ); \ - \ - if (addr == 0) \ - return luaL_error( L, "i2c address required" ); \ - \ - lu8g_userdata_t *lud = (lu8g_userdata_t *) lua_newuserdata( L, sizeof( lu8g_userdata_t ) ); \ - lud->cb_ref = LUA_NOREF; \ - \ - lud->i2c_addr = (uint8_t)addr; \ - lud->use_delay = del > 0 ? 1 : 0; \ - \ - u8g_InitI2C( LU8G, &u8g_dev_ ## device, U8G_I2C_OPT_NONE); \ - \ - /* set its metatable */ \ - luaL_getmetatable(L, "u8g.display"); \ - lua_setmetatable(L, -2); \ - \ - return 1; \ - } -// -// Unroll the display table and insert binding functions for I2C based displays. -U8G_DISPLAY_TABLE_I2C -// -// -// -// SPI based devices will use this function template to implement the Lua binding. -#undef U8G_DISPLAY_TABLE_ENTRY -#define U8G_DISPLAY_TABLE_ENTRY(device) \ - static int lu8g_ ## device( lua_State *L ) \ - { \ - unsigned cs = luaL_checkinteger( L, 1 ); \ - if (cs == 0) \ - return luaL_error( L, "CS pin required" ); \ - unsigned dc = luaL_checkinteger( L, 2 ); \ - if (dc == 0) \ - return luaL_error( L, "D/C pin required" ); \ - unsigned res = luaL_optinteger( L, 3, U8G_PIN_NONE ); \ - unsigned del = luaL_optinteger( L, 4, 0 ); \ - \ - lu8g_userdata_t *lud = (lu8g_userdata_t *) lua_newuserdata( L, sizeof( lu8g_userdata_t ) ); \ - lud->cb_ref = LUA_NOREF; \ - \ - lud->use_delay = del > 0 ? 1 : 0; \ - \ - u8g_InitHWSPI( LU8G, &u8g_dev_ ## device, cs, dc, res ); \ - \ - /* set its metatable */ \ - luaL_getmetatable(L, "u8g.display"); \ - lua_setmetatable(L, -2); \ - \ - return 1; \ - } -// -// Unroll the display table and insert binding functions for SPI based displays. -U8G_DISPLAY_TABLE_SPI -// -// -// -// This display forwards the framebuffer contents as run-length encoded chunks to a Lua callback -static int lu8g_fb_rle( lua_State *L ) { - lu8g_userdata_t *lud; - - if ((lua_type( L, 1 ) != LUA_TFUNCTION) && - (lua_type( L, 1 ) != LUA_TLIGHTFUNCTION)) { - luaL_typerror( L, 1, "function" ); - } - - int width = luaL_checkint( L, 2 ); - int height = luaL_checkint( L, 3 ); - - luaL_argcheck( L, (width > 0) && (width < 256) && ((width % 8) == 0), 2, "invalid width" ); - luaL_argcheck( L, (height > 0) && (height < 256) && ((height % 8) == 0), 3, "invalid height" ); - - // construct display device structures manually because width and height are configurable - uint8_t *fb_dev_buf = (uint8_t *)luaM_malloc( L, width ); - - u8g_pb_t *fb_dev_pb = (u8g_pb_t *)luaM_malloc( L, sizeof( u8g_pb_t ) ); - fb_dev_pb->p.page_height = 8; - fb_dev_pb->p.total_height = height; - fb_dev_pb->p.page_y0 = 0; - fb_dev_pb->p.page_y1 = 0; - fb_dev_pb->p.page = 0; - fb_dev_pb->width = width; - fb_dev_pb->buf = fb_dev_buf; - - u8g_dev_t *fb_dev = (u8g_dev_t *)luaM_malloc( L, sizeof( u8g_dev_t ) ); - fb_dev->dev_fn = u8g_dev_gen_fb_fn; - fb_dev->dev_mem = fb_dev_pb; - fb_dev->com_fn = u8g_com_esp8266_fbrle_fn; - - lud = (lu8g_userdata_t *) lua_newuserdata( L, sizeof( lu8g_userdata_t ) ); - lua_pushvalue( L, 1 ); // copy argument (func) to the top of stack - lud->cb_ref = luaL_ref( L, LUA_REGISTRYINDEX ); - - /* set metatable for userdata */ - luaL_getmetatable(L, "u8g.display"); - lua_setmetatable(L, -2); - - u8g_Init8BitFixedPort( LU8G, fb_dev, width, height, 0, 0, 0); - - return 1; -} -// -// *************************************************************************** - - -// Module function map -static const LUA_REG_TYPE lu8g_display_map[] = { - { LSTRKEY( "begin" ), LFUNCVAL( lu8g_begin ) }, - { LSTRKEY( "drawBitmap" ), LFUNCVAL( lu8g_drawBitmap ) }, - { LSTRKEY( "drawBox" ), LFUNCVAL( lu8g_drawBox ) }, - { LSTRKEY( "drawCircle" ), LFUNCVAL( lu8g_drawCircle ) }, - { LSTRKEY( "drawDisc" ), LFUNCVAL( lu8g_drawDisc ) }, - { LSTRKEY( "drawEllipse" ), LFUNCVAL( lu8g_drawEllipse ) }, - { LSTRKEY( "drawFilledEllipse" ), LFUNCVAL( lu8g_drawFilledEllipse ) }, - { LSTRKEY( "drawFrame" ), LFUNCVAL( lu8g_drawFrame ) }, - { LSTRKEY( "drawHLine" ), LFUNCVAL( lu8g_drawHLine ) }, - { LSTRKEY( "drawLine" ), LFUNCVAL( lu8g_drawLine ) }, - { LSTRKEY( "drawPixel" ), LFUNCVAL( lu8g_drawPixel ) }, - { LSTRKEY( "drawRBox" ), LFUNCVAL( lu8g_drawRBox ) }, - { LSTRKEY( "drawRFrame" ), LFUNCVAL( lu8g_drawRFrame ) }, - { LSTRKEY( "drawStr" ), LFUNCVAL( lu8g_drawStr ) }, - { LSTRKEY( "drawStr90" ), LFUNCVAL( lu8g_drawStr90 ) }, - { LSTRKEY( "drawStr180" ), LFUNCVAL( lu8g_drawStr180 ) }, - { LSTRKEY( "drawStr270" ), LFUNCVAL( lu8g_drawStr270 ) }, - { LSTRKEY( "drawTriangle" ), LFUNCVAL( lu8g_drawTriangle ) }, - { LSTRKEY( "drawVLine" ), LFUNCVAL( lu8g_drawVLine ) }, - { LSTRKEY( "drawXBM" ), LFUNCVAL( lu8g_drawXBM ) }, - { LSTRKEY( "firstPage" ), LFUNCVAL( lu8g_firstPage ) }, - { LSTRKEY( "getColorIndex" ), LFUNCVAL( lu8g_getColorIndex ) }, - { LSTRKEY( "getFontAscent" ), LFUNCVAL( lu8g_getFontAscent ) }, - { LSTRKEY( "getFontDescent" ), LFUNCVAL( lu8g_getFontDescent ) }, - { LSTRKEY( "getFontLineSpacing" ), LFUNCVAL( lu8g_getFontLineSpacing ) }, - { LSTRKEY( "getHeight" ), LFUNCVAL( lu8g_getHeight ) }, - { LSTRKEY( "getMode" ), LFUNCVAL( lu8g_getMode ) }, - { LSTRKEY( "getStrWidth" ), LFUNCVAL( lu8g_getStrWidth ) }, - { LSTRKEY( "getWidth" ), LFUNCVAL( lu8g_getWidth ) }, - { LSTRKEY( "nextPage" ), LFUNCVAL( lu8g_nextPage ) }, - { LSTRKEY( "setContrast" ), LFUNCVAL( lu8g_setContrast ) }, - { LSTRKEY( "setColorIndex" ), LFUNCVAL( lu8g_setColorIndex ) }, - { LSTRKEY( "setDefaultBackgroundColor" ), LFUNCVAL( lu8g_setDefaultBackgroundColor ) }, - { LSTRKEY( "setDefaultForegroundColor" ), LFUNCVAL( lu8g_setDefaultForegroundColor ) }, - { LSTRKEY( "setFont" ), LFUNCVAL( lu8g_setFont ) }, - { LSTRKEY( "setFontLineSpacingFactor" ), LFUNCVAL( lu8g_setFontLineSpacingFactor ) }, - { LSTRKEY( "setFontPosBaseline" ), LFUNCVAL( lu8g_setFontPosBaseline ) }, - { LSTRKEY( "setFontPosBottom" ), LFUNCVAL( lu8g_setFontPosBottom ) }, - { LSTRKEY( "setFontPosCenter" ), LFUNCVAL( lu8g_setFontPosCenter ) }, - { LSTRKEY( "setFontPosTop" ), LFUNCVAL( lu8g_setFontPosTop ) }, - { LSTRKEY( "setFontRefHeightAll" ), LFUNCVAL( lu8g_setFontRefHeightAll ) }, - { LSTRKEY( "setFontRefHeightExtendedText" ), LFUNCVAL( lu8g_setFontRefHeightExtendedText ) }, - { LSTRKEY( "setFontRefHeightText" ), LFUNCVAL( lu8g_setFontRefHeightText ) }, - { LSTRKEY( "setRot90" ), LFUNCVAL( lu8g_setRot90 ) }, - { LSTRKEY( "setRot180" ), LFUNCVAL( lu8g_setRot180 ) }, - { LSTRKEY( "setRot270" ), LFUNCVAL( lu8g_setRot270 ) }, - { LSTRKEY( "setScale2x2" ), LFUNCVAL( lu8g_setScale2x2 ) }, - { LSTRKEY( "sleepOff" ), LFUNCVAL( lu8g_sleepOff ) }, - { LSTRKEY( "sleepOn" ), LFUNCVAL( lu8g_sleepOn ) }, - { LSTRKEY( "undoRotation" ), LFUNCVAL( lu8g_undoRotation ) }, - { LSTRKEY( "undoScale" ), LFUNCVAL( lu8g_undoScale ) }, - { LSTRKEY( "__gc" ), LFUNCVAL( lu8g_close_display ) }, - { LSTRKEY( "__index" ), LROVAL( lu8g_display_map ) }, - { LNILKEY, LNILVAL } -}; - -#undef U8G_DISPLAY_TABLE_ENTRY -#undef U8G_FONT_TABLE_ENTRY - -static const LUA_REG_TYPE lu8g_map[] = { -#define U8G_DISPLAY_TABLE_ENTRY(device) \ - { LSTRKEY( #device ), LFUNCVAL ( lu8g_ ##device ) }, - U8G_DISPLAY_TABLE_I2C - U8G_DISPLAY_TABLE_SPI -// Register fonts -#define U8G_FONT_TABLE_ENTRY(font) \ - { LSTRKEY( #font ), LUDATA( (void *)(u8g_ ## font) ) }, - U8G_FONT_TABLE - // - { LSTRKEY( "fb_rle" ), LFUNCVAL( lu8g_fb_rle ) }, - // Options for circle/ ellipse drawing - { LSTRKEY( "DRAW_UPPER_RIGHT" ), LNUMVAL( U8G_DRAW_UPPER_RIGHT ) }, - { LSTRKEY( "DRAW_UPPER_LEFT" ), LNUMVAL( U8G_DRAW_UPPER_LEFT ) }, - { LSTRKEY( "DRAW_LOWER_RIGHT" ), LNUMVAL( U8G_DRAW_LOWER_RIGHT ) }, - { LSTRKEY( "DRAW_LOWER_LEFT" ), LNUMVAL( U8G_DRAW_LOWER_LEFT ) }, - { LSTRKEY( "DRAW_ALL" ), LNUMVAL( U8G_DRAW_ALL ) }, - // Display modes - { LSTRKEY( "MODE_BW" ), LNUMVAL( U8G_MODE_BW ) }, - { LSTRKEY( "MODE_GRAY2BIT" ), LNUMVAL( U8G_MODE_GRAY2BIT ) }, - { LSTRKEY( "__metatable" ), LROVAL( lu8g_map ) }, - { LNILKEY, LNILVAL } -}; - -int luaopen_u8g( lua_State *L ) { - luaL_rometatable(L, "u8g.display", (void *)lu8g_display_map); // create metatable - return 0; -} - -NODEMCU_MODULE(U8G, "u8g", lu8g_map, luaopen_u8g); diff --git a/app/modules/u8g_glue.c b/app/modules/u8g_glue.c deleted file mode 100644 index 41fe2b72d0..0000000000 --- a/app/modules/u8g_glue.c +++ /dev/null @@ -1,347 +0,0 @@ -/* - Functions for integrating U8glib into the nodemcu platform. -*/ - -#include "lauxlib.h" -#include "platform.h" - -#include "c_stdlib.h" - -#include "u8g.h" -#include "u8g_glue.h" - - -// ------------------------------------------------------------ -// comm functions -// -#define I2C_CMD_MODE 0x000 -#define I2C_DATA_MODE 0x040 - -#define ESP_I2C_ID 0 - - -static uint8_t do_i2c_start(uint8_t id, uint8_t sla) -{ - platform_i2c_send_start( id ); - - // ignore return value -> tolerate missing ACK - platform_i2c_send_address( id, sla, PLATFORM_I2C_DIRECTION_TRANSMITTER ); - - return 1; -} - -static uint8_t u8g_com_esp8266_ssd_start_sequence(struct _lu8g_userdata_t *lu8g) -{ - /* are we requested to set the a0 state? */ - if ( lu8g->u8g.pin_list[U8G_PI_SET_A0] == 0 ) - return 1; - - /* setup bus, might be a repeated start */ - if ( do_i2c_start( ESP_I2C_ID, lu8g->i2c_addr ) == 0 ) - return 0; - if ( lu8g->u8g.pin_list[U8G_PI_A0_STATE] == 0 ) - { - // ignore return value -> tolerate missing ACK - if ( platform_i2c_send_byte( ESP_I2C_ID, I2C_CMD_MODE ) == 0 ) - ; //return 0; - } - else - { - platform_i2c_send_byte( ESP_I2C_ID, I2C_DATA_MODE ); - } - - lu8g->u8g.pin_list[U8G_PI_SET_A0] = 0; - return 1; -} - - -static void lu8g_digital_write( struct _lu8g_userdata_t *lu8g, uint8_t pin_index, uint8_t value ) -{ - uint8_t pin; - - pin = lu8g->u8g.pin_list[pin_index]; - if ( pin != U8G_PIN_NONE ) - platform_gpio_write( pin, value ); -} - -void u8g_Delay(u8g_t *u8g, uint16_t msec) -{ - struct _lu8g_userdata_t *lu8g = (struct _lu8g_userdata_t *)u8g; - const uint16_t chunk = 50; - - if (lu8g->use_delay == 0) - return; - - while (msec > chunk) - { - os_delay_us( chunk*1000 ); - msec -= chunk; - } - if (msec > 0) - os_delay_us( msec*1000 ); -} -void u8g_MicroDelay(void) -{ - os_delay_us( 1 ); -} -void u8g_10MicroDelay(void) -{ - os_delay_us( 10 ); -} - - -uint8_t u8g_com_esp8266_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - struct _lu8g_userdata_t *lu8g = (struct _lu8g_userdata_t *)u8g; - - switch(msg) - { - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_INIT: - // we assume that the SPI interface was already initialized - // just care for the /CS and D/C pins - lu8g_digital_write( lu8g, U8G_PI_CS, PLATFORM_GPIO_HIGH ); - platform_gpio_mode( lu8g->u8g.pin_list[U8G_PI_CS], PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_FLOAT ); - platform_gpio_mode( lu8g->u8g.pin_list[U8G_PI_A0], PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_FLOAT ); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - lu8g_digital_write( lu8g, U8G_PI_A0, arg_val == 0 ? PLATFORM_GPIO_LOW : PLATFORM_GPIO_HIGH ); - break; - - case U8G_COM_MSG_CHIP_SELECT: - if (arg_val == 0) - { - /* disable */ - lu8g_digital_write( lu8g, U8G_PI_CS, PLATFORM_GPIO_HIGH ); - } - else - { - /* enable */ - lu8g_digital_write( lu8g, U8G_PI_CS, PLATFORM_GPIO_LOW ); - } - break; - - case U8G_COM_MSG_RESET: - if ( lu8g->u8g.pin_list[U8G_PI_RESET] != U8G_PIN_NONE ) - lu8g_digital_write( lu8g, U8G_PI_RESET, arg_val == 0 ? PLATFORM_GPIO_LOW : PLATFORM_GPIO_HIGH ); - break; - - case U8G_COM_MSG_WRITE_BYTE: - platform_spi_send( 1, 8, arg_val ); - break; - - case U8G_COM_MSG_WRITE_SEQ: - case U8G_COM_MSG_WRITE_SEQ_P: - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - platform_spi_send( 1, 8, *ptr++ ); - arg_val--; - } - } - break; - } - return 1; -} - - -uint8_t u8g_com_esp8266_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - struct _lu8g_userdata_t *lu8g = (struct _lu8g_userdata_t *)u8g; - - switch(msg) - { - case U8G_COM_MSG_INIT: - // we assume that the i2c bus was already initialized - //u8g_i2c_init(u8g->pin_list[U8G_PI_I2C_OPTION]); - - break; - - case U8G_COM_MSG_STOP: - break; - - case U8G_COM_MSG_RESET: - /* Currently disabled, but it could be enable. Previous restrictions have been removed */ - /* u8g_com_arduino_digital_write(u8g, U8G_PI_RESET, arg_val); */ - break; - - case U8G_COM_MSG_CHIP_SELECT: - lu8g->u8g.pin_list[U8G_PI_A0_STATE] = 0; - lu8g->u8g.pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again, also forces start condition */ - if ( arg_val == 0 ) - { - /* disable chip, send stop condition */ - platform_i2c_send_stop( ESP_I2C_ID ); - } - else - { - /* enable, do nothing: any byte writing will trigger the i2c start */ - } - break; - - case U8G_COM_MSG_WRITE_BYTE: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_esp8266_ssd_start_sequence(lu8g) == 0 ) - return platform_i2c_send_stop( ESP_I2C_ID ), 0; - // ignore return value -> tolerate missing ACK - if ( platform_i2c_send_byte( ESP_I2C_ID, arg_val) == 0 ) - ; //return platform_i2c_send_stop( ESP_I2C_ID ), 0; - // platform_i2c_send_stop( ESP_I2C_ID ); - break; - - case U8G_COM_MSG_WRITE_SEQ: - case U8G_COM_MSG_WRITE_SEQ_P: - //u8g->pin_list[U8G_PI_SET_A0] = 1; - if ( u8g_com_esp8266_ssd_start_sequence(lu8g) == 0 ) - return platform_i2c_send_stop( ESP_I2C_ID ), 0; - { - register uint8_t *ptr = arg_ptr; - while( arg_val > 0 ) - { - // ignore return value -> tolerate missing ACK - if ( platform_i2c_send_byte( ESP_I2C_ID, *ptr++) == 0 ) - ; //return platform_i2c_send_stop( ESP_I2C_ID ), 0; - arg_val--; - } - } - // platform_i2c_send_stop( ESP_I2C_ID ); - break; - - case U8G_COM_MSG_ADDRESS: /* define cmd (arg_val = 0) or data mode (arg_val = 1) */ - lu8g->u8g.pin_list[U8G_PI_A0_STATE] = arg_val; - lu8g->u8g.pin_list[U8G_PI_SET_A0] = 1; /* force a0 to set again */ - - break; - } - return 1; -} - - -// *************************************************************************** -// Generic framebuffer device and RLE comm driver -// -uint8_t u8g_dev_gen_fb_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_PAGE_FIRST: - // tell comm driver to start new framebuffer - u8g_SetChipSelect(u8g, dev, 1); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - } - break; - } - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -static int bit_at( uint8_t *buf, int line, int x ) -{ - uint8_t byte = buf[x]; - - return buf[x] & (1 << line) ? 1 : 0; -} - -struct _lu8g_fbrle_item -{ - uint8_t start_x; - uint8_t len; -}; - -struct _lu8g_fbrle_line -{ - uint8_t num_valid; - struct _lu8g_fbrle_item items[0]; -}; - -uint8_t u8g_com_esp8266_fbrle_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - struct _lu8g_userdata_t *lud = (struct _lu8g_userdata_t *)u8g; - - switch(msg) - { - case U8G_COM_MSG_INIT: - // allocate memory -> done - // init buffer - break; - - case U8G_COM_MSG_CHIP_SELECT: - if (arg_val == 1) { - // new frame starts - if (lud->cb_ref != LUA_NOREF) { - // fire callback with nil argument - lua_State *L = lua_getstate(); - lua_rawgeti( L, LUA_REGISTRYINDEX, lud->cb_ref ); - lua_pushnil( L ); - lua_call( L, 1, 0 ); - } - } - break; - - case U8G_COM_MSG_WRITE_SEQ: - case U8G_COM_MSG_WRITE_SEQ_P: - { - uint8_t xwidth = u8g->pin_list[U8G_PI_EN]; - size_t fbrle_line_size = sizeof( struct _lu8g_fbrle_line ) + sizeof( struct _lu8g_fbrle_item ) * (xwidth/2); - int num_lines = arg_val / (xwidth/8); - uint8_t *buf = (uint8_t *)arg_ptr; - - struct _lu8g_fbrle_line *fbrle_line; - if (!(fbrle_line = (struct _lu8g_fbrle_line *)c_malloc( fbrle_line_size ))) { - break; - } - - for (int line = 0; line < num_lines; line++) { - int start_run = -1; - fbrle_line->num_valid = 0; - - for (int x = 0; x < xwidth; x++) { - if (bit_at( buf, line, x ) == 0) { - if (start_run >= 0) { - // inside run, end it and enter result - fbrle_line->items[fbrle_line->num_valid].start_x = start_run; - fbrle_line->items[fbrle_line->num_valid++].len = x - start_run; - //NODE_ERR( " line: %d x: %d len: %d\n", line, start_run, x - start_run ); - start_run = -1; - } - } else { - if (start_run < 0) { - // outside run, start it - start_run = x; - } - } - - if (fbrle_line->num_valid >= xwidth/2) break; - } - - // active run? - if (start_run >= 0 && fbrle_line->num_valid < xwidth/2) { - fbrle_line->items[fbrle_line->num_valid].start_x = start_run; - fbrle_line->items[fbrle_line->num_valid++].len = xwidth - start_run; - } - - // line done, trigger callback - if (lud->cb_ref != LUA_NOREF) { - lua_State *L = lua_getstate(); - - lua_rawgeti( L, LUA_REGISTRYINDEX, lud->cb_ref ); - lua_pushlstring( L, (const char *)fbrle_line, fbrle_line_size ); - lua_call( L, 1, 0 ); - } - } - - c_free( fbrle_line ); - } - break; - } - return 1; -} diff --git a/app/modules/u8g_glue.h b/app/modules/u8g_glue.h deleted file mode 100644 index e8057651ee..0000000000 --- a/app/modules/u8g_glue.h +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef _U8G_GLUE_H_ -#define _U8G_GLUE_H_ - -#include "u8g.h" - -struct _lu8g_userdata_t -{ - u8g_t u8g; - uint8_t i2c_addr; - uint8_t use_delay; - int cb_ref; -}; -typedef struct _lu8g_userdata_t lu8g_userdata_t; - -// shorthand macro for the u8g structure inside the userdata -#define LU8G (&(lud->u8g)) - -uint8_t u8g_com_esp8266_fbrle_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_dev_gen_fb_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -#endif diff --git a/app/u8glib/Makefile b/app/u8glib/Makefile deleted file mode 100644 index 773f40bb95..0000000000 --- a/app/u8glib/Makefile +++ /dev/null @@ -1,46 +0,0 @@ - -############################################################# -# Required variables for each makefile -# Discard this section from all parent makefiles -# Expected variables (with automatic defaults): -# CSRCS (all "C" files in the dir) -# SUBDIRS (all subdirs with a Makefile) -# GEN_LIBS - list of libs to be generated () -# GEN_IMAGES - list of images to be generated () -# COMPONENTS_xxx - a list of libs/objs in the form -# subdir/lib to be extracted and rolled up into -# a generated lib/image xxx.a () -# -ifndef PDIR -GEN_LIBS = libu8glib.a -endif - -STD_CFLAGS=-std=gnu11 -Wimplicit - -############################################################# -# Configuration i.e. compile options etc. -# Target specific stuff (defines etc.) goes in here! -# Generally values applying to a tree are captured in the -# makefile at its root level - these are then overridden -# for a subtree within the makefile rooted therein -# -#DEFINES += - -############################################################# -# Recursion Magic - Don't touch this!! -# -# Each subtree potentially has an include directory -# corresponding to the common APIs applicable to modules -# rooted at that subtree. Accordingly, the INCLUDE PATH -# of a module can only contain the include directories up -# its parent path, and not its siblings -# -# Required for each makefile to inherit from the parent -# - -INCLUDES := $(INCLUDES) -I $(PDIR)include -INCLUDES += -I ./ -INCLUDES += -I ../libc -PDIR := ../$(PDIR) -sinclude $(PDIR)Makefile - diff --git a/app/u8glib/README.md b/app/u8glib/README.md deleted file mode 100644 index ed5598f89b..0000000000 --- a/app/u8glib/README.md +++ /dev/null @@ -1,34 +0,0 @@ -##U8glib package - -Ported from https://github.com/olikraus/u8glib - - -Here is black magic with ImageMagic package for image conversion: - - - -```bash -#!/bin/bash - -mkdir out - -for icon in *png; do - convert $icon -depth 1 ./out/$(basename $icon .png)_1bpp.png - if [[ "$icon" == *"black"* ]]; then - convert ./out/$(basename $icon .png)_1bpp.png -background white -alpha Background ./out/$(basename $icon .png)_1bpp.xbm - else - convert ./out/$(basename $icon .png)_1bpp.png -background black -alpha Background ./out/$(basename $icon .png)_1bpp.xbm - fi - cat ./out/$(basename $icon .png)_1bpp.xbm | tr '\n' ' ' | tr -d " " |sed -e s'#^.*{##g' | sed s'#,}##' |sed s'/;//' | xxd -r -p > ./out/$(basename $icon .png).xbm.mono -done - -rm out/*png out/*xbm -``` -Convert all the png in the current folder and put resulting .mono to ./out - -The convert binary is a part of ImageMagic package. You need to install it. - -``` -sudo apt-get install imagemagick -``` -for Debian/Ubuntu. \ No newline at end of file diff --git a/app/u8glib/u8g.h b/app/u8glib/u8g.h deleted file mode 100644 index c1d6e02be2..0000000000 --- a/app/u8glib/u8g.h +++ /dev/null @@ -1,2072 +0,0 @@ -/* - - u8g.h - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - -*/ - -#ifndef _U8G_H -#define _U8G_H - -/* uncomment the following line to support displays larger than 240x240 */ -//#define U8G_16BIT 1 - -/* comment the following line to generate more compact but interrupt unsafe code */ -#define U8G_INTERRUPT_SAFE 1 - - -#include - -#ifdef __18CXX -typedef unsigned char uint8_t; -typedef signed char int8_t; -typedef unsigned short uint16_t; -typedef signed short int16_t; -#elif defined(__XTENSA__) -# include -#else -#include -#endif - -#if defined(__AVR__) -#include -#endif - -/* - use the com interface directly on any systems which are not AVR or ARDUINO -*/ -#if defined(__AVR__) || defined(ARDUINO) || defined(__MSP430__) -#define U8G_WITH_PINLIST -#endif -#define U8G_WITH_PINLIST - - -#ifdef __cplusplus -extern "C" { -#endif - - -/*===============================================================*/ -#ifdef __GNUC__ -# define U8G_NOINLINE __attribute__((noinline)) -# define U8G_PURE __attribute__ ((pure)) -# define U8G_NOCOMMON __attribute__ ((nocommon)) -# define U8G_SECTION(name) __attribute__ ((section (name))) -# if defined(__MSPGCC__) -/* mspgcc does not have .progmem sections. Use -fdata-sections. */ -# define U8G_FONT_SECTION(name) -# endif -# if defined(__AVR__) -# define U8G_FONT_SECTION(name) U8G_SECTION(".progmem." name) -# endif -# if defined(__XTENSA__) -# define U8G_FONT_SECTION(name) -# endif -#else -# define U8G_NOINLINE -# define U8G_PURE -# define U8G_NOCOMMON -# define U8G_SECTION(name) -# define U8G_FONT_SECTION(name) -#endif - -#ifdef __MSP430__ -/* - Specifying a section will cause the MSP-GCC to put even const data to RAM - at least for the fonts. But as the fonts are consts we don't need to specify - it manually - the MSP-GCC seems to be smart enough to put it into the - flash memory. -*/ -# undef U8G_SECTION -# define U8G_SECTION(name) -#endif - -/*===============================================================*/ - -#ifndef U8G_FONT_SECTION -# define U8G_FONT_SECTION(name) -#endif - - -/*===============================================================*/ -/* flash memory access */ - -#if defined(__AVR__) -/* U8G_PROGMEM is used by the XBM example */ -#define U8G_PROGMEM U8G_SECTION(".progmem.data") -typedef uint8_t PROGMEM u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -#define u8g_pgm_read(adr) pgm_read_byte_near(adr) -#define U8G_PSTR(s) ((u8g_pgm_uint8_t *)PSTR(s)) - -#elif defined(__XTENSA__) -# define U8G_PROGMEM -# define PROGMEM - typedef uint8_t u8g_pgm_uint8_t; - typedef uint8_t u8g_fntpgm_uint8_t; -# define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) -# define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) -#endif - -#ifndef U8G_PROGMEM -# define U8G_PROGMEM -# define PROGMEM -typedef uint8_t u8g_pgm_uint8_t; -typedef uint8_t u8g_fntpgm_uint8_t; -# define u8g_pgm_read(adr) (*(const u8g_pgm_uint8_t *)(adr)) -# define U8G_PSTR(s) ((u8g_pgm_uint8_t *)(s)) -#endif - -/*===============================================================*/ -/* interrupt safe code */ -#if defined(U8G_INTERRUPT_SAFE) -# if defined(__AVR__) -extern uint8_t global_SREG_backup; /* u8g_state.c */ -# define U8G_ATOMIC_START() do { global_SREG_backup = SREG; cli(); } while(0) -# define U8G_ATOMIC_END() SREG = global_SREG_backup -# define U8G_ATOMIC_OR(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) |= (val)); SREG = tmpSREG; } while(0) -# define U8G_ATOMIC_AND(ptr, val) do { uint8_t tmpSREG = SREG; cli(); (*(ptr) &= (val)); SREG = tmpSREG; } while(0) -# else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -# endif /* __AVR__ */ -#else -# define U8G_ATOMIC_OR(ptr, val) (*(ptr) |= (val)) -# define U8G_ATOMIC_AND(ptr, val) (*(ptr) &= (val)) -# define U8G_ATOMIC_START() -# define U8G_ATOMIC_END() -#endif /* U8G_INTERRUPT_SAFE */ - - -/*===============================================================*/ -/* forward */ -typedef struct _u8g_t u8g_t; -typedef struct _u8g_dev_t u8g_dev_t; - -typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; -typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; -typedef struct _u8g_box_t u8g_box_t; -typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; - - -/*===============================================================*/ -/* generic */ -#if defined(U8G_16BIT) -typedef uint16_t u8g_uint_t; -typedef int16_t u8g_int_t; -#else -typedef uint8_t u8g_uint_t; -typedef int8_t u8g_int_t; -#endif - -#ifdef OBSOLETE -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -typedef struct _u8g_box_t u8g_box_t; -#endif /* OBSOLETE */ - - -/*===============================================================*/ -/* device structure */ - -#ifdef __XC8 -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(void *u8g, void *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(void *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#else -/* device prototype */ -typedef uint8_t (*u8g_dev_fnptr)(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* com prototype */ -typedef uint8_t (*u8g_com_fnptr)(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -#endif - - - -struct _u8g_dev_t -{ - u8g_dev_fnptr dev_fn; /* device procedure */ - void *dev_mem; /* device memory */ - u8g_com_fnptr com_fn; /* communication procedure */ -}; - - -/*===============================================================*/ -/* device list */ - -/* Size: 128x64 SDL, u8g_dev_sdl.c */ -extern u8g_dev_t u8g_dev_sdl_1bit; -extern u8g_dev_t u8g_dev_sdl_1bit_h; -extern u8g_dev_t u8g_dev_sdl_2bit; -extern u8g_dev_t u8g_dev_sdl_2bit_double_mem; -extern u8g_dev_t u8g_dev_sdl_8bit; -extern u8g_dev_t u8g_dev_sdl_hicolor; -extern u8g_dev_t u8g_dev_sdl_fullcolor; -int u8g_sdl_get_key(void); - -/* Size: 70x30 monochrom, stdout */ -extern u8g_dev_t u8g_dev_stdout; - -/* Size: monochrom, writes "u8g.pbm" */ -extern u8g_dev_t u8g_dev_pbm; -extern u8g_dev_t u8g_dev_pbm_8h1; -extern u8g_dev_t u8g_dev_pbm_8h2; /* grayscale simulation */ - -/* Size: 128x64 monochrom, no output, used for performance measure */ -extern u8g_dev_t u8g_dev_gprof; - -/* Display: EA DOGS102, Size: 102x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_dogs102_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi; - -/* Display: Mini12864 (dealextreme), Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_uc1701_mini12864_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_hw_spi; - -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi; - -/* Display: EA DOGM132, Size: 128x32 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm132_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm132_hw_spi; - -/* Display: EA DOGM128, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_st7565_dogm128_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_parallel; - -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel; - -/* EA DOGM 240-6 */ -extern u8g_dev_t u8g_dev_uc1611_dogm240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogm240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogm240_sw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogm240_8bit; - -/* EA DOGXL 240 */ -extern u8g_dev_t u8g_dev_uc1611_dogxl240_i2c; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_hw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_sw_spi; -extern u8g_dev_t u8g_dev_uc1611_dogxl240_8bit; - -/* Display: Topway LM6059 128x64 (Adafruit) */ -extern u8g_dev_t u8g_dev_st7565_lm6059_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi; -/* Display: Topway LM6063 128x64 */ -extern u8g_dev_t u8g_dev_st7565_lm6063_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_hw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi; -/* Display: Newhaven NHD-C12864 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi; - -/* Display: Newhaven NHD-C12832 */ -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_sw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_spi; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_parallel; -extern u8g_dev_t u8g_dev_st7565_nhd_c12832_hw_usart_spi; - -/* Display: Displaytech 64128N */ -extern u8g_dev_t u8g_dev_st7565_64128n_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_parallel; - -extern u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi; -extern u8g_dev_t u8g_dev_st7565_64128n_2x_parallel; - -/* Display: LCD-AG-C128032R-DIW W/KK E6 PBF */ -extern u8g_dev_t u8g_dev_uc1601_c128032_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_hw_spi; - -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi; - -/* East Rising/buy-display.com ERC24064-1 */ -extern u8g_dev_t u8g_dev_uc1608_240x64_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi; - -/* UC1608 240x128 */ -extern u8g_dev_t u8g_dev_uc1608_240x128_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_hw_spi; - -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi; -extern u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi; - -/* dfrobot 128x64 Graphic LCD (SKU:FIT0021) */ -extern u8g_dev_t u8g_dev_st7920_128x64_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_custom; - -extern u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_8bit; -extern u8g_dev_t u8g_dev_st7920_128x64_4x_custom; - -/* NHD-19232WG */ -extern u8g_dev_t u8g_dev_st7920_192x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_192x32_4x_8bit; - -/* CrystalFontz CFAG20232 */ -extern u8g_dev_t u8g_dev_st7920_202x32_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_8bit; - -extern u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi; -extern u8g_dev_t u8g_dev_st7920_202x32_4x_8bit; - -/* LC7981 160x80 display */ -extern u8g_dev_t u8g_dev_lc7981_160x80_8bit; -/* LC7981 240x64 display */ -extern u8g_dev_t u8g_dev_lc7981_240x64_8bit; -/* LC7981 240x128 display */ -extern u8g_dev_t u8g_dev_lc7981_240x128_8bit; -/* LC7981 320x64 display */ -extern u8g_dev_t u8g_dev_lc7981_320x64_8bit; - -/* T6963, all t6963 devices have double page (2x) */ -extern u8g_dev_t u8g_dev_t6963_240x128_8bit; -extern u8g_dev_t u8g_dev_t6963_128x128_8bit; -extern u8g_dev_t u8g_dev_t6963_240x64_8bit; -extern u8g_dev_t u8g_dev_t6963_128x64_8bit; - -/* Display: EA DOGXL160, Size: 160x104 monochrom & gray level */ -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_gr_hw_spi; - -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi; - -/* Display: Generic KS0108b, Size: 128x64 monochrom */ -extern u8g_dev_t u8g_dev_ks0108_128x64; /* official Arduino Library interface */ -extern u8g_dev_t u8g_dev_ks0108_128x64_fast; /* faster, but uses private tables from the Arduino Library */ - -/* Nokia 84x48 Display with PCD8544 */ -extern u8g_dev_t u8g_dev_pcd8544_84x48_sw_spi; -extern u8g_dev_t u8g_dev_pcd8544_84x48_hw_spi; -extern u8g_dev_t u8g_dev_tls8204_84x48_sw_spi; - -/* Nokia 96x65 Display with PCF8812 */ -extern u8g_dev_t u8g_dev_pcf8812_96x65_sw_spi; -extern u8g_dev_t u8g_dev_pcf8812_96x65_hw_spi; - -/* NHD-2.7-12864UCY3 OLED Display with SSD1325 Controller */ -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_gr_parallel; - -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi; - -/* LY120 OLED with SSD1327 Controller (tested with Seeedstudio module) */ -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_gr_i2c; - -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c; - -/* NHD-3.12-25664 OLED Display with SSD1322 Controller */ -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_bw_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi; - -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_hw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_gr_parallel; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi; -extern u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi; - -/* OLED 128x64 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_adafruit_128x64_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c; - -/* OLED 128x64 Display with SH1106 Controller */ -extern u8g_dev_t u8g_dev_sh1106_128x64_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_i2c; - -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi; -extern u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c; - -/* OLED 128x64 Display with SSD1309 Controller */ -extern u8g_dev_t u8g_dev_ssd1309_128x64_sw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_hw_spi; -extern u8g_dev_t u8g_dev_ssd1309_128x64_i2c; - -/* OLED 128x32 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_128x32_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c; - -/* OLED 64x48 Display with SSD1306 Controller */ -extern u8g_dev_t u8g_dev_ssd1306_64x48_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_64x48_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_64x48_i2c; - -extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_sw_spi; -extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_hw_spi; -extern u8g_dev_t u8g_dev_ssd1306_64x48_2x_i2c; - -/* OLED 60x32 Display with LD7032 Controller */ -extern u8g_dev_t u8g_dev_ld7032_60x32_sw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_hw_spi; -extern u8g_dev_t u8g_dev_ld7032_60x32_parallel; - -/* experimental 65K TFT with st7687 controller */ -extern u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi; -extern u8g_dev_t u8g_dev_st7687_c144mvgd_8bit; - -/* SBN1661/SED1520 display with 122x32 */ -extern u8g_dev_t u8g_dev_sbn1661_122x32; - -/* flip disc matrix */ -extern u8g_dev_t u8g_dev_flipdisc_2x7; -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)); - -/* ILI9325D based TFT */ -extern u8g_dev_t u8g_dev_ili9325d_320x240_8bit; - - -/* SSD1351 OLED (breakout board from http://www.kickstarter.com/projects/ilsoftltd/colour-oled-breakout-board) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi; - -/* SSD1351 OLED (Freetronics, GPIOs set to high level) */ -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi; -extern u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi; - - -/* SSD1353 OLED Palmtronics */ -extern u8g_dev_t u8g_dev_ssd1353_160x128_332_hw_spi; -extern u8g_dev_t u8g_dev_ssd1353_160x128_hicolor_hw_spi; - -/* HT1632 */ -extern u8g_dev_t u8g_dev_ht1632_24x16; - -/* A2 Micro Printer */ -extern u8g_dev_t u8g_dev_a2_micro_printer_384x240; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x120_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x360_ds; -extern u8g_dev_t u8g_dev_a2_micro_printer_192x720_ds; - -/* u8g_virtual_screen.c */ -extern u8g_dev_t u8g_dev_vs; - - -/*===============================================================*/ -/* device messages */ - -struct _u8g_dev_arg_pixel_t -{ - u8g_uint_t x, y; /* will be modified */ - uint8_t pixel; /* will be modified, pixel sequence or transparency value */ - uint8_t dir; - uint8_t color; /* color or index value, red value for true color mode */ - uint8_t hi_color; /* high byte for 64K color mode, low byte is in "color", green value for true color mode */ - uint8_t blue; /* blue value in true color mode */ -}; -/* typedef struct _u8g_dev_arg_pixel_t u8g_dev_arg_pixel_t; */ /* forward decl */ - -/* range for r,g,b: 0..255 */ -#define U8G_GET_HICOLOR_BY_RGB(r,g,b) (((uint16_t)((r)&0x0f8))<<8)|(((uint16_t)((g)&0x0fc))<<3)|(((uint16_t)((b)>>3))) - -struct _u8g_dev_arg_bbx_t -{ - u8g_uint_t x, y, w, h; -}; -/* typedef struct _u8g_dev_arg_bbx_t u8g_dev_arg_bbx_t; */ /* forward decl */ - -struct _u8g_box_t -{ - u8g_uint_t x0, y0, x1, y1; -}; -/* typedef struct _u8g_box_t u8g_box_t; */ /* forward decl */ - -struct _u8g_dev_arg_irgb_t -{ - u8g_uint_t idx, r, g, b; /* index with rgb value */ -}; -/* typedef struct _u8g_dev_arg_irgb_t u8g_dev_arg_irgb_t; */ /* forward decl */ - - - -#define U8G_DEV_MSG_INIT 10 -#define U8G_DEV_MSG_STOP 11 - -/* arg: pointer to uint8_t, contranst value between 0 and 255 */ -#define U8G_DEV_MSG_CONTRAST 15 - -#define U8G_DEV_MSG_SLEEP_ON 16 -#define U8G_DEV_MSG_SLEEP_OFF 17 - -#define U8G_DEV_MSG_PAGE_FIRST 20 -#define U8G_DEV_MSG_PAGE_NEXT 21 - -/* arg: u8g_dev_arg_bbx_t * */ -/* new algorithm with U8G_DEV_MSG_GET_PAGE_BOX makes this msg obsolete */ -/* #define U8G_DEV_MSG_IS_BBX_INTERSECTION 22 */ - -/* arg: u8g_box_t *, fill structure with current page properties */ -#define U8G_DEV_MSG_GET_PAGE_BOX 23 - -/* -#define U8G_DEV_MSG_PRIMITIVE_START 30 -#define U8G_DEV_MSG_PRIMITIVE_END 31 -*/ - -/* arg: u8g_dev_arg_pixel_t * */ -#define U8G_DEV_MSG_SET_TPIXEL 44 -#define U8G_DEV_MSG_SET_4TPIXEL 45 - -#define U8G_DEV_MSG_SET_PIXEL 50 -#define U8G_DEV_MSG_SET_8PIXEL 59 - -#define U8G_DEV_MSG_SET_COLOR_ENTRY 60 - -#define U8G_DEV_MSG_SET_XY_CB 61 - -#define U8G_DEV_MSG_GET_WIDTH 70 -#define U8G_DEV_MSG_GET_HEIGHT 71 -#define U8G_DEV_MSG_GET_MODE 72 - -/*===============================================================*/ -/* device modes */ -#define U8G_MODE(is_index_mode, is_color, bits_per_pixel) (((is_index_mode)<<6) | ((is_color)<<5)|(bits_per_pixel)) - -#define U8G_MODE_UNKNOWN 0 -#define U8G_MODE_BW U8G_MODE(0, 0, 1) -#define U8G_MODE_GRAY2BIT U8G_MODE(0, 0, 2) -#define U8G_MODE_R3G3B2 U8G_MODE(0, 1, 8) -#define U8G_MODE_INDEX U8G_MODE(1, 1, 8) -/* hicolor is R5G6B5 */ -#define U8G_MODE_HICOLOR U8G_MODE(0, 1, 16) -/* truecolor */ -#define U8G_MODE_TRUECOLOR U8G_MODE(0, 1, 24) - - -#define U8G_MODE_GET_BITS_PER_PIXEL(mode) ((mode)&31) -#define U8G_MODE_IS_COLOR(mode) (((mode)&32)==0?0:1) -#define U8G_MODE_IS_INDEX_MODE(mode) (((mode)&64)==0?0:1) - - -/*===============================================================*/ -/* com options */ - -/* uncomment the following line for Atmega HW SPI double speed, issue 89 */ -/* #define U8G_HW_SPI_2X 1 */ - -/* com messages */ - -#define U8G_COM_MSG_STOP 0 -#define U8G_COM_MSG_INIT 1 - -#define U8G_COM_MSG_ADDRESS 2 - -/* CHIP_SELECT argument: number of the chip which needs to be activated, so this is more like high active */ -#define U8G_COM_MSG_CHIP_SELECT 3 - -#define U8G_COM_MSG_RESET 4 - -#define U8G_COM_MSG_WRITE_BYTE 5 -#define U8G_COM_MSG_WRITE_SEQ 6 -#define U8G_COM_MSG_WRITE_SEQ_P 7 - - -/* com driver */ - -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_null.c */ - -uint8_t u8g_com_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* requires U8G_WITH_PINLIST */ - - -uint8_t u8g_com_arduino_std_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_std_sw_spi.c */ -uint8_t u8g_com_arduino_hw_usart_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_usart_spi.c */ -uint8_t u8g_com_arduino_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_sw_spi.c */ -uint8_t u8g_com_arduino_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_hw_spi.c */ -uint8_t u8g_com_arduino_ATtiny85_std_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_arduino_ATTiny85_std_hw_spi.c */ -uint8_t u8g_com_arduino_st7920_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_spi.c */ -uint8_t u8g_com_arduino_st7920_custom_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_custom.c */ -uint8_t u8g_com_arduino_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_st7920_hw_spi.c */ -uint8_t u8g_com_arduino_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_parallel.c */ -uint8_t u8g_com_arduino_fast_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_fast_parallel.c */ -uint8_t u8g_com_arduino_port_d_wr_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_port_d_wr.c */ -uint8_t u8g_com_arduino_no_en_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_no_en_parallel.c */ -uint8_t u8g_com_arduino_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_ssd_i2c.c */ -uint8_t u8g_com_esp8266_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g.c */ -uint8_t u8g_com_esp8266_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g.c */ -uint8_t u8g_com_arduino_uc_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_arduino_t6963_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_arduino_t6963.c */ - - -uint8_t u8g_com_atmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_hw_spi.c */ -uint8_t u8g_com_atmega_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_sw_spi.c */ -uint8_t u8g_com_atmega_st7920_sw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_st7920_spi.c */ -uint8_t u8g_com_atmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); -uint8_t u8g_com_atmega_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atmega_parallel.c */ - -uint8_t u8g_com_atxmega_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atxmega_hw_spi.c */ -uint8_t u8g_com_atxmega_st7920_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_atxmega_st7920_spi.c */ - -uint8_t u8g_com_msp430_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_msp430_hw_spi.c */ - -uint8_t u8g_com_raspberrypi_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_rasperrypi_hw_spi.c */ -uint8_t u8g_com_raspberrypi_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_raspberrypi_ssd_i2c.c */ - -uint8_t u8g_com_linux_ssd_i2c_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_linux_ssd_i2c.c */ - -uint8_t u8g_com_psoc5_ssd_hw_spi_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_psoc5_ssd_hw_spi.c */ -uint8_t u8g_com_psoc5_ssd_hw_parallel_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr); /* u8g_com_psoc5_ssd_hw_parallel.c */ - -/* - Translation of system specific com drives to generic com names - At the moment, the following generic com drives are available - U8G_COM_HW_SPI - U8G_COM_SW_SPI - U8G_COM_PARALLEL - U8G_COM_T6963 - U8G_COM_FAST_PARALLEL - U8G_COM_SSD_I2C - U8G_COM_UC_I2C - -defined(__18CXX) || defined(__PIC32MX) - -*/ - -/* ==== HW SPI, msp430 ====*/ -#if defined(__MSP430__) -#define U8G_COM_HW_SPI u8g_com_msp430_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif - -/* ==== HW SPI, Raspberry PI ====*/ -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_HW_SPI u8g_com_raspberrypi_hw_spi_fn -#define U8G_COM_SW_SPI u8g_com_null_fn - -/* I'm sure there must be some mad reason for needing this */ -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif - -/* ==== HW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) - -#if defined(__AVR_ATtiny85__) -#define U8G_COM_HW_SPI u8g_com_arduino_ATtiny85_std_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#else - -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#if defined(__AVR_ATmega32U4__) -#define U8G_COM_HW_USART_SPI u8g_com_arduino_hw_usart_spi_fn -#endif /* __AVR_ATmega32U4__ */ -#define U8G_COM_ST7920_HW_SPI u8g_com_arduino_st7920_hw_spi_fn -#endif /* __AVR_ATtiny85__ */ - -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -#define U8G_COM_HW_SPI u8g_com_arduino_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#endif -/* ==== HW SPI, not Arduino ====*/ -#ifndef U8G_COM_HW_SPI -#if defined(__AVR_XMEGA__) -#define U8G_COM_HW_SPI u8g_com_atxmega_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_atxmega_st7920_hw_spi_fn -#elif defined(__AVR__) -#define U8G_COM_HW_SPI u8g_com_atmega_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_atmega_st7920_hw_spi_fn -#endif -#if defined(__XTENSA__) -#define U8G_COM_HW_SPI u8g_com_esp8266_hw_spi_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_HW_SPI -#define U8G_COM_HW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_HW_SPI u8g_com_null_fn -#endif -#ifndef U8G_COM_HW_USART_SPI -#define U8G_COM_HW_USART_SPI u8g_com_null_fn -#endif - - -/* ==== SW SPI, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__18CXX) || defined(__PIC32MX) -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__SAM3X8E__) /* Arduino Due */ -//#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_SW_SPI u8g_com_arduino_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#elif defined(__arm__) /* Teensy */ -#define U8G_COM_SW_SPI u8g_com_arduino_std_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_arduino_st7920_spi_fn -#endif -#endif - -#ifndef U8G_COM_SW_SPI -/* ==== SW SPI, not Arduino ====*/ - -/* ==== SW SPI, msp430 ====*/ -#if defined(__MSP430__) -#define U8G_COM_SW_SPI u8g_com_std_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#endif - -#if defined(__AVR__) -#define U8G_COM_SW_SPI u8g_com_atmega_sw_spi_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_atmega_st7920_sw_spi_fn -#endif -#endif -#ifndef U8G_COM_SW_SPI -#define U8G_COM_SW_SPI u8g_com_null_fn -#define U8G_COM_ST7920_SW_SPI u8g_com_null_fn -#endif - -/* ==== Parallel interface, Arduino ====*/ -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_fast_parallel_fn -#define U8G_COM_T6963 u8g_com_arduino_t6963_fn -#else /* Arduino Due, Chipkit PIC32 */ -#define U8G_COM_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_arduino_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#if defined(__AVR__) -#define U8G_COM_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_FAST_PARALLEL u8g_com_atmega_parallel_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif -#endif -#ifndef U8G_COM_PARALLEL -#define U8G_COM_PARALLEL u8g_com_null_fn -#define U8G_COM_FAST_PARALLEL u8g_com_null_fn -#define U8G_COM_T6963 u8g_com_null_fn -#endif - -#if defined(ARDUINO) -#if defined(__AVR__) -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(__AVR__) || defined(__SAM3X8E__) -/* AVR variant and also DUE can use the arduino version at the moment */ -#define U8G_COM_SSD_I2C u8g_com_arduino_ssd_i2c_fn -#endif -#endif - -#ifndef U8G_COM_SSD_I2C -#if defined(U8G_RASPBERRY_PI) -#define U8G_COM_SSD_I2C u8g_com_raspberrypi_ssd_i2c_fn -#endif -#endif -#ifndef U8G_COM_SSD_I2C -#if defined(U8G_LINUX) -#define U8G_COM_SSD_I2C u8g_com_linux_ssd_i2c_fn -#endif -#if defined(__XTENSA__) -// ESP8266 -#define U8G_COM_SSD_I2C u8g_com_esp8266_ssd_i2c_fn -#endif -#endif -#if defined(U8G_CYPRESS_PSOC5) -#define U8G_COM_HW_SPI u8g_com_psoc5_ssd_hw_spi_fn -#define U8G_COM_FAST_PARALLEL u8g_com_psoc5_ssd_hw_parallel_fn -#endif - -#ifndef U8G_COM_SSD_I2C -#define U8G_COM_SSD_I2C u8g_com_null_fn -#endif - -#ifndef U8G_COM_UC_I2C -#if defined(__AVR__) -/* AVR variant can use the arduino version at the moment */ -#define U8G_COM_UC_I2C u8g_com_arduino_uc_i2c_fn -#endif -#endif -#ifndef U8G_COM_UC_I2C -#define U8G_COM_UC_I2C u8g_com_null_fn -#endif - - -/*===============================================================*/ -/* com api */ - -#define U8G_SPI_CLK_CYCLE_50NS 1 -#define U8G_SPI_CLK_CYCLE_300NS 2 -#define U8G_SPI_CLK_CYCLE_400NS 3 -#define U8G_SPI_CLK_CYCLE_NONE 255 - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time); -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev); -void u8g_EnableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_DisableCom(u8g_t *u8g, u8g_dev_t *dev); /* obsolete */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs); -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev); -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address); -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val); -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq); -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq); - - - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -//uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, u8g_pgm_uint8_t *esc_seq); -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq); - - -/* u8g_com_api_16gr.c */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b); -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr); - - -/*===============================================================*/ -/* u8g_arduino_common.c */ -void u8g_com_arduino_digital_write(u8g_t *u8g, uint8_t pin_index, uint8_t value); -void u8g_com_arduino_assign_pin_output_high(u8g_t *u8g); - -/*===============================================================*/ -/* u8g_com_io.c */ - -/* create internal number from port and pin */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos); -#define PN(port,bitpos) u8g_Pin(port,bitpos) - -/* low level procedures */ -void u8g_SetPinOutput(uint8_t internal_pin_number); -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level); -void u8g_SetPinInput(uint8_t internal_pin_number); -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number); - -/* u8g level procedures, expect U8G_PI_xxx macro */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi); -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level); - - -/*===============================================================*/ -/* page */ -struct _u8g_page_t -{ - u8g_uint_t page_height; - u8g_uint_t total_height; - u8g_uint_t page_y0; - u8g_uint_t page_y1; - uint8_t page; -}; -typedef struct _u8g_page_t u8g_page_t; - -void u8g_page_First(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) U8G_NOINLINE; /* u8g_page.c */ -uint8_t u8g_page_Next(u8g_page_t *p) U8G_NOINLINE; /* u8g_page.c */ - -/*===============================================================*/ -/* page buffer (pb) */ - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; /* pixel width */ - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -/* u8g_pb.c */ -void u8g_pb_Clear(u8g_pb_t *b); -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx); -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box); -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel); -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -/* - note on __attribute__ ((nocommon)) - AVR scripts often use --gc-sections on the linker to remove unused section. - This works fine for initialed data and text sections. In principle .bss is also - handled, but the name##_pb definition is not removed. Reason is, that - array definitions are placed in the COMMON section, by default - The attribute "nocommon" removes this automatic assignment to the - COMMON section and directly puts it into .bss. As a result, if more - than one buffer is defined in one file, then it will be removed with --gc-sections - - .. not sure if Arduino IDE uses -fno-common... if yes, then the attribute is - redundant. -*/ -#define U8G_PB_DEV(name, width, height, page_height, dev_fn, com_fn) \ -uint8_t name##_buf[width] U8G_NOCOMMON ; \ -u8g_pb_t name##_pb = { {page_height, height, 0, 0, 0}, width, name##_buf}; \ -u8g_dev_t name = { dev_fn, &name##_pb, com_fn } - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_Clear(u8g_pb_t *b) U8G_NOINLINE; - -uint8_t u8g_pb8v1_IsYIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1); -uint8_t u8g_pb8v1_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev); - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v1.c */ -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb14v1.c */ -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8v2.c */ -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16v2.c (double memory of pb8v2) */ -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h1.c */ -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h1.c */ -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb32h1.c */ -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/* u8g_pb8h2.c 8 pixel rows, byte has horzontal orientation */ -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb16h2.c */ -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - - -/* u8g_pb8h1f.c */ -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pb8h8.c */ -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh16.c */ -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -/* u8g_pbxh24.c */ -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -/*===============================================================*/ -/* u8g_ll_api.c */ - -/* cursor draw callback */ -typedef void (*u8g_draw_cursor_fn)(u8g_t *u8g); - -/* vertical reference point calculation callback */ -typedef u8g_uint_t (*u8g_font_calc_vref_fnptr)(u8g_t *u8g); - -/* state backup and restore procedure */ -typedef void (*u8g_state_cb)(uint8_t msg); - - -/* PI = Pin Index */ - -/* reset pin, usually optional */ -#define U8G_PI_RESET 0 - -/* address / data or instruction */ -#define U8G_PI_A0 1 -#define U8G_PI_DI 1 - -/* chip select line */ -#define U8G_PI_CS 2 -#define U8G_PI_CS1 2 -#define U8G_PI_CS2 3 -/* Feb 2013: A0 state moved from 7 to 3 for t6963 controller*/ -#define U8G_PI_A0_STATE 3 - -/* enable / clock signal */ -#define U8G_PI_EN 4 -#define U8G_PI_CS_STATE 4 -#define U8G_PI_SCK 4 -#define U8G_PI_SCL 4 -#define U8G_PI_RD 4 - - -/* data pins, shared with SPI and I2C pins */ -#define U8G_PI_D0 5 -#define U8G_PI_MOSI 5 -#define U8G_PI_SDA 5 -#define U8G_PI_D1 6 -#define U8G_PI_MISO 6 -#define U8G_PI_D2 7 -#define U8G_PI_D3 8 -#define U8G_PI_SET_A0 8 -#define U8G_PI_D4 9 -#define U8G_PI_D5 10 -#define U8G_PI_I2C_OPTION 11 -#define U8G_PI_D6 11 -#define U8G_PI_D7 12 - -/* read/write pin, must be the last pin in the list, this means U8G_PIN_LIST_LEN = U8G_PI_RW + 1*/ -#define U8G_PI_WR 13 -#define U8G_PI_RW 13 - -#define U8G_PIN_LIST_LEN 14 - - -#define U8G_PIN_DUMMY 254 -#define U8G_PIN_NONE 255 - -#define U8G_FONT_HEIGHT_MODE_TEXT 0 -#define U8G_FONT_HEIGHT_MODE_XTEXT 1 -#define U8G_FONT_HEIGHT_MODE_ALL 2 - -struct _u8g_t -{ - u8g_uint_t width; - u8g_uint_t height; - - - u8g_dev_t *dev; /* first device in the device chain */ - const u8g_pgm_uint8_t *font; /* regular font for all text procedures */ - const u8g_pgm_uint8_t *cursor_font; /* special font for cursor procedures */ - uint8_t cursor_fg_color, cursor_bg_color; - uint8_t cursor_encoding; - uint8_t mode; /* display mode, one of U8G_MODE_xxx */ - u8g_uint_t cursor_x; - u8g_uint_t cursor_y; - u8g_draw_cursor_fn cursor_fn; - - int8_t glyph_dx; - int8_t glyph_x; - int8_t glyph_y; - uint8_t glyph_width; - uint8_t glyph_height; - - u8g_font_calc_vref_fnptr font_calc_vref; - uint8_t font_height_mode; - int8_t font_ref_ascent; - int8_t font_ref_descent; - uint8_t font_line_spacing_factor; /* line_spacing = factor * (ascent - descent) / 64 */ - uint8_t line_spacing; - - u8g_dev_arg_pixel_t arg_pixel; - /* uint8_t color_index; */ - -#ifdef U8G_WITH_PINLIST - uint8_t pin_list[U8G_PIN_LIST_LEN]; -#endif - - u8g_state_cb state_cb; - - u8g_box_t current_page; /* current box of the visible page */ -}; - -#define u8g_GetFontAscent(u8g) ((u8g)->font_ref_ascent) -#define u8g_GetFontDescent(u8g) ((u8g)->font_ref_descent) -#define u8g_GetFontLineSpacing(u8g) ((u8g)->line_spacing) - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev); -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev); -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast); -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); /* obsolete */ -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev); -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev); - -void u8g_UpdateDimension(u8g_t *u8g); -uint8_t u8g_Begin(u8g_t *u8g); /* reset device, put it into default state and call u8g_UpdateDimension() */ -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev); /* only usefull if the device only as hardcoded ports */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn); /* Init procedure for anything which is not Arduino or AVR (e.g. ARM, but not Due, which is Arduino) */ - -#if defined(U8G_WITH_PINLIST) -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset); -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options); /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset); -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset); -#endif - -void u8g_FirstPage(u8g_t *u8g); -uint8_t u8g_NextPage(u8g_t *u8g); -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast); -void u8g_SleepOn(u8g_t *u8g); -void u8g_SleepOff(u8g_t *u8g); -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y); -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel); -void u8g_Draw8ColorPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t colpixel); - -uint8_t u8g_Stop(u8g_t *u8g); -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx); -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb); -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b); -uint8_t u8g_GetColorIndex(u8g_t *u8g); - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g); -void u8g_SetDefaultForegroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g); -void u8g_SetDefaultBackgroundColor(u8g_t *u8g); - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g); -void u8g_SetDefaultMidColor(u8g_t *u8g); - -#define u8g_GetWidth(u8g) ((u8g)->width) -#define u8g_GetHeight(u8g) ((u8g)->height) -#define u8g_GetMode(u8g) ((u8g)->mode) -/* - U8G_MODE_GET_BITS_PER_PIXEL(u8g_GetMode(u8g)) - U8G_MODE_IS_COLOR(u8g_GetMode(u8g)) -*/ - -/* u8g_state.c */ -#define U8G_STATE_ENV_IDX 0 -#define U8G_STATE_U8G_IDX 1 -#define U8G_STATE_RESTORE 0 -#define U8G_STATE_BACKUP 1 -#define U8G_STATE_MSG_COMPOSE(cmd,idx) (((cmd)<<1) | (idx)) - -#define U8G_STATE_MSG_RESTORE_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_BACKUP_ENV U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_ENV_IDX) -#define U8G_STATE_MSG_RESTORE_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_RESTORE,U8G_STATE_U8G_IDX) -#define U8G_STATE_MSG_BACKUP_U8G U8G_STATE_MSG_COMPOSE(U8G_STATE_BACKUP,U8G_STATE_U8G_IDX) - -#define U8G_STATE_MSG_GET_IDX(msg) ((msg)&1) -#define U8G_STATE_MSG_IS_BACKUP(msg) ((msg)&2) - - - -void u8g_state_dummy_cb(uint8_t msg); -void u8g_backup_spi(uint8_t msg); /* backup SPI state controller */ -/* backward compatible definition */ -#define u8g_backup_avr_spi u8g_backup_spi - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb); - -/* u8g_clip.c */ - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h); - - -/* u8g_rot.c */ - -void u8g_UndoRotation(u8g_t *u8g); -void u8g_SetRot90(u8g_t *u8g); -void u8g_SetRot180(u8g_t *u8g); -void u8g_SetRot270(u8g_t *u8g); - -/* u8g_scale.c */ - -void u8g_UndoScale(u8g_t *u8g); -void u8g_SetScale2x2(u8g_t *u8g); - - -/* u8g_font.c */ - -size_t u8g_font_GetSize(const void *font); -uint8_t u8g_font_GetFontStartEncoding(const void *font) U8G_NOINLINE; -uint8_t u8g_font_GetFontEndEncoding(const void *font) U8G_NOINLINE; - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font); - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g); -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g); -int8_t u8g_GetFontBBXOffX(u8g_t *u8g); -int8_t u8g_GetFontBBXOffY(u8g_t *u8g); -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g); - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding); -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding); - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); /* used by u8g_cursor.c */ - -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding); -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding); - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s); - - -void u8g_SetFontRefHeightText(u8g_t *u8g); -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g); -void u8g_SetFontRefHeightAll(u8g_t *u8g); -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor); - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g); -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g); - -void u8g_SetFontPosBaseline(u8g_t *u8g); -void u8g_SetFontPosBottom(u8g_t *u8g); -void u8g_SetFontPosCenter(u8g_t *u8g); -void u8g_SetFontPosTop(u8g_t *u8g); - - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s); -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -int8_t u8g_GetStrX(u8g_t *u8g, const char *s); -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s); -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) U8G_NOINLINE; -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s); - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s); - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s); - -/* u8g_rect.c */ - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) U8G_NOINLINE; -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) U8G_NOINLINE; - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) U8G_NOINLINE; - -/* u8g_bitmap.c */ - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap); -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap); -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap); -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap); - - -/* u8g_line.c */ -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2); - - -/* u8g_circle.c */ - -/* the following, commented code has been rewritten or is not yet finished -#define U8G_CIRC_UPPER_RIGHT 0x01 -#define U8G_CIRC_UPPER_LEFT 0x02 -#define U8G_CIRC_LOWER_LEFT 0x04 -#define U8G_CIRC_LOWER_RIGHT 0x08 -#define U8G_CIRC_ALL (U8G_CIRC_UPPER_RIGHT|U8G_CIRC_UPPER_LEFT|U8G_CIRC_LOWER_RIGHT|U8G_CIRC_LOWER_LEFT) -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1); -*/ - -#define U8G_DRAW_UPPER_RIGHT 0x01 -#define U8G_DRAW_UPPER_LEFT 0x02 -#define U8G_DRAW_LOWER_LEFT 0x04 -#define U8G_DRAW_LOWER_RIGHT 0x08 -#define U8G_DRAW_ALL (U8G_DRAW_UPPER_RIGHT|U8G_DRAW_UPPER_LEFT|U8G_DRAW_LOWER_RIGHT|U8G_DRAW_LOWER_LEFT) - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) U8G_NOINLINE; - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option); - -/* u8g_ellipse.c */ -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option); - -/* u8g_clip.c */ -uint8_t u8g_is_box_bbx_intersection(u8g_box_t *box, u8g_dev_arg_bbx_t *bbx); - - -/* u8g_cursor.c */ -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font); -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding); -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y); -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg); -void u8g_EnableCursor(u8g_t *u8g); -void u8g_DisableCursor(u8g_t *u8g); -void u8g_DrawCursor(u8g_t *u8g); - -/* u8g_polygon.c */ - -typedef int16_t pg_word_t; - -#define PG_NOINLINE U8G_NOINLINE - -struct pg_point_struct -{ - pg_word_t x; - pg_word_t y; -}; - -typedef struct _pg_struct pg_struct; /* forward declaration */ - -struct pg_edge_struct -{ - pg_word_t x_direction; /* 1, if x2 is greater than x1, -1 otherwise */ - pg_word_t height; - pg_word_t current_x_offset; - pg_word_t error_offset; - - /* --- line loop --- */ - pg_word_t current_y; - pg_word_t max_y; - pg_word_t current_x; - pg_word_t error; - - /* --- outer loop --- */ - uint8_t (*next_idx_fn)(pg_struct *pg, uint8_t i); - uint8_t curr_idx; -}; - -/* maximum number of points in the polygon */ -/* can be redefined, but highest possible value is 254 */ -#define PG_MAX_POINTS 6 - -/* index numbers for the pge structures below */ -#define PG_LEFT 0 -#define PG_RIGHT 1 - - -struct _pg_struct -{ - struct pg_point_struct list[PG_MAX_POINTS]; - uint8_t cnt; - uint8_t is_min_y_not_flat; - pg_word_t total_scan_line_cnt; - struct pg_edge_struct pge[2]; /* left and right line draw structures */ -}; - -void pg_ClearPolygonXY(pg_struct *pg); -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y); -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g); -void u8g_ClearPolygonXY(void); -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y); -void u8g_DrawPolygon(u8g_t *u8g); -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2); - - -/*===============================================================*/ -/* u8g_virtual_screen.c */ -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height); -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g); - -/*===============================================================*/ -void st_Draw(uint8_t fps); -void st_Step(uint8_t player_pos, uint8_t is_auto_fire, uint8_t is_fire); - -/*===============================================================*/ -/* u8g_com_i2c.c */ - -/* options for u8g_i2c_init() */ -#define U8G_I2C_OPT_NONE 0 -#define U8G_I2C_OPT_NO_ACK 2 -#define U8G_I2C_OPT_DEV_0 0 -#define U8G_I2C_OPT_DEV_1 4 -#define U8G_I2C_OPT_FAST 16 - -/* retrun values from u8g_twi_get_error() */ -#define U8G_I2C_ERR_NONE 0x00 -/* the following values are bit masks */ -#define U8G_I2C_ERR_TIMEOUT 0x01 -#define U8G_I2C_ERR_BUS 0x02 - -void u8g_i2c_clear_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_error(void) U8G_NOINLINE; -uint8_t u8g_i2c_get_err_pos(void) U8G_NOINLINE; -void u8g_i2c_init(uint8_t options) U8G_NOINLINE; /* use U8G_I2C_OPT_NONE as options */ -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) U8G_NOINLINE; -uint8_t u8g_i2c_start(uint8_t sla) U8G_NOINLINE; -uint8_t u8g_i2c_send_byte(uint8_t data) U8G_NOINLINE; -uint8_t u8g_i2c_send_mode(uint8_t mode) U8G_NOINLINE; -void u8g_i2c_stop(void) U8G_NOINLINE; - - -/*===============================================================*/ -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d); - -/* u8g_u8toa.c */ -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d); - -/*===============================================================*/ -/* u8g_delay.c */ - -/* delay by the specified number of milliseconds */ -void u8g_Delay(u8g_t *u8g, uint16_t val); - -/* delay by one microsecond */ -void u8g_MicroDelay(void); - -/* delay by 10 microseconds */ -void u8g_10MicroDelay(void); - -/*===============================================================*/ -/* chessengine.c */ -#define CHESS_KEY_NONE 0 -#define CHESS_KEY_NEXT 1 -#define CHESS_KEY_PREV 2 -#define CHESS_KEY_SELECT 3 -#define CHESS_KEY_BACK 4 - -void chess_Init(u8g_t *u8g, uint8_t empty_body_color); -void chess_Draw(void); -void chess_Step(uint8_t keycode); - -/*===============================================================*/ -/* font definitions */ -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_5[] U8G_FONT_SECTION("u8g_font_m2icon_5"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_7[] U8G_FONT_SECTION("u8g_font_m2icon_7"); -extern const u8g_fntpgm_uint8_t u8g_font_m2icon_9[] U8G_FONT_SECTION("u8g_font_m2icon_9"); - -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4[] U8G_FONT_SECTION("u8g_font_u8glib_4"); -extern const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[] U8G_FONT_SECTION("u8g_font_u8glib_4r"); - - -extern const u8g_fntpgm_uint8_t u8g_font_6x12_75r[] U8G_FONT_SECTION("u8g_font_6x12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_75r[] U8G_FONT_SECTION("u8g_font_6x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_75r[] U8G_FONT_SECTION("u8g_font_7x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_75r[] U8G_FONT_SECTION("u8g_font_8x13_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_75r[] U8G_FONT_SECTION("u8g_font_9x15_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_75r[] U8G_FONT_SECTION("u8g_font_9x18_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_75r[] U8G_FONT_SECTION("u8g_font_cu12_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_75r[] U8G_FONT_SECTION("u8g_font_unifont_75r"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_75r[] U8G_FONT_SECTION("u8g_font_10x20_75r"); - -extern const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[] U8G_FONT_SECTION("u8g_font_10x20_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[] U8G_FONT_SECTION("u8g_font_10x20_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20[] U8G_FONT_SECTION("u8g_font_10x20"); -extern const u8g_fntpgm_uint8_t u8g_font_10x20r[] U8G_FONT_SECTION("u8g_font_10x20r"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6[] U8G_FONT_SECTION("u8g_font_4x6"); -extern const u8g_fntpgm_uint8_t u8g_font_4x6r[] U8G_FONT_SECTION("u8g_font_4x6r"); -//extern const u8g_fntpgm_uint8_t u8g_font_4x6n[] U8G_FONT_SECTION("u8g_font_4x6n"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7[] U8G_FONT_SECTION("u8g_font_5x7"); -extern const u8g_fntpgm_uint8_t u8g_font_5x7r[] U8G_FONT_SECTION("u8g_font_5x7r"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8[] U8G_FONT_SECTION("u8g_font_5x8"); -extern const u8g_fntpgm_uint8_t u8g_font_5x8r[] U8G_FONT_SECTION("u8g_font_5x8r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10[] U8G_FONT_SECTION("u8g_font_6x10"); -extern const u8g_fntpgm_uint8_t u8g_font_6x10r[] U8G_FONT_SECTION("u8g_font_6x10r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[] U8G_FONT_SECTION("u8g_font_6x12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[] U8G_FONT_SECTION("u8g_font_6x12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12[] U8G_FONT_SECTION("u8g_font_6x12"); -extern const u8g_fntpgm_uint8_t u8g_font_6x12r[] U8G_FONT_SECTION("u8g_font_6x12r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[] U8G_FONT_SECTION("u8g_font_6x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[] U8G_FONT_SECTION("u8g_font_6x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13B[] U8G_FONT_SECTION("u8g_font_6x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Br[] U8G_FONT_SECTION("u8g_font_6x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13[] U8G_FONT_SECTION("u8g_font_6x13"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13r[] U8G_FONT_SECTION("u8g_font_6x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13O[] U8G_FONT_SECTION("u8g_font_6x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_6x13Or[] U8G_FONT_SECTION("u8g_font_6x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[] U8G_FONT_SECTION("u8g_font_7x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13_78_79[] U8G_FONT_SECTION("u8g_font_7x13_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13B[] U8G_FONT_SECTION("u8g_font_7x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Br[] U8G_FONT_SECTION("u8g_font_7x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13[] U8G_FONT_SECTION("u8g_font_7x13"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13r[] U8G_FONT_SECTION("u8g_font_7x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13O[] U8G_FONT_SECTION("u8g_font_7x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_7x13Or[] U8G_FONT_SECTION("u8g_font_7x13Or"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14B[] U8G_FONT_SECTION("u8g_font_7x14B"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14Br[] U8G_FONT_SECTION("u8g_font_7x14Br"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14[] U8G_FONT_SECTION("u8g_font_7x14"); -extern const u8g_fntpgm_uint8_t u8g_font_7x14r[] U8G_FONT_SECTION("u8g_font_7x14r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[] U8G_FONT_SECTION("u8g_font_8x13_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13B[] U8G_FONT_SECTION("u8g_font_8x13B"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Br[] U8G_FONT_SECTION("u8g_font_8x13Br"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13[] U8G_FONT_SECTION("u8g_font_8x13"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13r[] U8G_FONT_SECTION("u8g_font_8x13r"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13O[] U8G_FONT_SECTION("u8g_font_8x13O"); -extern const u8g_fntpgm_uint8_t u8g_font_8x13Or[] U8G_FONT_SECTION("u8g_font_8x13Or"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[] U8G_FONT_SECTION("u8g_font_9x15_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[] U8G_FONT_SECTION("u8g_font_9x15_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15B[] U8G_FONT_SECTION("u8g_font_9x15B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15Br[] U8G_FONT_SECTION("u8g_font_9x15Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15[] U8G_FONT_SECTION("u8g_font_9x15"); -extern const u8g_fntpgm_uint8_t u8g_font_9x15r[] U8G_FONT_SECTION("u8g_font_9x15r"); - -extern const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[] U8G_FONT_SECTION("u8g_font_9x18_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[] U8G_FONT_SECTION("u8g_font_9x18_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18B[] U8G_FONT_SECTION("u8g_font_9x18B"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18[] U8G_FONT_SECTION("u8g_font_9x18"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18Br[] U8G_FONT_SECTION("u8g_font_9x18Br"); -extern const u8g_fntpgm_uint8_t u8g_font_9x18r[] U8G_FONT_SECTION("u8g_font_9x18r"); - -extern const u8g_fntpgm_uint8_t u8g_font_cursor[] U8G_FONT_SECTION("u8g_font_cursor"); -extern const u8g_fntpgm_uint8_t u8g_font_cursorr[] U8G_FONT_SECTION("u8g_font_cursorr"); -extern const u8g_fntpgm_uint8_t u8g_font_micro[] U8G_FONT_SECTION("u8g_font_micro"); - -extern const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[] U8G_FONT_SECTION("u8g_font_cu12_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12_78_79[] U8G_FONT_SECTION("u8g_font_cu12_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_cu12[] U8G_FONT_SECTION("u8g_font_cu12"); - -/* - Free-Universal Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fub11[] U8G_FONT_SECTION("u8g_font_fub11"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11r[] U8G_FONT_SECTION("u8g_font_fub11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub11n[] U8G_FONT_SECTION("u8g_font_fub11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14[] U8G_FONT_SECTION("u8g_font_fub14"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14r[] U8G_FONT_SECTION("u8g_font_fub14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub14n[] U8G_FONT_SECTION("u8g_font_fub14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17[] U8G_FONT_SECTION("u8g_font_fub17"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17r[] U8G_FONT_SECTION("u8g_font_fub17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub17n[] U8G_FONT_SECTION("u8g_font_fub17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20[] U8G_FONT_SECTION("u8g_font_fub20"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20r[] U8G_FONT_SECTION("u8g_font_fub20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub20n[] U8G_FONT_SECTION("u8g_font_fub20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25[] U8G_FONT_SECTION("u8g_font_fub25"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25r[] U8G_FONT_SECTION("u8g_font_fub25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub25n[] U8G_FONT_SECTION("u8g_font_fub25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30[] U8G_FONT_SECTION("u8g_font_fub30"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30r[] U8G_FONT_SECTION("u8g_font_fub30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fub30n[] U8G_FONT_SECTION("u8g_font_fub30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub35n[] U8G_FONT_SECTION("u8g_font_fub35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub42n[] U8G_FONT_SECTION("u8g_font_fub42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fub49n[] U8G_FONT_SECTION("u8g_font_fub49n"); - -/* - Free-Universal Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_fur11[] U8G_FONT_SECTION("u8g_font_fur11"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11r[] U8G_FONT_SECTION("u8g_font_fur11r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur11n[] U8G_FONT_SECTION("u8g_font_fur11n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14[] U8G_FONT_SECTION("u8g_font_fur14"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14r[] U8G_FONT_SECTION("u8g_font_fur14r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur14n[] U8G_FONT_SECTION("u8g_font_fur14n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17[] U8G_FONT_SECTION("u8g_font_fur17"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17r[] U8G_FONT_SECTION("u8g_font_fur17r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur17n[] U8G_FONT_SECTION("u8g_font_fur17n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20[] U8G_FONT_SECTION("u8g_font_fur20"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20r[] U8G_FONT_SECTION("u8g_font_fur20r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur20n[] U8G_FONT_SECTION("u8g_font_fur20n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25[] U8G_FONT_SECTION("u8g_font_fur25"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25r[] U8G_FONT_SECTION("u8g_font_fur25r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur25n[] U8G_FONT_SECTION("u8g_font_fur25n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30[] U8G_FONT_SECTION("u8g_font_fur30"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30r[] U8G_FONT_SECTION("u8g_font_fur30r"); -extern const u8g_fntpgm_uint8_t u8g_font_fur30n[] U8G_FONT_SECTION("u8g_font_fur30n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur35n[] U8G_FONT_SECTION("u8g_font_fur35n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur42n[] U8G_FONT_SECTION("u8g_font_fur42n"); -extern const u8g_fntpgm_uint8_t u8g_font_fur49n[] U8G_FONT_SECTION("u8g_font_fur49n"); - -/* - Gentium Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11[] U8G_FONT_SECTION("u8g_font_gdb11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12[] U8G_FONT_SECTION("u8g_font_gdb12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14[] U8G_FONT_SECTION("u8g_font_gdb14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17[] U8G_FONT_SECTION("u8g_font_gdb17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20[] U8G_FONT_SECTION("u8g_font_gdb20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25[] U8G_FONT_SECTION("u8g_font_gdb25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30[] U8G_FONT_SECTION("u8g_font_gdb30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11r[] U8G_FONT_SECTION("u8g_font_gdb11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12r[] U8G_FONT_SECTION("u8g_font_gdb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14r[] U8G_FONT_SECTION("u8g_font_gdb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17r[] U8G_FONT_SECTION("u8g_font_gdb17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20r[] U8G_FONT_SECTION("u8g_font_gdb20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25r[] U8G_FONT_SECTION("u8g_font_gdb25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30r[] U8G_FONT_SECTION("u8g_font_gdb30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdb11n[] U8G_FONT_SECTION("u8g_font_gdb11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb12n[] U8G_FONT_SECTION("u8g_font_gdb12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb14n[] U8G_FONT_SECTION("u8g_font_gdb14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb17n[] U8G_FONT_SECTION("u8g_font_gdb17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb20n[] U8G_FONT_SECTION("u8g_font_gdb20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb25n[] U8G_FONT_SECTION("u8g_font_gdb25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdb30n[] U8G_FONT_SECTION("u8g_font_gdb30n"); - -/* - Gentium Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9[] U8G_FONT_SECTION("u8g_font_gdr9"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10[] U8G_FONT_SECTION("u8g_font_gdr10"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11[] U8G_FONT_SECTION("u8g_font_gdr11"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12[] U8G_FONT_SECTION("u8g_font_gdr12"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14[] U8G_FONT_SECTION("u8g_font_gdr14"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17[] U8G_FONT_SECTION("u8g_font_gdr17"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20[] U8G_FONT_SECTION("u8g_font_gdr20"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25[] U8G_FONT_SECTION("u8g_font_gdr25"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30[] U8G_FONT_SECTION("u8g_font_gdr30"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9r[] U8G_FONT_SECTION("u8g_font_gdr9r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10r[] U8G_FONT_SECTION("u8g_font_gdr10r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11r[] U8G_FONT_SECTION("u8g_font_gdr11r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12r[] U8G_FONT_SECTION("u8g_font_gdr12r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14r[] U8G_FONT_SECTION("u8g_font_gdr14r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17r[] U8G_FONT_SECTION("u8g_font_gdr17r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20r[] U8G_FONT_SECTION("u8g_font_gdr20r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25r[] U8G_FONT_SECTION("u8g_font_gdr25r"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30r[] U8G_FONT_SECTION("u8g_font_gdr30r"); - -extern const u8g_fntpgm_uint8_t u8g_font_gdr9n[] U8G_FONT_SECTION("u8g_font_gdr9n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr10n[] U8G_FONT_SECTION("u8g_font_gdr10n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr11n[] U8G_FONT_SECTION("u8g_font_gdr11n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr12n[] U8G_FONT_SECTION("u8g_font_gdr12n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr14n[] U8G_FONT_SECTION("u8g_font_gdr14n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr17n[] U8G_FONT_SECTION("u8g_font_gdr17n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr20n[] U8G_FONT_SECTION("u8g_font_gdr20n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr25n[] U8G_FONT_SECTION("u8g_font_gdr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_gdr30n[] U8G_FONT_SECTION("u8g_font_gdr30n"); - -/* - Old-Standard Bold - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osb18[] U8G_FONT_SECTION("u8g_font_osb18"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21[] U8G_FONT_SECTION("u8g_font_osb21"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26[] U8G_FONT_SECTION("u8g_font_osb26"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29[] U8G_FONT_SECTION("u8g_font_osb29"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35[] U8G_FONT_SECTION("u8g_font_osb35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18r[] U8G_FONT_SECTION("u8g_font_osb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21r[] U8G_FONT_SECTION("u8g_font_osb21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26r[] U8G_FONT_SECTION("u8g_font_osb26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29r[] U8G_FONT_SECTION("u8g_font_osb29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35r[] U8G_FONT_SECTION("u8g_font_osb35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osb18n[] U8G_FONT_SECTION("u8g_font_osb18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb21n[] U8G_FONT_SECTION("u8g_font_osb21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb26n[] U8G_FONT_SECTION("u8g_font_osb26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb29n[] U8G_FONT_SECTION("u8g_font_osb29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osb35n[] U8G_FONT_SECTION("u8g_font_osb35n"); - -/* - Old-Standard Regular - r: Reduced char set (codes 32 - 128) - n: Numbers (codes 42 - 57) - no char: Full set (codes 32 - 255) -*/ - -extern const u8g_fntpgm_uint8_t u8g_font_osr18[] U8G_FONT_SECTION("u8g_font_osr18"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21[] U8G_FONT_SECTION("u8g_font_osr21"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26[] U8G_FONT_SECTION("u8g_font_osr26"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29[] U8G_FONT_SECTION("u8g_font_osr29"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35[] U8G_FONT_SECTION("u8g_font_osr35"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18r[] U8G_FONT_SECTION("u8g_font_osr18r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21r[] U8G_FONT_SECTION("u8g_font_osr21r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26r[] U8G_FONT_SECTION("u8g_font_osr26r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29r[] U8G_FONT_SECTION("u8g_font_osr29r"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35r[] U8G_FONT_SECTION("u8g_font_osr35r"); - -extern const u8g_fntpgm_uint8_t u8g_font_osr18n[] U8G_FONT_SECTION("u8g_font_osr18n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr21n[] U8G_FONT_SECTION("u8g_font_osr21n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr26n[] U8G_FONT_SECTION("u8g_font_osr26n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr29n[] U8G_FONT_SECTION("u8g_font_osr29n"); -extern const u8g_fntpgm_uint8_t u8g_font_osr35n[] U8G_FONT_SECTION("u8g_font_osr35n"); - -//extern const u8g_fntpgm_uint8_t u8g_font_osr41[] U8G_FONT_SECTION("u8g_font_osr41"); - -/* GNU unifont */ - -extern const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[] U8G_FONT_SECTION("u8g_font_unifont_18_19"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[] U8G_FONT_SECTION("u8g_font_unifont_72_73"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[] U8G_FONT_SECTION("u8g_font_unifont_67_75"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_76[] U8G_FONT_SECTION("u8g_font_unifont_76"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_77[] U8G_FONT_SECTION("u8g_font_unifont_77"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[] U8G_FONT_SECTION("u8g_font_unifont_78_79"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_86[] U8G_FONT_SECTION("u8g_font_unifont_86"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont[] U8G_FONT_SECTION("u8g_font_unifont"); -extern const u8g_fntpgm_uint8_t u8g_font_unifontr[] U8G_FONT_SECTION("u8g_font_unifontr"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[] U8G_FONT_SECTION("u8g_font_unifont_0_8"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[] U8G_FONT_SECTION("u8g_font_unifont_2_3"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[] U8G_FONT_SECTION("u8g_font_unifont_4_5"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[] U8G_FONT_SECTION("u8g_font_unifont_8_9"); -extern const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[] U8G_FONT_SECTION("u8g_font_unifont_12_13"); - - -/* 04b fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_04b_03b[] U8G_FONT_SECTION("u8g_font_04b_03b"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03bn[] U8G_FONT_SECTION("u8g_font_04b_03bn"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03br[] U8G_FONT_SECTION("u8g_font_04b_03br"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03[] U8G_FONT_SECTION("u8g_font_04b_03"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03n[] U8G_FONT_SECTION("u8g_font_04b_03n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_03r[] U8G_FONT_SECTION("u8g_font_04b_03r"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24[] U8G_FONT_SECTION("u8g_font_04b_24"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24n[] U8G_FONT_SECTION("u8g_font_04b_24n"); -extern const u8g_fntpgm_uint8_t u8g_font_04b_24r[] U8G_FONT_SECTION("u8g_font_04b_24r"); - -/* orgdot fonts */ - -extern const u8g_fntpgm_uint8_t u8g_font_orgv01[] U8G_FONT_SECTION("u8g_font_orgv01"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01r[] U8G_FONT_SECTION("u8g_font_orgv01r"); -extern const u8g_fntpgm_uint8_t u8g_font_orgv01n[] U8G_FONT_SECTION("u8g_font_orgv01n"); - -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0[] U8G_FONT_SECTION("u8g_font_fixed_v0"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[] U8G_FONT_SECTION("u8g_font_fixed_v0r"); -extern const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[] U8G_FONT_SECTION("u8g_font_fixed_v0n"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpssb[] U8G_FONT_SECTION("u8g_font_tpssb"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbr[] U8G_FONT_SECTION("u8g_font_tpssbr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssbn[] U8G_FONT_SECTION("u8g_font_tpssbn"); - -extern const u8g_fntpgm_uint8_t u8g_font_tpss[] U8G_FONT_SECTION("u8g_font_tpss"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssr[] U8G_FONT_SECTION("u8g_font_tpssr"); -extern const u8g_fntpgm_uint8_t u8g_font_tpssn[] U8G_FONT_SECTION("u8g_font_tpssn"); - -/* contributed */ - -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[] U8G_FONT_SECTION("u8g_font_freedoomr25n"); -extern const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[] U8G_FONT_SECTION("u8g_font_freedoomr10r"); - -/* adobe X11 */ -extern const u8g_fntpgm_uint8_t u8g_font_courB08[] U8G_FONT_SECTION("u8g_font_courB08"); -extern const u8g_fntpgm_uint8_t u8g_font_courB08r[] U8G_FONT_SECTION("u8g_font_courB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10[] U8G_FONT_SECTION("u8g_font_courB10"); -extern const u8g_fntpgm_uint8_t u8g_font_courB10r[] U8G_FONT_SECTION("u8g_font_courB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12[] U8G_FONT_SECTION("u8g_font_courB12"); -extern const u8g_fntpgm_uint8_t u8g_font_courB12r[] U8G_FONT_SECTION("u8g_font_courB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14[] U8G_FONT_SECTION("u8g_font_courB14"); -extern const u8g_fntpgm_uint8_t u8g_font_courB14r[] U8G_FONT_SECTION("u8g_font_courB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18[] U8G_FONT_SECTION("u8g_font_courB18"); -extern const u8g_fntpgm_uint8_t u8g_font_courB18r[] U8G_FONT_SECTION("u8g_font_courB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24[] U8G_FONT_SECTION("u8g_font_courB24"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24r[] U8G_FONT_SECTION("u8g_font_courB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courB24n[] U8G_FONT_SECTION("u8g_font_courB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_courR08[] U8G_FONT_SECTION("u8g_font_courR08"); -extern const u8g_fntpgm_uint8_t u8g_font_courR08r[] U8G_FONT_SECTION("u8g_font_courR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10[] U8G_FONT_SECTION("u8g_font_courR10"); -extern const u8g_fntpgm_uint8_t u8g_font_courR10r[] U8G_FONT_SECTION("u8g_font_courR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12[] U8G_FONT_SECTION("u8g_font_courR12"); -extern const u8g_fntpgm_uint8_t u8g_font_courR12r[] U8G_FONT_SECTION("u8g_font_courR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14[] U8G_FONT_SECTION("u8g_font_courR14"); -extern const u8g_fntpgm_uint8_t u8g_font_courR14r[] U8G_FONT_SECTION("u8g_font_courR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18[] U8G_FONT_SECTION("u8g_font_courR18"); -extern const u8g_fntpgm_uint8_t u8g_font_courR18r[] U8G_FONT_SECTION("u8g_font_courR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24[] U8G_FONT_SECTION("u8g_font_courR24"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24r[] U8G_FONT_SECTION("u8g_font_courR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_courR24n[] U8G_FONT_SECTION("u8g_font_courR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvB08[] U8G_FONT_SECTION("u8g_font_helvB08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08r[] U8G_FONT_SECTION("u8g_font_helvB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB08n[] U8G_FONT_SECTION("u8g_font_helvB08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10[] U8G_FONT_SECTION("u8g_font_helvB10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10r[] U8G_FONT_SECTION("u8g_font_helvB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB10n[] U8G_FONT_SECTION("u8g_font_helvB10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12[] U8G_FONT_SECTION("u8g_font_helvB12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12r[] U8G_FONT_SECTION("u8g_font_helvB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB12n[] U8G_FONT_SECTION("u8g_font_helvB12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14[] U8G_FONT_SECTION("u8g_font_helvB14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14r[] U8G_FONT_SECTION("u8g_font_helvB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB14n[] U8G_FONT_SECTION("u8g_font_helvB14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18[] U8G_FONT_SECTION("u8g_font_helvB18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18r[] U8G_FONT_SECTION("u8g_font_helvB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB18n[] U8G_FONT_SECTION("u8g_font_helvB18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24[] U8G_FONT_SECTION("u8g_font_helvB24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24r[] U8G_FONT_SECTION("u8g_font_helvB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvB24n[] U8G_FONT_SECTION("u8g_font_helvB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_helvR08[] U8G_FONT_SECTION("u8g_font_helvR08"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08r[] U8G_FONT_SECTION("u8g_font_helvR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR08n[] U8G_FONT_SECTION("u8g_font_helvR08n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10[] U8G_FONT_SECTION("u8g_font_helvR10"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10r[] U8G_FONT_SECTION("u8g_font_helvR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR10n[] U8G_FONT_SECTION("u8g_font_helvR10n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12[] U8G_FONT_SECTION("u8g_font_helvR12"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12r[] U8G_FONT_SECTION("u8g_font_helvR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR12n[] U8G_FONT_SECTION("u8g_font_helvR12n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14[] U8G_FONT_SECTION("u8g_font_helvR14"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14r[] U8G_FONT_SECTION("u8g_font_helvR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR14n[] U8G_FONT_SECTION("u8g_font_helvR14n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18[] U8G_FONT_SECTION("u8g_font_helvR18"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18r[] U8G_FONT_SECTION("u8g_font_helvR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR18n[] U8G_FONT_SECTION("u8g_font_helvR18n"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24[] U8G_FONT_SECTION("u8g_font_helvR24"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24r[] U8G_FONT_SECTION("u8g_font_helvR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_helvR24n[] U8G_FONT_SECTION("u8g_font_helvR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08[] U8G_FONT_SECTION("u8g_font_ncenB08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB08r[] U8G_FONT_SECTION("u8g_font_ncenB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10[] U8G_FONT_SECTION("u8g_font_ncenB10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB10r[] U8G_FONT_SECTION("u8g_font_ncenB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12[] U8G_FONT_SECTION("u8g_font_ncenB12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB12r[] U8G_FONT_SECTION("u8g_font_ncenB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14[] U8G_FONT_SECTION("u8g_font_ncenB14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB14r[] U8G_FONT_SECTION("u8g_font_ncenB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18[] U8G_FONT_SECTION("u8g_font_ncenB18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB18r[] U8G_FONT_SECTION("u8g_font_ncenB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24[] U8G_FONT_SECTION("u8g_font_ncenB24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24r[] U8G_FONT_SECTION("u8g_font_ncenB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenB24n[] U8G_FONT_SECTION("u8g_font_ncenB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08[] U8G_FONT_SECTION("u8g_font_ncenR08"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR08r[] U8G_FONT_SECTION("u8g_font_ncenR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10[] U8G_FONT_SECTION("u8g_font_ncenR10"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR10r[] U8G_FONT_SECTION("u8g_font_ncenR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12[] U8G_FONT_SECTION("u8g_font_ncenR12"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR12r[] U8G_FONT_SECTION("u8g_font_ncenR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14[] U8G_FONT_SECTION("u8g_font_ncenR14"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR14r[] U8G_FONT_SECTION("u8g_font_ncenR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18[] U8G_FONT_SECTION("u8g_font_ncenR18"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR18r[] U8G_FONT_SECTION("u8g_font_ncenR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24[] U8G_FONT_SECTION("u8g_font_ncenR24"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24r[] U8G_FONT_SECTION("u8g_font_ncenR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_ncenR24n[] U8G_FONT_SECTION("u8g_font_ncenR24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_symb08[] U8G_FONT_SECTION("u8g_font_symb08"); -extern const u8g_fntpgm_uint8_t u8g_font_symb08r[] U8G_FONT_SECTION("u8g_font_symb08r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10[] U8G_FONT_SECTION("u8g_font_symb10"); -extern const u8g_fntpgm_uint8_t u8g_font_symb10r[] U8G_FONT_SECTION("u8g_font_symb10r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12[] U8G_FONT_SECTION("u8g_font_symb12"); -extern const u8g_fntpgm_uint8_t u8g_font_symb12r[] U8G_FONT_SECTION("u8g_font_symb12r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14[] U8G_FONT_SECTION("u8g_font_symb14"); -extern const u8g_fntpgm_uint8_t u8g_font_symb14r[] U8G_FONT_SECTION("u8g_font_symb14r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18[] U8G_FONT_SECTION("u8g_font_symb18"); -extern const u8g_fntpgm_uint8_t u8g_font_symb18r[] U8G_FONT_SECTION("u8g_font_symb18r"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24[] U8G_FONT_SECTION("u8g_font_symb24"); -extern const u8g_fntpgm_uint8_t u8g_font_symb24r[] U8G_FONT_SECTION("u8g_font_symb24r"); - -extern const u8g_fntpgm_uint8_t u8g_font_timB08[] U8G_FONT_SECTION("u8g_font_timB08"); -extern const u8g_fntpgm_uint8_t u8g_font_timB08r[] U8G_FONT_SECTION("u8g_font_timB08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10[] U8G_FONT_SECTION("u8g_font_timB10"); -extern const u8g_fntpgm_uint8_t u8g_font_timB10r[] U8G_FONT_SECTION("u8g_font_timB10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12[] U8G_FONT_SECTION("u8g_font_timB12"); -extern const u8g_fntpgm_uint8_t u8g_font_timB12r[] U8G_FONT_SECTION("u8g_font_timB12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14[] U8G_FONT_SECTION("u8g_font_timB14"); -extern const u8g_fntpgm_uint8_t u8g_font_timB14r[] U8G_FONT_SECTION("u8g_font_timB14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18[] U8G_FONT_SECTION("u8g_font_timB18"); -extern const u8g_fntpgm_uint8_t u8g_font_timB18r[] U8G_FONT_SECTION("u8g_font_timB18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24[] U8G_FONT_SECTION("u8g_font_timB24"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24r[] U8G_FONT_SECTION("u8g_font_timB24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timB24n[] U8G_FONT_SECTION("u8g_font_timB24n"); - -extern const u8g_fntpgm_uint8_t u8g_font_timR08[] U8G_FONT_SECTION("u8g_font_timR08"); -extern const u8g_fntpgm_uint8_t u8g_font_timR08r[] U8G_FONT_SECTION("u8g_font_timR08r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10[] U8G_FONT_SECTION("u8g_font_timR10"); -extern const u8g_fntpgm_uint8_t u8g_font_timR10r[] U8G_FONT_SECTION("u8g_font_timR10r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12[] U8G_FONT_SECTION("u8g_font_timR12"); -extern const u8g_fntpgm_uint8_t u8g_font_timR12r[] U8G_FONT_SECTION("u8g_font_timR12r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14[] U8G_FONT_SECTION("u8g_font_timR14"); -extern const u8g_fntpgm_uint8_t u8g_font_timR14r[] U8G_FONT_SECTION("u8g_font_timR14r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18[] U8G_FONT_SECTION("u8g_font_timR18"); -extern const u8g_fntpgm_uint8_t u8g_font_timR18r[] U8G_FONT_SECTION("u8g_font_timR18r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24[] U8G_FONT_SECTION("u8g_font_timR24"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24r[] U8G_FONT_SECTION("u8g_font_timR24r"); -extern const u8g_fntpgm_uint8_t u8g_font_timR24n[] U8G_FONT_SECTION("u8g_font_timR24n"); - -/* fontstruct */ - -extern const u8g_fntpgm_uint8_t u8g_font_p01type[] U8G_FONT_SECTION("u8g_font_p01type"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typer[] U8G_FONT_SECTION("u8g_font_p01typer"); -extern const u8g_fntpgm_uint8_t u8g_font_p01typen[] U8G_FONT_SECTION("u8g_font_p01typen"); - -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[] U8G_FONT_SECTION("u8g_font_lucasfont_alternate"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[] U8G_FONT_SECTION("u8g_font_lucasfont_alternater"); -extern const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten"); - -extern const u8g_fntpgm_uint8_t u8g_font_chikita[] U8G_FONT_SECTION("u8g_font_chikita"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitar[] U8G_FONT_SECTION("u8g_font_chikitar"); -extern const u8g_fntpgm_uint8_t u8g_font_chikitan[] U8G_FONT_SECTION("u8g_font_chikitan"); - -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[] U8G_FONT_SECTION("u8g_font_pixelle_micro"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[] U8G_FONT_SECTION("u8g_font_pixelle_micror"); -extern const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[] U8G_FONT_SECTION("u8g_font_pixelle_micron"); - -extern const u8g_fntpgm_uint8_t u8g_font_trixel_square[] U8G_FONT_SECTION("u8g_font_trixel_square"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[] U8G_FONT_SECTION("u8g_font_trixel_squarer"); -extern const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[] U8G_FONT_SECTION("u8g_font_trixel_squaren"); - -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[] U8G_FONT_SECTION("u8g_font_robot_de_niro"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[] U8G_FONT_SECTION("u8g_font_robot_de_niror"); -extern const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[] U8G_FONT_SECTION("u8g_font_robot_de_niron"); - -extern const u8g_fntpgm_uint8_t u8g_font_baby[] U8G_FONT_SECTION("u8g_font_baby"); -extern const u8g_fntpgm_uint8_t u8g_font_babyr[] U8G_FONT_SECTION("u8g_font_babyr"); -extern const u8g_fntpgm_uint8_t u8g_font_babyn[] U8G_FONT_SECTION("u8g_font_babyn"); - -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07[] U8G_FONT_SECTION("u8g_font_blipfest_07"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[] U8G_FONT_SECTION("u8g_font_blipfest_07r"); -extern const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[] U8G_FONT_SECTION("u8g_font_blipfest_07n"); - -/* profont */ - -extern const u8g_fntpgm_uint8_t u8g_font_profont10[] U8G_FONT_SECTION("u8g_font_profont10"); -extern const u8g_fntpgm_uint8_t u8g_font_profont10r[] U8G_FONT_SECTION("u8g_font_profont10r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11[] U8G_FONT_SECTION("u8g_font_profont11"); -extern const u8g_fntpgm_uint8_t u8g_font_profont11r[] U8G_FONT_SECTION("u8g_font_profont11r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12[] U8G_FONT_SECTION("u8g_font_profont12"); -extern const u8g_fntpgm_uint8_t u8g_font_profont12r[] U8G_FONT_SECTION("u8g_font_profont12r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15[] U8G_FONT_SECTION("u8g_font_profont15"); -extern const u8g_fntpgm_uint8_t u8g_font_profont15r[] U8G_FONT_SECTION("u8g_font_profont15r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17[] U8G_FONT_SECTION("u8g_font_profont17"); -extern const u8g_fntpgm_uint8_t u8g_font_profont17r[] U8G_FONT_SECTION("u8g_font_profont17r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22[] U8G_FONT_SECTION("u8g_font_profont22"); -extern const u8g_fntpgm_uint8_t u8g_font_profont22r[] U8G_FONT_SECTION("u8g_font_profont22r"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29[] U8G_FONT_SECTION("u8g_font_profont29"); -extern const u8g_fntpgm_uint8_t u8g_font_profont29r[] U8G_FONT_SECTION("u8g_font_profont29r"); - - -#ifdef __cplusplus -} -#endif - -#endif /* _U8G_H */ - diff --git a/app/u8glib/u8g_bitmap.c b/app/u8glib/u8g_bitmap.c deleted file mode 100644 index dc742d1d78..0000000000 --- a/app/u8glib/u8g_bitmap.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - - u8g_bitmap.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -void u8g_DrawHBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, *bitmap); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmap(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmap(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - - -void u8g_DrawHBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, const u8g_pgm_uint8_t *bitmap) -{ - while( cnt > 0 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, u8g_pgm_read(bitmap)); - bitmap++; - cnt--; - x+=8; - } -} - -void u8g_DrawBitmapP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t cnt, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, cnt*8, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHBitmapP(u8g, x, y, cnt, bitmap); - bitmap += cnt; - y++; - h--; - } -} - -/*=========================================================================*/ - -static void u8g_DrawHXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, *bitmap); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = *bitmap; - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBM(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - while( h > 0 ) - { - u8g_DrawHXBM(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} - -static void u8g_DrawHXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, const u8g_pgm_uint8_t *bitmap) -{ - uint8_t d; - x+=7; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 2, u8g_pgm_read(bitmap)); - bitmap++; - w-= 8; - x+=8; - } - if ( w > 0 ) - { - d = u8g_pgm_read(bitmap); - x -= 7; - do - { - if ( d & 1 ) - u8g_DrawPixel(u8g, x, y); - x++; - w--; - d >>= 1; - } while ( w > 0 ); - } -} - -void u8g_DrawXBMP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap) -{ - u8g_uint_t b; - b = w; - b += 7; - b >>= 3; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - while( h > 0 ) - { - u8g_DrawHXBMP(u8g, x, y, w, bitmap); - bitmap += b; - y++; - h--; - } -} diff --git a/app/u8glib/u8g_circle.c b/app/u8glib/u8g_circle.c deleted file mode 100644 index 57e184b6b4..0000000000 --- a/app/u8glib/u8g_circle.c +++ /dev/null @@ -1,382 +0,0 @@ -/* - - u8g_circle.c - - Utility to draw empty and filled circles. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@gmail.com - u8g_DrawCircle & u8g_DrawDisc by 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. - - Addition to the U8G Library 02/25/12 - - -*/ - -#include "u8g.h" - -#ifdef OLD_CODE - -void circ_upperRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); -} - -void circ_upperLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); -} - -void circ_lowerRight(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); -} - -void circ_lowerLeft(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); -} - -void circ_all(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0) { - circ_upperRight(u8g, x, y, x0, y0); - circ_upperLeft(u8g, x, y, x0, y0); - circ_lowerRight(u8g, x, y, x0, y0); - circ_lowerLeft(u8g, x, y, x0, y0); -} - -void u8g_DrawEmpCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - void ( *circ_util )(u8g_t *, u8g_uint_t, u8g_uint_t, u8g_uint_t, u8g_uint_t); - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_upperRight; - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_upperLeft; - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - circ_util = circ_lowerRight; - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_lowerLeft; - break; - default: - case U8G_CIRC_ALL: - u8g_DrawPixel(u8g, x0, y0 + rad); - u8g_DrawPixel(u8g, x0, y0 - rad); - u8g_DrawPixel(u8g, x0 + rad, y0); - u8g_DrawPixel(u8g, x0 - rad, y0); - circ_util = circ_all; - break; - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - circ_util(u8g, x, y, x0, y0); - } -} - - -void u8g_DrawFillCirc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - if ( u8g_IsBBXIntersection(u8g, x0-rad-1, y0-rad-1, 2*rad+1, 2*rad+1) == 0) - return; - - int f = 1 - rad; - int ddF_x = 1; - int ddF_y = -2*rad; - uint8_t x = 0; - uint8_t y = rad; - - // Draw vertical diameter at the horiz. center - // u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - - if (option == U8G_CIRC_UPPER_LEFT || option == U8G_CIRC_UPPER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0 - rad, rad+1); - } - else if (option == U8G_CIRC_LOWER_LEFT || option == U8G_CIRC_LOWER_RIGHT) { - u8g_DrawVLine(u8g, x0, y0, rad+1); - } - else { - u8g_DrawVLine(u8g, x0, y0 - rad, 2*rad+1); - } - - while( x < y ) - { - if(f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - //Draw vertical lines from one point to another - - switch (option) - { - case U8G_CIRC_UPPER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - break; - case U8G_CIRC_UPPER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - break; - case U8G_CIRC_LOWER_RIGHT: - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - break; - case U8G_CIRC_LOWER_LEFT: - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - break; - case U8G_CIRC_ALL: - u8g_DrawVLine(u8g, x0+x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0-x, y0-y, 2*y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, 2*x+1); - u8g_DrawVLine(u8g, x0-y, y0-x, 2*x+1); - break; - } - } -} - -#endif - -/*=========================================================================*/ - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_circle_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - u8g_DrawPixel(u8g, x0 + y, y0 - x); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - u8g_DrawPixel(u8g, x0 - y, y0 - x); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - u8g_DrawPixel(u8g, x0 + y, y0 + x); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - u8g_DrawPixel(u8g, x0 - y, y0 + x); - } -} - -void u8g_draw_circle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_circle_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawCircle(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw circle */ - u8g_draw_circle(u8g, x0, y0, rad, option); -} - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; - -static void u8g_draw_disc_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - u8g_DrawVLine(u8g, x0+y, y0-x, x+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - u8g_DrawVLine(u8g, x0-y, y0-x, x+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - u8g_DrawVLine(u8g, x0+y, y0, x+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - u8g_DrawVLine(u8g, x0-y, y0, x+1); - } -} - -void u8g_draw_disc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - u8g_int_t f; - u8g_int_t ddF_x; - u8g_int_t ddF_y; - u8g_uint_t x; - u8g_uint_t y; - - f = 1; - f -= rad; - ddF_x = 1; - ddF_y = 0; - ddF_y -= rad; - ddF_y *= 2; - x = 0; - y = rad; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - - while ( x < y ) - { - if (f >= 0) - { - y--; - ddF_y += 2; - f += ddF_y; - } - x++; - ddF_x += 2; - f += ddF_x; - - u8g_draw_disc_section(u8g, x, y, x0, y0, option); - } -} - -void u8g_DrawDisc(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rad, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t radp, radp2; - - radp = rad; - radp++; - radp2 = radp; - radp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-radp, y0-radp, radp2, radp2) == 0) - return; - } - - /* draw disc */ - u8g_draw_disc(u8g, x0, y0, rad, option); -} - - - - diff --git a/app/u8glib/u8g_clip.c b/app/u8glib/u8g_clip.c deleted file mode 100644 index 5f12097134..0000000000 --- a/app/u8glib/u8g_clip.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - - u8g_clip.c - - procedures for clipping - taken over from procs in u8g_pb.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - Notes - - This is one of the most critical parts of u8glib. It must be fast, but still reliable. - Based on the intersection program (see tools folder), there is minimized version of - the condition for the intersaction test: - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - It includes the assumption, that a1 <= a2 is always true (correct, because - a1, a2 are the page dimensions. - - The direct implementation of the above result is done in: - uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - However, this is slower than a decision tree version: - static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) - Also suprising is, that the macro implementation is slower than the inlined version. - - The decision tree is based on the expansion of the truth table. - -*/ - -#include "u8g.h" - -#ifdef __GNUC__ -#define U8G_ALWAYS_INLINE __inline__ __attribute__((always_inline)) -#else -#define U8G_ALWAYS_INLINE -#endif - -/* - intersection assumptions: - a1 <= a2 is always true - - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ - -#ifdef OLD_CODE_WHICH_IS_TOO_SLOW -static uint8_t u8g_is_intersection_boolean(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= a1; - c2 = v1 >= a0; - c3 = v0 > v1; - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} -#endif - -#define U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1) ((uint8_t)( (v0) <= (a1) ) ? ( ( (v1) >= (a0) ) ? ( 1 ) : ( (v0) > (v1) ) ) : ( ( (v1) >= (a0) ) ? ( (v0) > (v1) ) : ( 0 ) )) - -//static uint8_t u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) U8G_ALWAYS_INLINE; -static uint8_t U8G_ALWAYS_INLINE u8g_is_intersection_decision_tree(u8g_uint_t a0, u8g_uint_t a1, u8g_uint_t v0, u8g_uint_t v1) -{ - /* surprisingly the macro leads to larger code */ - /* return U8G_IS_INTERSECTION_MACRO(a0,a1,v0,v1); */ - if ( v0 <= a1 ) - { - if ( v1 >= a0 ) - { - return 1; - } - else - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - } - else - { - if ( v1 >= a0 ) - { - if ( v0 > v1 ) - { - return 1; - } - else - { - return 0; - } - } - else - { - return 0; - } - } -} - - -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - register u8g_uint_t tmp; - tmp = y; - tmp += h; - tmp--; - if ( u8g_is_intersection_decision_tree(u8g->current_page.y0, u8g->current_page.y1, y, tmp) == 0 ) - return 0; - - tmp = x; - tmp += w; - tmp--; - return u8g_is_intersection_decision_tree(u8g->current_page.x0, u8g->current_page.x1, x, tmp); -} - - diff --git a/app/u8glib/u8g_com_api.c b/app/u8glib/u8g_com_api.c deleted file mode 100644 index aafce8352e..0000000000 --- a/app/u8glib/u8g_com_api.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - - u8g_com_api.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -uint8_t u8g_InitCom(u8g_t *u8g, u8g_dev_t *dev, uint8_t clk_cycle_time) -{ - return dev->com_fn(u8g, U8G_COM_MSG_INIT, clk_cycle_time, NULL); -} - -void u8g_StopCom(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_STOP, 0, NULL); -} - -/* cs contains the chip number, which should be enabled */ -void u8g_SetChipSelect(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs) -{ - dev->com_fn(u8g, U8G_COM_MSG_CHIP_SELECT, cs, NULL); -} - -void u8g_SetResetLow(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 0, NULL); -} - -void u8g_SetResetHigh(u8g_t *u8g, u8g_dev_t *dev) -{ - dev->com_fn(u8g, U8G_COM_MSG_RESET, 1, NULL); -} - - -void u8g_SetAddress(u8g_t *u8g, u8g_dev_t *dev, uint8_t address) -{ - dev->com_fn(u8g, U8G_COM_MSG_ADDRESS, address, NULL); -} - -uint8_t u8g_WriteByte(u8g_t *u8g, u8g_dev_t *dev, uint8_t val) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, val, NULL); -} - -uint8_t u8g_WriteSequence(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, cnt, seq); -} - -uint8_t u8g_WriteSequenceP(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, const uint8_t *seq) -{ - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ_P, cnt, (void *)seq); -} - -/* - sequence := { direct_value | escape_sequence } - direct_value := 0..254 - escape_sequence := value_255 | sequence_end | delay | adr | cs | not_used - value_255 := 255 255 - sequence_end = 255 254 - delay := 255 0..127 - adr := 255 0x0e0 .. 0x0ef - cs := 255 0x0d0 .. 0x0df - not_used := 255 101..254 - -#define U8G_ESC_DLY(x) 255, ((x) & 0x7f) -#define U8G_ESC_CS(x) 255, (0xd0 | ((x)&0x0f)) -#define U8G_ESC_ADR(x) 255, (0xe0 | ((x)&0x0f)) -#define U8G_ESC_VCC(x) 255, (0xbe | ((x)&0x01)) -#define U8G_ESC_END 255, 254 -#define U8G_ESC_255 255, 255 -#define U8G_ESC_RST(x) 255, (0xc0 | ((x)&0x0f)) - -*/ -uint8_t u8g_WriteEscSeqP(u8g_t *u8g, u8g_dev_t *dev, const uint8_t *esc_seq) -{ - uint8_t is_escape = 0; - uint8_t value; - for(;;) - { - value = u8g_pgm_read(esc_seq); - if ( is_escape == 0 ) - { - if ( value != 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else - { - is_escape = 1; - } - } - else - { - if ( value == 255 ) - { - if ( u8g_WriteByte(u8g, dev, value) == 0 ) - return 0; - } - else if ( value == 254 ) - { - break; - } - else if ( value >= 0x0f0 ) - { - /* not yet used, do nothing */ - } - else if ( value >= 0xe0 ) - { - u8g_SetAddress(u8g, dev, value & 0x0f); - } - else if ( value >= 0xd0 ) - { - u8g_SetChipSelect(u8g, dev, value & 0x0f); - } - else if ( value >= 0xc0 ) - { - u8g_SetResetLow(u8g, dev); - value &= 0x0f; - value <<= 4; - value+=2; - u8g_Delay(u8g, value); - u8g_SetResetHigh(u8g, dev); - u8g_Delay(u8g, value); - } - else if ( value >= 0xbe ) - { - /* not yet implemented */ - /* u8g_SetVCC(u8g, dev, value & 0x01); */ - } - else if ( value <= 127 ) - { - u8g_Delay(u8g, value); - } - is_escape = 0; - } - esc_seq++; - } - return 1; -} - diff --git a/app/u8glib/u8g_com_api_16gr.c b/app/u8glib/u8g_com_api_16gr.c deleted file mode 100644 index 7ff03d8656..0000000000 --- a/app/u8glib/u8g_com_api_16gr.c +++ /dev/null @@ -1,94 +0,0 @@ -/* - - u8g_com_api_16gr.c - - Extension of the com api for devices with 16 graylevels (4 bit per pixel). - This should fit to the 8h and 16h architectures (pb8v1, pb8v2, pb16v1, pb16v2), - mainly intended for SSD OLEDs - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -/* interpret b as a monochrome bit pattern, write value 15 for high bit and value 0 for a low bit */ -/* topbit (msb) is sent last */ -/* example: b = 0x083 will send 0xff, 0x00, 0x00, 0xf0 */ -uint8_t u8g_WriteByteBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - static uint8_t buf[4]; - static uint8_t map[4] = { 0, 0x00f, 0x0f0, 0x0ff }; - buf [3] = map[b & 3]; - b>>=2; - buf [2] = map[b & 3]; - b>>=2; - buf [1] = map[b & 3]; - b>>=2; - buf [0] = map[b & 3]; - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_SEQ, 4, buf); -} - -uint8_t u8g_WriteSequenceBWTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByteBWTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} - -/* interpret b as a 4L bit pattern, write values 0x000, 0x004, 0x008, 0x00c */ -uint8_t u8g_WriteByte4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t b) -{ - //static uint8_t map[16] = { 0x000, 0x004, 0x008, 0x00c, 0x040, 0x044, 0x048, 0x04c, 0x080, 0x084, 0x088, 0x08c, 0x0c0, 0x0c4, 0x0c8, 0x0cc}; - //static uint8_t map[16] = { 0x000, 0x004, 0x00a, 0x00f, 0x040, 0x044, 0x04a, 0x04f, 0x0a0, 0x0a4, 0x0aa, 0x0af, 0x0f0, 0x0f4, 0x0fa, 0x0ff}; - static uint8_t map[16] = { 0x000, 0x040, 0x0a0, 0x0f0, 0x004, 0x044, 0x0a4, 0x0f4, 0x00a, 0x04a, 0x0aa, 0x0fa, 0x00f, 0x04f, 0x0af, 0x0ff}; - uint8_t bb; - bb = b; - bb &= 15; - b>>=4; - dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[bb], NULL); - return dev->com_fn(u8g, U8G_COM_MSG_WRITE_BYTE, map[b], NULL); -} - -uint8_t u8g_WriteSequence4LTo16GrDevice(u8g_t *u8g, u8g_dev_t *dev, uint8_t cnt, uint8_t *ptr) -{ - do - { - if ( u8g_WriteByte4LTo16GrDevice(u8g, dev, *ptr++) == 0 ) - return 0; - cnt--; - } while( cnt != 0 ); - return 1; -} diff --git a/app/u8glib/u8g_com_i2c.c b/app/u8glib/u8g_com_i2c.c deleted file mode 100644 index f975952732..0000000000 --- a/app/u8glib/u8g_com_i2c.c +++ /dev/null @@ -1,643 +0,0 @@ -/* - - u8g_com_i2c.c - - generic i2c interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -//#define U8G_I2C_WITH_NO_ACK - -static uint8_t u8g_i2c_err_code; -static uint8_t u8g_i2c_opt; /* U8G_I2C_OPT_NO_ACK, SAM: U8G_I2C_OPT_DEV_1 */ -/* - position values - 1: start condition - 2: sla transfer -*/ -static uint8_t u8g_i2c_err_pos; - - -void u8g_i2c_clear_error(void) -{ - u8g_i2c_err_code = U8G_I2C_ERR_NONE; - u8g_i2c_err_pos = 0; -} - -uint8_t u8g_i2c_get_error(void) -{ - return u8g_i2c_err_code; -} - -uint8_t u8g_i2c_get_err_pos(void) -{ - return u8g_i2c_err_pos; -} - - -#if defined(__AVR_XMEGA__) -#elif defined(__AVR__) - -static void u8g_i2c_set_error(uint8_t code, uint8_t pos) -{ - if ( u8g_i2c_err_code > 0 ) - return; - u8g_i2c_err_code |= code; - u8g_i2c_err_pos = pos; -} - -#define U8G_ATMEGA_HW_TWI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_TWI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_TWI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_TWI) - -#include -#include - - - -void u8g_i2c_init(uint8_t options) -{ - /* - TWBR: bit rate register - TWSR: status register (contains preselector bits) - - prescalar - 0 1 - 1 4 - 2 16 - 3 64 - - f = F_CPU/(16+2*TWBR*prescalar) - - F_CPU = 16MHz - TWBR = 152; - TWSR = 0; - --> 50KHz - - TWBR = 72; - TWSR = 0; - --> 100KHz - - TWBR = 12; - TWSR = 0; - --> 400KHz - - F_CPU/(2*100000)-8 --> calculate TWBR value for 100KHz -*/ - u8g_i2c_opt = options; - TWSR = 0; - if ( options & U8G_I2C_OPT_FAST ) - { - TWBR = F_CPU/(2*400000)-8; - } - else - { - TWBR = F_CPU/(2*100000)-8; - } - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - volatile uint16_t cnt = 2000; /* timout value should be > 280 for 50KHz Bus and 16 Mhz CPU, however the start condition might need longer */ - while( !(TWCR & mask) ) - { - if ( cnt == 0 ) - { - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - return 1; /* all ok */ - } - else - { - u8g_i2c_set_error(U8G_I2C_ERR_TIMEOUT, pos); - return 0; /* error */ - } - } - cnt--; - } - return 1; /* all ok */ -} - -/* sla includes all 8 bits (with r/w bit), assums master transmit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - register uint8_t status; - - /* send start */ - TWCR = _BV(TWINT) | _BV(TWSTA) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 1) == 0 ) - return 0; - - status = TW_STATUS; - - /* check status after start */ - if ( status != TW_START && status != TW_REP_START ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 1); - return 0; - } - - /* set slave address */ - TWDR = sla; - - /* enable sla transfer */ - TWCR = _BV(TWINT) | _BV(TWEN); - - /* wait */ - if ( u8g_i2c_wait(_BV(TWINT), 2) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - /* check status after sla */ - if ( status != TW_MT_SLA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 2); - return 0; - } - } - - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - register uint8_t status; - TWDR = data; - TWCR = _BV(TWINT) | _BV(TWEN); - if ( u8g_i2c_wait(_BV(TWINT), 3) == 0 ) - return 0; - - if ( u8g_i2c_opt & U8G_I2C_OPT_NO_ACK ) - { - /* do not check for ACK */ - } - else - { - status = TW_STATUS; - if ( status != TW_MT_DATA_ACK ) - { - u8g_i2c_set_error(U8G_I2C_ERR_BUS, 3); - return 0; - } - } - - return 1; -} - -void u8g_i2c_stop(void) -{ - /* write stop */ - TWCR = _BV(TWINT) | _BV(TWEN) | _BV(TWSTO); - - /* no error is checked for the stop condition */ - u8g_i2c_wait(_BV(TWSTO), 4); - -} - -/* -void twi_send(uint8_t adr, uint8_t data1, uint8_t data2) -{ - u8g_i2c_start(adr<<1); - u8g_i2c_send_byte(data1); - u8g_i2c_send_byte(data2); - u8g_i2c_stop(); -} -*/ - -#elif defined(ARDUINO) && defined(__SAM3X8E__) -/* Arduino Due */ -#include "Arduino.h" -#include "sam.h" - -/* - -Controller - -TWI0 TWCK0 PA18 A DUE PCB: SCL1 -TWI0 TWD0 PA17 A DUE PCB: SDA1 -TWI1 TWCK1 PB13 A DUE PCB: SCL 21 -TWI1 TWD1 PB12 A DUE PCB: SDA 20 - -Arduino definitions - -#define PIN_WIRE_SDA (20u) -#define PIN_WIRE_SCL (21u) -#define WIRE_INTERFACE TWI1 -#define WIRE_INTERFACE_ID ID_TWI1 -#define WIRE_ISR_HANDLER TWI1_Handler - -#define PIN_WIRE1_SDA (70u) -#define PIN_WIRE1_SCL (71u) -#define WIRE1_INTERFACE TWI0 -#define WIRE1_INTERFACE_ID ID_TWI0 -#define WIRE1_ISR_HANDLER TWI0_Handler - - -*/ - -static void i2c_400KHz_delay(void) -{ - /* should be at least 4 */ - /* should be 5 for 100KHz transfer speed */ - - - /* - Arduino Due - 0x NOP: 470KHz - 4x NOP: 450KHz - 8x NOP: 430KHz - 16x NOP: 400KHz - */ - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); - - __NOP(); - __NOP(); - __NOP(); - __NOP(); -} - -static void i2c_100KHz_delay(void) -{ - /* - 1x u8g_MicroDelay() ca. 130KHz - 2x u8g_MicroDelay() ca. 80KHz - */ - u8g_MicroDelay(); - u8g_MicroDelay(); -} - - -uint32_t i2c_started = 0; -uint32_t i2c_scl_pin = 0; -uint32_t i2c_sda_pin = 0; -void (*i2c_delay)(void) = i2c_100KHz_delay; - -const PinDescription *i2c_scl_pin_desc; -const PinDescription *i2c_sda_pin_desc; - - -/* maybe this can be optimized */ -static void i2c_init(void) -{ - i2c_sda_pin_desc = &(g_APinDescription[i2c_sda_pin]); - i2c_scl_pin_desc = &(g_APinDescription[i2c_scl_pin]); - pinMode(i2c_sda_pin, OUTPUT); - digitalWrite(i2c_sda_pin, HIGH); - pinMode(i2c_scl_pin, OUTPUT); - digitalWrite(i2c_scl_pin, HIGH); - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; - PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; - PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - i2c_delay(); -} - -/* actually, the scl line is not observed, so this procedure does not return a value */ -static void i2c_read_scl_and_delay(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_INPUT, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_scl_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask ; - - i2c_delay(); -} - -static void i2c_clear_scl(void) -{ - uint32_t dwMask = i2c_scl_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_scl_pin_desc->pPort, PIO_OUTPUT_0, i2c_scl_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_scl_pin_desc->pPort->PIO_MDER = dwMask; - i2c_scl_pin_desc->pPort->PIO_CODR = dwMask; - i2c_scl_pin_desc->pPort->PIO_OER = dwMask; - i2c_scl_pin_desc->pPort->PIO_PER = dwMask; - - //PIO_Clear( i2c_scl_pin_desc->pPort, i2c_scl_pin_desc->ulPin) ; -} - -static uint8_t i2c_read_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_INPUT, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - //PIO_SetInput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, PIO_DEFAULT ) ; - - /* set as input */ - i2c_sda_pin_desc->pPort->PIO_ODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - - return 1; -} - -static void i2c_clear_sda(void) -{ - uint32_t dwMask = i2c_sda_pin_desc->ulPin; - - /* set open collector and drive low */ - //PIO_Configure( i2c_sda_pin_desc->pPort, PIO_OUTPUT_0, i2c_sda_pin_desc->ulPin, PIO_OPENDRAIN ); - //PIO_SetOutput( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin, 0, 1, 0); - - /* open drain, zero default output */ - i2c_sda_pin_desc->pPort->PIO_MDER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_CODR = dwMask ; - i2c_sda_pin_desc->pPort->PIO_OER = dwMask ; - i2c_sda_pin_desc->pPort->PIO_PER = dwMask ; - - //PIO_Clear( i2c_sda_pin_desc->pPort, i2c_sda_pin_desc->ulPin) ; -} - -static void i2c_start(void) -{ - if ( i2c_started != 0 ) - { - /* if already started: do restart */ - i2c_read_sda(); /* SDA = 1 */ - i2c_delay(); - i2c_read_scl_and_delay(); - } - i2c_read_sda(); - /* - if (i2c_read_sda() == 0) - { - // do something because arbitration is lost - } - */ - /* send the start condition, both lines go from 1 to 0 */ - i2c_clear_sda(); - i2c_delay(); - i2c_clear_scl(); - i2c_started = 1; -} - - -static void i2c_stop(void) -{ - /* set SDA to 0 */ - i2c_clear_sda(); - i2c_delay(); - - /* now release all lines */ - i2c_read_scl_and_delay(); - - /* set SDA to 1 */ - i2c_read_sda(); - i2c_delay(); - i2c_started = 0; -} - -static void i2c_write_bit(uint8_t val) -{ - if (val) - i2c_read_sda(); - else - i2c_clear_sda(); - - i2c_delay(); - i2c_read_scl_and_delay(); - i2c_clear_scl(); -} - -static uint8_t i2c_read_bit(void) -{ - uint8_t val; - /* do not drive SDA */ - i2c_read_sda(); - i2c_delay(); - i2c_read_scl_and_delay(); - val = i2c_read_sda(); - i2c_delay(); - i2c_clear_scl(); - return val; -} - -static uint8_t i2c_write_byte(uint8_t b) -{ - i2c_write_bit(b & 128); - i2c_write_bit(b & 64); - i2c_write_bit(b & 32); - i2c_write_bit(b & 16); - i2c_write_bit(b & 8); - i2c_write_bit(b & 4); - i2c_write_bit(b & 2); - i2c_write_bit(b & 1); - - /* read ack from client */ - /* 0: ack was given by client */ - /* 1: nothing happend during ack cycle */ - return i2c_read_bit(); -} - - - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_opt = options; - u8g_i2c_clear_error(); - - if ( u8g_i2c_opt & U8G_I2C_OPT_FAST ) - { - i2c_delay = i2c_400KHz_delay; - } - else - { - i2c_delay = i2c_100KHz_delay; - } - - - if ( u8g_i2c_opt & U8G_I2C_OPT_DEV_1 ) - { - i2c_scl_pin = PIN_WIRE1_SCL; - i2c_sda_pin = PIN_WIRE1_SDA; - - //REG_PIOA_PDR = PIO_PB12A_TWD1 | PIO_PB13A_TWCK1; - } - else - { - - i2c_scl_pin = PIN_WIRE_SCL; - i2c_sda_pin = PIN_WIRE_SDA; - - //REG_PIOA_PDR = PIO_PA17A_TWD0 | PIO_PA18A_TWCK0; - } - - i2c_init(); - -} - -/* sla includes also the r/w bit */ -uint8_t u8g_i2c_start(uint8_t sla) -{ - i2c_start(); - i2c_write_byte(sla); - return 1; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return i2c_write_byte(data); -} - -void u8g_i2c_stop(void) -{ - i2c_stop(); -} - - -#elif defined(U8G_RASPBERRY_PI) - -#include -#include -#include -#include -#include - -#define I2C_SLA 0x3c - -static int fd=-1; -static uint8_t i2cMode = 0; - -void u8g_i2c_init(uint8_t options) { - u8g_i2c_clear_error(); - u8g_i2c_opt = options; - - if (wiringPiSetup() == -1) { - printf("wiringPi-Error\n"); - exit(1); - } - - fd = wiringPiI2CSetup(I2C_SLA); - if (fd < 0) { - printf ("Unable to open I2C device 0: %s\n", strerror (errno)) ; - exit (1) ; - } - //u8g_SetPIOutput(u8g, U8G_PI_RESET); - //u8g_SetPIOutput(u8g, U8G_PI_A0); -} -uint8_t u8g_i2c_start(uint8_t sla) { - u8g_i2c_send_mode(0); - - return 1; -} - -void u8g_i2c_stop(void) { -} - -uint8_t u8g_i2c_send_mode(uint8_t mode) { - i2cMode = mode; -} - -uint8_t u8g_i2c_send_byte(uint8_t data) { - wiringPiI2CWriteReg8(fd, i2cMode, data); - - return 1; -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -#else - -/* empty interface */ - -void u8g_i2c_init(uint8_t options) -{ - u8g_i2c_clear_error(); -} - -uint8_t u8g_i2c_wait(uint8_t mask, uint8_t pos) -{ - return 1; -} - -uint8_t u8g_i2c_start(uint8_t sla) -{ - return 1; -} -uint8_t u8g_i2c_send_byte(uint8_t data) -{ - return 1; -} - -void u8g_i2c_stop(void) -{ -} - - -#endif - diff --git a/app/u8glib/u8g_com_io.c b/app/u8glib/u8g_com_io.c deleted file mode 100644 index 84eff509c3..0000000000 --- a/app/u8glib/u8g_com_io.c +++ /dev/null @@ -1,452 +0,0 @@ -/* - - u8g_com_io.c - - abstraction layer for low level i/o - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - Update for ATOMIC operation done (01 Jun 2013) - U8G_ATOMIC_OR(ptr, val) - U8G_ATOMIC_AND(ptr, val) - U8G_ATOMIC_START(); - U8G_ATOMIC_END(); - - uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) Convert to internal number: AVR: port*8+bitpos, ARM: port*16+bitpos - void u8g_SetPinOutput(uint8_t internal_pin_number) - void u8g_SetPinInput(uint8_t internal_pin_number) - void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) - uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) - - -*/ - -#include "u8g.h" - -#if defined(__AVR__) - -#include -#include - -typedef volatile uint8_t * IO_PTR; - -/* create internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -#if defined(__AVR_XMEGA__) - -const IO_PTR u8g_avr_ddr_P[] PROGMEM = { -#ifdef PORTA - &PORTA.DIR, -#else - 0, -#endif - &PORTB.DIR, -#ifdef PORTC - &PORTC.DIR, -#ifdef PORTD - &PORTD.DIR, -#ifdef PORTE - &PORTE.DIR, -#ifdef PORTF - &PORTF.DIR, -#ifdef PORTR - &PORTR.DIR, -#endif -#endif -#endif -#endif -#endif -}; - - -const IO_PTR u8g_avr_port_P[] PROGMEM = { -#ifdef PORTA - &PORTA.OUT, -#else - 0, -#endif - &PORTB.OUT, -#ifdef PORTC - &PORTC.OUT, -#ifdef PORTD - &PORTD.OUT, -#ifdef PORTE - &PORTE.OUT, -#ifdef PORTF - &PORTF.OUT, -#ifdef PORTR - &PORTR.OUT, -#endif -#endif -#endif -#endif -#endif -}; - -const IO_PTR u8g_avr_pin_P[] PROGMEM = { -#ifdef PORTA - &PORTA.IN, -#else - 0, -#endif - &PORTB.IN, -#ifdef PORTC - &PORTC.IN, -#ifdef PORTD - &PORTD.IN, -#ifdef PORTE - &PORTE.IN, -#ifdef PORTF - &PORTF.IN, -#ifdef PORTR - &PORTR.IN, -#endif -#endif -#endif -#endif -#endif -}; - - -#else -const IO_PTR u8g_avr_ddr_P[] PROGMEM = { -#ifdef DDRA - &DDRA, -#else - 0, -#endif - &DDRB, -#ifdef DDRC - &DDRC, -#ifdef DDRD - &DDRD, -#ifdef DDRE - &DDRE, -#ifdef DDRF - &DDRF, -#ifdef DDRG - &DDRG, -#ifdef DDRH - &DDRH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - - -const IO_PTR u8g_avr_port_P[] PROGMEM = { -#ifdef PORTA - &PORTA, -#else - 0, -#endif - &PORTB, -#ifdef PORTC - &PORTC, -#ifdef PORTD - &PORTD, -#ifdef PORTE - &PORTE, -#ifdef PORTF - &PORTF, -#ifdef PORTG - &PORTG, -#ifdef PORTH - &PORTH, -#endif -#endif -#endif -#endif -#endif -#endif -}; - -const IO_PTR u8g_avr_pin_P[] PROGMEM = { -#ifdef PINA - &PINA, -#else - 0, -#endif - &PINB, -#ifdef PINC - &PINC, -#ifdef PIND - &PIND, -#ifdef PINE - &PINE, -#ifdef PINF - &PINF, -#ifdef PING - &PING, -#ifdef PINH - &PINH, -#endif -#endif -#endif -#endif -#endif -#endif -}; -#endif - -static volatile uint8_t *u8g_get_avr_io_ptr(const IO_PTR *base, uint8_t offset) -{ - volatile uint8_t * tmp; - base += offset; - memcpy_P(&tmp, base, sizeof(volatile uint8_t * PROGMEM)); - return tmp; -} - -/* set direction to output of the specified pin (internal pin number) */ -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) |= _BV(internal_pin_number&7); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ - *u8g_get_avr_io_ptr(u8g_avr_ddr_P, internal_pin_number>>3) &= ~_BV(internal_pin_number&7); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_port_P, internal_pin_number>>3); - - if ( level == 0 ) - { - U8G_ATOMIC_AND(tmp, ~_BV(internal_pin_number&7)); - // *tmp &= ~_BV(internal_pin_number&7); - } - else - { - U8G_ATOMIC_OR(tmp, _BV(internal_pin_number&7)); - //*tmp |= _BV(internal_pin_number&7); - } - -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - volatile uint8_t * tmp = u8g_get_avr_io_ptr(u8g_avr_pin_P, internal_pin_number>>3); - if ( ((*tmp) & _BV(internal_pin_number&7)) != 0 ) - return 1; - return 0; -} - -#elif defined (__MSP430__) -#include - -typedef volatile uint8_t * IO_PTR; - -// MSP430 F5XXX / F6XXX series. -const IO_PTR u8g_msp_ddr_P[] PROGMEM = { - &P1DIR - ,&P2DIR - ,&P3DIR - ,&P4DIR - ,&P5DIR - ,&P6DIR - ,&P7DIR - ,&P8DIR -#if defined (__MSP430_HAS_PORT9_R__) - ,&P9DIR -#if defined (__MSP430_HAS_PORT10_R__) - ,&P10DIR -#endif -#endif -}; - -const IO_PTR u8g_msp_port_P[] PROGMEM = { - &P1OUT - ,&P2OUT - ,&P3OUT - ,&P4OUT - ,&P5OUT - ,&P6OUT - ,&P7OUT - ,&P8OUT -#if defined (__MSP430_HAS_PORT9_R__) - ,&P9OUT -#if defined (__MSP430_HAS_PORT10_R__) - ,&P10OUT -#endif -#endif -}; - -const IO_PTR u8g_msp_pin_P[] PROGMEM = { - &P1IN - ,&P2IN - ,&P3IN - ,&P4IN - ,&P5IN - ,&P6IN - ,&P7IN - ,&P8IN -#if defined (__MSP430_HAS_PORT9_R__) - ,&P9IN -#if defined (__MSP430_HAS_PORT10_R__) - ,&P10IN -#endif -#endif -}; - -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ - uint8_t port = (internal_pin_number >> 3)-1; - uint8_t output = 1 << (internal_pin_number & 0x07); - *u8g_msp_ddr_P[port] |= output; -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ - uint8_t port = (internal_pin_number >> 3)-1; - *u8g_msp_ddr_P[port] &= ~(1 << (internal_pin_number & 0x07)); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ - uint8_t port = (internal_pin_number >> 3)-1; - if (level == 0) - { - *u8g_msp_port_P[port] &= ~(1 << (internal_pin_number & 0x07)); - } - else - { - *u8g_msp_port_P[port]|= (1 << (internal_pin_number & 0x07)); - } -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - uint8_t port = (internal_pin_number >> 3)-1; - uint8_t tmp = *u8g_msp_pin_P[port]; - if (tmp & (1 << (internal_pin_number & 0x07))) - { - return 1; - } - return 0; -} - -#elif defined(U8G_RASPBERRY_PI) - -#include -//#include "/usr/local/include/wiringPi.h" - -void u8g_SetPinOutput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, OUTPUT); -} - -void u8g_SetPinInput(uint8_t internal_pin_number) { - pinMode(internal_pin_number, INPUT); -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) { - digitalWrite(internal_pin_number, level); -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) { - return digitalRead(internal_pin_number); -} - - -#else - -/* convert "port" and "bitpos" to internal pin number */ -uint8_t u8g_Pin(uint8_t port, uint8_t bitpos) -{ - port <<= 3; - port += bitpos; - return port; -} - -void u8g_SetPinOutput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinInput(uint8_t internal_pin_number) -{ -} - -void u8g_SetPinLevel(uint8_t internal_pin_number, uint8_t level) -{ -} - -uint8_t u8g_GetPinLevel(uint8_t internal_pin_number) -{ - return 0; -} - -#endif - - -#if defined(U8G_WITH_PINLIST) - -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinOutput(pin); -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ - uint8_t pin; - pin = u8g->pin_list[pi]; - if ( pin != U8G_PIN_NONE ) - u8g_SetPinLevel(pin, level); -} - -#else /* defined(U8G_WITH_PINLIST) */ -void u8g_SetPIOutput(u8g_t *u8g, uint8_t pi) -{ -} - -void u8g_SetPILevel(u8g_t *u8g, uint8_t pi, uint8_t level) -{ -} - -#endif /* defined(U8G_WITH_PINLIST) */ diff --git a/app/u8glib/u8g_com_null.c b/app/u8glib/u8g_com_null.c deleted file mode 100644 index 1d9deebff6..0000000000 --- a/app/u8glib/u8g_com_null.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - - u8g_com_null.c - - communication null device - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -uint8_t u8g_com_null_fn(u8g_t *u8g, uint8_t msg, uint8_t arg_val, void *arg_ptr) -{ - switch(msg) - { - case U8G_COM_MSG_INIT: - break; - case U8G_COM_MSG_STOP: - break; - - - case U8G_COM_MSG_CHIP_SELECT: - /* arg_val contains the chip number, which should be enabled */ - break; - - - case U8G_COM_MSG_WRITE_BYTE: - break; - case U8G_COM_MSG_WRITE_SEQ: - break; - } - return 1; -} - diff --git a/app/u8glib/u8g_cursor.c b/app/u8glib/u8g_cursor.c deleted file mode 100644 index 62075ba6ef..0000000000 --- a/app/u8glib/u8g_cursor.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - - u8g_cursor.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -void u8g_SetCursorFont(u8g_t *u8g, const u8g_pgm_uint8_t *cursor_font) -{ - u8g->cursor_font = cursor_font; -} - -void u8g_SetCursorStyle(u8g_t *u8g, uint8_t encoding) -{ - u8g->cursor_encoding = encoding; -} - -void u8g_SetCursorColor(u8g_t *u8g, uint8_t fg, uint8_t bg) -{ - u8g->cursor_bg_color = bg; - u8g->cursor_fg_color = fg; -} - -void u8g_SetCursorPos(u8g_t *u8g, u8g_uint_t cursor_x, u8g_uint_t cursor_y) -{ - u8g->cursor_x = cursor_x; - u8g->cursor_y = cursor_y; -} - -void u8g_EnableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = u8g_DrawCursor; -} - -void u8g_DisableCursor(u8g_t *u8g) -{ - u8g->cursor_fn = (u8g_draw_cursor_fn)0; -} - -void u8g_DrawCursor(u8g_t *u8g) -{ - const u8g_pgm_uint8_t *font; - uint8_t color; - uint8_t encoding = u8g->cursor_encoding; - - /* get current values */ - color = u8g_GetColorIndex(u8g); - font = u8g->font; - - /* draw cursor */ - u8g->font = u8g->cursor_font; - encoding++; - u8g_SetColorIndex(u8g, u8g->cursor_bg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - encoding--; - u8g_SetColorIndex(u8g, u8g->cursor_fg_color); - /* 27. Jan 2013: replaced call to u8g_DrawGlyph with call to u8g_draw_glyph */ - /* required, because y adjustment should not happen to the cursor fonts */ - /* u8g_DrawGlyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); */ - u8g_draw_glyph(u8g, u8g->cursor_x, u8g->cursor_y, encoding); - - /* restore previous values */ - u8g->font = font; - u8g_SetColorIndex(u8g, color); -} - diff --git a/app/u8glib/u8g_delay.c b/app/u8glib/u8g_delay.c deleted file mode 100644 index c26056cd41..0000000000 --- a/app/u8glib/u8g_delay.c +++ /dev/null @@ -1,323 +0,0 @@ -/* - - u8g_delay.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - void u8g_Delay(uint16_t val) Delay by "val" milliseconds - void u8g_MicroDelay(void) Delay be one microsecond - void u8g_10MicroDelay(void) Delay by 10 microseconds - - -*/ - - -#include "u8g.h" - -/*==== Part 1: Derive suitable delay procedure ====*/ - -#if defined(ARDUINO) - -# if ARDUINO < 100 -# include -# else -# include -# endif - -/* issue 353 */ -#if defined(ARDUINO_ARCH_SAMD) -# include -#endif - -# if defined(__AVR__) -# define USE_AVR_DELAY -# elif defined(__PIC32MX) -# define USE_PIC32_DELAY -# elif defined(__arm__) /* Arduino Due & Teensy */ -# define USE_ARDUINO_DELAY -# else -# define USE_ARDUINO_DELAY -# endif -#elif defined(_GNU_SOURCE) -# define USE_LINUX_DELAY -#elif defined(__MSP430__) -# define USE_MSP430_DELAY -#elif defined(U8G_RASPBERRY_PI) -# define USE_RASPBERRYPI_DELAY -#elif defined(__AVR__) -# define USE_AVR_DELAY -#elif defined(__18CXX) -# define USE_PIC18_DELAY -#elif defined(U8G_CYPRESS_PSOC5) -#define USE_PSOC5_DELAY -#elif defined(__arm__) || defined(__XTENSA__) -/* do not define anything, all procedures are expected to be defined outside u8glib */ - -/* -void u8g_Delay(uint16_t val); -void u8g_MicroDelay(void); -void u8g_10MicroDelay(void); -*/ - -#else -# define USE_DUMMY_DELAY -#endif - - - -/*==== Part 2: Definition of the delay procedures ====*/ - -/*== Raspberry Pi Delay ==*/ -#if defined (USE_RASPBERRYPI_DELAY) -#include -//#include "/usr/local/include/wiringPi.h" -void u8g_Delay(uint16_t val) { - //delay(val); - //usleep((uint32_t)val*(uint32_t)1000); - delayMicroseconds((uint32_t)val*(uint32_t)1000); -} -void u8g_MicroDelay(void) -{ - usleep(1); -} -void u8g_10MicroDelay(void) -{ - usleep(10); -} -#endif - -#if defined(USE_LINUX_DELAY) -void u8g_Delay(uint16_t val) { - //delay(val); - usleep((uint32_t)val*(uint32_t)1000); -} -void u8g_MicroDelay(void) -{ - usleep(1); -} -void u8g_10MicroDelay(void) -{ - usleep(10); -} -#endif - - - -/*== AVR Delay ==*/ - -#if defined(USE_AVR_DELAY) -#include -#include -#include - -/* - Delay by the provided number of milliseconds. - Thus, a 16 bit value will allow a delay of 0..65 seconds - Makes use of the _delay_loop_2 - - _delay_loop_2 will do a delay of n * 4 prozessor cycles. - with f = F_CPU cycles per second, - n = f / (1000 * 4 ) - with f = 16000000 the result is 4000 - with f = 1000000 the result is 250 - - the millisec loop, gcc requires the following overhead: - - movev 1 - - subwi 2x2 - - bne i 2 - ==> 7 cycles - ==> must be devided by 4, rounded up 7/4 = 2 -*/ -void u8g_Delay(uint16_t val) -{ - /* old version did a call to the arduino lib: delay(val); */ - while( val != 0 ) - { - _delay_loop_2( (F_CPU / 4000 ) -2); - val--; - } -} - -/* delay by one micro second */ -void u8g_MicroDelay(void) -{ -#if (F_CPU / 4000000 ) > 0 - _delay_loop_2( (F_CPU / 4000000 ) ); -#endif -} - -/* delay by 10 micro seconds */ -void u8g_10MicroDelay(void) -{ -#if (F_CPU / 400000 ) > 0 - _delay_loop_2( (F_CPU / 400000 ) ); -#endif -} - -#endif - - -/*== Delay for PIC18 (not tested) ==*/ - -#if defined(USE_PIC18_DELAY) -#include -#define GetSystemClock() (64000000ul) // Hz -#define GetInstructionClock() (GetSystemClock()/4) - -void u8g_Delay(uint16_t val) -{/* - unsigned int _iTemp = (val); - while(_iTemp--) - Delay1KTCYx((GetInstructionClock()+999999)/1000000); - */ -} -void u8g_MicroDelay(void) -{ - /* not implemented */ -} -void u8g_10MicroDelay(void) -{ - /* not implemented */ -} -#endif - - -/*== Arduino Delay ==*/ -#if defined(USE_ARDUINO_DELAY) -void u8g_Delay(uint16_t val) -{ -#if defined(__arm__) - delayMicroseconds((uint32_t)val*(uint32_t)1000); -#else - delay(val); -#endif -} -void u8g_MicroDelay(void) -{ - delayMicroseconds(1); -} -void u8g_10MicroDelay(void) -{ - delayMicroseconds(10); -} -#endif - -#if defined(USE_PIC32_DELAY) -/* - Assume chipkit here with F_CPU correctly defined - The problem was, that u8g_Delay() is called within the constructor. - It seems that the chipkit is not fully setup at this time, so a - call to delay() will not work. So here is my own implementation. - -*/ -#define CPU_COUNTS_PER_SECOND (F_CPU/2UL) -#define TICKS_PER_MILLISECOND (CPU_COUNTS_PER_SECOND/1000UL) -#include "plib.h" -void u8g_Delay(uint16_t val) -{ - uint32_t d; - uint32_t s; - d = val; - d *= TICKS_PER_MILLISECOND; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/1000; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -void u8g_10MicroDelay(void) -{ - uint32_t d; - uint32_t s; - d = TICKS_PER_MILLISECOND/100; - s = ReadCoreTimer(); - while ( (uint32_t)(ReadCoreTimer() - s) < d ) - ; -} - -#endif - -#if defined(USE_MSP430_DELAY) -#include - -#ifndef F_CPU -#define F_CPU 1000000UL -#endif - - -void u8g_Delay(uint16_t val) -{ - int t; - for (t=0; t < val; t++) - { - __delay_cycles(F_CPU/1000UL); - } -} -void u8g_MicroDelay(void) -{ - __delay_cycles(F_CPU/1000000UL); -} - -void u8g_10MicroDelay(void) -{ - __delay_cycles(F_CPU/100000UL); -} -#endif -#if defined USE_PSOC5_DELAY - #include - void u8g_Delay(uint16_t val) {CyDelay(val);}; - void u8g_MicroDelay(void) {CyDelay(1);}; - void u8g_10MicroDelay(void) {CyDelay(10);}; -#endif - - -/*== Any other systems: Dummy Delay ==*/ -#if defined(USE_DUMMY_DELAY) -void u8g_Delay(uint16_t val) -{ - /* do not know how to delay... */ -} -void u8g_MicroDelay(void) -{ -} -void u8g_10MicroDelay(void) -{ -} -#endif diff --git a/app/u8glib/u8g_dev_a2_micro_printer.c b/app/u8glib/u8g_dev_a2_micro_printer.c deleted file mode 100644 index deeb0885b6..0000000000 --- a/app/u8glib/u8g_dev_a2_micro_printer.c +++ /dev/null @@ -1,199 +0,0 @@ -/* - - u8g_dev_a2_micro_printer_ds.c - - Use DC2 bitmap command of the A2 Micro panel termal printer - double stroke - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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 "u8g.h" - -#define LINE_DELAY 40 - - -uint8_t u8g_dev_a2_micro_printer_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height ); - u8g_WriteByte(u8g, dev, pb->width/8 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, *ptr); - ptr++; - } - u8g_Delay(u8g, LINE_DELAY); - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_expand4(uint8_t val) -{ - uint8_t a,b,c,d; - a = val&1; - b = (val&2)<<1; - c = (val&4)<<2; - d = (val&8)<<3; - a |=b; - a |=c; - a |=d; - a |= a<<1; - return a; -} - -uint8_t u8g_dev_a2_micro_printer_double_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - { - //u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 42 ); /* * */ - //u8g_WriteByte(u8g, dev, pb->p.total_height*2 ); - //u8g_WriteByte(u8g, dev, pb->width/8*2 ); - } - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - uint8_t *p2; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - //u8g_WriteByte(u8g, dev, 18); /* DC2 */ - //u8g_WriteByte(u8g, dev, 35 ); /* # */ - //u8g_WriteByte(u8g, dev, 0x0ff ); /* max */ - - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 160); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 20); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - u8g_WriteByte(u8g, dev, 18); /* DC2 */ - u8g_WriteByte(u8g, dev, 42 ); /* * */ - u8g_WriteByte(u8g, dev, pb->p.page_height*2 ); - u8g_WriteByte(u8g, dev, pb->width/8*2 ); - - for( i = 0; i < pb->p.page_height; i ++ ) - { - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(u8g, LINE_DELAY); - p2 = ptr; - for( j = 0; j < pb->width/8; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 >> 4)); - u8g_WriteByte(u8g, dev, u8g_dev_expand4(*p2 & 15)); - p2++; - } - u8g_Delay(u8g, LINE_DELAY); - ptr += pb->width/8; - y++; - } - - /* set parameters back to their default values */ - u8g_WriteByte(u8g, dev, 27); /* ESC */ - u8g_WriteByte(u8g, dev, 55 ); /* parameter command */ - u8g_WriteByte(u8g, dev, 7); /* Max printing dots,Unit(8dots),Default:7(64 dots) 8*(x+1)*/ - u8g_WriteByte(u8g, dev, 80); /* 3-255 Heating time,Unit(10us),Default:80(800us) */ - u8g_WriteByte(u8g, dev, 2); /* 0-255 Heating interval,Unit(10us),Default:2(20us)*/ - - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -#if defined(U8G_16BIT) -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 384, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 360, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 720, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#else -U8G_PB_DEV(u8g_dev_a2_micro_printer_384x240, 240, 240, 8, u8g_dev_a2_micro_printer_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x360_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x720_ds, 192, 240, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); -#endif - -U8G_PB_DEV(u8g_dev_a2_micro_printer_192x120_ds, 192, 120, 8, u8g_dev_a2_micro_printer_double_fn, u8g_com_null_fn); diff --git a/app/u8glib/u8g_dev_flipdisc_2x7.c b/app/u8glib/u8g_dev_flipdisc_2x7.c deleted file mode 100644 index d86d08e050..0000000000 --- a/app/u8glib/u8g_dev_flipdisc_2x7.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - - u8g_dev_flipdisc.c - - 1-Bit (BW) Driver for flip disc matrix - 2x 7 pixel height - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 28 -#define HEIGHT 14 -#define PAGE_HEIGHT 14 - -/* - Write data to the flip disc matrix. - This procedure must be implemented by the user. - Arguments: - id: Id for the matrix. Currently always 0. - page: A page has a height of 14 pixel. For a matrix with HEIGHT == 14 this will be always 0 - width: The width of the flip disc matrix. Always equal to WIDTH - row1: first data line (7 pixel per byte) - row2: first data line (7 pixel per byte) -*/ -void writeFlipDiscMatrix(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - - - -void (*u8g_write_flip_disc_matrix)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2); - -void u8g_SetFlipDiscCallback(u8g_t *u8g, void (*cb)(uint8_t id, uint8_t page, uint8_t width, uint8_t *row1, uint8_t *row2)) -{ - u8g_write_flip_disc_matrix = cb; -} - -uint8_t u8g_dev_flipdisc_2x7_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - - (*u8g_write_flip_disc_matrix)(0, pb->p.page, WIDTH, pb->buf, (uint8_t *)(pb->buf)+WIDTH); - } - break; - case U8G_DEV_MSG_CONTRAST: - return 1; - } - return u8g_dev_pb14v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_flipdisc_2x7_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_flipdisc_2x7_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_flipdisc_2x7_bw_buf}; -u8g_dev_t u8g_dev_flipdisc_2x7 = { u8g_dev_flipdisc_2x7_bw_fn, &u8g_dev_flipdisc_2x7_bw_pb, u8g_com_null_fn }; diff --git a/app/u8glib/u8g_dev_gprof.c b/app/u8glib/u8g_dev_gprof.c deleted file mode 100644 index cb2342ac4a..0000000000 --- a/app/u8glib/u8g_dev_gprof.c +++ /dev/null @@ -1,130 +0,0 @@ -/* - - u8g_dev_gprof.c - - Device for performance measurement with gprof. - Does not write any data, but uses a buffer. - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_pb_dev_gprof_buf[WIDTH]; -u8g_pb_t u8g_pb_dev_gprof = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_pb_dev_gprof_buf }; - -u8g_dev_t u8g_dev_gprof = { u8g_dev_gprof_fn, &u8g_pb_dev_gprof, NULL }; - -uint8_t u8g_dev_gprof_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - /* - { - uint8_t i, j; - uint8_t page_height; - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - printf("%02d ", j); - for( i = 0; i < WIDTH; i++ ) - { - if ( (u8g_pb_dev_stdout_buf[i] & (1<p)) == 0 ) - { - //printf("\n"); - return 0; - } - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x2, y2; - - y2 = bbx->y; - y2 += bbx->h; - y2--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, y2) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - x2 = bbx->x; - x2 += bbx->w; - x2--; - - if ( u8g_pb_IsXIntersection(pb, bbx->x, x2) == 0 ) - return 0; - } - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} diff --git a/app/u8glib/u8g_dev_ht1632.c b/app/u8glib/u8g_dev_ht1632.c deleted file mode 100644 index 4977793f1e..0000000000 --- a/app/u8glib/u8g_dev_ht1632.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - - u8g_dev_ht1632.c - - 1-Bit (BW) Driver for HT1632 controller - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - - - U8G_PIN_NONE can be used as argument - - uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) - { - ... - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - -mapping - -#define DATA_PIN --> U8G_PI_MOSI -#define WR_PIN --> U8G_PI_SCK -#define CS_PIN --> U8G_PI_CS - U8G_PI_A0 --> not used - U8G_PI_RESET --> not used - -Usage: - - u8g_InitSPI(&u8g, &u8g_dev_ht1632_24x16, WR_PIN, DATA_IN, CS_PIN, U8G_PIN_NONE, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 24 -#define HEIGHT 16 -#define PAGE_HEIGHT 16 - -/* http://forum.arduino.cc/index.php?topic=168537.0 */ - -#define HT1632_CMD_SYSDIS 0x00 // CMD= 0000-0000-x Turn off oscil -#define HT1632_CMD_SYSON 0x01 // CMD= 0000-0001-x Enable system oscil -#define HT1632_CMD_LEDOFF 0x02 // CMD= 0000-0010-x LED duty cycle gen off -#define HT1632_CMD_LEDON 0x03 // CMD= 0000-0011-x LEDs ON -#define HT1632_CMD_BLOFF 0x08 // CMD= 0000-1000-x Blink OFF -#define HT1632_CMD_BLON 0x09 // CMD= 0000-1001-x Blink On -#define HT1632_CMD_SLVMD 0x10 // CMD= 0001-00xx-x Slave Mode -#define HT1632_CMD_MSTMD 0x14 // CMD= 0001-01xx-x Master Mode -#define HT1632_CMD_RCCLK 0x18 // CMD= 0001-10xx-x Use on-chip clock -#define HT1632_CMD_EXTCLK 0x1C // CMD= 0001-11xx-x Use external clock -#define HT1632_CMD_COMS00 0x20 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS01 0x24 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS10 0x28 // CMD= 0010-ABxx-x commons options -#define HT1632_CMD_COMS11 0x2C // P-MOS OUTPUT AND 16COMMON OPTION -#define HT1632_CMD_PWM 0xA0 // CMD= 101x-PPPP-x PWM duty cycle - -#define HT1632_ID_CMD 4 /* ID = 100 - Commands */ -#define HT1632_ID_RD 6 /* ID = 110 - Read RAM */ -#define HT1632_ID_WR 5 /* ID = 101 - Write RAM */ - -#define HT1632_ID_LEN 3 // IDs are 3 bits -#define HT1632_CMD_LEN 8 // CMDs are 8 bits -#define HT1632_DATA_LEN 8 // Data are 4*2 bits -#define HT1632_ADDR_LEN 7 // Address are 7 bits - -#if defined(ARDUINO) - -#if ARDUINO < 100 -#include -#else -#include -#endif - -//#define WR_PIN 3 -//#define DATA_PIN 2 -//#define CS_PIN 4 - -void ht1632_write_data_MSB(u8g_t *u8g, uint8_t cnt, uint8_t data, uint8_t extra) -{ - int8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - - for(i = cnt - 1; i >= 0; i--) - { - if ((data >> i) & 1) - { - digitalWrite(data_pin, HIGH); - } - else - { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } - - // Send an extra bit - if (extra) - { - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - -void ht1632_write_data(u8g_t *u8g, uint8_t cnt, uint8_t data) -{ - uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - for (i = 0; i < cnt; i++) - { - - if ((data >> i) & 1) { - digitalWrite(data_pin, HIGH); - } - else { - digitalWrite(data_pin, LOW); - } - - digitalWrite(wr_pin, LOW); - u8g_MicroDelay(); - digitalWrite(wr_pin, HIGH); - u8g_MicroDelay(); - } -} - - -void ht1632_init(u8g_t *u8g) -{ - //uint8_t i; - uint8_t data_pin = u8g->pin_list[U8G_PI_MOSI]; - uint8_t wr_pin = u8g->pin_list[U8G_PI_SCK]; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - pinMode(data_pin, OUTPUT); - pinMode(wr_pin, OUTPUT); - pinMode(cs_pin, OUTPUT); - - digitalWrite(data_pin, HIGH); - digitalWrite(wr_pin, HIGH); - digitalWrite(cs_pin, HIGH); - - digitalWrite(cs_pin, LOW); - /* init display once after startup */ - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); // IDs are 3 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSDIS, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_SYSON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_COMS11, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_LEDON, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_BLOFF, true); // 8 bits - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM+15, true); // 8 bits - digitalWrite(cs_pin, HIGH); - - /* removed following (debug) code */ - /* - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, 0, false); - for(i = 0; i<48; ++i) - { - ht1632_write_data(u8g, 8, 0xFF); - } - digitalWrite(cs_pin, HIGH); - */ -} - -/* - page: 0=data contain lines 0..16, 1=data contain lines 16..32 (a 24x16 display will only have page 0) - cnt: width of the display - data: pointer to a buffer with 2*cnt bytes. -*/ -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ - uint8_t addr; - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - /* send data to the ht1632 */ - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_WR, false); // Send "write to display" command - ht1632_write_data_MSB(u8g, 7, page*2*cnt, false); - - // Operating in progressive addressing mode - for (addr = 0; addr < cnt; addr++) - { - ht1632_write_data(u8g, 8, data[addr]); - ht1632_write_data(u8g, 8, data[addr+cnt]); - } - digitalWrite(cs_pin, HIGH); -} - -/* value is between 0...15 */ -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ - uint8_t cs_pin = u8g->pin_list[U8G_PI_CS]; - digitalWrite(cs_pin, LOW); - ht1632_write_data_MSB(u8g, 3, HT1632_ID_CMD, false); - ht1632_write_data_MSB(u8g, 8, HT1632_CMD_PWM + value, false); - digitalWrite(cs_pin, HIGH); -} - -#else -void ht1632_init(u8g_t *u8g) -{ -} - -void ht1632_transfer_data(u8g_t *u8g, uint8_t page, uint8_t cnt, uint8_t *data) -{ -} - -void ht1632_set_contrast(u8g_t *u8g, uint8_t value) -{ -} - -#endif /* ARDUINO */ - - -uint8_t u8g_dev_ht1632_24x16_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - ht1632_init(u8g); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - /* current page: pb->p.page */ - /* ptr to the buffer: pb->buf */ - ht1632_transfer_data(u8g, pb->p.page, WIDTH, pb->buf); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* values passed to SetContrast() are between 0 and 255, scale down to 0...15 */ - ht1632_set_contrast(u8g, (*(uint8_t *)arg) >> 4); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ht1632_24x16_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ht1632_24x16_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ht1632_24x16_buf}; -u8g_dev_t u8g_dev_ht1632_24x16 = { u8g_dev_ht1632_24x16_fn, &u8g_dev_ht1632_24x16_pb, u8g_com_null_fn }; - diff --git a/app/u8glib/u8g_dev_ili9325d_320x240.c b/app/u8glib/u8g_dev_ili9325d_320x240.c deleted file mode 100644 index 35db466b27..0000000000 --- a/app/u8glib/u8g_dev_ili9325d_320x240.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - - u8g_dev_ili9325d_320x240.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - Color format - Red: 5 Bit - Green: 6 Bit - Blue: 5 Bit - - -*/ - -#include "u8g.h" - -#define WIDTH 240 - -#if defined(U8G_16BIT) -#define HEIGHT 320 -#else -/* if the user tries to compile the 8Bit version of the lib, then restrict the height to something which fits to 8Bit */ -#define HEIGHT 240 -#endif -#define PAGE_HEIGHT 4 - - -/* - reference board for this device: - http://iteadstudio.com/store/index.php?main_page=product_info&cPath=57_58&products_id=55 - documentation: - http://iteadstudio.com/Downloadfile/ITDB02_material.rar - datasheet - http://www.newhavendisplay.com/app_notes/ILI9325D.pdf - other libs - http://henningkarlsen.com/electronics/library.php - init sequence - http://code.google.com/p/itdb02/, ITDB02.cpp, iteadstudio.com -*/ - -static const uint8_t u8g_dev_ili9325d_320x240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - //U8G_ESC_ADR(0), 0x000, 0x0E5, /* only used for none D version: set SRAM internal timing */ - //U8G_ESC_ADR(1), 0x078, 0x0f0, - U8G_ESC_ADR(0), 0x000, 0x001, /* Driver Output Control, bits 8 & 10 */ - U8G_ESC_ADR(1), 0x001, 0x000, - U8G_ESC_ADR(0), 0x000, 0x002, /* LCD Driving Wave Control, bit 9: Set line inversion */ - U8G_ESC_ADR(1), 0x002, 0x000, /* ITDB02 none D verion: 0x007, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x003, /* Entry Mode, GRAM write direction and BGR=1 */ - U8G_ESC_ADR(1), 0x010, 0x030, - U8G_ESC_ADR(0), 0x000, 0x004, /* Resize register */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x008, /* Display Control 2: set the back porch and front porch */ - U8G_ESC_ADR(1), 0x002, 0x007, - - U8G_ESC_ADR(0), 0x000, 0x009, /* Display Control 3 */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x00a, /* Display Control 4: FMARK */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00c, /* RGB Display Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00d, /* Frame Maker Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x00f, /* RGB Display Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: DC1[2:0], DC0[2:0], VC[2:0] */ - U8G_ESC_ADR(1), 0x000, 0x007, - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VREG1OUT voltage */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, but do not display */ - U8G_ESC_ADR(1), 0x000, 0x001, - - U8G_ESC_DLY(100), /* delay 100 ms */ /* ITDB02 none D verion: 50ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), 0x000, 0x010, /* Power Control 1: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x016, 0x090, /* ITDB02 none D verion: 0x010, 0x090 */ - U8G_ESC_ADR(0), 0x000, 0x011, /* Power Control 2: SAP, BT[3:0], AP, DSTB, SLP, STB */ - U8G_ESC_ADR(1), 0x002, 0x027, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x012, /* Power Control 3: VCI: External, VCI*1.80 */ - U8G_ESC_ADR(1), 0x000, 0x00d, /* ITDB02 none D verion: 0x000, 0x01f */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x013, /* Power Control 4: VDV[4:0] for VCOM amplitude */ - U8G_ESC_ADR(1), 0x012, 0x000, /* ITDB02 none D verion: 0x015, 0x000 */ - U8G_ESC_ADR(0), 0x000, 0x029, /* Power Control 7 */ - U8G_ESC_ADR(1), 0x000, 0x00a, /* ITDB02 none D verion: 0x000, 0x027 */ - U8G_ESC_ADR(0), 0x000, 0x02b, /* Frame Rate: 83 */ - U8G_ESC_ADR(1), 0x000, 0x00d, - - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - - /* gamma control */ - U8G_ESC_ADR(0), 0x000, 0x030, - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x031, - U8G_ESC_ADR(1), 0x004, 0x004, - U8G_ESC_ADR(0), 0x000, 0x032, - U8G_ESC_ADR(1), 0x000, 0x003, - U8G_ESC_ADR(0), 0x000, 0x035, - U8G_ESC_ADR(1), 0x004, 0x005, - U8G_ESC_ADR(0), 0x000, 0x036, - U8G_ESC_ADR(1), 0x008, 0x008, - U8G_ESC_ADR(0), 0x000, 0x037, - U8G_ESC_ADR(1), 0x004, 0x007, - U8G_ESC_ADR(0), 0x000, 0x038, - U8G_ESC_ADR(1), 0x003, 0x003, - U8G_ESC_ADR(0), 0x000, 0x039, - U8G_ESC_ADR(1), 0x007, 0x007, - U8G_ESC_ADR(0), 0x000, 0x03c, - U8G_ESC_ADR(1), 0x005, 0x004, - U8G_ESC_ADR(0), 0x000, 0x03d, - U8G_ESC_ADR(1), 0x008, 0x008, - - U8G_ESC_ADR(0), 0x000, 0x050, /* Horizontal GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x051, /* Horizontal GRAM End Address: 239 */ - U8G_ESC_ADR(1), 0x000, 0x0EF, - U8G_ESC_ADR(0), 0x000, 0x052, /* Vertical GRAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x053, /* Vertical GRAM End Address: 319 */ - U8G_ESC_ADR(1), 0x001, 0x03F, - - U8G_ESC_ADR(0), 0x000, 0x060, /* Driver Output Control 2 */ - U8G_ESC_ADR(1), 0x0a7, 0x000, - U8G_ESC_ADR(0), 0x000, 0x061, /* Base Image Display Control: NDL,VLE, REV */ - U8G_ESC_ADR(1), 0x000, 0x001, - U8G_ESC_ADR(0), 0x000, 0x06a, /* Vertical Scroll Control */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x080, /* Partial Image 1 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x081, /* Partial Image 1 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x082, /* Partial Image 1 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x083, /* Partial Image 2 Display Position */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x084, /* Partial Image 2 RAM Start Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x085, /* Partial Image 2 RAM End Address */ - U8G_ESC_ADR(1), 0x000, 0x000, - - U8G_ESC_ADR(0), 0x000, 0x090, /* Panel Interface Control 1 */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x092, /* Panel Interface Control 2 */ - U8G_ESC_ADR(1), 0x000, 0x000, /* 0x006, 0x000 */ - - U8G_ESC_ADR(0), 0x000, 0x007, /* Display Control 1: Operate, display ON */ - U8G_ESC_ADR(1), 0x001, 0x033, - - U8G_ESC_DLY(10), /* delay 10 ms */ - - /* write test pattern */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x010, - U8G_ESC_ADR(0), 0x000, 0x022, /* Write Data to GRAM */ - U8G_ESC_ADR(1), 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - 0x000, 0x000, - 0x0fe, 0x0fe, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_ili9325d_320x240_page_seq[] PROGMEM = { - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_ADR(0), 0x000, 0x020, /* Horizontal GRAM Address Set */ - U8G_ESC_ADR(1), 0x000, 0x000, - U8G_ESC_ADR(0), 0x000, 0x021, /* Vertical GRAM Address Set */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_high_byte(uint8_t color) -{ - uint8_t h; - h = color; - h &= 0x0e0; - h |= h>>3; - h &= 0x0f8; - color>>=2; - color &= 7; - h |= color; - return h; -} - -/* convert the internal RGB 332 to 65K high byte */ -static uint8_t u8g_dev_ili9325d_get_65K_low_byte(uint8_t color) -{ - uint8_t l; - l = color; - l <<= 3; - color &= 3; - color <<= 1; - l |= color; - return l; -} - - -uint8_t u8g_dev_ili9325d_320x240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - //for(;;) - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_init_seq); - - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - uint16_t y, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < pb->p.page_height; i ++ ) - { - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ili9325d_320x240_page_seq); - u8g_WriteByte(u8g, dev, y >> 8 ); /* display ram (cursor) address high byte */ - u8g_WriteByte(u8g, dev, y & 255 ); /* display ram (cursor) address low byte */ - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0 ); - u8g_WriteByte(u8g, dev, 0x022 ); /* start gram data */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( j = 0; j < pb->width; j++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_high_byte(*ptr) ); - u8g_WriteByte(u8g, dev, u8g_dev_ili9325d_get_65K_low_byte(*ptr) ); - - ptr++; - } - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_ili9325d_320x240_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_ili9325d_320x240_8h8_pb U8G_NOCOMMON = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_ili9325d_320x240_8h8_buf}; -u8g_dev_t u8g_dev_ili9325d_320x240_8bit U8G_NOCOMMON = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_port_d_wr_fn }; -//u8g_dev_t u8g_dev_ili9325d_320x240_8bit = { u8g_dev_ili9325d_320x240_fn, &u8g_ili9325d_320x240_8h8_pb, u8g_com_arduino_parallel_fn }; - -//U8G_PB_DEV(u8g_dev_ili9325d_320x240_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ili9325d_320x240_fn, U8G_COM_PARALLEL); - - diff --git a/app/u8glib/u8g_dev_ks0108_128x64.c b/app/u8glib/u8g_dev_ks0108_128x64.c deleted file mode 100644 index f30f8a38ce..0000000000 --- a/app/u8glib/u8g_dev_ks0108_128x64.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - - u8g_dev_ks0108_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - ADDRESS = 0 (Command Mode) - 0x03f Display On - 0x0c0 Start Display at line 0 - 0x040 | y write to y address (y:0..63) - 0x0b8 | x write to page [0..7] - - - u8g_Init8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, en, cs1, cs2, di, rw, reset) - u8g_Init8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 18, 14, 15, 17, 16, U8G_PIN_NONE) - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ks0108_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x03f, /* display on */ - 0x0c0, /* start at line 0 */ - U8G_ESC_DLY(20), /* delay 20 ms */ - U8G_ESC_CS(0), /* disable all chips */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ks0108_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ks0108_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (KS0108b) */ - u8g_WriteByte(u8g, dev, 0x040 ); /* set address 0 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, 64, 64+(uint8_t *)pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ks0108_128x64, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ks0108_128x64_fast, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ks0108_128x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/app/u8glib/u8g_dev_lc7981_160x80.c b/app/u8glib/u8g_dev_lc7981_160x80.c deleted file mode 100644 index 3de209926d..0000000000 --- a/app/u8glib/u8g_dev_lc7981_160x80.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - - u8g_dev_lc7981_160x80.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 160 -#define HEIGHT 80 -#define PAGE_HEIGHT 8 - - -/* - code ideas: - https://github.com/vsergeev/embedded-drivers/tree/master/avr-lc7981 - data sheets: - http://www.lcd-module.de/eng/pdf/zubehoer/lc7981.pdf - http://www.lcd-module.de/pdf/grafik/w160-6.pdf -*/ - -static const uint8_t u8g_dev_lc7981_160x80_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x050, /* Oct 2015: Changed from 7f to 50 (1/80 duty cycle) */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_160x80_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_160x80_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_160x80_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_160x80_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/app/u8glib/u8g_dev_lc7981_240x128.c b/app/u8glib/u8g_dev_lc7981_240x128.c deleted file mode 100644 index f0b9c31485..0000000000 --- a/app/u8glib/u8g_dev_lc7981_240x128.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x128.c - - Hitachi Display SP14N002 - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x128%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x128_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/app/u8glib/u8g_dev_lc7981_240x64.c b/app/u8glib/u8g_dev_lc7981_240x64.c deleted file mode 100644 index 9464b52aec..0000000000 --- a/app/u8glib/u8g_dev_lc7981_240x64.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_lc7981_240x64.c - - Tested with Nan Ya LM_J6_003_ - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -static const uint8_t u8g_dev_lc7981_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_240x64_fn, U8G_COM_FAST_PARALLEL); - - diff --git a/app/u8glib/u8g_dev_lc7981_320x64.c b/app/u8glib/u8g_dev_lc7981_320x64.c deleted file mode 100644 index fe28f942e8..0000000000 --- a/app/u8glib/u8g_dev_lc7981_320x64.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_lc7981_320x64.c - - Note: Requires 16 bit mode (Must be enabled in u8g.h) - - Tested with Varitronix MGLS32064-03.pdf - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#ifdef U8G_16BIT -#define WIDTH 320 -#else -#define WIDTH 240 -#endif - -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* - http://www.gaw.ru/pdf/lcd/lcm/Varitronix/graf/MGLS32064-03.pdf -*/ - -static const uint8_t u8g_dev_lc7981_320x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - - U8G_ESC_ADR(1), /* instruction mode */ - 0x000, /* mode register */ - U8G_ESC_ADR(0), /* data mode */ - 0x032, /* display on (bit 5), master mode on (bit 4), graphics mode on (bit 1)*/ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x001, /* character/bits per pixel pitch */ - U8G_ESC_ADR(0), /* data mode */ - 0x007, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x002, /* number of chars/byte width of the screen */ - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8-1, /* 8 bits per pixel */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x003, /* time division */ - U8G_ESC_ADR(0), /* data mode */ - 0x07f, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x008, /* display start low */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_ADR(1), /* instruction mode */ - 0x009, /* display start high */ - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* */ - - U8G_ESC_DLY(10), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_lc7981_320x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_lc7981_320x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00a ); /* display ram (cursor) address low byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr & 0x0ff ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00b ); /* display ram (cursor) address hight byte */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr >> 8 ); - - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x00c ); /* write data */ - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1f_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_lc7981_320x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_lc7981_320x64_fn, U8G_COM_FAST_PARALLEL); - diff --git a/app/u8glib/u8g_dev_ld7032_60x32.c b/app/u8glib/u8g_dev_ld7032_60x32.c deleted file mode 100644 index 596d95898b..0000000000 --- a/app/u8glib/u8g_dev_ld7032_60x32.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ld7032_60x32.c - - 60x32 OLED display - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -/* define width as 64, so that it is a multiple of 8 */ -#define WIDTH 64 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ld7032_60x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(1), /* delay 1 ms */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x014, /* Dot Matrix Display Stand-by ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01a, /* Dot Matrix Frame Rate */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* special value for this OLED from manual */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x01d, /* Graphics Memory Writing Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (right down, horizontal) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x009, /* Display Direction */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* reset default (x,y: min --> max) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x030, /* Display Size X */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Column Start Output */ - 0x03b, /* Column End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x032, /* Display Size Y */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Row Start Output */ - 0x01f, /* Row End Output */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x010, /* Peak Pulse Width Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x016, /* Peak Pulse Delay Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x012, /* Dot Matrix Current Level Set */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* 0x050 * 1 uA = 80 uA */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x018, /* Pre-Charge Pulse Width */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* 3 SCLK */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x044, /* Pre-Charge Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* Every Time */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x048, /* Row overlap timing */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, /* Pre-Charge + Peak Delay + Peak boot Timing */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03f, /* VCC_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x011, /* ??? */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x03d, /* VSS selection */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 2.8V */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x002, /* Dot Matrix Display ON/OFF */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* ON */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x008, /* write data */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* use box commands to set start adr */ -static const uint8_t u8g_dev_ld7032_60x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0x034, /* box x start */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* 0 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x035, /* box x end */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x037, /* box y end */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, /* */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x036, /* box y start */ - U8G_ESC_ADR(1), /* data mode */ - - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ld7032_60x32_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - /* ... */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ld7032_60x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_data_start); - u8g_WriteByte(u8g, dev, pb->p.page_y0); /* y start */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x008); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ld7032_60x32_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ld7032_60x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ld7032_60x32_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_ld7032_60x32_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ld7032_60x32_fn, U8G_COM_HW_USART_SPI); - diff --git a/app/u8glib/u8g_dev_null.c b/app/u8glib/u8g_dev_null.c deleted file mode 100644 index c41380e8c5..0000000000 --- a/app/u8glib/u8g_dev_null.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - - u8g_dev_null.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -uint8_t u8g_dev_null(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: /* most often used command */ - break; - case U8G_DEV_MSG_SET_PIXEL: - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - break; - case U8G_DEV_MSG_PAGE_NEXT: - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return 1; -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - } - return 1; -} diff --git a/app/u8glib/u8g_dev_pcd8544_84x48.c b/app/u8glib/u8g_dev_pcd8544_84x48.c deleted file mode 100644 index dbebd7cd02..0000000000 --- a/app/u8glib/u8g_dev_pcd8544_84x48.c +++ /dev/null @@ -1,141 +0,0 @@ -/* - - u8g_dev_pcd8544_84x48.c - - Display: Nokia 84x48 - - Status: Tested with PCF8812 Display - - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcd8544_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_pcd8544_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_pcd8544_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x008, /* display blank */ - 0x024, /* power down (PD=1), horizontal increment (V=0), enter normal command set (H=0) */ - - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_pcd8544_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcd8544_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_pcd8544_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcd8544_84x48_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcd8544_fn, U8G_COM_HW_SPI); - diff --git a/app/u8glib/u8g_dev_pcf8812_96x65.c b/app/u8glib/u8g_dev_pcf8812_96x65.c deleted file mode 100644 index 3801284468..0000000000 --- a/app/u8glib/u8g_dev_pcf8812_96x65.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - - u8g_dev_pcf8812_96x65.c - - Display: Nokia 96x65 - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - - om6206 comaptible to pcf8812 ? - - Status: Tested - - - Display Controller Seen in - LPH7366 (9 pins, 84x48) PCD8544 Nokia 5110 / 5120 / 5130 / 5160 / 6110 / 6150 - LPH7677 (8 pins, 84x48) PCD8544 Nokia 3210 - LPH7779 (8 pins, 84x48) PCD8544 Nokia 3310 / 3315 / 3330 / 3110, also 3410? - ??? PCD8544 Nokia 5110 / 6110 - LPH7690 ? (96x65) PCF8455/OM6202 Nokia 3410 - LPH7690 ? (96x65?) SED1565/S1D15605 Nokia 7110 / 3510? - LPH7690 ??? Nokia 6210 - - - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 65 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_pcf8812_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x013, /* bias system 1:48 */ - 0x080 | 0x040, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_pcf8812_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_pcf8812_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - - /* mirrored output, not tested*/ - /* - { - uint8_t i = pb->width; - while( i > 0 ) - { - i--; - u8g_WriteByte(u8g, dev, ((unsigned char *)pb->buf)[i] ); - } - } - */ - - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_pcf8812_96x65_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_pcf8812_96x65_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_pcf8812_fn, U8G_COM_HW_SPI); diff --git a/app/u8glib/u8g_dev_sbn1661_122x32.c b/app/u8glib/u8g_dev_sbn1661_122x32.c deleted file mode 100644 index a8552cb40e..0000000000 --- a/app/u8glib/u8g_dev_sbn1661_122x32.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - - u8g_dev_sbn1661_122x32.c - - WG12232 display with 2xSBN1661 / SED1520 controller (122x32 display) - At the moment only available in the Arduino Environment - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 122 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_sbn1661_122x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip 1 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - U8G_ESC_CS(2), /* enable chip 2 */ - 0x0af, /* display on */ - 0x0c0, /* display start at line 0 */ - 0x0a0, /* a0: ADC forward, a1: ADC reverse */ - 0x0a9, /* a8: 1/16, a9: 1/32 duty */ - - U8G_ESC_CS(0), /* disable chip */ - - - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_sbn1661_122x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sbn1661_122x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, pb->buf); - - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 2); - u8g_WriteByte(u8g, dev, 0x0b8 | pb->p.page); /* select current page (SBN1661/SED1520) */ - u8g_WriteByte(u8g, dev, 0x000 ); /* set X address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/2, WIDTH/2+(uint8_t *)pb->buf); - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -/* u8g_com_arduino_sw_spi_fn does not work, too fast??? */ -U8G_PB_DEV(u8g_dev_sbn1661_122x32 , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sbn1661_122x32_fn, u8g_com_arduino_no_en_parallel_fn); diff --git a/app/u8glib/u8g_dev_ssd1306_128x32.c b/app/u8glib/u8g_dev_ssd1306_128x32.c deleted file mode 100644 index ff516ff663..0000000000 --- a/app/u8glib/u8g_dev_ssd1306_128x32.c +++ /dev/null @@ -1,303 +0,0 @@ -/* - - u8g_dev_ssd1306_128x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - 23 Feb 2013: Fixed, Issue 147 - -*/ - - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence adafruit 128x32 OLED (TESTED - WORKING 23.02.13), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x32_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x01f, /* Feb 23, 2013: 128x32 OLED: 0x01f, 128x32 OLED 0x03f */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 128x32 OLED: 0x002, 128x32 OLED 0x012 */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x32_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -/* select one init sequence here */ -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_univision_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit1_init_seq -//define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit2_init_seq -#define u8g_dev_ssd1306_128x32_init_seq u8g_dev_ssd1306_128x32_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x32_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr. to 0 */ - 0x000, /* set lower 4 bit of the col adr. to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* 11 Jul 2015: fixed contrast calculation */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; -} - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_128x32_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x32_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* 11 Jul 2015: fixed contrast calculation */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_128x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x32_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x32_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_ssd1306_128x32_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x32_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x32_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_sw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_hw_spi = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x32_2x_i2c = { u8g_dev_ssd1306_128x32_2x_fn, &u8g_dev_ssd1306_128x32_2x_pb, U8G_COM_SSD_I2C }; diff --git a/app/u8glib/u8g_dev_ssd1306_128x64.c b/app/u8glib/u8g_dev_ssd1306_128x64.c deleted file mode 100644 index 1b67fbb480..0000000000 --- a/app/u8glib/u8g_dev_ssd1306_128x64.c +++ /dev/null @@ -1,457 +0,0 @@ -/* - - u8g_dev_ssd1306_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit1_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x010, /* [1] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* [1] set contrast control */ - 0x0d9, 0x022, /* [1] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit2_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x000, /* */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence adafruit 128x64 OLED (NOT TESTED), like adafruit3, but with page addressing mode */ -static const uint8_t u8g_dev_ssd1306_128x64_adafruit3_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* [2] charge pump setting (p62): 0x014 enable, 0x010 disable */ - - 0x020, 0x002, /* 2012-05-27: page addressing mode */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x0cf, /* [2] set contrast control */ - 0x0d9, 0x0f1, /* [2] pre-charge period 0x022/f1*/ - 0x0db, 0x040, /* vcomh deselect level */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* init sequence Univision datasheet (NOT TESTED) */ -static const uint8_t u8g_dev_ssd1306_128x64_univision_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x03f, /* multiplex ratio */ - 0x0d3, 0x000, /* display offset */ - 0x040, /* start line */ - 0x08d, 0x010, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5) */ - 0x081, 0x09f, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period */ - 0x0db, 0x040, /* vcomh deselect level */ - 0x022, 0x000, /* page addressing mode WRONG: 3 byte cmd! */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_univision_init_seq -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit1_init_seq -// 26. Apr 2014: in this thead: http://forum.arduino.cc/index.php?topic=234930.msg1696754;topicseen#msg1696754 -// it is mentiond, that adafruit2_init_seq works better --> this will be used by the ssd1306_adafruit device -//#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit2_init_seq - -#define u8g_dev_ssd1306_128x64_init_seq u8g_dev_ssd1306_128x64_adafruit3_init_seq - - -static const uint8_t u8g_dev_ssd1306_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -/* the sh1106 is compatible to the ssd1306, but is 132x64. display seems to be centered */ -static const uint8_t u8g_dev_sh1106_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x002, /* set lower 4 bit of the col adr to 2 (centered display with sh1106) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_adafruit2_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - case U8G_DEV_MSG_CONTRAST: - { - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, *(uint8_t *) arg); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_adafruit_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - case U8G_DEV_MSG_CONTRAST: - { - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, *(uint8_t *) arg); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - case U8G_DEV_MSG_CONTRAST: - { - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, *(uint8_t *) arg); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1306_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - case U8G_DEV_MSG_CONTRAST: - { - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, *(uint8_t *) arg); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_sh1106_128x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_sh1106_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - case U8G_DEV_MSG_CONTRAST: - { - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - u8g_WriteByte(u8g, dev, *(uint8_t *) arg); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - - - - -U8G_PB_DEV(u8g_dev_ssd1306_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_128x64_fn, U8G_COM_SSD_I2C); - -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_adafruit_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_adafruit_128x64_fn, U8G_COM_SSD_I2C); - - -uint8_t u8g_dev_ssd1306_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_128x64_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_sw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_hw_spi = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_128x64_2x_i2c = { u8g_dev_ssd1306_128x64_2x_fn, &u8g_dev_ssd1306_128x64_2x_pb, U8G_COM_SSD_I2C }; - - -U8G_PB_DEV(u8g_dev_sh1106_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_sh1106_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_sh1106_128x64_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_sh1106_128x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_sh1106_128x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_sh1106_128x64_2x_buf}; -u8g_dev_t u8g_dev_sh1106_128x64_2x_sw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_hw_spi = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_sh1106_128x64_2x_i2c = { u8g_dev_sh1106_128x64_2x_fn, &u8g_dev_sh1106_128x64_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/app/u8glib/u8g_dev_ssd1306_64x48.c b/app/u8glib/u8g_dev_ssd1306_64x48.c deleted file mode 100644 index b9bdb1d18a..0000000000 --- a/app/u8glib/u8g_dev_ssd1306_64x48.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - - u8g_dev_ssd1306_64x48.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 64 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - - -/* init sequence buydisplay.com 0.66" 64x48 OLED */ -/* http://www.buydisplay.com/download/manual/ER-OLED0.66-1_Series_Datasheet.pdf */ -static const uint8_t u8g_dev_ssd1306_64x48_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0ae, /* display off, sleep mode */ - 0x0d5, 0x080, /* clock divide ratio (0x00=1) and oscillator frequency (0x8) */ - 0x0a8, 0x02f, /* Multiplex Ration, Jul 12, 2015: From 0.66" OLED datasheet */ - - 0x0d3, 0x000, /* */ - - 0x040, /* start line */ - - 0x08d, 0x014, /* charge pump setting (p62): 0x014 enable, 0x010 disable */ - - //0x020, 0x002, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Feb 23, 2013: 64x48 OLED: 0x002, 64x48 OLED 0x012 */ - 0x0a1, /* segment remap a0/a1*/ - 0x0c8, /* c0: scan dir normal, c8: reverse */ - 0x0da, 0x012, /* com pin HW config, sequential com pin config (bit 4), disable left/right remap (bit 5), Jul 12, 2015: From 0.66" OLED datasheet */ - 0x081, 0x0cf, /* set contrast control */ - 0x0d9, 0x022, /* pre-charge period 0x022/f1, from 0.66" OLED datasheet */ - 0x0db, 0x000, /* vcomh deselect level, from 0.66" OLED datasheet */ - - 0x02e, /* 2012-05-27: Deactivate scroll */ - 0x0a4, /* output ram to display */ - 0x0a6, /* none inverted normal display mode */ - 0x0af, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - - - -static const uint8_t u8g_dev_ssd1306_64x48_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010+2, /* set upper 4 bit of the col adr. to 0, 0.66" OLED starts with offset 32 */ - 0x000, /* set lower 4 bit of the col adr. to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1306_64x48_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_64x48_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_64x48_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* 11 Jul 2015: fixed contrast calculation */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; -} - - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1306_64x48_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_64x48_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_64x48_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1306_64x48_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (pb->p.page*2+1)); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* 11 Jul 2015: fixed contrast calculation */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1306_64x48_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_64x48_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_64x48_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_64x48_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1306_64x48_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1306_64x48_fn, U8G_COM_SSD_I2C); - -uint8_t u8g_dev_ssd1306_64x48_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1306_64x48_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1306_64x48_2x_buf}; -u8g_dev_t u8g_dev_ssd1306_64x48_2x_sw_spi = { u8g_dev_ssd1306_64x48_2x_fn, &u8g_dev_ssd1306_64x48_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1306_64x48_2x_hw_spi = { u8g_dev_ssd1306_64x48_2x_fn, &u8g_dev_ssd1306_64x48_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1306_64x48_2x_i2c = { u8g_dev_ssd1306_64x48_2x_fn, &u8g_dev_ssd1306_64x48_2x_pb, U8G_COM_SSD_I2C }; diff --git a/app/u8glib/u8g_dev_ssd1309_128x64.c b/app/u8glib/u8g_dev_ssd1309_128x64.c deleted file mode 100644 index 4893f82c7c..0000000000 --- a/app/u8glib/u8g_dev_ssd1309_128x64.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - - u8g_dev_ssd1309_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* ssd1309 ini sequence*/ -static const uint8_t u8g_dev_ssd1309_128x64_init_seq[] PROGMEM={ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0xfd,0x12, /*Command Lock */ - 0xae, /*Set Display Off */ - 0xd5,0xa0, /*set Display Clock Divide Ratio/Oscillator Frequency */ - 0xa8,0x3f, /*Set Multiplex Ratio */ - 0x3d,0x00, /*Set Display Offset*/ - 0x40, /*Set Display Start Line*/ - 0xa1, /*Set Segment Re-Map*/ - 0xc8, /*Set COM Output Scan Direction*/ - 0xda,0x12, /*Set COM Pins Hardware Configuration*/ - 0x81,0xdf, /*Set Current Control */ - 0xd9,0x82, /*Set Pre-Charge Period */ - 0xdb,0x34, /*Set VCOMH Deselect Level */ - 0xa4, /*Set Entire Display On/Off */ - 0xa6, /*Set Normal/Inverse Display*/ - U8G_ESC_VCC(1), /*Power up VCC & Stabilized */ - U8G_ESC_DLY(50), - 0xaf, /*Set Display On */ - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -/* select one init sequence here */ - #define u8g_dev_ssd1309_128x64_init_seq u8g_dev_ssd1309_128x64_init_seq - - - static const uint8_t u8g_dev_ssd1309_128x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1309_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1309_128x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (SSD1306) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* 11 Jul 2015: fixed contrast calculation */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1309_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1309_128x64_i2c, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1309_128x64_fn, U8G_COM_SSD_I2C); diff --git a/app/u8glib/u8g_dev_ssd1322_nhd31oled_bw.c b/app/u8glib/u8g_dev_ssd1322_nhd31oled_bw.c deleted file mode 100644 index 4db96270d2..0000000000 --- a/app/u8glib/u8g_dev_ssd1322_nhd31oled_bw.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_bw.c - - 1-Bit (BW) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_1bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_ssd1322_nhd31oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_1bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_1bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x0ff); - u8g_WriteByte(u8g, dev, 0x0ff); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x0c1); /* 21 May 2013, fixed contrast command */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1322_nhd31oled_bw_fn, U8G_COM_FAST_PARALLEL); - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_bw_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_bw_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_bw_fn, &u8g_dev_ssd1322_nhd31oled_2x_bw_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_ssd1322_nhd31oled_gr.c b/app/u8glib/u8g_dev_ssd1322_nhd31oled_gr.c deleted file mode 100644 index 61f0b1922f..0000000000 --- a/app/u8glib/u8g_dev_ssd1322_nhd31oled_gr.c +++ /dev/null @@ -1,338 +0,0 @@ -/* - - u8g_dev_ssd1322_nhd31oled_gr.c - - 2-Bit (4L) Driver for SSD1322 Controller (OLED Display) - Tested with NHD-3.12-25664 - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#if defined(U8G_16BIT) -#define WIDTH 256 -#else -#define WIDTH 248 -#endif -#define HEIGHT 64 -//#define PAGE_HEIGHT 8 - -/* - http://www.newhavendisplay.com/app_notes/OLED_25664.txt - http://www.newhavendisplay.com/forum/viewtopic.php?f=15&t=3758 -*/ - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0fd, /* lock command */ - U8G_ESC_ADR(1), /* data mode */ - 0x012, /* unlock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ae, /* display off, sleep mode */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b3, - U8G_ESC_ADR(1), /* data mode */ - 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 80 frames/sec) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ca, /* multiplex ratio */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, /* 1/64 Duty (0x0F~0x3F) */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a2, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display offset, shift mapping ram counter */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a1, - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* display start line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a0, /* Set Re-Map / Dual COM Line Mode */ - U8G_ESC_ADR(1), /* data mode */ - 0x014, /* was 0x014 */ - 0x011, /* was 0x011 */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0ab, - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* Enable Internal VDD Regulator */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b4, /* Display Enhancement A */ - U8G_ESC_ADR(1), /* data mode */ - 0x0a0, - 0x005|0x0fd, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c1, /* contrast */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0c7, /* Set Scale Factor of Segment Output Current Control */ - U8G_ESC_ADR(1), /* data mode */ - 0x00f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b9, /* linear gray scale */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b1, /* Phase 1 (Reset) & Phase 2 (Pre-Charge) Period Adjustment */ - U8G_ESC_ADR(1), /* data mode */ - 0x0e2, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0d1, /* Display Enhancement B */ - U8G_ESC_ADR(1), /* data mode */ - 0x082|0x020, - 0x020, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0bb, /* precharge voltage */ - U8G_ESC_ADR(1), /* data mode */ - 0x01f, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0b6, /* precharge period */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0be, /* vcomh */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a6, /* normal display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0a9, /* exit partial display */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x0af, /* display on */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - U8G_ESC_ADR(1), /* data mode */ - 0x01c, /* start at column 0 */ - 0x05b, /* end column */ - U8G_ESC_ADR(0), /* instruction mode */ - 0x075, /* row address... */ - U8G_ESC_ADR(1), /* data mode */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1322_2bit_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_ssd1322_nhd31oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1322_2bit_nhd_312_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; /* 23 Oct 2013, changed to 2 */ - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1322_2bit_prepare_row(u8g, dev, i); /* this will also enable chip select */ -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); -#if !defined(U8G_16BIT) - u8g_WriteByte(u8g, dev, 0x00); - u8g_WriteByte(u8g, dev, 0x00); -#endif - u8g_MicroDelay(); // for DUE? - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1322_nhd31oled_gr_parallel , WIDTH, HEIGHT, 4, u8g_dev_ssd1322_nhd31oled_gr_fn, U8G_COM_FAST_PARALLEL); - - -#define DWIDTH (WIDTH*2) -uint8_t u8g_dev_ssd1322_nhd31oled_2x_gr_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1322_nhd31oled_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1322_nhd31oled_2x_gr_buf}; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_sw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1322_nhd31oled_2x_gr_hw_spi = { u8g_dev_ssd1322_nhd31oled_2x_gr_fn, &u8g_dev_ssd1322_nhd31oled_2x_gr_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw.c b/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw.c deleted file mode 100644 index d8895391e9..0000000000 --- a/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_1bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_1bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 3; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 7; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -#ifdef OLD -static void _OLD_u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - cnt = 8; - do - { - d = 0; - if ( left & 1 ) - d |= 0x0f0; - if ( right & 1 ) - d |= 0x00f; - u8g_WriteByte(u8g, dev, d); - left >>= 1; - right >>= 1; - cnt--; - }while ( cnt > 0 ); -} -#endif - -static void u8g_dev_ssd1325_1bit_write_16_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, cnt; - static uint8_t buf[8]; - cnt = 8; - do - { - d = 0; - if ( left & 128 ) - d |= 0x0f0; - if ( right & 128 ) - d |= 0x00f; - cnt--; - buf[cnt] = d; - left <<= 1; - right <<= 1; - }while ( cnt > 0 ); - u8g_WriteSequence(u8g, dev, 8, buf); -} - -static void u8g_dev_ssd1325_1bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_1bit_write_16_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_1bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_1bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_1bit_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -/* disabled, see bw_new.c */ -/* -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); -*/ - -/* -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; -*/ - -#endif - diff --git a/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw_new.c b/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw_new.c deleted file mode 100644 index 7d26b2fee3..0000000000 --- a/app/u8glib/u8g_dev_ssd1325_nhd27oled_bw_new.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_bw.c - - 1-Bit (BW) Driver for SSD1325 Controller (OLED Display) - Horizontal architecture, completly rewritten - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -/* width must be multiple of 8, largest value is 248 unless u8g 16 bit mode is enabled */ -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_nhd_27_12864_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_prepare_row_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_prepare_row_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -static uint8_t u8g_dev_ssd1325_nhd27oled_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - //case U8G_DEV_MSG_IS_BBX_INTERSECTION: - // return u8g_pb_IsIntersection((u8g_pb_t *)(dev->dev_mem), (u8g_dev_arg_bbx_t *)arg); - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_nhd_27_12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 3; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequenceBWTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - break; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - - - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_sw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_hw_spi , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_bw_parallel , WIDTH, HEIGHT, 8, u8g_dev_ssd1325_nhd27oled_bw_fn, U8G_COM_FAST_PARALLEL); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_bw_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_bw_parallel = { u8g_dev_ssd1325_nhd27oled_2x_bw_fn, &u8g_dev_ssd1325_nhd27oled_2x_bw_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr.c b/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr.c deleted file mode 100644 index 6ab48135f7..0000000000 --- a/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr.c +++ /dev/null @@ -1,255 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#ifdef OBSOLETE_CODE - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x056, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1325_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1325_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - page <<= 1; - page += is_odd; - - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1325_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - cnt = 4; - do - { - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - u8g_WriteByte(u8g, dev, d); - left >>= 2; - right >>= 2; - cnt--; - }while ( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1325_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1325_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1325_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1325_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1325_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -//U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); - -//uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -//u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; - - -#endif /* OBSOLETE_CODE */ diff --git a/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr_new.c b/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr_new.c deleted file mode 100644 index 0667ca3c83..0000000000 --- a/app/u8glib/u8g_dev_ssd1325_nhd27oled_gr_new.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - - u8g_dev_ssd1325_nhd27oled_gr.c - - 2-Bit (gray level) Driver for SSD1325 Controller (OLED Display) - Rewritten with new architecture - Tested with NHD-2.7-12864UCY3 - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 - -/* http://www.newhavendisplay.com/app_notes/OLED_2_7_12864.txt */ -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off, sleep mode */ - 0x0b3, 0x091, /* set display clock divide ratio/oscillator frequency (set clock as 135 frames/sec) */ - 0x0a8, 0x03f, /* multiplex ratio: 0x03f * 1/64 duty */ - 0x0a2, 0x04c, /* display offset, shift mapping ram counter */ - 0x0a1, 0x000, /* display start line */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x0a0, 0x052, /* remap configuration, horizontal address increment (bit 2 = 0), enable nibble remap (upper nibble is left, bit 1 = 1), old values: 0x0a0 0x0a6 */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 - 0x081, 0x070, /* contrast, brightness, 0..128, Newhaven: 0x040 */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b1, 0x055, /* phase length */ - 0x0bc, 0x010, /* pre-charge voltage level */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0be, 0x01c, /* VCOMH voltage */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0a4, /* normal display mode */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - 0x000, /* start at column 0 */ - 0x03f, /* end at column 63 (which is y == 127), because there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - -static void u8g_dev_ssd1325_gr_prepare_row(u8g_t *u8g, u8g_dev_t *dev, uint8_t delta_row) -{ - uint8_t row = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - row *= ((u8g_pb_t *)(dev->dev_mem))->p.page_height; - row += delta_row; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_prepare_page_seq); - - u8g_WriteByte(u8g, dev, row); /* start at the selected row */ - u8g_WriteByte(u8g, dev, row+1); /* end within the selected row */ - - //u8g_SetAddress(u8g, dev, 0); /* instruction mode mode */ - //u8g_WriteByte(u8g, dev, 0x05c); /* write to ram */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static const uint8_t u8g_dev_ssd13xx_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ae, /* display off */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd13xx_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb8h2_base_fn(u8g, dev, msg, arg); -} - - - -static uint8_t u8g_dev_ssd1325_nhd27oled_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1325_2bit_nhd_27_12864ucy3_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *p = pb->buf; - u8g_uint_t cnt; - cnt = pb->width; - cnt >>= 2; - - for( i = 0; i < pb->p.page_height; i++ ) - { - u8g_dev_ssd1325_gr_prepare_row(u8g, dev, i); /* this will also enable chip select */ - u8g_WriteSequence4LTo16GrDevice(u8g, dev, cnt, p); - u8g_SetChipSelect(u8g, dev, 0); - p+=cnt; - } - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd13xx_sleep_off); - return 1; - } - return u8g_dev_pb16h2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1325_nhd27oled_gr_parallel , WIDTH, HEIGHT, 4, u8g_dev_ssd1325_nhd27oled_gr_fn, U8G_COM_FAST_PARALLEL); - -uint8_t u8g_dev_ssd1325_nhd27oled_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1325_nhd27oled_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1325_nhd27oled_2x_buf}; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_sw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1325_nhd27oled_2x_gr_hw_spi = { u8g_dev_ssd1325_nhd27oled_2x_gr_fn, &u8g_dev_ssd1325_nhd27oled_2x_pb, U8G_COM_HW_SPI }; diff --git a/app/u8glib/u8g_dev_ssd1327_96x96_gr.c b/app/u8glib/u8g_dev_ssd1327_96x96_gr.c deleted file mode 100644 index 3a11e29425..0000000000 --- a/app/u8glib/u8g_dev_ssd1327_96x96_gr.c +++ /dev/null @@ -1,299 +0,0 @@ -/* - - u8g_dev_ssd1327_96x96_gr.c - - 2-Bit (graylevel) Driver for SSD1327 Controller (OLED Display) - Tested with Seedstudio 96x96 Oled (LY120) - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - SSD130x Monochrom OLED Controller - SSD131x Character OLED Controller - SSD132x Graylevel OLED Controller - SSD1331 Color OLED Controller - -*/ - -#include "u8g.h" - -#define WIDTH 96 -#define HEIGHT 96 -#define XOFFSET 8 - -/* - http://www.seeedstudio.com/wiki/index.php?title=Twig_-_OLED_96x96 -*/ -static const uint8_t u8g_dev_ssd1327_2bit_96x96_init_seq[] PROGMEM = { - U8G_ESC_DLY(10), /* delay 10 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0fd, 0x012, /* unlock display, usually not required because the display is unlocked after reset */ - 0x0ae, /* display off, sleep mode */ - 0x0a8, 0x05f, /* multiplex ratio: 0x05f * 1/64 duty */ - 0x0a1, 0x000, /* display start line */ - 0x0a2, 0x060, /* display offset, shift mapping ram counter */ - //0x0a2, 0x04c, /* NHD: display offset, shift mapping ram counter */ - 0x0a0, 0x046, /* remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - //0x0a0, 0x056, /* NHD: remap configuration, vertical address increment, enable nibble remap (upper nibble is left) */ - 0x0ab, 0x001, /* Enable internal VDD regulator (RESET) */ - 0x081, 0x053, /* contrast, brightness, 0..128, Newhaven: 0x040, LY120 0x053, 0x070 seems also ok */ - 0x0b1, 0x051, /* phase length */ - 0x0b3, 0x001, /* set display clock divide ratio/oscillator frequency */ - 0x0b9, /* use linear lookup table */ -#if 0 - 0x0b8, /* set gray scale table */ - //0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x065, 0x076, - 0x01, 0x011, 0x022, 0x032, 0x043, 0x054, 0x077, 0x077, // 4L mode uses 0, 2, 4, 7 -#endif - 0x0bc, 0x008, /* pre-charge voltage level */ - 0x0be, 0x007, /* VCOMH voltage */ - 0x0b6, 0x001, /* second precharge */ - 0x0d5, 0x062, /* enable second precharge, internal vsl (bit0 = 0) */ - -#if 0 - // the following commands are not used by the SeeedGrayOLED sequence */ - 0x0ad, 0x002, /* master configuration: disable embedded DC-DC, enable internal VCOMH */ - 0x086, /* full current range (0x084, 0x085, 0x086) */ - 0x0b2, 0x051, /* frame frequency (row period) */ - 0x0b4, 0x002, /* set pre-charge compensation level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0b0, 0x028, /* enable pre-charge compensation (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ - 0x0bf, 0x002|0x00d, /* VSL voltage level (not documented in the SDD1325 datasheet, but used in the NHD init seq.) */ -#endif - - 0x0a5, /* all pixel on */ - //0x02e, /* no scroll (according to SeeedGrayOLED sequence) */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* all pixel on */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display mode */ - - 0x015, /* column address... */ - 0x008, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - - 0x075, /* row address... */ - 0x008, - 0x05f, - - U8G_ESC_ADR(1), /* data mode */ - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - 0x000f, 0x000f, 0x0000, 0x0000, 0x000f,0x000f,0x0000,0x0000, - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_ssd1327_2bit_96x96_prepare_page_seq[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x015, /* column address... */ - XOFFSET, /* start at column 8, special for the LY120 ??? */ - 0x037, /* end at column 55, note: there are two pixel in one column */ - 0x075, /* row address... */ - U8G_ESC_END /* end of sequence */ -}; - - -static void u8g_dev_ssd1327_2bit_prepare_page(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -static void u8g_dev_ssd1327_2bit_2x_prepare_page(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t page = ((u8g_pb_t *)(dev->dev_mem))->p.page; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_prepare_page_seq); - - page <<= 1; - page += is_odd; - - page <<= 2; - u8g_WriteByte(u8g, dev, page); /* start at the selected page */ - page += 3; - u8g_WriteByte(u8g, dev, page); /* end within the selected page */ - - u8g_SetAddress(u8g, dev, 1); /* data mode */ -} - -/* assumes row autoincrement and activated nibble remap */ -static void u8g_dev_ssd1327_2bit_write_4_pixel(u8g_t *u8g, u8g_dev_t *dev, uint8_t left, uint8_t right) -{ - uint8_t d, tmp, cnt; - static uint8_t buf[4]; - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = 0; - cnt = 0; - do - { - if ( left == 0 && right == 0 ) - break; - d = left; - d &= 3; - d <<= 4; - tmp = right; - tmp &= 3; - d |= tmp; - d <<= 2; - buf[cnt] = d; - left >>= 2; - right >>= 2; - cnt++; - }while ( cnt < 4 ); - u8g_WriteSequence(u8g, dev, 4, buf); -} - -static void u8g_dev_ssd1327_2bit_write_buffer(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - cnt = pb->width; - cnt >>= 1; - ptr = pb->buf; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -static void u8g_dev_ssd1327_2bit_2x_write_buffer(u8g_t *u8g, u8g_dev_t *dev, uint8_t is_odd) -{ - uint8_t cnt, left, right; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - ptr = pb->buf; - cnt = pb->width; - if ( is_odd ) - ptr += cnt; - cnt >>= 1; - do - { - left = *ptr++; - right = *ptr++; - u8g_dev_ssd1327_2bit_write_4_pixel(u8g, dev, left, right); - cnt--; - } while( cnt > 0 ); -} - -uint8_t u8g_dev_ssd1327_96x96_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_prepare_page(u8g, dev); - u8g_dev_ssd1327_2bit_write_buffer(u8g, dev); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1327_96x96_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1327_2bit_96x96_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 0); - u8g_dev_ssd1327_2bit_2x_prepare_page(u8g, dev, 1); - u8g_dev_ssd1327_2bit_2x_write_buffer(u8g, dev, 1); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_sw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_hw_spi , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_ssd1327_96x96_gr_i2c , WIDTH, HEIGHT, 4, u8g_dev_ssd1327_96x96_gr_fn, U8G_COM_SSD_I2C); - -#define DWIDTH (2*WIDTH) -uint8_t u8g_dev_ssd1327_96x96_2x_buf[DWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_ssd1327_96x96_2x_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1327_96x96_2x_buf}; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_sw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_hw_spi = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1327_96x96_2x_gr_i2c = { u8g_dev_ssd1327_96x96_2x_gr_fn, &u8g_dev_ssd1327_96x96_2x_pb, U8G_COM_SSD_I2C }; - diff --git a/app/u8glib/u8g_dev_ssd1351_128x128.c b/app/u8glib/u8g_dev_ssd1351_128x128.c deleted file mode 100644 index 406e736aab..0000000000 --- a/app/u8glib/u8g_dev_ssd1351_128x128.c +++ /dev/null @@ -1,787 +0,0 @@ -/* - - u8g_dev_ssd1351_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, jamjardavies@gmail.com - Copyright (c) 2013, 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. - - History: - Initial version 20 May 2013 jamjardavies@gmail.com - indexed device 22 May 2013 olikraus@gmail.com - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_ssd1351_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x00, /* Set GPIO */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - - -/* set gpio to high */ -static const uint8_t u8g_dev_ssd1351_128x128gh_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), - - 0xfd, /* Command Lock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), /* instruction mode */ - 0xfd, - U8G_ESC_ADR(1), - 0xb1, /* Command Lock */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xae, /* Set Display Off */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb3, - U8G_ESC_ADR(1), - 0xf1, /* Front Clock Div */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xca, - U8G_ESC_ADR(1), - 0x7f, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa0, - U8G_ESC_ADR(1), - 0xb4, /* Set Colour Depth */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x15, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Column Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0x75, - U8G_ESC_ADR(1), - 0x00, 0x7f, /* Set Row Address */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb5, - U8G_ESC_ADR(1), - 0x03, /* Set GPIO to High Level */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xab, - U8G_ESC_ADR(1), - 0x01, /* Set Function Selection */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb4, - U8G_ESC_ADR(1), - 0xa0, 0xb5, 0x55, /* Set Segment Low Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbb, - U8G_ESC_ADR(1), - 0x17, /* Set Precharge Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xbe, - U8G_ESC_ADR(1), - 0x05, /* Set VComH Voltage */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc1, - U8G_ESC_ADR(1), - 0xc8, 0x80, 0xc8, /* Set Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xc7, - U8G_ESC_ADR(1), - 0x0f, /* Set Master Contrast */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb6, - U8G_ESC_ADR(1), - 0x01, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xa6, /* Set Display Mode Reset */ - - - U8G_ESC_ADR(0), /* instruction mode */ - 0xb8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0a, - 0x0b, - 0x0c, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x18, - 0x1a, - 0x1b, - 0x1C, - 0x1D, - 0x1F, - 0x21, - 0x23, - 0x25, - 0x27, - 0x2A, - 0x2D, - 0x30, - 0x33, - 0x36, - 0x39, - 0x3C, - 0x3F, - 0x42, - 0x45, - 0x48, - 0x4C, - 0x50, - 0x54, - 0x58, - 0x5C, - 0x60, - 0x64, - 0x68, - 0x6C, - 0x70, - 0x74, - 0x78, - 0x7D, - 0x82, - 0x87, - 0x8C, - 0x91, - 0x96, - 0x9B, - 0xA0, - 0xA5, - 0xAA, - 0xAF, - 0xB4, - - U8G_ESC_ADR(0), - 0xaf, /* Set Display On */ - 0x5c, - U8G_ESC_DLY(50), - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - -#define u8g_dev_ssd1351_128x128_init_seq u8g_dev_ssd1351_128x128_init_seq - -static const uint8_t u8g_dev_ssd1351_128x128_column_seq[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0x15, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x75, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x5c, - U8G_ESC_ADR(1), - U8G_ESC_CS(0), - U8G_ESC_END -}; - -#define RGB332_STREAM_BYTES 8 -static uint8_t u8g_ssd1351_stream_bytes[RGB332_STREAM_BYTES*3]; - -void u8g_ssd1351_to_stream(uint8_t *ptr) -{ - uint8_t cnt = RGB332_STREAM_BYTES; - uint8_t val; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - val = *ptr++; - *dest++ = ((val & 0xe0) >> 2); - *dest++ = ((val & 0x1c) << 1); - *dest++ = ((val & 0x03) << 4); - } -} - - -#ifdef OBSOLETE -// Convert the internal RGB 332 to R -static uint8_t u8g_ssd1351_get_r(uint8_t colour) -{ - //return ((colour & 0xe0) >> 5) * 9; - //return ((colour & 0xe0) >> 5) * 8; - return ((colour & 0xe0) >> 2) ; -} - -// Convert the internal RGB 332 to G -static uint8_t u8g_ssd1351_get_g(uint8_t colour) -{ - //return ((colour & 0x1c) >> 2) * 9; - //return ((colour & 0x1c) >> 2) * 8; - return ((colour & 0x1c) << 1); -} - -// Convert the internal RGB 332 to B -static uint8_t u8g_ssd1351_get_b(uint8_t colour) -{ - //return (colour & 0x03) * 21; - return (colour & 0x03) * 16; -} -#endif - - -uint8_t u8g_dev_ssd1351_128x128_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES; - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -static uint8_t u8g_dev_ssd1351_128x128_r[256]; -static uint8_t u8g_dev_ssd1351_128x128_g[256]; -static uint8_t u8g_dev_ssd1351_128x128_b[256]; - -uint8_t u8g_dev_ssd1351_128x128_idx_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_SET_COLOR_ENTRY: - u8g_dev_ssd1351_128x128_r[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->r; - u8g_dev_ssd1351_128x128_g[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->g; - u8g_dev_ssd1351_128x128_b[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->b; - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - int x; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - for (x = 0; x < pb->width; x++) - { - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_r[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_g[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1351_128x128_b[(*ptr)>>2]); - - ptr++; - } - - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_INDEX; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -void u8g_ssd1351_hicolor_to_stream(uint8_t *ptr) -{ - register uint8_t cnt = RGB332_STREAM_BYTES; - register uint8_t low, high, r, g, b; - uint8_t *dest = u8g_ssd1351_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - low = *ptr++; - high = *ptr++; - - r = high & ~7; - r >>= 2; - b = low & 31; - b <<= 1; - g = high & 7; - g <<= 3; - g |= (low>>5)&7; - - *dest++ = r; - *dest++ = g; - *dest++ = b; - } -} - - -uint8_t u8g_dev_ssd1351_128x128_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1351_128x128gh_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128gh_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1351_128x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - u8g_ssd1351_hicolor_to_stream(ptr); - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1351_stream_bytes); - ptr += RGB332_STREAM_BYTES*2; - } - - } - - u8g_SetChipSelect(u8g, dev, 0); - - } - break; /* continue to base fn */ - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1351_128x128_byte_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_byte_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_sw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1351_128x128_idx_hw_spi = { u8g_dev_ssd1351_128x128_idx_fn, &u8g_dev_ssd1351_128x128_byte_pb, U8G_COM_HW_SPI }; - - -/* only half of the height, because two bytes are needed for one pixel */ -u8g_pb_t u8g_dev_ssd1351_128x128_hicolor_byte_pb = { {PAGE_HEIGHT/2, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -uint8_t u8g_dev_ssd1351_128x128_4x_byte_buf[WIDTH*PAGE_HEIGHT*4] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_332_byte_pb = { {PAGE_HEIGHT*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_sw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_332_hw_spi = { u8g_dev_ssd1351_128x128_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_sw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_332_hw_spi = { u8g_dev_ssd1351_128x128gh_332_fn, &u8g_dev_ssd1351_128x128_4x_332_byte_pb, U8G_COM_HW_SPI }; - -u8g_pb_t u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb = { {PAGE_HEIGHT/2*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1351_128x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_sw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1351_128x128gh_4x_hicolor_hw_spi = { u8g_dev_ssd1351_128x128gh_hicolor_fn, &u8g_dev_ssd1351_128x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -/* -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_332_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_332_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_ssd1351_128x128_idx_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_ssd1351_128x128_idx_fn, U8G_COM_HW_SPI); -*/ - diff --git a/app/u8glib/u8g_dev_ssd1353_160x128.c b/app/u8glib/u8g_dev_ssd1353_160x128.c deleted file mode 100644 index 76283a4e55..0000000000 --- a/app/u8glib/u8g_dev_ssd1353_160x128.c +++ /dev/null @@ -1,425 +0,0 @@ -/* - u8g_dev_ssd1353_160x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2015, hugodan3@googlemail.com - Copyright (c) 2013, jamjardavies@gmail.com - Copyright (c) 2013, 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. - - History: - Initial version 8 Mar 2015 hugodan3@googlemail.com. This version has - been derived from the ssd1351 driver by jamjarda. It has - been improved by in-lining time critical functions. - - - -*/ - -#include "u8g.h" - -#define WIDTH 160 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -#define USE_GREY_TABLE 0 - -static const uint8_t u8g_dev_ssd1353_160x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_DLY(50), - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_DLY(50), - U8G_ESC_CS(1), /* enable chip */ - - 0xFD, /* Command unlock */ - U8G_ESC_ADR(1), - 0x12, - - U8G_ESC_ADR(0), - 0xAE, /* Set Display Off */ - - U8G_ESC_ADR(0), - 0xA8, - U8G_ESC_ADR(1), - 0x7F, /* Set Multiplex Ratio */ - - U8G_ESC_ADR(0), - 0xA0, - U8G_ESC_ADR(1), - 0xB4, /* Set remapping */ - - U8G_ESC_ADR(0), - 0xA1, - U8G_ESC_ADR(1), - 0x00, /* Set Display Start Line */ - - U8G_ESC_ADR(0), - 0xA2, - U8G_ESC_ADR(1), - 0x00, /* Set Display Offset */ - - U8G_ESC_ADR(0), - 0xB1, - U8G_ESC_ADR(1), - 0x32, /* Set Phase Length */ - - U8G_ESC_ADR(0), - 0xB4, - U8G_ESC_ADR(1), - 0x04, /* Set Second Precharge Period */ - - U8G_ESC_ADR(0), - 0xA4, /* Set Display Mode ON */ - - U8G_ESC_ADR(0), - 0xB3, - U8G_ESC_ADR(1), /* frame rate */ - 0x40, - - U8G_ESC_ADR(0), - 0xBB, - U8G_ESC_ADR(1), /* pre-charge level */ - 0x08, - - U8G_ESC_ADR(0), - 0xBE, - U8G_ESC_ADR(1), /* vcomh */ - 0x3C, - - /* color adjustments */ -#if USE_GREY_TABLE != 1 - U8G_ESC_ADR(0), /* instruction mode */ - 0x81, - U8G_ESC_ADR(1), - 0xC8, /* Set Contrast Color 1*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x82, - U8G_ESC_ADR(1), - 0x80, /* Set Contrast Color 2*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x83, - U8G_ESC_ADR(1), - 0xF8, /* Set Contrast Color 3*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x87, - U8G_ESC_ADR(1), - 0x09, /* Set Master Contrast MAX */ - U8G_ESC_ADR(0), /* instruction mode */ - 0xB9, /* Set CMD Grayscale Linear */ -#else - U8G_ESC_ADR(0), /* instruction mode */ - 0x81, - U8G_ESC_ADR(1), - 0xC8, /* Set Contrast Color 1*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x82, - U8G_ESC_ADR(1), - 0xA0, /* Set Contrast Color 2*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x83, - U8G_ESC_ADR(1), - 0xB0, /* Set Contrast Color 3*/ - U8G_ESC_ADR(0), /* instruction mode */ - 0x87, - U8G_ESC_ADR(1), - 0x0F, /* Set Master Contrast MAX */ - - U8G_ESC_ADR(0), /* instruction mode */ - 0xB8, /* Set CMD Grayscale Lookup */ - U8G_ESC_ADR(1), - 0x05, 0x06, 0x07, 0x08, - 0x09, 0x0a, 0x0b, 0x0c, - 0x0D, 0x0E, 0x0F, 0x10, - 0x11, 0x12, 0x13, 0x14, - 0x15, 0x16, 0x18, 0x1a, - 0x1b, 0x1C, 0x1D, 0x1F, - 0x21, 0x23, 0x25, 0x27, - 0x2A, 0x2D, 0x30, 0x33, - 0x36, 0x39, 0x3C, 0x3F, - 0x42, 0x45, 0x48, 0x4C, - 0x50, 0x54, 0x58, 0x5C, - 0x60, 0x64, 0x68, 0x6C, - 0x70, 0x74, 0x78, 0x7D, - 0x82, 0x87, 0x8C, 0x91, - 0x96, 0x9B, 0xA0, 0xA5, - 0xAA, 0xAF, 0xB4, -#endif - U8G_ESC_ADR(0), - 0xAF, /* Set Display On */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(1), - U8G_ESC_END /* end of sequence */ -}; - - -static const uint8_t u8g_dev_ssd1353_160x128_column_seq[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0x15, - U8G_ESC_ADR(1), 0x00, 0x9f, - U8G_ESC_ADR(0), 0x75, - U8G_ESC_ADR(1), 0x00, 0x7f, - U8G_ESC_ADR(0), 0x5c, - U8G_ESC_ADR(1), - U8G_ESC_CS(0), - U8G_ESC_END -}; - -static const uint8_t u8g_dev_ssd1353_160x128_sleep_on[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0xAE, - U8G_ESC_CS(0), - U8G_ESC_END -}; - -static const uint8_t u8g_dev_ssd1353_160x128_sleep_off[] PROGMEM = { - U8G_ESC_CS(1), - U8G_ESC_ADR(0), 0xAF, - U8G_ESC_CS(0), - U8G_ESC_END -}; - - -#define RGB332_STREAM_BYTES 8 -static uint8_t u8g_ssd1353_stream_bytes[RGB332_STREAM_BYTES*3]; - -uint8_t u8g_dev_ssd1353_160x128_332_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_uint_t x; - uint8_t page_height; - uint8_t i; - uint8_t cnt; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( i = 0; i < page_height; i++ ) - { - - for (x = 0; x < pb->width; x+=RGB332_STREAM_BYTES) - { - /* inline operation for better perf */ - uint8_t *dest = u8g_ssd1353_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - uint8_t val = *ptr++; - *dest++ = ((val & 0xe0) >> 2); - *dest++ = ((val & 0x1c) << 1); - *dest++ = ((val & 0x03) << 4); - } - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1353_stream_bytes); - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_sleep_on); - break; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_sleep_off); - break; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -/* - * not tested and not released, just taken from ssd1351 - */ -static uint8_t u8g_dev_ssd1353_160x128_r[256]; -static uint8_t u8g_dev_ssd1353_160x128_g[256]; -static uint8_t u8g_dev_ssd1353_160x128_b[256]; - -uint8_t u8g_dev_ssd1353_160x128_idx_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ -// u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_init_seq); - break; - - case U8G_DEV_MSG_STOP: - break; - - case U8G_DEV_MSG_SET_COLOR_ENTRY: - u8g_dev_ssd1353_160x128_r[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->r; - u8g_dev_ssd1353_160x128_g[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->g; - u8g_dev_ssd1353_160x128_b[ ((u8g_dev_arg_irgb_t *)arg)->idx ] = ((u8g_dev_arg_irgb_t *)arg)->b; - break; - - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_column_seq); - break; - - case U8G_DEV_MSG_PAGE_NEXT: - { - int x; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - for (x = 0; x < pb->width; x++) - { - u8g_WriteByte(u8g, dev, u8g_dev_ssd1353_160x128_r[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1353_160x128_g[(*ptr)>>2]); - u8g_WriteByte(u8g, dev, u8g_dev_ssd1353_160x128_b[(*ptr)>>2]); - - ptr++; - } - - u8g_SetChipSelect(u8g, dev, 0); - } - - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_INDEX; - } - - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_ssd1353_160x128_hicolor_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_50NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_column_seq); - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - uint8_t i, j; - uint8_t page_height; - uint8_t *ptr = pb->buf; - - u8g_SetChipSelect(u8g, dev, 1); - - page_height = pb->p.page_y1; - page_height -= pb->p.page_y0; - page_height++; - for( j = 0; j < page_height; j++ ) - { - for (i = 0; i < pb->width; i+=RGB332_STREAM_BYTES) - { - register uint8_t cnt, low, high, r, g, b; - uint8_t *dest = u8g_ssd1353_stream_bytes; - for( cnt = 0; cnt < RGB332_STREAM_BYTES; cnt++ ) - { - low = *ptr++; - high = *ptr++; - - r = high & ~7; - r >>= 2; - b = low & 31; - b <<= 1; - g = high & 7; - g <<= 3; - g |= (low>>5)&7; - - *dest++ = r; - *dest++ = g; - *dest++ = b; - } - u8g_WriteSequence(u8g, dev, RGB332_STREAM_BYTES*3, u8g_ssd1353_stream_bytes); - } - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; /* continue to base fn */ - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_sleep_on); - break; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_ssd1353_160x128_sleep_off); - break; - } - return u8g_dev_pbxh16_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_dev_ssd1353_160x128_byte_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1353_160x128_byte_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1353_160x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1353_160x128_332_sw_spi = { u8g_dev_ssd1353_160x128_332_fn, &u8g_dev_ssd1353_160x128_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1353_160x128_332_hw_spi = { u8g_dev_ssd1353_160x128_332_fn, &u8g_dev_ssd1353_160x128_byte_pb, U8G_COM_HW_SPI }; - -//u8g_dev_t u8g_dev_ssd1353_160x128_idx_sw_spi = { u8g_dev_ssd1353_160x128_idx_fn, &u8g_dev_ssd1353_160x128_byte_pb, U8G_COM_SW_SPI }; -//u8g_dev_t u8g_dev_ssd1353_160x128_idx_hw_spi = { u8g_dev_ssd1353_160x128_idx_fn, &u8g_dev_ssd1353_160x128_byte_pb, U8G_COM_HW_SPI }; - - -/* only half of the height, because two bytes are needed for one pixel */ -u8g_pb_t u8g_dev_ssd1353_160x128_hicolor_byte_pb = { {PAGE_HEIGHT/2, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1353_160x128_byte_buf}; -u8g_dev_t u8g_dev_ssd1353_160x128_hicolor_sw_spi = { u8g_dev_ssd1353_160x128_hicolor_fn, &u8g_dev_ssd1353_160x128_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1353_160x128_hicolor_hw_spi = { u8g_dev_ssd1353_160x128_hicolor_fn, &u8g_dev_ssd1353_160x128_hicolor_byte_pb, U8G_COM_HW_SPI }; - - -/* the 4x buffer is removed since it does not fit the RAM space of very small MCUs */ -#if 0 -uint8_t u8g_dev_ssd1353_160x128_4x_byte_buf[WIDTH*PAGE_HEIGHT*4] U8G_NOCOMMON ; - -u8g_pb_t u8g_dev_ssd1353_160x128_4x_332_byte_pb = { {PAGE_HEIGHT*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1353_160x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1353_160x128_4x_332_sw_spi = { u8g_dev_ssd1353_160x128_332_fn, &u8g_dev_ssd1353_160x128_4x_332_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1353_160x128_4x_332_hw_spi = { u8g_dev_ssd1353_160x128_332_fn, &u8g_dev_ssd1353_160x128_4x_332_byte_pb, U8G_COM_HW_SPI }; - -u8g_pb_t u8g_dev_ssd1353_160x128_4x_hicolor_byte_pb = { {PAGE_HEIGHT/2*4, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_ssd1353_160x128_4x_byte_buf}; -u8g_dev_t u8g_dev_ssd1353_160x128_4x_hicolor_sw_spi = { u8g_dev_ssd1353_160x128_hicolor_fn, &u8g_dev_ssd1353_160x128_4x_hicolor_byte_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_ssd1353_160x128_4x_hicolor_hw_spi = { u8g_dev_ssd1353_160x128_hicolor_fn, &u8g_dev_ssd1353_160x128_4x_hicolor_byte_pb, U8G_COM_HW_SPI }; -#endif diff --git a/app/u8glib/u8g_dev_st7565_64128n.c b/app/u8glib/u8g_dev_st7565_64128n.c deleted file mode 100644 index ff909c5e9b..0000000000 --- a/app/u8glib/u8g_dev_st7565_64128n.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - - u8g_dev_st7565_64128n.c (Displaytech) - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_64128n_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0A2, /* 0x0a2: LCD bias 1/9 (according to Displaytech 64128N datasheet) */ - 0x0A0, /* Normal ADC Select (according to Displaytech 64128N datasheet) */ - - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* Display start line for Displaytech 64128N */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x010, /* Set V0 voltage resistor ratio. Setting for controlling brightness of Displaytech 64128N */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x01e, /* Contrast value. Setting for controlling brightness of Displaytech 64128N */ - - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0x10 */ - 0x000, /* set lower 4 bit of the col adr to 0x00. Changed for DisplayTech 64128N */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_64128n_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_64128n_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_64128n_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_64128n_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_64128n_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_64128n_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_64128n_fn, U8G_COM_PARALLEL); - -uint8_t u8g_dev_st7565_64128n_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_64128n_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_64128n_2x_buf}; -u8g_dev_t u8g_dev_st7565_64128n_2x_sw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_spi = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_64128n_2x_hw_parallel = { u8g_dev_st7565_64128n_2x_fn, &u8g_dev_st7565_64128n_2x_pb, U8G_COM_PARALLEL }; diff --git a/app/u8glib/u8g_dev_st7565_dogm128.c b/app/u8glib/u8g_dev_st7565_dogm128.c deleted file mode 100644 index e73f061537..0000000000 --- a/app/u8glib/u8g_dev_st7565_dogm128.c +++ /dev/null @@ -1,190 +0,0 @@ -/* - - u8g_dev_st7565_dogm128.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_dogm128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal (none reverse) */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0a4, /* normal display (not all on) */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm128_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_dogm128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm128_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm128_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm128_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm128_fn, U8G_COM_PARALLEL); - - -uint8_t u8g_dev_st7565_dogm128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_dogm128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_dogm128_2x_buf}; -u8g_dev_t u8g_dev_st7565_dogm128_2x_sw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_hw_spi = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_HW_SPI }; -u8g_dev_t u8g_dev_st7565_dogm128_2x_parallel = { u8g_dev_st7565_dogm128_2x_fn, &u8g_dev_st7565_dogm128_2x_pb, U8G_COM_PARALLEL }; diff --git a/app/u8glib/u8g_dev_st7565_dogm132.c b/app/u8glib/u8g_dev_st7565_dogm132.c deleted file mode 100644 index 26de539247..0000000000 --- a/app/u8glib/u8g_dev_st7565_dogm132.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_st7565_dogm132.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 132 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_dogm132_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x01f, /* contrast value, EA default: 0x01f */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - -#ifdef OBSOLETE_DOGM128 - 0x040, /* set display start line */ - 0x0c8, /* set scan direction inverse operation */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value, EA default: 0x016 */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ -#endif - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_dogm132_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_dogm132_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_dogm132_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_dogm132_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_dogm132_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_dogm132_fn, U8G_COM_HW_SPI); diff --git a/app/u8glib/u8g_dev_st7565_lm6059.c b/app/u8glib/u8g_dev_st7565_lm6059.c deleted file mode 100644 index 165c390978..0000000000 --- a/app/u8glib/u8g_dev_st7565_lm6059.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - - u8g_dev_st7565_lm6059.c (Adafruit display) - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6059_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit, 0x0a2 does not work */ - /* the LM6059 vs LM6063, ADC and SHL have inverted settings */ - 0x0a0, /* 0x0a1: ADC set to normal (suggested for the LM6059), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x060, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x001, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6059_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6059_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6059_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6059_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6059_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6059_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6059_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_lm6059_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6059_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6059_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6059_2x_sw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6059_2x_hw_spi = { u8g_dev_st7565_lm6059_2x_fn, &u8g_dev_st7565_lm6059_2x_pb, U8G_COM_HW_SPI }; diff --git a/app/u8glib/u8g_dev_st7565_lm6063.c b/app/u8glib/u8g_dev_st7565_lm6063.c deleted file mode 100644 index d0b8c816df..0000000000 --- a/app/u8glib/u8g_dev_st7565_lm6063.c +++ /dev/null @@ -1,236 +0,0 @@ -/* - - u8g_dev_st7565_lm6063.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -#ifdef OLD_ADAFRUIT_CODE -static const uint8_t OLD_u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select / 17 Jan: seems to be a bug, must be 0x0c0 */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - /*0x0f8,*/ /* set booster ratio to */ - /*0x000, */ /* 4x */ - /*0x027,*/ /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; -#endif - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7565_lm6063_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a2: LCD bias 1/9 (suggested for the LM6063), 0x0a3: Used by Adafruit */ - 0x0a1, /* 0x0a1: ADC set to reverse (suggested for the LM6063), 0x0a0: Used by Adafruit -> normal mode */ - 0x0c0, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x026, /* set V0 voltage resistor ratio to 6 (Adafruit Value, no info from LM6063 Manual) */ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - 0x081, /* set contrast */ - 0x018, /* contrast value*/ - - /*0x0ac,*/ /* indicator */ - /*0x000,*/ /* disable */ - - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_lm6063_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_st7565_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_st7565_lm6063_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_lm6063_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_lm6063_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_st7565_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_lm6063_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_lm6063_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_lm6063_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_st7565_lm6063_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_lm6063_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_lm6063_2x_buf}; -u8g_dev_t u8g_dev_st7565_lm6063_2x_sw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_lm6063_2x_hw_spi = { u8g_dev_st7565_lm6063_2x_fn, &u8g_dev_st7565_lm6063_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_st7565_nhd_c12832.c b/app/u8glib/u8g_dev_st7565_nhd_c12832.c deleted file mode 100644 index ed8dca2e03..0000000000 --- a/app/u8glib/u8g_dev_st7565_nhd_c12832.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12832.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_st7565_c12832_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set, values: a0=normal, a1=reverse */ - 0x0c8, /* common output mode: c0=normal, c8=reverse */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x00a, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12832_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_c12832_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12832_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_parallel, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_PARALLEL); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12832_hw_usart_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_c12832_fn, U8G_COM_HW_USART_SPI); - diff --git a/app/u8glib/u8g_dev_st7565_nhd_c12864.c b/app/u8glib/u8g_dev_st7565_nhd_c12864.c deleted file mode 100644 index eeb5c09876..0000000000 --- a/app/u8glib/u8g_dev_st7565_nhd_c12864.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_dev_st7565_nhd_c12864.c - - Support for the NHD-C12864A1Z-FSB-FBW (Newhaven Display) - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -const uint8_t u8g_dev_st7565_nhd_c12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(10), /* do reset low pulse with (10*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x040, /* set display start line */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode: set scan direction normal operation */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x027, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x008, /* contrast: 0x008 is a good value for NHD C12864, Nov 2012: User reports that 0x1a is much better */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_nhd_c12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr to 4 (NHD C12864) */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_st7565_c12864_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(0), /* disable chip, bugfix 12 nov 2014 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7565_nhd_c12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7565_nhd_c12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_nhd_c12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7565_c12864_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_st7565_nhd_c12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7565_nhd_c12864_fn, U8G_COM_HW_SPI); - - -uint8_t u8g_dev_st7565_nhd_c12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7565_nhd_c12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7565_nhd_c12864_2x_buf}; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_sw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_st7565_nhd_c12864_2x_hw_spi = { u8g_dev_st7565_nhd_c12864_2x_fn, &u8g_dev_st7565_nhd_c12864_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_st7687_c144mvgd.c b/app/u8glib/u8g_dev_st7687_c144mvgd.c deleted file mode 100644 index a11d3bc7d0..0000000000 --- a/app/u8glib/u8g_dev_st7687_c144mvgd.c +++ /dev/null @@ -1,420 +0,0 @@ -/* - - u8g_dev_st7687_c144mvgd.c (1.44" TFT) - - Status: Started, but not finished - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -#ifdef FIRST_VERSION -/* -see also: read.pudn.com/downloads115/sourcecode/app/484503/LCM_Display.c__.htm -http://en.pudn.com/downloads115/sourcecode/app/detail484503_en.html -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x001, /* A0=0, SW reset */ - U8G_ESC_DLY(200), /* delay 200 ms */ - - 0x0d7, /* EEPROM data auto re-load control */ - U8G_ESC_ADR(1), /* data mode */ - 0x09f, /* ARD = 1 */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e0, /* EEPROM control in */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - -#ifdef NOT_REQUIRED - 0x0fa, /* EEPROM function selection 8.1.66 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#endif - - 0x0e3, /* Read from EEPROM, 8.1.55 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0e1, /* EEPROM control out, 8.1.53 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - //0x028, /* display off */ - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c0, /* Vop setting, 8.1.42 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x001, /* 3.6 + 256*0.04 = 13.84 Volt */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - 0x0c3, /* Bias selection, 8.1.45 */ - U8G_ESC_ADR(1), /* data mode */ - 0x003, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c4, /* Booster setting 8.1.46 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* ??? */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0cb, /* FV3 with Booster x2 control, 8.1.47 */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* Memory data access control, 8.1.28 */ - U8G_ESC_ADR(1), /* data mode */ - 0x080, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b5, /* N-line control, 8.1.37 */ - U8G_ESC_ADR(1), /* data mode */ - 0x089, - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0d0, /* Analog circuit setting, 8.1.49 */ - U8G_ESC_ADR(1), /* data mode */ - 0x01d, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b7, /* Com/Seg Scan Direction, 8.1.38 */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x025, /* Write contrast, 8.1.17 */ - U8G_ESC_ADR(1), /* data mode */ - 0x03f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b0, /* Display Duty setting, 8.1.34 */ - U8G_ESC_ADR(1), /* data mode */ - 0x07f, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f0, /* Frame Freq. in Temp range A,B,C and D, 8.1.59 */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, - 0x00c, - 0x00c, - 0x015, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x005, - 0x008, - 0x00a, - 0x00c, - 0x00e, - 0x010, - 0x011, - 0x012, - 0x013, - 0x014, - 0x015, - 0x016, - 0x018, - 0x01a, - 0x01b, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f9, /* Frame RGB Value, 8.1.65 */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, - 0x000, - 0x000, - 0x000, - 0x033, - 0x055, - 0x055, - 0x055, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x029, /* display on */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#else - -/* -http://www.waitingforfriday.com/images/e/e3/FTM144D01N_test.zip -*/ - -static const uint8_t u8g_dev_st7687_c144mvgd_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x011, /* Sleep out & booster on */ - U8G_ESC_DLY(5), /* delay 5 ms */ - - 0x03a, /* Interface pixel format, 8.1.32 */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, /* 3: 12 bit per pixel Type A, 4: 12 bit Type B, 5: 16bit per pixel */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x026, /* SET_GAMMA_CURVE */ - U8G_ESC_ADR(1), /* data mode */ - 0x004, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0f2, /* GAM_R_SEL */ - U8G_ESC_ADR(1), /* data mode */ - 0x001, /* enable gamma adj */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0e0, /* POSITIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x3f, - 0x25, - 0x1c, - 0x1e, - 0x20, - 0x12, - 0x2a, - 0x90, - 0x24, - 0x11, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0e1, /* NEGATIVE_GAMMA_CORRECT */ - U8G_ESC_ADR(1), /* data mode */ - 0x20, - 0x20, - 0x20, - 0x20, - 0x05, - 0x00, - 0x15, - 0xa7, - 0x3d, - 0x18, - 0x25, - 0x2a, - 0x2b, - 0x2b, - 0x3a, - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0b1, /* FRAME_RATE_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x008, /* DIVA = 8 */ - 0x008, /* VPA = 8 */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x0b4, /* DISPLAY_INVERSION */ - U8G_ESC_ADR(1), /* data mode */ - 0x007, /* NLA = 1, NLB = 1, NLC = 1 (all on Frame Inversion) */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c0, /* POWER_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x00a, /* VRH = 10: GVDD = 4.30 */ - 0x002, /* VC = 2: VCI1 = 2.65 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c1, /* POWER_CONTROL2 */ - U8G_ESC_ADR(1), /* data mode */ - 0x002, /* BT = 2: AVDD = 2xVCI1, VCL = -1xVCI1, VGH = 5xVCI1, VGL = -2xVCI1 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c5, /* VCOM_CONTROL1 */ - U8G_ESC_ADR(1), /* data mode */ - 0x050, /* VMH = 80: VCOMH voltage = 4.5 */ - 0x05b, /* VML = 91: VCOML voltage = -0.225 */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x0c7, /* VCOM_OFFSET_CONTROL */ - U8G_ESC_ADR(1), /* data mode */ - 0x040, /* nVM = 0, VMF = 64: VCOMH output = VMH, VCOML output = VML */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02a, /* SET_COLUMN_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x02b, /* SET_PAGE_ADDRESS */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* */ - 0x000, /* */ - 0x000, /* */ - 0x07f, /* */ - U8G_ESC_ADR(0), /* instruction mode */ - - 0x036, /* SET_ADDRESS_MODE */ - U8G_ESC_ADR(1), /* data mode */ - 0x000, /* Select display orientation */ - U8G_ESC_ADR(0), /* instruction mode */ - - - 0x029, /* display on */ - - 0x02c, /* write start */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ - -}; - -#endif - - - - -/* calculate bytes for Type B 4096 color display */ -static uint8_t get_byte_1(uint8_t v) -{ - v >>= 4; - v &= 0x0e; - return v; -} - -static uint8_t get_byte_2(uint8_t v) -{ - uint8_t w; - w = v; - w &= 3; - w = (w<<2) | w; - v <<= 3; - v &= 0x0e0; - w |= v; - return w; -} - -uint8_t u8g_dev_st7687_c144mvgd_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7687_c144mvgd_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i, j; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02a ); /* Column address set 8.1.20 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, 0x000 ); /* x0 */ - u8g_WriteByte(u8g, dev, WIDTH-1 ); /* x1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02b ); /* Row address set 8.1.21 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteByte(u8g, dev, y ); /* y0 */ - u8g_WriteByte(u8g, dev, y+PAGE_HEIGHT-1 ); /* y1 */ - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x02c ); /* Memory write 8.1.22 */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - - for( j = 0; j < WIDTH; j ++ ) - { - u8g_WriteByte(u8g, dev, get_byte_1(*ptr) ); - u8g_WriteByte(u8g, dev, get_byte_2(*ptr) ); - ptr++; - } - } - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h8_base_fn(u8g, dev, msg, arg); -} - - -uint8_t u8g_st7687_c144mvgd_8h8_buf[WIDTH*8] U8G_NOCOMMON ; -u8g_pb_t u8g_st7687_c144mvgd_8h8_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_st7687_c144mvgd_8h8_buf}; - -u8g_dev_t u8g_dev_st7687_c144mvgd_sw_spi = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, u8g_com_arduino_sw_spi_fn }; - -u8g_dev_t u8g_dev_st7687_c144mvgd_8bit = { u8g_dev_st7687_c144mvgd_fn, &u8g_st7687_c144mvgd_8h8_pb, U8G_COM_PARALLEL }; diff --git a/app/u8glib/u8g_dev_st7920_128x64.c b/app/u8glib/u8g_dev_st7920_128x64.c deleted file mode 100644 index 29e63134c0..0000000000 --- a/app/u8glib/u8g_dev_st7920_128x64.c +++ /dev/null @@ -1,175 +0,0 @@ -/* - - u8g_dev_st7920_128x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_128x64_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - - if ( y < 32 ) - { - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - } - else - { - u8g_WriteByte(u8g, dev, 0x080 | (y-32) ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 | 8); /* set x pos to 64*/ - } - - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_st7920_128x64_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, U8G_COM_FAST_PARALLEL); -U8G_PB_DEV(u8g_dev_st7920_128x64_custom, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_128x64_fn, u8g_com_arduino_st7920_custom_fn); - - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_128x64_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_128x64_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_128x64_4x_buf}; -u8g_dev_t u8g_dev_st7920_128x64_4x_sw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_hw_spi = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_128x64_4x_8bit = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, U8G_COM_FAST_PARALLEL }; -u8g_dev_t u8g_dev_st7920_128x64_4x_custom = { u8g_dev_st7920_128x64_4x_fn, &u8g_dev_st7920_128x64_4x_pb, u8g_com_arduino_st7920_custom_fn }; - - diff --git a/app/u8glib/u8g_dev_st7920_192x32.c b/app/u8glib/u8g_dev_st7920_192x32.c deleted file mode 100644 index 736b082895..0000000000 --- a/app/u8glib/u8g_dev_st7920_192x32.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - - u8g_dev_st7920_192x32.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 192 -#define HEIGHT 32 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_192x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_192x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_192x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_192x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_192x32_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_192x32_8bit, WIDTH, HEIGHT, 8, u8g_dev_st7920_192x32_fn, U8G_COM_FAST_PARALLEL); - - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_192x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_192x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_192x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_192x32_4x_sw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_hw_spi = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_192x32_4x_8bit = { u8g_dev_st7920_192x32_4x_fn, &u8g_dev_st7920_192x32_4x_pb, U8G_COM_FAST_PARALLEL }; - diff --git a/app/u8glib/u8g_dev_st7920_202x32.c b/app/u8glib/u8g_dev_st7920_202x32.c deleted file mode 100644 index b36b7abca5..0000000000 --- a/app/u8glib/u8g_dev_st7920_202x32.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - - u8g_dev_st7920_202x32.c - tested with CFAG20232 - - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 202 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - - -/* init sequence from https://github.com/adafruit/ST7565-LCD/blob/master/ST7565/ST7565.cpp */ -static const uint8_t u8g_dev_st7920_202x32_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - U8G_ESC_DLY(100), /* 8 Dez 2012: additional delay 100 ms because of reset*/ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x038, /* 8 Bit interface (DL=1), basic instruction set (RE=0) */ - 0x00c, /* display on, cursor & blink off; 0x08: all off */ - 0x006, /* Entry mode: Cursor move to right ,DDRAM address counter (AC) plus 1, no shift */ - 0x002, /* disable scroll, enable CGRAM adress */ - 0x001, /* clear RAM, needs 1.6 ms */ - U8G_ESC_DLY(100), /* delay 10 ms */ - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_st7920_202x32_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 8; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb8h1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_st7920_202x32_4x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_st7920_202x32_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - for( i = 0; i < 32; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x03e ); /* enable extended mode */ - u8g_WriteByte(u8g, dev, 0x080 | y ); /* y pos */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set x pos to 0*/ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - ptr += WIDTH/8; - y++; - } - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb32h1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_st7920_202x32_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_SW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_ST7920_HW_SPI); -U8G_PB_DEV(u8g_dev_st7920_202x32_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_st7920_202x32_fn, U8G_COM_FAST_PARALLEL); - -#define QWIDTH (WIDTH*4) -uint8_t u8g_dev_st7920_202x32_4x_buf[QWIDTH] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_st7920_202x32_4x_pb = { {32, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_st7920_202x32_4x_buf}; -u8g_dev_t u8g_dev_st7920_202x32_4x_sw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_SW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_hw_spi = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_ST7920_HW_SPI }; -u8g_dev_t u8g_dev_st7920_202x32_4x_8bit = { u8g_dev_st7920_202x32_4x_fn, &u8g_dev_st7920_202x32_4x_pb, U8G_COM_FAST_PARALLEL }; - - diff --git a/app/u8glib/u8g_dev_t6963_128x128.c b/app/u8glib/u8g_dev_t6963_128x128.c deleted file mode 100644 index 15f618c5f8..0000000000 --- a/app/u8glib/u8g_dev_t6963_128x128.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - - u8g_dev_t6963_128x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - - Application Notes for the MGLS 128x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x128_8bit = { u8g_dev_t6963_128x128_fn, &u8g_dev_t6963_128x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/app/u8glib/u8g_dev_t6963_128x64.c b/app/u8glib/u8g_dev_t6963_128x64.c deleted file mode 100644 index 97e1583320..0000000000 --- a/app/u8glib/u8g_dev_t6963_128x64.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_dev_t6963_128x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_128x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_128x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_128x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_128x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_128x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_128x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_128x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_128x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_128x64_8bit = { u8g_dev_t6963_128x64_fn, &u8g_dev_t6963_128x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/app/u8glib/u8g_dev_t6963_240x128.c b/app/u8glib/u8g_dev_t6963_240x128.c deleted file mode 100644 index 7373f38884..0000000000 --- a/app/u8glib/u8g_dev_t6963_240x128.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x128.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x128_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x128_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x128_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x128_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x128_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x128_8bit = { u8g_dev_t6963_240x128_fn, &u8g_dev_t6963_240x128_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/app/u8glib/u8g_dev_t6963_240x64.c b/app/u8glib/u8g_dev_t6963_240x64.c deleted file mode 100644 index d0c4fd2307..0000000000 --- a/app/u8glib/u8g_dev_t6963_240x64.c +++ /dev/null @@ -1,195 +0,0 @@ -/* - - u8g_dev_t6963_240x64.c - - Tested with Varitronix MGLS240128TZ - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - - Application Notes for the MGLS 240x128 - www.baso.no/content/pdf/T6963C_Application.pdf - - Hitachi App Notes: - https://www.sparkfun.com/datasheets/LCD/Monochrome/AN-029-Toshiba_T6963C.pdf - - Notes: - The font selection pins should generate the 8x8 font. - For the MGLS240128TZ only FS1 is available on pin 18. - FS1 must be low to generate the 8x8 font. - - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 16 - - -/* - http://www.mark-products.com/graphics.htm#240x64%20Pixel%20Format -*/ - -/* text is not used, so settings are not relevant */ -static const uint8_t u8g_dev_t6963_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x021, /* set cursor position */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x022, /* set offset */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x040, /* text home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x041, /* text columns */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x042, /* graphics home */ - - U8G_ESC_ADR(0), /* data mode */ - WIDTH/8, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x043, /* graphics columns */ - - // mode set - // 0x080: Internal CG, OR Mode - // 0x081: Internal CG, EXOR Mode - // 0x083: Internal CG, AND Mode - // 0x088: External CG, OR Mode - // 0x089: External CG, EXOR Mode - // 0x08B: External CG, AND Mode - U8G_ESC_ADR(1), /* instruction mode */ - 0x080, /* mode register: OR Mode, Internal Character Mode */ - - U8G_ESC_ADR(1), /* instruction mode */ - // display mode - // 0x090: Display off - // 0x094: Graphic off, text on, cursor off, blink off - // 0x096: Graphic off, text on, cursor on, blink off - // 0x097: Graphic off, text on, cursor on, blink on - // 0x098: Graphic on, text off, cursor off, blink off - // 0x09a: Graphic on, text off, cursor on, blink off - // ... - // 0x09c: Graphic on, text on, cursor off, blink off - // 0x09f: Graphic on, text on, cursor on, blink on - 0x098, /* mode register: Display Mode, Graphics on, Text off, Cursor off */ - - U8G_ESC_ADR(0), /* data mode */ - 0x000, /* low byte */ - 0x000, /* height byte */ - U8G_ESC_ADR(1), /* instruction mode */ - 0x024, /* set adr pointer */ - - - U8G_ESC_DLY(100), /* delay 100 ms */ - - U8G_ESC_ADR(0), /* data mode */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_t6963_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_NONE); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_t6963_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t y, i; - uint16_t disp_ram_adr; - uint8_t *ptr; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 1); - y = pb->p.page_y0; - ptr = pb->buf; - disp_ram_adr = WIDTH/8; - disp_ram_adr *= y; - for( i = 0; i < PAGE_HEIGHT; i ++ ) - { - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_WriteByte(u8g, dev, disp_ram_adr&255 ); /* address low byte */ - u8g_WriteByte(u8g, dev, disp_ram_adr>>8 ); /* address hight byte */ - u8g_SetAddress(u8g, dev, 1); /* cmd mode */ - u8g_WriteByte(u8g, dev, 0x024 ); /* set adr ptr */ - - u8g_WriteSequence(u8g, dev, WIDTH/8, ptr); - - ptr += WIDTH/8; - disp_ram_adr += WIDTH/8; - } - u8g_SetAddress(u8g, dev, 0); /* data mode */ - u8g_SetChipSelect(u8g, dev, 0); - } - break; - } - return u8g_dev_pb16h1_base_fn(u8g, dev, msg, arg); -} - -// U8G_PB_DEV(u8g_dev_t6963_240x64_8bit, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_t6963_240x64_fn, U8G_COM_T6963); - -uint8_t u8g_dev_t6963_240x64_2x_bw_buf[WIDTH/8*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_t6963_240x64_2x_bw_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_t6963_240x64_2x_bw_buf}; -u8g_dev_t u8g_dev_t6963_240x64_8bit = { u8g_dev_t6963_240x64_fn, &u8g_dev_t6963_240x64_2x_bw_pb, U8G_COM_T6963 }; - - diff --git a/app/u8glib/u8g_dev_tls8204_84x48.c b/app/u8glib/u8g_dev_tls8204_84x48.c deleted file mode 100644 index d8f423666f..0000000000 --- a/app/u8glib/u8g_dev_tls8204_84x48.c +++ /dev/null @@ -1,115 +0,0 @@ -/* - - u8g_dev_tls8204_84x48.c - - Display: Nokia 84x48 - - Status: Tested with TLS8204V12 Display by Olimex MOD-LCD3310 - - Contributed: http://code.google.com/p/u8glib/issues/detail?id=126 - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 84 -#define HEIGHT 48 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_tls8204_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x021, /* activate chip (PD=0), horizontal increment (V=0), enter extended command set (H=1) */ - 0x006, /* temp. control: b10 = 2 */ - 0x04 | !!((66-1)&(1u<<6)), - 0x40 | ((66-2) & ((1u<<6)-1)), - 0x013, /* bias system 1:48 */ - 0x0c0, /* medium Vop */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal operation */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00d, /* display on, invert */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x020, /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - 0x00c, /* display on, normal */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_tls8204_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_400NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_tls8204_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_SetAddress(u8g, dev, 0); /* command mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x020 ); /* activate chip (PD=0), horizontal increment (V=0), enter normal command set (H=0) */ - u8g_WriteByte(u8g, dev, 0x080 ); /* set X address */ - u8g_WriteByte(u8g, dev, 0x040 | pb->p.page); /* set Y address */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - /* the contrast adjustment does not work, needs to be analysed */ - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_SetChipSelect(u8g, dev, 1); - u8g_WriteByte(u8g, dev, 0x021); /* command mode, extended function set */ - u8g_WriteByte(u8g, dev, 0x080 | ( (*(uint8_t *)arg) >> 1 ) ); - u8g_WriteByte(u8g, dev, 0x020); /* command mode, extended function set */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - - -U8G_PB_DEV(u8g_dev_tls8204_84x48_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_tls8204_fn, U8G_COM_SW_SPI); - diff --git a/app/u8glib/u8g_dev_uc1601_c128032.c b/app/u8glib/u8g_dev_uc1601_c128032.c deleted file mode 100644 index 0151566760..0000000000 --- a/app/u8glib/u8g_dev_uc1601_c128032.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - - u8g_dev_uc1601_c128032.c - - LCD-AG-C128032R-DIW W/KK E6 PBF from http://www.artronic.pl/o_produkcie.php?id=1343 - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 32 -#define PAGE_HEIGHT 8 - -/* init sequence */ -static const uint8_t u8g_dev_uc1601_c128032_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - U8G_ESC_RST(15), /* do reset low pulse with (15*16)+2 milliseconds (=maximum delay)*/ - - 0x0a3, /* 0x0a3: LCD bias 1/7 , 0x0a2: LCD bias 1/9 */ - 0x0a0, /* 0x0a0: ADC set to normal, 0x0a1 ADC set to inverted */ - 0x0c8, /* common output mode: set scan direction normal operation/SHL Select, 0x0c0 --> SHL = 0, normal, 0x0c8 --> SHL = 1 */ - 0x0c2, /* 22 May 2013: mirror x */ - - 0x040, /* set display start line */ - - 0x028 | 0x04, /* power control: turn on voltage converter */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x06, /* power control: turn on voltage regulator */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x028 | 0x07, /* power control: turn on voltage follower */ - U8G_ESC_DLY(10), /* delay 10 ms */ - - 0x020| 0x06, /* set V0 voltage resistor ratio to 6 */ - - 0x0af, /* display on */ - - //0x081, /* set contrast */ - //0x018, /* contrast value*/ - - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x004, /* set lower 4 bit of the col adr */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_on[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0ac, /* static indicator off */ - 0x000, /* indicator register set (not sure if this is required) */ - 0x0ae, /* display off */ - 0x0a5, /* all points on */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1601_c128032_sleep_off[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x0a4, /* all points off */ - 0x0af, /* display on */ - U8G_ESC_DLY(50), /* delay 50 ms */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - - -uint8_t u8g_dev_uc1601_c128032_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1601_c128032_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (UC1601) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - case U8G_DEV_MSG_SLEEP_ON: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_on); - return 1; - case U8G_DEV_MSG_SLEEP_OFF: - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1601_c128032_sleep_off); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1601_c128032_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1601_c128032_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1601_c128032_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1601_c128032_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1601_c128032_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1601_c128032_2x_buf}; -u8g_dev_t u8g_dev_uc1601_c128032_2x_sw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1601_c128032_2x_hw_spi = { u8g_dev_uc1601_c128032_2x_fn, &u8g_dev_uc1601_c128032_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_uc1608_240x128.c b/app/u8glib/u8g_dev_uc1608_240x128.c deleted file mode 100644 index 650b6b96f0..0000000000 --- a/app/u8glib/u8g_dev_uc1608_240x128.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - - - u8g_dev_uc1608_240x128.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, olikraus@gmail.com (original 240x64 library) - Modified by thieringpeti@gmail.com for Raystar rx240128 family displays - 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. - - -*/ - -/* -Display: http://www.tme.eu/en/details/rx240128a-ghw/lcd-graphic-displays/raystar-optronics/ -Connection: HW / SW SPI. -To get this display working, You need some extra capacitors: - -connect 4.7uF caps between: - PIN1 & PIN2 VB1 +- - PIN3 & PIN4 VB0 -+ -connect 0.1uF caps between: - VLCD and VSS - VBIAS and VSS -You can find some schematics with a 10M resistor parallellized with the VLCD capacitor. - -Select 4-bit SPI mode. - -Connect D7 (PIN9) To VDD (+3.3V) -Connect D1, D2, D4, D5, D6 to GND (PINS 10,11,12,14,15) -Connect WR0, WR1, BM0, BM1 to GND (PINS 17,18,22,23) - -D0: (PIN16) AVR's SCK pin (HW SPI) -D3: (PIN13) AVR's MOSI pin (HW SPI) -CD: (PIN19) used as A0 in the library -CS: (PIN21) Connect to the defined CS pin, and You can re-use the HW SPI in different routines. -RST: (PIN20) optional reset, can be defined in the function, resets on initialization. - -Adjust contrast if necessary. Default: 0x072. - -*/ - -#include "u8g.h" - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x128_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x026, /* MUX rate and temperature compensation */ - - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - - 0x0eb, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - /* default 0x0ea for 240x128 */ - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x072, /* default for 240x128 displays: 0x072*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - // 0x0a7, /* inverse display */ - 0x0a6, /* normal display */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x128_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x128_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x128_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x128_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x128_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x128_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x128_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x128_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x128_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x128_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x128_2x_sw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x128_2x_hw_spi = { u8g_dev_uc1608_240x128_2x_fn, &u8g_dev_uc1608_240x128_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_uc1608_240x64.c b/app/u8glib/u8g_dev_uc1608_240x64.c deleted file mode 100644 index 6a99c6ba88..0000000000 --- a/app/u8glib/u8g_dev_uc1608_240x64.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - - u8g_dev_uc1608_240x64.c - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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 "u8g.h" - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -/* see also ERC24064-1 for init sequence example */ -static const uint8_t u8g_dev_uc1608_240x64_init_seq[] PROGMEM = { - U8G_ESC_CS(1), /* disable chip (UC1608 has positive logic for CS) */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (15*16)+2 milliseconds */ - - - U8G_ESC_CS(0), /* enable chip */ - 0x0e2, /* soft reset */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ -#if HEIGHT <= 96 - 0x023, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#else - /* 30 Nov 2013: not tested */ - 0x027, /* Bit 0/1: Temp compenstation, Bit 2: Multiplex Rate 0=96, 1=128 */ -#endif - 0x0c8, /* Map control, Bit 3: MY=1, Bit 2: MX=0, Bit 0: MSF =0 */ - 0x0e8, /* LCD bias Bits 0/1: 00=10.7 01=10.3, 10=12.0, 11=12.7*/ - - 0x081, /* set contrast (bits 0..5) and gain (bits 6/7) */ - 0x014, /* ECR24064-1 default: 0x040*/ - - 0x02f, /* power on, Bit 2 PC2=1 (internal charge pump), Bits 0/1: cap of panel */ - U8G_ESC_DLY(50), /* delay 50 ms */ - - 0x040, /* set display start line to 0 */ - 0x090, /* no fixed lines */ - 0x089, /* RAM access control */ - - 0x0af, /* disable sleep mode */ - 0x0a4, /* normal display */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(1), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1608_240x64_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(0), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 (UC1608) */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1608_240x64_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (UC1608) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 1); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 0); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 1); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1608_240x64_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1608_240x64_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1608_240x64_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1608_240x64_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1608_240x64_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1608_240x64_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1608_240x64_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1608_240x64_2x_buf}; -u8g_dev_t u8g_dev_uc1608_240x64_2x_sw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1608_240x64_2x_hw_spi = { u8g_dev_uc1608_240x64_2x_fn, &u8g_dev_uc1608_240x64_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_uc1610_dogxl160.c b/app/u8glib/u8g_dev_uc1610_dogxl160.c deleted file mode 100644 index 4f361664dd..0000000000 --- a/app/u8glib/u8g_dev_uc1610_dogxl160.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - - u8g_dev_uc1610_dogxl160.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 160 -#define HEIGHT 104 - -static const uint8_t u8g_dev_uc1610_dogxl160_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - 0x0f1, /* set display height-1 */ - 0x067, /* */ - 0x0c0, /* SEG & COM normal */ - 0x040, /* set display start line */ - 0x050, /* */ - 0x02b, /* set panelloading */ - 0x0eb, /* set bias 1/2 */ - 0x081, /* set contrast */ - 0x05f, /* */ - 0x089, /* set auto increment */ - 0x0a6, /* normal pixel mode */ - 0x0d3, /* 0xd3=40% RMS separation for gray levels */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - - - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1610_dogxl160_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_1to2(uint8_t n) -{ - register uint8_t a,b,c; - a = n; - a &= 1; - n <<= 1; - b = n; - b &= 4; - n <<= 1; - c = n; - c &= 16; - n <<= 1; - n &= 64; - n |= a; - n |= b; - n |= c; - n |= n << 1; - return n; -} - -uint8_t u8g_dev_uc1610_dogxl160_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v2_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - int i; - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+1) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)(pb->buf))[i] >> 4 ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+2) ); /* select current page 1/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] ) ); - } - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*4+3) ); /* select current page 2/2 (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - for( i = 0; i < WIDTH; i++ ) - { - u8g_WriteByte(u8g, dev, u8g_dev_1to2( ((uint8_t *)((uint8_t *)(pb->buf)+WIDTH))[i] >> 4 ) ); - } - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, pb->buf) == 0 ) - return 0; - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1610_dogxl160_data_start); - u8g_WriteByte(u8g, dev, 0x060 | (pb->p.page*2+1) ); /* select current page (UC1610) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_WriteSequence(u8g, dev, WIDTH, (uint8_t *)(pb->buf)+WIDTH) == 0 ) - return 0; - - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 1); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v2_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_sw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_bw_hw_spi, WIDTH, HEIGHT, 8, u8g_dev_uc1610_dogxl160_bw_fn, U8G_COM_HW_SPI); - -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_sw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1610_dogxl160_gr_hw_spi, WIDTH, HEIGHT, 4, u8g_dev_uc1610_dogxl160_gr_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1610_dogxl160_2x_bw_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_bw_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_bw_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_sw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_bw_hw_spi = { u8g_dev_uc1610_dogxl160_2x_bw_fn, &u8g_dev_uc1610_dogxl160_2x_bw_pb, U8G_COM_HW_SPI }; - -uint8_t u8g_dev_uc1610_dogxl160_2x_gr_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1610_dogxl160_2x_gr_pb = { {8, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1610_dogxl160_2x_gr_buf}; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_sw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1610_dogxl160_2x_gr_hw_spi = { u8g_dev_uc1610_dogxl160_2x_gr_fn, &u8g_dev_uc1610_dogxl160_2x_gr_pb, U8G_COM_HW_SPI }; diff --git a/app/u8glib/u8g_dev_uc1611_dogm240.c b/app/u8glib/u8g_dev_uc1611_dogm240.c deleted file mode 100644 index e0f6609143..0000000000 --- a/app/u8glib/u8g_dev_uc1611_dogm240.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - - u8g_dev_uc1611_dogm240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@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 "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogm240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_DLY(200), - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - 0xe2, // system reset - U8G_ESC_DLY(1), - 0x2f, // enable internal charge pump - - 0xF1, // set last COM electrode - 0x3F, // 64-1=63 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x3F, // 64-1=63 - 0x81, // set contrast (0-255) - 0xB7, // 183 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void setPage(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70 + (page>>4)); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogm240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1611_dogm240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogm240_data_start); - setPage(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - /* 11 Jul 2015: bugfix, github issue 339 */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogm240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogm240_8bit , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogm240_fn, U8G_COM_FAST_PARALLEL); - diff --git a/app/u8glib/u8g_dev_uc1611_dogxl240.c b/app/u8glib/u8g_dev_uc1611_dogxl240.c deleted file mode 100644 index 1eaa457009..0000000000 --- a/app/u8glib/u8g_dev_uc1611_dogxl240.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - - u8g_dev_uc1611_dogxl240.c - - Universal 8bit Graphics Library - - Copyright (c) 2014, dev.menges.jonas@gmail.com, 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 "u8g.h" - - -#define WIDTH 240 -#define HEIGHT 128 -#define PAGE_HEIGHT 8 - - -static const uint8_t u8g_dev_uc1611_dogxl240_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_DLY(200), - U8G_ESC_CS(1), // enable chip - U8G_ESC_ADR(0), // instruction mode - - 0xe2, // system reset - U8G_ESC_DLY(1), - 0x2f, // enable internal charge pump - - 0xF1, // set last COM electrode - 0x7F, // DOGXL240 - 0xF2, // set display start line - 0x00, // 0 - 0xF3, // set display end line - 0x7F, // DOGXL240 - 0x81, // set contrast (0-255) - 0xAA, // DOGXL240 - 0xC0, // set view - //0x04, // topview - 0x02, // bottomview - 0xA3, // set line rate (9.4k) - 0xE9, // set bias ratio (10) - 0xA9, // enable display - 0xD1, // set black and white mode - U8G_ESC_CS(0), // disable chip - U8G_ESC_END // end of sequence -}; - -static void u8g_dev_dogxl240_set_page(u8g_t *u8g, u8g_dev_t *dev, unsigned char page) -{ - u8g_WriteByte(u8g, dev, 0x70); - u8g_WriteByte(u8g, dev, 0x60 + (page&0x0F)); -} - -static const uint8_t u8g_dev_uc1611_dogxl240_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x10, /* set upper 4 bit of the col adr to 0 */ - 0x00, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -static uint8_t u8g_dev_uc1611_dogxl240_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1611_dogxl240_data_start); - u8g_dev_dogxl240_set_page(u8g, dev, pb->p.page); /* select current page (uc1611) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x81); - /* 11 Jul 2015: bugfix, github issue 339 */ - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) ); /* set contrast from, keep gain at 0 */ - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_i2c , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_UC_I2C); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_HW_SPI); -U8G_PB_DEV(u8g_dev_uc1611_dogxl240_8bit , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1611_dogxl240_fn, U8G_COM_FAST_PARALLEL); - diff --git a/app/u8glib/u8g_dev_uc1701_dogs102.c b/app/u8glib/u8g_dev_uc1701_dogs102.c deleted file mode 100644 index 5161ef95f2..0000000000 --- a/app/u8glib/u8g_dev_uc1701_dogs102.c +++ /dev/null @@ -1,157 +0,0 @@ -/* - - u8g_dev_uc1701_dogs102.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 102 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_dogs102_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a1, /* ADC set to reverse */ - 0x0c0, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x027, /* regulator, booster and follower */ - 0x081, /* set contrast */ - 0x00e, /* contrast value, EA default: 0x010, previous value for S102: 0x0e */ - 0x0fa, /* Set Temp compensation */ - 0x090, /* 0.11 deg/c WP Off WC Off*/ - 0x0a4, /* normal display */ - 0x0af, /* display on */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565, UC1610 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_dogs102_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 0 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_dogs102_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_dogs102_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_dogs102_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page (ST7565R) */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_dogs102_sw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_dogs102_hw_spi , WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_dogs102_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_dogs102_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_dogs102_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_dogs102_2x_buf}; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_sw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_dogs102_2x_hw_spi = { u8g_dev_uc1701_dogs102_2x_fn, &u8g_dev_uc1701_dogs102_2x_pb, U8G_COM_HW_SPI }; - diff --git a/app/u8glib/u8g_dev_uc1701_mini12864.c b/app/u8glib/u8g_dev_uc1701_mini12864.c deleted file mode 100644 index 209a7b930d..0000000000 --- a/app/u8glib/u8g_dev_uc1701_mini12864.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - - u8g_dev_uc1701_mini12864.c (dealextreme) - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -#define WIDTH 128 -#define HEIGHT 64 -#define PAGE_HEIGHT 8 - -static const uint8_t u8g_dev_uc1701_mini12864_init_seq[] PROGMEM = { - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_RST(1), /* do reset low pulse with (1*16)+2 milliseconds */ - U8G_ESC_CS(1), /* enable chip */ - - 0x0e2, /* soft reset */ - 0x040, /* set display start line to 0 */ - 0x0a0, /* ADC set to reverse */ - 0x0c8, /* common output mode */ - 0x0a6, /* display normal, bit val 0: LCD pixel off. */ - 0x0a2, /* LCD bias 1/9 */ - 0x02f, /* all power control circuits on */ - 0x0f8, /* set booster ratio to */ - 0x000, /* 4x */ - 0x023, /* set V0 voltage resistor ratio to large */ - 0x081, /* set contrast */ - 0x027, /* contrast value */ - 0x0ac, /* indicator */ - 0x000, /* disable */ - 0x0af, /* display on */ - - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a5, /* display all points, ST7565 */ - U8G_ESC_DLY(100), /* delay 100 ms */ - U8G_ESC_DLY(100), /* delay 100 ms */ - 0x0a4, /* normal display */ - U8G_ESC_CS(0), /* disable chip */ - U8G_ESC_END /* end of sequence */ -}; - -static const uint8_t u8g_dev_uc1701_mini12864_data_start[] PROGMEM = { - U8G_ESC_ADR(0), /* instruction mode */ - U8G_ESC_CS(1), /* enable chip */ - 0x010, /* set upper 4 bit of the col adr to 0 */ - 0x000, /* set lower 4 bit of the col adr to 4 */ - U8G_ESC_END /* end of sequence */ -}; - -uint8_t u8g_dev_uc1701_mini12864_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | pb->p.page); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - if ( u8g_pb_WriteBuffer(pb, u8g, dev) == 0 ) - return 0; - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb8v1_base_fn(u8g, dev, msg, arg); -} - -uint8_t u8g_dev_uc1701_mini12864_2x_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - case U8G_DEV_MSG_INIT: - u8g_InitCom(u8g, dev, U8G_SPI_CLK_CYCLE_300NS); - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_init_seq); - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_NEXT: - { - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, pb->buf); - u8g_SetChipSelect(u8g, dev, 0); - - u8g_WriteEscSeqP(u8g, dev, u8g_dev_uc1701_mini12864_data_start); - u8g_WriteByte(u8g, dev, 0x0b0 | (2*pb->p.page+1)); /* select current page */ - u8g_SetAddress(u8g, dev, 1); /* data mode */ - u8g_WriteSequence(u8g, dev, pb->width, (uint8_t *)(pb->buf)+pb->width); - u8g_SetChipSelect(u8g, dev, 0); - } - break; - case U8G_DEV_MSG_CONTRAST: - u8g_SetChipSelect(u8g, dev, 1); - u8g_SetAddress(u8g, dev, 0); /* instruction mode */ - u8g_WriteByte(u8g, dev, 0x081); - u8g_WriteByte(u8g, dev, (*(uint8_t *)arg) >> 2); - u8g_SetChipSelect(u8g, dev, 0); - return 1; - } - return u8g_dev_pb16v1_base_fn(u8g, dev, msg, arg); -} - -U8G_PB_DEV(u8g_dev_uc1701_mini12864_sw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_SW_SPI); -U8G_PB_DEV(u8g_dev_uc1701_mini12864_hw_spi, WIDTH, HEIGHT, PAGE_HEIGHT, u8g_dev_uc1701_mini12864_fn, U8G_COM_HW_SPI); - -uint8_t u8g_dev_uc1701_mini12864_2x_buf[WIDTH*2] U8G_NOCOMMON ; -u8g_pb_t u8g_dev_uc1701_mini12864_2x_pb = { {16, HEIGHT, 0, 0, 0}, WIDTH, u8g_dev_uc1701_mini12864_2x_buf}; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_sw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_SW_SPI }; -u8g_dev_t u8g_dev_uc1701_mini12864_2x_hw_spi = { u8g_dev_uc1701_mini12864_2x_fn, &u8g_dev_uc1701_mini12864_2x_pb, U8G_COM_HW_SPI }; diff --git a/app/u8glib/u8g_ellipse.c b/app/u8glib/u8g_ellipse.c deleted file mode 100644 index 57ff4675bc..0000000000 --- a/app/u8glib/u8g_ellipse.c +++ /dev/null @@ -1,393 +0,0 @@ -/* - - u8g_ellipse.c - - Utility to draw empty and filled ellipses. - - Universal 8bit Graphics Library - - Copyright (c) 2011, bjthom@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. - - Addition to the U8G Library as of 02/29/12 - Adapted from Bresenham's Algorithm and the following websites: - http://free.pages.at/easyfilter/bresenham.html - http://homepage.smc.edu/kennedy_john/belipse.pdf - -*/ - -#include "u8g.h" - - -#ifdef WORK_IN_PROGRESS - -void u8g_DrawEllipseRect(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t x1, u8g_uint_t y1) -{ - int a = abs(x1 - x0); - int b = abs(y1 - y0); //get diameters - int b1 = b&1; - long dx = 4*(1-a)*b*b; - long dy = 4*(b1+1)*a*a; - long err = dx+dy+b1*a*a; - long e2; - - if (x0 > x1) { x0 = x1; x1 += a; } - if (y0 > y1) { y0 = y1; } - y0 += (b+1)/2; - y1 = y0-b1; - a *= 8*a; - b1 = 8*b*b; - - do { - u8g_DrawPixel(u8g, x1, y0); - u8g_DrawPixel(u8g, x0, y0); - u8g_DrawPixel(u8g, x0, y1); - u8g_DrawPixel(u8g, x1, y1); - e2 = 2*err; - if (e2 >= dx) { - x0++; - x1--; - err += dx += b1; - } - if (e2 <= dy) { - y0++; - y1--; - err += dy += a; - } - } while (x0 <= x1); - - while (y0-y1 < b) { - u8g_DrawPixel(u8g, x0-1, y0); - u8g_DrawPixel(u8g, x1+1, y0++); - u8g_DrawPixel(u8g, x0-1, y1); - u8g_DrawPixel(u8g, x1+1, y1--); - } -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t xr, u8g_uint_t yr) -{ - u8g_DrawPixel(u8g, x0, y0+yr); - u8g_DrawPixel(u8g, x0, y0-yr); - u8g_DrawPixel(u8g, x0+xr, y0); - u8g_DrawPixel(u8g, x0-xr, y0); -} - -#endif - -#if defined(U8G_16BIT) -typedef int32_t u8g_long_t; -#else -typedef int16_t u8g_long_t; -#endif - - -/* - Source: - ftp://pc.fk0.name/pub/books/programming/bezier-ellipse.pdf - Foley, Computer Graphics, p 90 -*/ -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 - y); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 - y); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawPixel(u8g, x0 + x, y0 + y); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawPixel(u8g, x0 - x, y0 + y); - } -} - -void u8g_draw_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_ellipse(u8g, x0, y0, rx, ry, option); -} - -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) U8G_NOINLINE; -static void u8g_draw_filled_ellipse_section(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t x0, u8g_uint_t y0, uint8_t option) -{ - /* upper right */ - if ( option & U8G_DRAW_UPPER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0-y, y+1); - } - - /* upper left */ - if ( option & U8G_DRAW_UPPER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0-y, y+1); - } - - /* lower right */ - if ( option & U8G_DRAW_LOWER_RIGHT ) - { - u8g_DrawVLine(u8g, x0+x, y0, y+1); - } - - /* lower left */ - if ( option & U8G_DRAW_LOWER_LEFT ) - { - u8g_DrawVLine(u8g, x0-x, y0, y+1); - } -} - -void u8g_draw_filled_ellipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - u8g_uint_t x, y; - u8g_long_t xchg, ychg; - u8g_long_t err; - u8g_long_t rxrx2; - u8g_long_t ryry2; - u8g_long_t stopx, stopy; - - rxrx2 = rx; - rxrx2 *= rx; - rxrx2 *= 2; - - ryry2 = ry; - ryry2 *= ry; - ryry2 *= 2; - - x = rx; - y = 0; - - xchg = 1; - xchg -= rx; - xchg -= rx; - xchg *= ry; - xchg *= ry; - - ychg = rx; - ychg *= rx; - - err = 0; - - stopx = ryry2; - stopx *= rx; - stopy = 0; - - while( stopx >= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - y++; - stopy += rxrx2; - err += ychg; - ychg += rxrx2; - if ( 2*err+xchg > 0 ) - { - x--; - stopx -= ryry2; - err += xchg; - xchg += ryry2; - } - } - - x = 0; - y = ry; - - xchg = ry; - xchg *= ry; - - ychg = 1; - ychg -= ry; - ychg -= ry; - ychg *= rx; - ychg *= rx; - - err = 0; - - stopx = 0; - - stopy = rxrx2; - stopy *= ry; - - - while( stopx <= stopy ) - { - u8g_draw_filled_ellipse_section(u8g, x, y, x0, y0, option); - x++; - stopx += ryry2; - err += xchg; - xchg += ryry2; - if ( 2*err+ychg > 0 ) - { - y--; - stopy -= rxrx2; - err += ychg; - ychg += rxrx2; - } - } - -} - -void u8g_DrawFilledEllipse(u8g_t *u8g, u8g_uint_t x0, u8g_uint_t y0, u8g_uint_t rx, u8g_uint_t ry, uint8_t option) -{ - /* check for bounding box */ - { - u8g_uint_t rxp, rxp2; - u8g_uint_t ryp, ryp2; - - rxp = rx; - rxp++; - rxp2 = rxp; - rxp2 *= 2; - - ryp = ry; - ryp++; - ryp2 = ryp; - ryp2 *= 2; - - if ( u8g_IsBBXIntersection(u8g, x0-rxp, y0-ryp, rxp2, ryp2) == 0) - return; - } - - u8g_draw_filled_ellipse(u8g, x0, y0, rx, ry, option); -} diff --git a/app/u8glib/u8g_font.c b/app/u8glib/u8g_font.c deleted file mode 100644 index b9add2f80b..0000000000 --- a/app/u8glib/u8g_font.c +++ /dev/null @@ -1,1512 +0,0 @@ -/* - - u8g_font.c - - U8G Font High Level Interface - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -/* font api */ - -/* pointer to the start adress of the glyph, points to progmem area */ -typedef void * u8g_glyph_t; - -/* size of the font data structure, there is no struct or class... */ -#define U8G_FONT_DATA_STRUCT_SIZE 17 - -/* - ... instead the fields of the font data structure are accessed directly by offset - font information - offset - 0 font format - 1 FONTBOUNDINGBOX width unsigned - 2 FONTBOUNDINGBOX height unsigned - 3 FONTBOUNDINGBOX x-offset signed - 4 FONTBOUNDINGBOX y-offset signed - 5 capital A height unsigned - 6 start 'A' - 8 start 'a' - 10 encoding start - 11 encoding end - 12 descent 'g' negative: below baseline - 13 font max ascent - 14 font min decent negative: below baseline - 15 font xascent - 16 font xdecent negative: below baseline - -*/ - -/* use case: What is the width and the height of the minimal box into which string s fints? */ -void u8g_font_GetStrSize(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); -void u8g_font_GetStrSizeP(const void *font, const char *s, u8g_uint_t *width, u8g_uint_t *height); - -/* use case: lower left edge of a minimal box is known, what is the correct x, y position for the string draw procedure */ -void u8g_font_AdjustXYToDraw(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); -void u8g_font_AdjustXYToDrawP(const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y); - -/* use case: Baseline origin known, return minimal box */ -void u8g_font_GetStrMinBox(u8g_t *u8g, const void *font, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height); - -/* procedures */ - -/*========================================================================*/ -/* low level byte and word access */ - -/* removed NOINLINE, because it leads to smaller code, might also be faster */ -//static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint8_t u8g_font_get_byte(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - font += offset; - return u8g_pgm_read( (u8g_pgm_uint8_t *)font ); -} - -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) U8G_NOINLINE; -static uint16_t u8g_font_get_word(const u8g_fntpgm_uint8_t *font, uint8_t offset) -{ - uint16_t pos; - font += offset; - pos = u8g_pgm_read( (u8g_pgm_uint8_t *)font ); - font++; - pos <<= 8; - pos += u8g_pgm_read( (u8g_pgm_uint8_t *)font); - return pos; -} - -/*========================================================================*/ -/* direct access on the font */ - -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFormat(const u8g_fntpgm_uint8_t *font) -{ - return u8g_font_get_byte(font, 0); -} - -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) U8G_NOINLINE; -static uint8_t u8g_font_GetFontGlyphStructureSize(const u8g_fntpgm_uint8_t *font) -{ - switch(u8g_font_GetFormat(font)) - { - case 0: return 6; - case 1: return 3; - case 2: return 6; - } - return 3; -} - -static uint8_t u8g_font_GetBBXWidth(const void *font) -{ - return u8g_font_get_byte(font, 1); -} - -static uint8_t u8g_font_GetBBXHeight(const void *font) -{ - return u8g_font_get_byte(font, 2); -} - -static int8_t u8g_font_GetBBXOffX(const void *font) -{ - return u8g_font_get_byte(font, 3); -} - -static int8_t u8g_font_GetBBXOffY(const void *font) -{ - return u8g_font_get_byte(font, 4); -} - -uint8_t u8g_font_GetCapitalAHeight(const void *font) -{ - return u8g_font_get_byte(font, 5); -} - -uint16_t u8g_font_GetEncoding65Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding65Pos(const void *font) -{ - return u8g_font_get_word(font, 6); -} - -uint16_t u8g_font_GetEncoding97Pos(const void *font) U8G_NOINLINE; -uint16_t u8g_font_GetEncoding97Pos(const void *font) -{ - return u8g_font_get_word(font, 8); -} - -uint8_t u8g_font_GetFontStartEncoding(const void *font) -{ - return u8g_font_get_byte(font, 10); -} - -uint8_t u8g_font_GetFontEndEncoding(const void *font) -{ - return u8g_font_get_byte(font, 11); -} - -int8_t u8g_font_GetLowerGDescent(const void *font) -{ - return u8g_font_get_byte(font, 12); -} - -int8_t u8g_font_GetFontAscent(const void *font) -{ - return u8g_font_get_byte(font, 13); -} - -int8_t u8g_font_GetFontDescent(const void *font) -{ - return u8g_font_get_byte(font, 14); -} - -int8_t u8g_font_GetFontXAscent(const void *font) -{ - return u8g_font_get_byte(font, 15); -} - -int8_t u8g_font_GetFontXDescent(const void *font) -{ - return u8g_font_get_byte(font, 16); -} - - -/* return the data start for a font and the glyph pointer */ -static uint8_t *u8g_font_GetGlyphDataStart(const void *font, u8g_glyph_t g) -{ - return ((u8g_fntpgm_uint8_t *)g) + u8g_font_GetFontGlyphStructureSize(font); -} - -/* calculate the overall length of the font, only used to create the picture for the google wiki */ -size_t u8g_font_GetSize(const void *font) -{ - uint8_t *p = (uint8_t *)(font); - uint8_t font_format = u8g_font_GetFormat(font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(font); - uint8_t start, end; - uint8_t i; - uint8_t mask = 255; - - start = u8g_font_GetFontStartEncoding(font); - end = u8g_font_GetFontEndEncoding(font); - - if ( font_format == 1 ) - mask = 15; - - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - - i = start; - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - - return p - (uint8_t *)font; -} - -/*========================================================================*/ -/* u8g interface, font access */ - -uint8_t u8g_GetFontBBXWidth(u8g_t *u8g) -{ - return u8g_font_GetBBXWidth(u8g->font); -} - -uint8_t u8g_GetFontBBXHeight(u8g_t *u8g) -{ - return u8g_font_GetBBXHeight(u8g->font); -} - -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffX(u8g_t *u8g) -{ - return u8g_font_GetBBXOffX(u8g->font); -} - -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) U8G_NOINLINE; -int8_t u8g_GetFontBBXOffY(u8g_t *u8g) -{ - return u8g_font_GetBBXOffY(u8g->font); -} - -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) U8G_NOINLINE; -uint8_t u8g_GetFontCapitalAHeight(u8g_t *u8g) -{ - return u8g_font_GetCapitalAHeight(u8g->font); -} - -/*========================================================================*/ -/* glyph handling */ - -static void u8g_CopyGlyphDataToCache(u8g_t *u8g, u8g_glyph_t g) -{ - uint8_t tmp; - switch( u8g_font_GetFormat(u8g->font) ) - { - case 0: - case 2: - /* - format 0 - glyph information - offset - 0 BBX width unsigned - 1 BBX height unsigned - 2 data size unsigned (BBX width + 7)/8 * BBX height - 3 DWIDTH signed - 4 BBX xoffset signed - 5 BBX yoffset signed - byte 0 == 255 indicates empty glyph - */ - u8g->glyph_width = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_height = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_dx = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 3 ); - u8g->glyph_x = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 4 ); - u8g->glyph_y = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 5 ); - break; - case 1: - default: - /* -format 1 - 0 BBX xoffset signed --> upper 4 Bit - 0 BBX yoffset signed --> lower 4 Bit - 1 BBX width unsigned --> upper 4 Bit - 1 BBX height unsigned --> lower 4 Bit - 2 data size unsigned -(BBX width + 7)/8 * BBX height --> lower 4 Bit - 2 DWIDTH signed --> upper 4 Bit - byte 0 == 255 indicates empty glyph - */ - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 0 ); - u8g->glyph_y = tmp & 15; - u8g->glyph_y-=2; - tmp >>= 4; - u8g->glyph_x = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 1 ); - u8g->glyph_height = tmp & 15; - tmp >>= 4; - u8g->glyph_width = tmp; - - tmp = u8g_pgm_read( ((u8g_pgm_uint8_t *)g) + 2 ); - tmp >>= 4; - u8g->glyph_dx = tmp; - - - break; - } -} - -//void u8g_FillEmptyGlyphCache(u8g_t *u8g) U8G_NOINLINE; -static void u8g_FillEmptyGlyphCache(u8g_t *u8g) -{ - u8g->glyph_dx = 0; - u8g->glyph_width = 0; - u8g->glyph_height = 0; - u8g->glyph_x = 0; - u8g->glyph_y = 0; -} - -/* - Find (with some speed optimization) and return a pointer to the glyph data structure - Also uncompress (format 1) and copy the content of the data structure to the u8g structure -*/ -u8g_glyph_t u8g_GetGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - uint8_t *p = (uint8_t *)(u8g->font); - uint8_t font_format = u8g_font_GetFormat(u8g->font); - uint8_t data_structure_size = u8g_font_GetFontGlyphStructureSize(u8g->font); - uint8_t start, end; - uint16_t pos; - uint8_t i; - uint8_t mask = 255; - - if ( font_format == 1 ) - mask = 15; - - start = u8g_font_GetFontStartEncoding(u8g->font); - end = u8g_font_GetFontEndEncoding(u8g->font); - - pos = u8g_font_GetEncoding97Pos(u8g->font); - if ( requested_encoding >= 97 && pos > 0 ) - { - p+= pos; - start = 97; - } - else - { - pos = u8g_font_GetEncoding65Pos(u8g->font); - if ( requested_encoding >= 65 && pos > 0 ) - { - p+= pos; - start = 65; - } - else - p += U8G_FONT_DATA_STRUCT_SIZE; /* skip font general information */ - } - - if ( requested_encoding > end ) - { - u8g_FillEmptyGlyphCache(u8g); - return NULL; /* not found */ - } - - i = start; - if ( i <= end ) - { - for(;;) - { - if ( u8g_pgm_read((u8g_pgm_uint8_t *)(p)) == 255 ) - { - p += 1; - } - else - { - if ( i == requested_encoding ) - { - u8g_CopyGlyphDataToCache(u8g, p); - return p; - } - p += u8g_pgm_read( ((u8g_pgm_uint8_t *)(p)) + 2 ) & mask; - p += data_structure_size; - } - if ( i == end ) - break; - i++; - } - } - - u8g_FillEmptyGlyphCache(u8g); - - return NULL; -} - -uint8_t u8g_IsGlyph(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) != NULL ) - return 1; - return 0; -} - -int8_t u8g_GetGlyphDeltaX(u8g_t *u8g, uint8_t requested_encoding) -{ - if ( u8g_GetGlyph(u8g, requested_encoding) == NULL ) - return 0; /* should never happen, so return something */ - return u8g->glyph_dx; -} - - -/*========================================================================*/ -/* glyph drawing procedures */ - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: left baseline position of the glyph -*/ -int8_t u8g_DrawGlyphDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - u8g_glyph_t g; - uint8_t w, h, i, j; - const u8g_pgm_uint8_t *data; - uint8_t bytes_per_line; - u8g_uint_t ix, iy; - - g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - w = u8g->glyph_width; - h = u8g->glyph_height; - - bytes_per_line = w; - bytes_per_line += 7; - bytes_per_line /= 8; - - data = u8g_font_GetGlyphDataStart(u8g->font, g); - - switch(dir) - { - case 0: - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - //u8g_DrawFrame(u8g, x, y-h+1, w, h); - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - break; - case 1: - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - //printf("enc %d, dir %d, x %d, y %d, w %d, h %d\n", encoding, dir, x, y, w, h); - //u8g_DrawFrame(u8g, x, y, h, w); - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - break; - case 2: - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - if ( u8g_IsBBXIntersection(u8g, x-w-1, y, w, h) == 0 ) - return u8g->glyph_dx; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - break; - case 3: - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-h-1, y-w-1, h, w) == 0 ) - return u8g->glyph_dx; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < bytes_per_line; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, dir, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - break; - } - return u8g->glyph_dx; -} -#endif - -int8_t u8g_draw_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=8; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_glyph(u8g, x, y, encoding); -} - -int8_t u8g_draw_glyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_y; - x++; - y += u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x, y, h, w) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix += h; - ix--; - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 1, u8g_pgm_read(data)); - data++; - iy+=8; - } - ix--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph90(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_x; - y += u8g->glyph_y; - y++; - - if ( u8g_IsBBXIntersection(u8g, x-(w-1), y, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - iy = y; - iy += h; - iy--; - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 2, u8g_pgm_read(data)); - data++; - ix-=8; - } - iy--; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y -= u8g->font_calc_vref(u8g); - return u8g_draw_glyph180(u8g, x, y, encoding); -} - - -int8_t u8g_draw_glyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x -= u8g->glyph_y; - x--; - y -= u8g->glyph_x; - - if ( u8g_IsBBXIntersection(u8g, x-(h-1), y-(w-1), h, w) == 0 ) - return u8g->glyph_dx; - - - /* now, w is reused as bytes per line */ - w += 7; - w /= 8; - - ix = x; - ix -= h; - ix++; - - for( j = 0; j < h; j++ ) - { - iy = y; - for( i = 0; i < w; i++ ) - { - u8g_Draw8Pixel(u8g, ix, iy, 3, u8g_pgm_read(data)); - data++; - iy-=8; - } - ix++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawGlyph270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - x += u8g->font_calc_vref(u8g); - return u8g_draw_glyph270(u8g, x, y, encoding); -} - - - -#ifdef OBSOLETE -/* - Draw a glyph - x,y: lower left corner of the font bounding box -*/ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - /* TODO: apply "dir" */ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawGlyphDir(u8g, x, y, dir, encoding); -} -#endif - -/*========================================================================*/ -/* string drawing procedures */ - - -u8g_uint_t u8g_DrawStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph90(u8g, x, y, *s); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - y -= u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph180(u8g, x, y, *s); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - x += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_glyph270(u8g, x, y, *s); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrDir(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - switch(dir) - { - case 0: - return u8g_DrawStr(u8g, x, y, s); - case 1: - return u8g_DrawStr90(u8g, x, y, s); - case 2: - return u8g_DrawStr180(u8g, x, y, s); - case 3: - return u8g_DrawStr270(u8g, x, y, s); - } - return 0; -} - -u8g_uint_t u8g_DrawStrP(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - y += u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_draw_glyph(u8g, x, y, c); - x += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr90P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - x -= u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_DrawGlyph90(u8g, x, y, c); - y += d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr180P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - y -= u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_DrawGlyph180(u8g, x, y, c); - x -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStr270P(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t t = 0; - int8_t d; - uint8_t c; - - x += u8g->font_calc_vref(u8g); - - for(;;) - { - c = u8g_pgm_read(s); - if ( c == '\0' ) - break; - d = u8g_DrawGlyph270(u8g, x, y, c); - y -= d; - t += d; - s++; - } - return t; -} - -u8g_uint_t u8g_DrawStrFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, const char *s) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - return u8g_DrawStrDir(u8g, x, y, dir, s); -} - -/* still used by picgen.c, dir argument is ignored */ -int8_t u8g_DrawGlyphFontBBX(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t encoding) -{ - x -= u8g_GetFontBBXOffX(u8g); - y += u8g_GetFontBBXOffY(u8g); - u8g_draw_glyph(u8g, x, y, encoding); - return 0; -} - - -/*========================================================================*/ -/* set ascent/descent for reference point calculation */ - -void u8g_UpdateRefHeight(u8g_t *u8g) -{ - uint16_t ls; - if ( u8g->font == NULL ) - return; - if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_TEXT ) - { - u8g->font_ref_ascent = u8g_font_GetCapitalAHeight(u8g->font); - u8g->font_ref_descent = u8g_font_GetLowerGDescent(u8g->font); - } - else if ( u8g->font_height_mode == U8G_FONT_HEIGHT_MODE_XTEXT ) - { - u8g->font_ref_ascent = u8g_font_GetFontXAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontXDescent(u8g->font); - } - else - { - u8g->font_ref_ascent = u8g_font_GetFontAscent(u8g->font); - u8g->font_ref_descent = u8g_font_GetFontDescent(u8g->font); - } - - ls = u8g->font_ref_ascent - u8g->font_ref_descent; - if ( u8g->font_line_spacing_factor != 64 ) - { - ls &= 255; - ls *= u8g->font_line_spacing_factor; - ls >>= 6; - } - u8g->line_spacing = ls; -} - -void u8g_SetFontRefHeightText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_TEXT; - u8g_UpdateRefHeight(u8g); -} - -void u8g_SetFontRefHeightExtendedText(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g_UpdateRefHeight(u8g); -} - - -void u8g_SetFontRefHeightAll(u8g_t *u8g) -{ - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_ALL; - u8g_UpdateRefHeight(u8g); -} - -/* factor = 64: linespaceing == ascent and descent */ -void u8g_SetFontLineSpacingFactor(u8g_t *u8g, uint8_t factor) -{ - u8g->font_line_spacing_factor = factor; - u8g_UpdateRefHeight(u8g); -} - - - -/*========================================================================*/ -/* callback procedures to correct the y position */ - -u8g_uint_t u8g_font_calc_vref_font(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetFontPosBaseline(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_font; -} - - -u8g_uint_t u8g_font_calc_vref_bottom(u8g_t *u8g) -{ - /* y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); */ - return (u8g_uint_t)(u8g_int_t)(u8g->font_ref_descent); -} - -void u8g_SetFontPosBottom(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_bottom; -} - -u8g_uint_t u8g_font_calc_vref_top(u8g_t *u8g) -{ - u8g_uint_t tmp; - /* reference pos is one pixel above the upper edge of the reference glyph */ - - /* - y += (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - y++; - */ - tmp = (u8g_uint_t)(u8g_int_t)(u8g->font_ref_ascent); - tmp++; - return tmp; -} - -void u8g_SetFontPosTop(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_top; -} - -u8g_uint_t u8g_font_calc_vref_center(u8g_t *u8g) -{ - int8_t tmp; - tmp = u8g->font_ref_ascent; - tmp -= u8g->font_ref_descent; - tmp /= 2; - tmp += u8g->font_ref_descent; - /* y += (u8g_uint_t)(u8g_int_t)(tmp); */ - return tmp; -} - -void u8g_SetFontPosCenter(u8g_t *u8g) -{ - u8g->font_calc_vref = u8g_font_calc_vref_center; -} - -/*========================================================================*/ -/* string pixel width calculation */ - -char u8g_font_get_char(const void *s) -{ - return *(const char *)(s); -} - -char u8g_font_get_charP(const void *s) -{ - return u8g_pgm_read(s); -} - -typedef char (*u8g_font_get_char_fn)(const void *s); - - -u8g_uint_t u8g_font_calc_str_pixel_width(u8g_t *u8g, const char *s, u8g_font_get_char_fn get_char ) -{ - u8g_uint_t w; - uint8_t enc; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - w = 0; - - enc = get_char(s); - - /* check for empty string, width is already 0 */ - if ( enc == '\0' ) - { - 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 */ - u8g_GetGlyph(u8g, enc); - - /* 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 = -u8g->glyph_x; - for(;;) - { - - /* check and stop if the end of the string is reached */ - s++; - if ( get_char(s) == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - w += u8g->glyph_dx; - - /* store the encoding in a local variable, used also after the for(;;) loop */ - enc = get_char(s); - - /* load the next glyph information */ - u8g_GetGlyph(u8g, enc); - } - - /* 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 += u8g->glyph_width; - w += u8g->glyph_x; - } - else - { - w += u8g->glyph_dx; - } - - - return w; -} - -u8g_uint_t u8g_GetStrPixelWidth(u8g_t *u8g, const char *s) -{ - return u8g_font_calc_str_pixel_width(u8g, s, u8g_font_get_char); -} - -u8g_uint_t u8g_GetStrPixelWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - return u8g_font_calc_str_pixel_width(u8g, (const char *)s, u8g_font_get_charP); -} - -int8_t u8g_GetStrX(u8g_t *u8g, const char *s) -{ - u8g_GetGlyph(u8g, *s); - return u8g->glyph_x; -} - -int8_t u8g_GetStrXP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_GetGlyph(u8g, u8g_pgm_read(s)); - return u8g->glyph_x; -} - -/*========================================================================*/ -/* string width calculation */ - -u8g_uint_t u8g_GetStrWidth(u8g_t *u8g, const char *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = *s; - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -u8g_uint_t u8g_GetStrWidthP(u8g_t *u8g, const u8g_pgm_uint8_t *s) -{ - u8g_uint_t w; - uint8_t encoding; - - /* reset the total width to zero, this will be expanded during calculation */ - w = 0; - - for(;;) - { - encoding = u8g_pgm_read(s); - if ( encoding == 0 ) - break; - - /* load glyph information */ - u8g_GetGlyph(u8g, encoding); - w += u8g->glyph_dx; - - /* goto next char */ - s++; - } - - return w; -} - - -/*========================================================================*/ -/* calculation of font/glyph/string characteristics */ - - -/* - Description: - Calculate parameter for the minimal bounding box on a given string - Output - buf->y_min extend of the lower left edge if the string below (y_min<0) or above (y_min>0) baseline (descent) - buf->y_max extend of the upper left edge if the string below (y_min<0) or above (y_min>0) baseline (ascent) - buf->w the width of the string -*/ -struct u8g_str_size_struct -{ - int8_t y_min; /* descent */ - int8_t y_max; /* ascent */ - int8_t x, y; /* the reference point of the font (negated!) */ - u8g_uint_t w; /* width of the overall string */ -}; -typedef struct u8g_str_size_struct u8g_str_size_t; - -static void u8g_font_calc_str_min_box(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - /* u8g_glyph_t g; */ - int8_t tmp; - - /* reset the total minimal width to zero, this will be expanded during calculation */ - buf->w = 0; - - /* check for empty string, width is already 0, but also reset y_min and y_max to 0 */ - if ( *s == '\0' ) - { - buf->y_min = 0; - buf->y_max = 0; - buf->x = 0; - buf->y = 0; - return; - } - - /* reset y_min to the largest possible value. Later we search for the smallest value */ - /* y_min contains the position [pixel] of the lower left edge of the glyph above (y_min>0) or below (y_min<0) baseline */ - buf->y_min = 127; - /* reset y_max to the smallest possible value. Later we search for the highest value */ - /* y_max contains the position [pixel] of the upper left edge of the glyph above (y_max>0) or below (y_max<0) baseline */ - buf->y_max = -128; - - /* get the glyph information of the first char. This must be valid, because we already checked for the empty string */ - u8g_GetGlyph(u8g, *s); - - /* 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 */ - // buf->w = - u8g_font_GetGlyphBBXOffX(u8g->font, g); - buf->w = - u8g->glyph_x; - - /* Also copy the position of the first glyph. This is the reference point of the string (negated) */ - buf->x = u8g->glyph_x; - buf->y = u8g->glyph_y; - - for(;;) - { - - /* calculated y position of the upper left corner (y_max) and lower left corner (y_min) of the string */ - /* relative to the base line */ - - tmp = u8g->glyph_y; - if ( buf->y_min > tmp ) - buf->y_min = tmp; - - tmp +=u8g->glyph_height; - if ( buf->y_max < tmp ) - buf->y_max = tmp; - - /* check and stop if the end of the string is reached */ - s++; - if ( *s == '\0' ) - break; - - /* if there are still more characters, add the delta to the next glyph */ - buf->w += u8g->glyph_dx; - - /* load the next glyph information */ - u8g_GetGlyph(u8g, *s); - } - - /* finally calculate the width of the last char */ - /* if g was not updated in the for loop (strlen() == 1), then the initial offset x gets removed */ - buf->w += u8g->glyph_width; - // buf->w += u8g_font_GetGlyphBBXOffX(u8g->font, g); - - buf->w += u8g->glyph_x; -} - -/* calculate minimal box */ -void u8g_font_box_min(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - u8g_font_calc_str_min_box(u8g, s, buf); -} - -/* calculate gA box, but do not calculate the overall width */ -void u8g_font_box_left_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - -/* calculate gA box, including overall width */ -void u8g_font_box_all_gA(u8g_t *u8g, const char *s, u8g_str_size_t *buf) -{ - -} - - -static void u8g_font_get_str_box_fill_args(u8g_t *u8g, const char *s, u8g_str_size_t *buf, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - /* - u8g_glyph_t g; - g = - */ - u8g_GetGlyph(u8g, *s); - *x += u8g->glyph_x; - *width = buf->w; - *y -= buf->y_max; - /* +1 because y_max is a height, this compensates the next step */ - //*y += 1; - /* because the reference point is one below the string, this compensates the previous step */ - //*y -= 1; - *height = buf->y_max; - *height -= buf->y_min; -} - - -void u8g_GetStrMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - u8g_font_calc_str_min_box(u8g, s, &buf); - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - - -void u8g_GetStrAMinBox(u8g_t *u8g, const char *s, u8g_uint_t *x, u8g_uint_t *y, u8g_uint_t *width, u8g_uint_t *height) -{ - u8g_str_size_t buf; - uint8_t cap_a; - - if ( *s == '\0' ) - { - *width= 0; - *height = 0; - return; - } - - cap_a = u8g_font_GetCapitalAHeight(u8g->font); - u8g_font_calc_str_min_box(u8g, s, &buf); - if ( buf.y_max < cap_a ) - buf.y_max = cap_a; - u8g_font_get_str_box_fill_args(u8g, s, &buf, x, y, width, height); -} - -void u8g_SetFont(u8g_t *u8g, const u8g_fntpgm_uint8_t *font) -{ - if ( u8g->font != font ) - { - u8g->font = font; - u8g_UpdateRefHeight(u8g); - u8g_SetFontPosBaseline(u8g); - } -} - -/*========================================================================*/ -/* anti aliasing fonts */ - -int8_t u8g_draw_aa_glyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - const u8g_pgm_uint8_t *data; - uint8_t w, h; - uint8_t i, j; - u8g_uint_t ix, iy; - - { - u8g_glyph_t g = u8g_GetGlyph(u8g, encoding); - if ( g == NULL ) - return 0; - data = u8g_font_GetGlyphDataStart(u8g->font, g); - } - - w = u8g->glyph_width; - h = u8g->glyph_height; - - x += u8g->glyph_x; - y -= u8g->glyph_y; - y--; - - if ( u8g_IsBBXIntersection(u8g, x, y-h+1, w, h) == 0 ) - return u8g->glyph_dx; - - /* now, w is reused as bytes per line */ - w += 3; - w /= 4; - - iy = y; - iy -= h; - iy++; - - for( j = 0; j < h; j++ ) - { - ix = x; - for( i = 0; i < w; i++ ) - { - u8g_Draw4TPixel(u8g, ix, iy, 0, u8g_pgm_read(data)); - data++; - ix+=4; - } - iy++; - } - return u8g->glyph_dx; -} - -int8_t u8g_DrawAAGlyph(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t encoding) -{ - y += u8g->font_calc_vref(u8g); - return u8g_draw_aa_glyph(u8g, x, y, encoding); -} - -u8g_uint_t u8g_DrawAAStr(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, const char *s) -{ - u8g_uint_t t = 0; - int8_t d; - - if ( u8g_font_GetFormat(u8g->font) != 2 ) - return 0; - //u8g_uint_t u8g_GetStrWidth(u8g, s); - //u8g_font_GetFontAscent(u8g->font)-u8g_font_GetFontDescent(u8g->font); - - y += u8g->font_calc_vref(u8g); - - while( *s != '\0' ) - { - d = u8g_draw_aa_glyph(u8g, x, y, *s); - x += d; - t += d; - s++; - } - return t; -} diff --git a/app/u8glib/u8g_font_data.c b/app/u8glib/u8g_font_data.c deleted file mode 100644 index e7ffd5f474..0000000000 --- a/app/u8glib/u8g_font_data.c +++ /dev/null @@ -1,87700 +0,0 @@ -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03b[826] U8G_FONT_SECTION("u8g_font_04b_03b") = { - 1,5,6,0,255,5,0,250,1,240,32,255,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,2,0,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03bn[136] U8G_FONT_SECTION("u8g_font_04b_03bn") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,240,144,144,144,240,2,37,53,192,64,64, - 64,64,2,69,85,240,16,240,128,240,2,69,85,240,16,240, - 16,240,2,69,85,144,144,144,240,16,2,69,85,240,128,240, - 16,240,2,69,85,224,128,240,144,240,2,69,85,240,16,32, - 64,64,2,69,85,240,144,240,144,240,2,69,85,240,144,240, - 16,112,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03b-Medium-R-Normal--8-80-72-72-P-39-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03br[696] U8G_FONT_SECTION("u8g_font_04b_03br") = { - 1,5,6,0,255,5,0,250,1,240,32,127,255,5,255,5, - 255,2,0,48,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,2,69,85,112,160,240,80, - 224,2,85,101,200,208,32,88,152,2,85,101,224,128,248,144, - 240,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 85,101,8,16,32,64,128,2,69,85,240,144,144,144,240,2, - 37,53,192,64,64,64,64,2,69,85,240,16,240,128,240,2, - 69,85,240,16,240,16,240,2,69,85,144,144,144,240,16,2, - 69,85,240,128,240,16,240,2,69,85,224,128,240,144,240,2, - 69,85,240,16,32,64,64,2,69,85,240,144,240,144,240,2, - 69,85,240,144,240,16,112,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,69,85,240,16,112, - 0,64,2,85,101,248,136,184,168,240,2,69,85,240,144,240, - 144,144,2,69,85,224,160,240,144,240,2,69,85,240,128,128, - 128,240,2,69,85,224,144,144,144,224,2,69,85,240,128,240, - 128,240,2,69,85,240,128,240,128,128,2,69,85,240,128,176, - 144,240,2,69,85,144,144,240,144,144,2,53,69,224,64,64, - 64,224,2,69,85,48,16,16,144,240,2,69,85,144,144,224, - 144,144,2,69,85,128,128,128,128,240,2,85,101,248,168,168, - 168,168,2,69,85,144,208,176,144,144,2,69,85,240,144,144, - 144,240,2,69,85,240,144,144,240,128,2,69,85,240,144,144, - 176,240,2,69,85,240,144,240,160,176,2,69,85,240,128,240, - 16,240,2,53,69,224,64,64,64,64,2,69,85,144,144,144, - 144,240,2,69,85,144,144,160,160,64,2,85,101,168,168,168, - 168,248,2,69,85,144,144,96,144,144,2,69,85,144,144,240, - 16,240,2,69,85,240,16,96,128,240,2,37,53,192,128,128, - 128,192,2,85,101,128,64,32,16,8,2,37,53,192,64,64, - 64,192,5,50,66,64,160,2,65,81,240,5,34,50,128,64, - 2,67,83,112,144,240,2,68,84,128,240,144,240,2,51,67, - 224,128,224,2,68,84,16,240,144,240,2,67,83,240,160,112, - 2,68,84,112,64,240,64,1,68,84,240,144,240,32,2,68, - 84,128,240,144,144,2,20,36,128,0,128,128,1,21,37,128, - 0,128,128,128,2,68,84,128,144,224,144,2,20,36,128,128, - 128,128,2,83,99,248,168,168,2,67,83,240,144,144,2,67, - 83,240,144,240,1,68,84,240,144,240,128,1,68,84,240,144, - 240,16,2,51,67,224,128,128,2,67,83,240,64,240,2,52, - 68,64,224,64,96,2,67,83,144,144,240,2,67,83,144,144, - 96,2,83,99,168,168,248,2,51,67,160,64,160,1,68,84, - 144,144,240,16,2,67,83,240,32,240,2,53,69,96,64,128, - 64,96,2,21,37,128,128,128,128,128,2,53,69,192,64,32, - 64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03[859] U8G_FONT_SECTION("u8g_font_04b_03") = { - 1,5,7,0,254,5,0,251,1,242,32,255,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,0,64,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03n[136] U8G_FONT_SECTION("u8g_font_04b_03n") = { - 1,5,7,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,85,101,8,16,32, - 64,128,2,69,85,96,144,144,144,96,2,37,53,192,64,64, - 64,64,2,69,85,224,16,96,128,240,2,69,85,224,16,96, - 16,224,2,69,85,32,96,160,240,32,2,69,85,240,128,224, - 16,224,2,69,85,96,128,224,144,96,2,69,85,240,16,32, - 64,64,2,69,85,96,144,96,144,96,2,69,85,96,144,112, - 16,96,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b03-Medium-R-Normal--8-80-72-72-P-38-ISO10646-1 - Copyright: 19992003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 5 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_03r[729] U8G_FONT_SECTION("u8g_font_04b_03r") = { - 1,5,7,0,254,5,0,251,1,242,32,127,254,5,254,5, - 254,2,0,64,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,85,101,80,248,80,248,80,1,70,86,32,112,192,48, - 224,32,2,85,101,144,16,32,64,72,2,85,101,96,128,104, - 144,104,5,18,34,128,128,2,37,53,64,128,128,128,64,2, - 37,53,128,64,64,64,128,4,51,67,160,64,160,3,51,67, - 64,224,64,1,34,50,64,128,4,49,65,224,2,17,33,128, - 2,85,101,8,16,32,64,128,2,69,85,96,144,144,144,96, - 2,37,53,192,64,64,64,64,2,69,85,224,16,96,128,240, - 2,69,85,224,16,96,16,224,2,69,85,32,96,160,240,32, - 2,69,85,240,128,224,16,224,2,69,85,96,128,224,144,96, - 2,69,85,240,16,32,64,64,2,69,85,96,144,96,144,96, - 2,69,85,96,144,112,16,96,3,19,35,128,0,128,2,20, - 36,128,0,128,128,2,53,69,32,64,128,64,32,3,51,67, - 224,0,224,2,53,69,128,64,32,64,128,2,69,85,224,16, - 96,0,64,2,85,101,112,136,184,168,112,2,69,85,96,144, - 144,240,144,2,69,85,224,144,224,144,224,2,53,69,96,128, - 128,128,96,2,69,85,224,144,144,144,224,2,53,69,224,128, - 224,128,224,2,53,69,224,128,224,128,128,2,69,85,112,128, - 176,144,112,2,69,85,144,144,240,144,144,2,53,69,224,64, - 64,64,224,2,69,85,48,16,16,144,96,2,69,85,144,160, - 192,160,144,2,53,69,128,128,128,128,224,2,85,101,136,216, - 168,136,136,2,69,85,144,208,176,144,144,2,69,85,96,144, - 144,144,96,2,69,85,224,144,144,224,128,1,70,86,96,144, - 144,144,96,16,2,69,85,224,144,144,224,144,2,69,85,112, - 128,96,16,224,2,53,69,224,64,64,64,64,2,69,85,144, - 144,144,144,96,2,69,85,144,144,160,160,64,2,85,101,136, - 168,168,168,80,2,69,85,144,144,96,144,144,2,69,85,144, - 144,112,16,96,2,53,69,224,32,64,128,224,2,37,53,192, - 128,128,128,192,2,85,101,128,64,32,16,8,2,37,53,192, - 64,64,64,192,5,50,66,64,160,2,65,81,240,5,34,50, - 128,64,2,68,84,112,144,144,112,2,69,85,128,224,144,144, - 224,2,52,68,96,128,128,96,2,69,85,16,112,144,144,112, - 2,68,84,96,176,192,96,2,53,69,32,64,224,64,64,0, - 70,86,112,144,144,112,16,96,2,69,85,128,224,144,144,144, - 2,21,37,128,0,128,128,128,0,39,55,64,0,64,64,64, - 64,128,2,69,85,128,144,160,224,144,2,21,37,128,128,128, - 128,128,2,84,100,240,168,168,168,2,68,84,224,144,144,144, - 2,68,84,96,144,144,96,0,70,86,224,144,144,224,128,128, - 0,70,86,112,144,144,112,16,16,2,52,68,160,192,128,128, - 2,68,84,112,192,48,224,2,53,69,64,224,64,64,32,2, - 68,84,144,144,144,112,2,68,84,144,144,160,64,2,84,100, - 168,168,80,80,2,52,68,160,64,64,160,0,70,86,144,144, - 144,112,16,96,2,68,84,240,32,64,240,2,53,69,96,64, - 128,64,96,2,21,37,128,128,128,128,128,2,53,69,192,64, - 32,64,192,5,66,82,80,160,255}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24[912] U8G_FONT_SECTION("u8g_font_04b_24") = { - 1,5,6,0,255,5,0,250,1,241,32,255,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,37,53,128,64,64,64,64,2,53,69,160,160,160,96,32, - 2,53,69,192,32,192,32,192,255,255,255,2,53,69,128,192, - 160,160,64,255,255,2,53,69,64,160,160,96,32,255,255,255, - 255,255,255,255,255,255,255,255,2,53,69,224,32,32,64,128, - 255,255,255,2,53,69,64,160,160,160,64,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255 - }; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24n[136] U8G_FONT_SECTION("u8g_font_04b_24n") = { - 1,5,6,0,255,5,0,0,0,0,42,58,0,5,255,5, - 0,4,51,67,160,64,160,3,51,67,64,224,64,1,34,50, - 64,128,4,49,65,224,2,17,33,128,2,53,69,32,32,64, - 128,128,2,53,69,224,160,160,160,224,2,37,53,192,64,64, - 64,64,2,53,69,224,32,224,128,224,2,53,69,224,32,224, - 32,224,2,53,69,160,160,160,224,32,2,53,69,224,128,224, - 32,224,2,53,69,128,224,160,160,224,2,53,69,224,32,32, - 64,128,2,53,69,224,160,224,160,224,2,53,69,224,160,160, - 224,32,3,19,35,128,0,128}; -/* - Fontname: -FreeType-04b24-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: 20002003 / yuji oshimo�o / 04@dsg4.com / www.04.jp.org - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 6 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_04b_24r[735] U8G_FONT_SECTION("u8g_font_04b_24r") = { - 1,5,6,0,255,5,0,250,1,241,32,127,0,5,255,5, - 0,2,0,32,2,21,37,128,128,128,0,128,5,50,66,160, - 160,2,53,69,64,224,64,224,64,2,53,69,96,192,64,96, - 192,2,53,69,160,32,64,128,160,2,69,85,96,128,112,160, - 96,5,18,34,128,128,2,37,53,64,128,128,128,64,2,37, - 53,128,64,64,64,128,4,51,67,160,64,160,3,51,67,64, - 224,64,1,34,50,64,128,4,49,65,224,2,17,33,128,2, - 53,69,32,32,64,128,128,2,53,69,224,160,160,160,224,2, - 37,53,192,64,64,64,64,2,53,69,224,32,224,128,224,2, - 53,69,224,32,224,32,224,2,53,69,160,160,160,224,32,2, - 53,69,224,128,224,32,224,2,53,69,128,224,160,160,224,2, - 53,69,224,32,32,64,128,2,53,69,224,160,224,160,224,2, - 53,69,224,160,160,224,32,3,19,35,128,0,128,2,20,36, - 128,0,128,128,2,53,69,32,64,128,64,32,3,51,67,224, - 0,224,2,53,69,128,64,32,64,128,2,53,69,224,32,96, - 0,64,2,85,101,112,136,232,168,96,2,53,69,224,160,160, - 224,160,2,53,69,224,160,224,160,224,2,53,69,224,128,128, - 128,224,2,53,69,192,160,160,160,224,2,53,69,224,128,224, - 128,224,2,53,69,224,128,224,128,128,2,53,69,224,128,160, - 160,224,2,53,69,160,160,224,160,160,2,21,37,128,128,128, - 128,128,2,53,69,32,32,160,160,224,2,53,69,160,160,192, - 160,160,2,53,69,128,128,128,128,224,2,53,69,160,224,160, - 160,160,2,53,69,224,160,160,160,160,2,53,69,224,160,160, - 160,224,2,53,69,224,160,160,224,128,1,54,70,224,160,160, - 160,224,64,2,53,69,224,160,160,192,160,2,53,69,224,128, - 224,32,224,2,53,69,224,64,64,64,64,2,53,69,160,160, - 160,160,224,2,53,69,160,160,160,160,192,2,53,69,160,160, - 160,224,160,2,53,69,160,160,64,160,160,2,53,69,160,160, - 64,64,64,2,53,69,224,32,64,128,224,2,37,53,192,128, - 128,128,192,2,53,69,128,128,64,32,32,2,37,53,192,64, - 64,64,192,5,50,66,64,160,2,49,65,224,5,34,50,128, - 64,2,53,69,64,160,160,224,160,2,53,69,192,160,192,160, - 192,2,53,69,96,128,128,128,96,2,53,69,192,160,160,160, - 192,2,53,69,96,128,224,128,96,2,53,69,96,128,224,128, - 128,2,53,69,96,128,160,160,96,2,53,69,160,160,224,160, - 160,2,21,37,128,128,128,128,128,2,53,69,32,32,160,160, - 64,2,53,69,160,160,192,160,160,2,53,69,128,128,128,128, - 96,2,53,69,160,224,160,160,160,2,53,69,192,160,160,160, - 160,2,53,69,64,160,160,160,64,2,53,69,192,160,160,192, - 128,1,54,70,64,160,160,160,64,64,2,53,69,192,160,160, - 192,160,2,53,69,96,128,64,32,192,2,53,69,224,64,64, - 64,64,2,53,69,160,160,160,160,64,2,53,69,160,160,160, - 160,192,2,53,69,160,160,160,224,160,2,53,69,160,160,64, - 160,160,2,53,69,160,160,64,64,64,2,53,69,224,32,64, - 128,224,2,53,69,96,64,192,64,96,2,21,37,128,128,128, - 128,128,2,53,69,192,64,96,64,192,6,33,49,192,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 13 - Calculated Max Values w=10 h=20 x= 9 y=13 dx=10 dy= 0 ascent=16 len=40 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_67_75[4734] U8G_FONT_SECTION("u8g_font_10x20_67_75") = { - 0,10,20,0,252,5,2,211,5,193,32,255,0,16,252,13, - 0,9,6,12,10,0,3,54,0,27,0,255,128,255,128,27, - 0,54,0,8,13,13,10,1,0,24,24,24,24,153,219,126, - 60,153,219,126,60,24,9,8,16,10,0,2,25,128,51,0, - 102,0,252,0,252,0,102,0,51,0,25,128,9,8,16,10, - 0,2,204,0,102,0,51,0,31,128,31,128,51,0,102,0, - 204,0,9,8,16,10,0,2,25,128,49,128,97,128,255,128, - 255,128,97,128,49,128,25,128,8,13,13,10,1,0,24,60, - 126,219,153,24,24,24,24,24,24,255,255,9,8,16,10,0, - 2,204,0,198,0,195,0,255,128,255,128,195,0,198,0,204, - 0,8,13,13,10,1,0,255,255,24,24,24,24,24,24,153, - 219,126,60,24,8,13,13,10,1,0,24,60,126,219,153,24, - 153,219,126,60,24,255,255,9,8,16,10,0,2,27,0,51, - 128,97,128,255,128,255,0,96,0,48,0,24,0,9,8,16, - 10,0,2,108,0,230,0,195,0,255,128,127,128,3,0,6, - 0,12,0,9,8,16,10,0,2,25,0,51,128,98,128,255, - 128,255,0,98,0,50,0,24,0,9,8,16,10,0,2,76, - 0,230,0,163,0,255,128,127,128,35,0,38,0,12,0,10, - 8,16,10,0,2,18,0,51,0,109,128,255,192,243,192,97, - 128,51,0,18,0,10,8,16,10,0,2,18,0,55,0,101, - 128,255,192,255,192,105,128,59,0,18,0,10,15,30,10,0, - 0,1,192,3,128,7,0,14,0,28,0,63,192,127,192,3, - 128,7,0,206,0,220,0,248,0,240,0,252,0,252,0,8, - 13,13,10,1,0,48,96,255,255,99,51,3,3,3,3,3, - 3,3,8,13,13,10,1,0,12,6,255,255,198,204,192,192, - 192,192,192,192,192,8,13,13,10,1,0,3,3,3,3,3, - 3,3,51,99,255,255,96,48,8,13,13,10,1,0,192,192, - 192,192,192,192,192,204,198,255,255,6,12,8,13,13,10,1, - 0,252,252,12,12,12,12,12,12,12,45,63,30,12,8,9, - 9,10,1,1,3,3,3,51,99,255,255,96,48,9,8,16, - 10,0,0,14,0,31,0,59,128,49,128,181,128,253,128,121, - 128,49,128,9,8,16,10,0,0,56,0,124,0,238,0,198, - 0,214,128,223,128,207,0,198,0,9,13,26,10,0,0,255, - 128,255,128,32,0,124,0,127,0,122,0,216,0,204,0,140, - 0,6,0,6,0,3,0,3,0,9,13,26,10,0,0,204, - 0,216,0,255,128,255,128,216,0,204,0,0,0,25,128,13, - 128,255,128,255,128,13,128,25,128,9,10,20,10,0,2,31, - 0,31,0,30,0,31,0,219,128,193,128,193,128,227,128,127, - 0,62,0,9,10,20,10,0,2,124,0,124,0,60,0,124, - 0,237,128,193,128,193,128,227,128,127,0,62,0,9,5,10, - 10,0,5,24,0,48,0,96,0,255,128,255,128,9,5,10, - 10,0,2,255,128,255,128,96,0,48,0,24,0,5,13,13, - 10,4,0,192,224,240,216,200,192,192,192,192,192,192,192,192, - 5,13,13,10,1,0,24,56,120,216,152,24,24,24,24,24, - 24,24,24,9,5,10,10,0,5,12,0,6,0,3,0,255, - 128,255,128,9,5,10,10,0,2,255,128,255,128,3,0,6, - 0,12,0,5,13,13,10,4,0,192,192,192,192,192,192,192, - 192,200,216,240,224,192,5,13,13,10,1,0,24,24,24,24, - 24,24,24,24,152,216,120,56,24,9,11,22,10,0,1,6, - 0,3,0,255,128,255,128,3,0,54,0,96,0,255,128,255, - 128,96,0,48,0,10,13,26,10,0,0,51,0,123,0,255, - 0,183,0,51,0,51,0,51,0,51,0,51,0,59,64,63, - 192,55,128,51,0,9,11,22,10,0,1,48,0,96,0,255, - 128,255,128,96,0,54,0,3,0,255,128,255,128,3,0,6, - 0,9,11,22,10,0,1,48,0,96,0,255,128,255,128,96, - 0,48,0,96,0,255,128,255,128,96,0,48,0,9,13,26, - 10,0,0,34,0,119,0,170,128,34,0,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,9,11,22, - 10,0,1,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,13,26,10,0,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,34,0,170,128,119,0,34,0,8,9,9,10,1,2,48, - 96,255,255,0,255,255,6,12,8,9,9,10,1,2,12,6, - 255,255,0,255,255,96,48,8,7,7,10,1,2,2,34,127, - 132,127,40,8,10,7,14,10,0,2,4,0,37,0,127,128, - 140,64,127,128,41,0,8,0,8,7,7,10,1,2,16,20, - 254,33,254,68,64,9,9,18,10,0,2,12,0,24,0,63, - 128,127,128,192,0,127,128,63,128,24,0,12,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,54,0,54,0,54,0,54,0,54,0,54,0,9,9,18, - 10,0,2,24,0,12,0,254,0,255,0,1,128,255,0,254, - 0,12,0,24,0,9,13,26,10,0,0,54,0,54,0,54, - 0,54,0,54,0,54,0,54,0,182,128,247,128,119,0,54, - 0,28,0,8,0,10,9,18,10,0,2,18,0,51,0,127, - 128,255,192,128,192,255,192,127,128,51,0,18,0,9,13,26, - 10,0,0,8,0,28,0,54,0,119,0,247,128,182,128,54, - 0,182,128,247,128,119,0,54,0,28,0,8,0,9,9,18, - 10,0,2,254,0,254,0,204,0,198,0,227,0,241,128,216, - 128,12,0,6,0,9,9,18,10,0,2,63,128,63,128,25, - 128,49,128,99,128,199,128,141,128,24,0,48,0,9,9,18, - 10,0,2,48,0,24,0,141,128,199,128,99,128,49,128,25, - 128,63,128,63,128,9,9,18,10,0,2,6,0,12,0,216, - 128,241,128,227,0,198,0,204,0,254,0,254,0,9,11,22, - 10,0,1,4,0,8,0,16,0,63,128,64,0,255,128,64, - 0,63,128,16,0,8,0,4,0,9,11,22,10,0,1,16, - 0,8,0,4,0,254,0,1,0,255,128,1,0,254,0,4, - 0,8,0,16,0,9,5,10,10,0,3,32,0,66,0,245, - 128,72,0,32,0,9,5,10,10,0,3,2,0,33,0,215, - 128,9,0,2,0,8,13,13,10,1,0,24,60,126,219,153, - 24,126,126,24,126,126,24,24,8,13,13,10,1,0,24,24, - 126,126,24,126,126,24,153,219,126,60,24,9,8,16,10,0, - 2,24,0,48,0,96,0,237,128,237,128,96,0,48,0,24, - 0,8,13,13,10,1,0,24,60,126,219,129,24,24,0,24, - 24,0,24,24,9,8,16,10,0,2,12,0,6,0,3,0, - 219,128,219,128,3,0,6,0,12,0,8,13,13,10,1,0, - 24,24,0,24,24,0,24,24,129,219,126,60,24,9,8,16, - 10,0,2,198,0,204,0,216,0,255,128,255,128,216,0,204, - 0,198,0,9,8,16,10,0,2,49,128,25,128,13,128,255, - 128,255,128,13,128,25,128,49,128,9,8,16,10,0,2,24, - 0,40,0,79,128,128,128,128,128,79,128,40,0,24,0,8, - 13,13,10,1,0,24,36,66,129,231,36,36,36,36,36,36, - 36,60,9,8,16,10,0,2,12,0,10,0,249,0,128,128, - 128,128,249,0,10,0,12,0,8,13,13,10,1,0,60,36, - 36,36,36,36,36,36,231,129,66,36,24,8,13,13,10,1, - 0,24,36,66,129,231,36,36,60,0,60,36,36,60,8,13, - 13,10,1,0,24,36,66,129,231,36,36,36,36,36,231,129, - 255,8,13,13,10,1,0,24,36,126,129,231,36,36,36,36, - 36,231,129,255,9,14,28,10,0,0,8,0,28,0,42,0, - 73,0,136,128,235,128,42,0,42,0,42,0,42,0,42,0, - 235,128,136,128,255,128,8,13,13,10,1,0,24,36,90,231, - 66,231,36,36,36,36,36,36,60,8,13,13,10,1,0,24, - 36,90,231,66,231,36,36,36,36,231,129,255,9,8,16,10, - 0,2,236,0,170,0,185,0,128,128,128,128,185,0,170,0, - 236,0,8,8,8,10,1,2,255,128,188,168,184,164,130,129, - 8,8,8,10,1,2,129,65,37,29,21,61,1,255,8,13, - 13,10,1,0,24,36,66,231,36,36,36,36,36,231,66,36, - 24,9,6,12,10,0,3,38,0,83,0,255,128,255,128,83, - 0,38,0,10,13,26,10,0,0,51,0,55,128,63,192,59, - 64,51,0,51,0,51,0,51,0,51,0,183,0,255,0,123, - 0,51,0,9,16,32,10,0,254,6,0,3,0,255,128,255, - 128,3,0,6,0,3,0,255,128,255,128,3,0,6,0,3, - 0,255,128,255,128,3,0,6,0,9,8,16,10,0,2,22, - 0,54,0,102,0,255,128,255,128,102,0,54,0,22,0,9, - 8,16,10,0,2,52,0,54,0,51,0,255,128,255,128,51, - 0,54,0,52,0,10,6,12,10,0,3,45,0,109,128,255, - 192,255,192,109,128,45,0,9,6,12,10,0,3,42,0,106, - 0,255,128,255,128,106,0,42,0,9,6,12,10,0,3,42, - 0,43,0,255,128,255,128,43,0,42,0,9,6,12,10,0, - 3,85,0,213,128,255,128,255,128,213,128,85,0,9,8,16, - 10,0,2,16,0,48,0,112,0,223,128,223,128,112,0,48, - 0,16,0,9,8,16,10,0,2,4,0,6,0,7,0,253, - 128,253,128,7,0,6,0,4,0,10,8,16,10,0,2,18, - 0,51,0,115,128,222,192,222,192,115,128,51,0,18,0,10, - 10,20,10,0,6,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,10,3,6,10,0,252,255, - 192,255,192,255,192,10,5,10,10,0,252,255,192,255,192,255, - 192,255,192,255,192,10,8,16,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,10,10,20,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,12,24,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,15,30,10,0,252,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,10,17,34,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,10, - 20,40,10,0,252,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,9,20,40, - 10,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,7,20,20,10,0, - 252,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, - 254,254,254,254,254,6,20,20,10,0,252,252,252,252,252,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 20,20,10,0,252,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,4,20,20,10,0,252,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,3,20,20,10,0,252,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,1,20,20, - 10,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,5,20,20,10,5,252,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,10,19,38,10,0,253,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,0,0,85, - 64,0,0,170,128,0,0,85,64,0,0,170,128,10,20,40, - 10,0,252,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,85,64,170,128,85, - 64,170,128,85,64,170,128,85,64,170,128,10,20,40,10,0, - 252,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,85,64,255,192,170,128,255, - 192,85,64,255,192,170,128,255,192,10,3,6,10,0,13,255, - 192,255,192,255,192,1,20,20,10,9,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,5, - 10,10,10,0,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,5,252,248,248,248,248,248,248,248,248,248,248,5, - 10,10,10,0,6,248,248,248,248,248,248,248,248,248,248,10, - 20,40,10,0,252,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,192,255,192,255,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,10,20,40, - 10,0,252,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,10,20,40,10,0, - 252,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,255,192,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,10,20,40,10,0,252,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,5,10,10,10,5,6,248,248,248, - 248,248,248,248,248,248,248,10,20,40,10,0,252,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,10,20,40,10,0,252,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,255, - 192,255,192,255,192,255,192,255,192,255,192,255,192,255,192,255, - 192,255,192,8,8,8,10,1,1,255,255,255,255,255,255,255, - 255,8,8,8,10,1,1,255,129,129,129,129,129,129,255,8, - 8,8,10,1,1,126,129,129,129,129,129,129,126,8,8,8, - 10,1,1,255,129,189,189,189,189,129,255,9,9,18,10,0, - 0,255,128,128,128,255,128,128,128,255,128,128,128,255,128,128, - 128,255,128,9,9,18,10,0,0,255,128,170,128,170,128,170, - 128,170,128,170,128,170,128,170,128,255,128,9,9,18,10,0, - 0,255,128,170,128,255,128,170,128,255,128,170,128,255,128,170, - 128,255,128,8,8,8,10,1,1,255,201,165,147,201,165,147, - 255,8,8,8,10,1,1,255,147,165,201,147,165,201,255,8, - 8,8,10,1,1,255,171,197,171,145,171,197,255,4,4,4, - 10,3,3,240,240,240,240,4,4,4,10,3,3,240,144,144, - 240,8,6,6,10,1,3,255,255,255,255,255,255,8,6,6, - 10,1,3,255,129,129,129,129,255,6,13,13,10,2,0,252, - 252,252,252,252,252,252,252,252,252,252,252,252,6,13,13,10, - 2,0,252,132,132,132,132,132,132,132,132,132,132,132,252,8, - 4,4,10,1,3,31,62,124,248,8,4,4,10,1,3,31, - 34,68,248,8,8,8,10,1,2,24,24,60,60,126,126,255, - 255,8,8,8,10,1,2,24,24,36,36,66,66,129,255,5, - 5,5,10,3,3,32,112,112,248,248,5,5,5,10,3,3, - 32,80,80,136,248,8,8,8,10,1,2,192,240,252,255,255, - 252,240,192,8,8,8,10,1,2,192,176,140,131,131,140,176, - 192,5,5,5,10,3,3,192,240,248,240,192,5,5,5,10, - 3,3,192,176,136,176,192,8,5,5,10,1,4,224,252,255, - 252,224,8,5,5,10,1,4,224,156,131,156,224,8,8,8, - 10,1,2,255,255,126,126,60,60,24,24,8,8,8,10,1, - 2,255,129,66,66,36,36,24,24,5,5,5,10,3,3,248, - 248,112,112,32,5,5,5,10,3,3,248,136,80,80,32,8, - 8,8,10,1,2,3,15,63,255,255,63,15,3,8,8,8, - 10,1,2,3,13,49,193,193,49,13,3,5,5,5,10,3, - 3,24,120,248,120,24,5,5,5,10,3,3,24,104,136,104, - 24,8,5,5,10,1,4,7,63,255,63,7,8,5,5,10, - 1,4,7,57,193,57,7,8,8,8,10,1,2,24,60,126, - 255,255,126,60,24,8,8,8,10,1,2,24,36,66,129,129, - 66,36,24,8,8,8,10,1,2,24,36,90,189,189,90,36, - 24,8,8,8,10,1,1,60,66,153,189,189,153,66,60,9, - 15,30,10,1,255,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,65,0,65,0,34,0,34,0,20,0,20, - 0,8,0,8,8,8,10,1,1,60,66,129,129,129,129,66, - 60,7,7,7,10,1,2,40,0,130,0,130,0,40,7,7, - 7,10,1,2,56,108,170,170,170,108,56,8,8,8,10,1, - 1,60,66,153,165,165,153,66,60,8,8,8,10,1,1,60, - 126,255,255,255,255,126,60,8,8,8,10,1,1,60,114,241, - 241,241,241,114,60,8,8,8,10,1,1,60,78,143,143,143, - 143,78,60,8,8,8,10,1,1,60,66,129,129,255,255,126, - 60,8,8,8,10,1,1,60,126,255,255,129,129,66,60,8, - 8,8,10,1,1,60,78,143,143,129,129,66,60,8,8,8, - 10,1,1,60,78,143,143,255,255,126,60,4,8,8,10,1, - 1,48,112,240,240,240,240,112,48,4,8,8,10,5,1,192, - 224,240,240,240,240,224,192,10,20,40,10,0,252,255,192,255, - 192,255,192,255,192,255,192,255,192,225,192,192,192,128,64,128, - 64,128,64,128,64,192,192,225,192,255,192,255,192,255,192,255, - 192,255,192,255,192,10,20,40,10,0,252,255,192,255,192,255, - 192,255,192,255,192,255,192,225,192,222,192,191,64,191,64,191, - 64,191,64,222,192,225,192,255,192,255,192,255,192,255,192,255, - 192,255,192,10,10,20,10,0,6,255,192,255,192,255,192,255, - 192,255,192,255,192,225,192,222,192,191,64,191,64,10,10,20, - 10,0,252,191,64,191,64,222,192,225,192,255,192,255,192,255, - 192,255,192,255,192,255,192,4,4,4,10,1,5,48,64,128, - 128,4,4,4,10,5,5,192,32,16,16,4,4,4,10,5, - 1,16,16,32,192,4,4,4,10,1,1,128,128,64,48,8, - 4,4,10,1,5,60,66,129,129,8,4,4,10,1,1,129, - 129,66,60,10,19,38,10,0,252,0,64,0,64,0,192,0, - 192,1,192,1,192,3,192,3,192,7,192,7,192,15,192,15, - 192,31,192,31,192,63,192,63,192,127,192,127,192,255,192,10, - 19,38,10,0,252,128,0,128,0,192,0,192,0,224,0,224, - 0,240,0,240,0,248,0,248,0,252,0,252,0,254,0,254, - 0,255,0,255,0,255,128,255,128,255,192,10,19,38,10,0, - 253,255,192,255,128,255,128,255,0,255,0,254,0,254,0,252, - 0,252,0,248,0,248,0,240,0,240,0,224,0,224,0,192, - 0,192,0,128,0,128,0,10,19,38,10,0,253,255,192,127, - 192,127,192,63,192,63,192,31,192,31,192,15,192,15,192,7, - 192,7,192,3,192,3,192,1,192,1,192,0,192,0,192,0, - 64,0,64,5,5,5,10,3,4,112,136,136,136,112,8,8, - 8,10,1,1,255,241,241,241,241,241,241,255,8,8,8,10, - 1,1,255,143,143,143,143,143,143,255,8,8,8,10,1,1, - 255,253,249,241,225,193,129,255,8,8,8,10,1,1,255,129, - 131,135,143,159,191,255,9,9,18,10,0,0,255,128,136,128, - 136,128,136,128,136,128,136,128,136,128,136,128,255,128,8,8, - 8,10,1,2,24,24,36,36,90,90,129,255,8,8,8,10, - 1,2,24,24,52,52,114,114,241,255,8,8,8,10,1,2, - 24,24,44,44,78,78,143,255,10,10,20,10,0,0,30,0, - 33,0,64,128,128,64,128,64,128,64,128,64,64,128,33,0, - 30,0,9,9,18,10,0,0,255,128,136,128,136,128,136,128, - 248,128,128,128,128,128,128,128,255,128,9,9,18,10,0,0, - 255,128,128,128,128,128,128,128,248,128,136,128,136,128,136,128, - 255,128,9,9,18,10,0,0,255,128,128,128,128,128,128,128, - 143,128,136,128,136,128,136,128,255,128,9,9,18,10,0,0, - 255,128,136,128,136,128,136,128,143,128,128,128,128,128,128,128, - 255,128,9,9,18,10,0,0,62,0,73,0,136,128,136,128, - 248,128,128,128,128,128,65,0,62,0,9,9,18,10,0,0, - 62,0,65,0,128,128,128,128,248,128,136,128,136,128,73,0, - 62,0,9,9,18,10,0,0,62,0,65,0,128,128,128,128, - 143,128,136,128,136,128,73,0,62,0,9,9,18,10,0,0, - 62,0,73,0,136,128,136,128,143,128,128,128,128,128,65,0, - 62,0,6,6,6,10,2,2,252,136,144,160,192,128,6,6, - 6,10,2,2,252,68,36,20,12,4,6,6,6,10,2,2, - 128,192,160,144,136,252,6,6,6,10,2,2,252,132,132,132, - 132,252,6,6,6,10,2,2,252,252,252,252,252,252,4,4, - 4,10,3,3,240,144,144,240,4,4,4,10,3,3,240,240, - 240,240,6,6,6,10,2,2,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 8, '1' Height: 4 - Calculated Max Values w= 9 h=15 x= 3 y= 4 dx=10 dy= 0 ascent=14 len=30 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =14 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_75r[693] U8G_FONT_SECTION("u8g_font_10x20_75r") = { - 0,10,20,0,252,8,1,219,0,0,32,79,0,14,255,9, - 0,8,8,8,10,1,1,255,255,255,255,255,255,255,255,8, - 8,8,10,1,1,255,129,129,129,129,129,129,255,8,8,8, - 10,1,1,126,129,129,129,129,129,129,126,8,8,8,10,1, - 1,255,129,189,189,189,189,129,255,9,9,18,10,0,0,255, - 128,128,128,255,128,128,128,255,128,128,128,255,128,128,128,255, - 128,9,9,18,10,0,0,255,128,170,128,170,128,170,128,170, - 128,170,128,170,128,170,128,255,128,9,9,18,10,0,0,255, - 128,170,128,255,128,170,128,255,128,170,128,255,128,170,128,255, - 128,8,8,8,10,1,1,255,201,165,147,201,165,147,255,8, - 8,8,10,1,1,255,147,165,201,147,165,201,255,8,8,8, - 10,1,1,255,171,197,171,145,171,197,255,4,4,4,10,3, - 3,240,240,240,240,4,4,4,10,3,3,240,144,144,240,8, - 6,6,10,1,3,255,255,255,255,255,255,8,6,6,10,1, - 3,255,129,129,129,129,255,6,13,13,10,2,0,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,10,2,0, - 252,132,132,132,132,132,132,132,132,132,132,132,252,8,4,4, - 10,1,3,31,62,124,248,8,4,4,10,1,3,31,34,68, - 248,8,8,8,10,1,2,24,24,60,60,126,126,255,255,8, - 8,8,10,1,2,24,24,36,36,66,66,129,255,5,5,5, - 10,3,3,32,112,112,248,248,5,5,5,10,3,3,32,80, - 80,136,248,8,8,8,10,1,2,192,240,252,255,255,252,240, - 192,8,8,8,10,1,2,192,176,140,131,131,140,176,192,5, - 5,5,10,3,3,192,240,248,240,192,5,5,5,10,3,3, - 192,176,136,176,192,8,5,5,10,1,4,224,252,255,252,224, - 8,5,5,10,1,4,224,156,131,156,224,8,8,8,10,1, - 2,255,255,126,126,60,60,24,24,8,8,8,10,1,2,255, - 129,66,66,36,36,24,24,5,5,5,10,3,3,248,248,112, - 112,32,5,5,5,10,3,3,248,136,80,80,32,8,8,8, - 10,1,2,3,15,63,255,255,63,15,3,8,8,8,10,1, - 2,3,13,49,193,193,49,13,3,5,5,5,10,3,3,24, - 120,248,120,24,5,5,5,10,3,3,24,104,136,104,24,8, - 5,5,10,1,4,7,63,255,63,7,8,5,5,10,1,4, - 7,57,193,57,7,8,8,8,10,1,2,24,60,126,255,255, - 126,60,24,8,8,8,10,1,2,24,36,66,129,129,66,36, - 24,8,8,8,10,1,2,24,36,90,189,189,90,36,24,8, - 8,8,10,1,1,60,66,153,189,189,153,66,60,9,15,30, - 10,1,255,8,0,20,0,20,0,34,0,34,0,65,0,65, - 0,128,128,65,0,65,0,34,0,34,0,20,0,20,0,8, - 0,8,8,8,10,1,1,60,66,129,129,129,129,66,60,7, - 7,7,10,1,2,40,0,130,0,130,0,40,7,7,7,10, - 1,2,56,108,170,170,170,108,56,8,8,8,10,1,1,60, - 66,153,165,165,153,66,60,8,8,8,10,1,1,60,126,255, - 255,255,255,126,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 4 y= 5 dx=10 dy= 0 ascent=13 len=24 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20_78_79[2638] U8G_FONT_SECTION("u8g_font_10x20_78_79") = { - 0,10,20,0,252,9,1,212,2,205,32,255,0,13,0,11, - 0,9,9,18,10,0,0,54,0,28,0,136,128,201,128,119, - 0,201,128,136,128,28,0,54,0,9,9,18,10,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,10,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,10,0,0,8,0,28,0,28,0,127,0,255, - 128,127,0,28,0,28,0,8,0,9,9,18,10,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,10,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,10,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,10,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,127,0,119,0,99,0,255,255,255,255, - 255,8,9,9,10,0,0,24,219,255,126,24,126,255,219,24, - 8,9,9,10,0,0,24,219,255,102,36,102,255,219,24,9, - 9,18,10,0,0,8,0,73,0,42,0,28,0,255,128,28, - 0,42,0,73,0,8,0,9,9,18,10,0,0,8,0,73, - 0,62,0,62,0,255,128,62,0,62,0,73,0,8,0,7, - 7,7,10,1,0,16,146,124,56,124,146,16,9,9,18,10, - 0,0,34,0,20,0,148,128,127,0,28,0,127,0,148,128, - 20,0,34,0,255,255,255,255,9,11,22,10,0,0,28,0, - 28,0,201,128,201,128,62,0,28,0,62,0,201,128,201,128, - 28,0,28,0,9,11,22,10,0,0,28,0,28,0,201,128, - 201,128,62,0,28,0,62,0,201,128,201,128,28,0,28,0, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 9,8,16,10,0,1,62,0,67,0,129,128,129,128,129,128, - 129,128,67,0,62,0,255,9,9,18,10,0,0,254,0,130, - 0,131,128,131,128,131,128,131,128,255,128,63,128,63,128,9, - 9,18,10,0,0,63,128,63,128,255,128,131,128,131,128,131, - 128,131,128,130,0,254,0,8,8,8,10,0,0,254,131,131, - 131,131,131,255,127,8,8,8,10,0,0,127,255,131,131,131, - 131,131,254,255,255,255,9,9,18,10,0,0,8,0,28,0, - 28,0,107,0,247,128,107,0,28,0,28,0,8,0,255,1, - 10,10,10,4,0,128,128,128,128,128,128,128,128,128,128,2, - 10,10,10,3,0,192,192,192,192,192,192,192,192,192,192,3, - 10,10,10,3,0,224,224,224,224,224,224,224,224,224,224,4, - 6,6,10,3,5,112,128,224,240,240,96,4,6,6,10,3, - 5,96,240,240,112,16,224,9,6,12,10,0,5,115,128,132, - 0,231,0,247,128,247,128,99,0,9,6,12,10,0,5,99, - 0,247,128,247,128,115,128,16,128,231,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,227,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,237,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,241,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,152,128, - 136,128,136,128,156,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,152,128,132,128,132,128,136,128,156,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,152,128,132,128, - 136,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,152,128,168,128,188,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,144,128, - 152,128,132,128,152,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,140,128,144,128,152,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,156,128,132,128, - 136,128,136,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,136,128,148,128,136,128,148,128,136,128,128,128, - 127,0,9,9,18,10,0,0,127,0,128,128,136,128,148,128, - 140,128,132,128,136,128,128,128,127,0,9,9,18,10,0,0, - 127,0,128,128,164,128,170,128,170,128,170,128,164,128,128,128, - 127,0,9,9,18,10,0,0,127,0,247,128,231,128,247,128, - 247,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,253,128,251,128,247,128,239,128,193,128, - 127,0,9,9,18,10,0,0,127,0,227,128,221,128,253,128, - 243,128,253,128,221,128,227,128,127,0,9,9,18,10,0,0, - 127,0,243,128,235,128,219,128,193,128,251,128,251,128,251,128, - 127,0,9,9,18,10,0,0,127,0,193,128,223,128,223,128, - 195,128,253,128,253,128,195,128,127,0,9,9,18,10,0,0, - 127,0,225,128,223,128,223,128,195,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,193,128,253,128,251,128, - 251,128,247,128,247,128,247,128,127,0,9,9,18,10,0,0, - 127,0,227,128,221,128,221,128,227,128,221,128,221,128,227,128, - 127,0,9,9,18,10,0,0,127,0,225,128,221,128,221,128, - 225,128,253,128,253,128,227,128,127,0,9,9,18,10,0,0, - 127,0,219,128,213,128,213,128,213,128,213,128,213,128,219,128, - 127,0,7,8,8,10,1,1,48,24,12,254,254,12,24,48, - 255,255,255,7,5,5,10,1,1,224,250,62,14,30,8,7, - 7,10,1,1,8,12,230,255,230,12,8,7,5,5,10,1, - 1,30,14,62,250,224,9,7,14,10,0,0,48,0,28,0, - 31,0,255,128,31,0,28,0,48,0,9,9,18,10,0,0, - 28,0,30,0,15,0,255,128,255,128,255,128,15,0,30,0, - 28,0,9,5,10,10,0,1,2,0,3,0,255,128,3,0, - 2,0,9,7,14,10,0,0,4,0,6,0,255,0,255,128, - 255,0,6,0,4,0,9,5,10,10,0,1,2,0,183,0, - 183,128,183,0,2,0,9,5,10,10,0,1,2,0,171,0, - 171,128,171,0,2,0,9,5,10,10,0,1,2,0,255,0, - 255,128,255,0,2,0,9,8,16,10,0,1,128,0,112,0, - 78,0,33,128,31,128,62,0,112,0,128,0,9,8,16,10, - 0,1,128,0,112,0,62,0,31,128,33,128,78,0,112,0, - 128,0,9,8,16,10,0,1,128,0,112,0,62,0,31,128, - 31,128,62,0,112,0,128,0,9,7,14,10,0,0,132,0, - 134,0,255,0,255,128,127,0,6,0,4,0,9,7,14,10, - 0,0,4,0,6,0,127,0,255,128,255,0,134,0,132,0, - 6,9,9,10,2,0,16,16,248,248,252,248,248,16,16,8, - 9,9,10,0,1,4,4,254,254,255,254,254,4,4,9,9, - 18,10,0,0,24,0,28,0,22,0,243,0,129,128,243,0, - 22,0,28,0,24,0,9,9,18,10,0,0,24,0,28,0, - 26,0,249,0,192,128,249,0,26,0,28,0,24,0,9,9, - 18,10,0,0,0,128,1,128,62,128,64,128,129,128,243,0, - 238,0,60,0,56,0,9,9,18,10,0,0,56,0,60,0, - 238,0,243,0,129,128,64,128,62,128,1,128,0,128,8,9, - 9,10,0,1,16,24,20,242,129,243,118,28,24,8,9,9, - 10,0,1,24,28,118,243,129,242,20,24,16,9,8,16,10, - 0,1,4,0,250,0,129,0,64,128,129,128,251,0,6,0, - 4,0,255,9,8,16,10,0,2,4,0,6,0,251,0,129, - 128,64,128,129,0,250,0,4,0,9,9,18,10,0,1,28, - 0,127,0,251,128,1,128,0,128,1,128,251,128,127,0,28, - 0,9,5,10,10,0,3,210,0,43,0,127,128,43,0,210, - 0,9,9,18,10,0,0,16,0,56,0,92,0,236,0,116, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,7,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,116,0,236,0,92,0,56,0,16, - 0,9,9,18,10,0,0,16,0,24,0,28,0,252,0,124, - 0,60,0,2,128,1,128,3,128,9,5,10,10,0,2,242, - 0,123,0,127,128,123,0,242,0,9,9,18,10,0,0,3, - 128,1,128,2,128,60,0,124,0,252,0,28,0,24,0,16, - 0,255,255,255,255,9,7,14,10,0,1,20,0,10,0,253, - 0,0,128,253,0,10,0,20,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,9, - 12,24,10,0,0,224,128,49,128,49,128,42,128,42,128,36, - 128,36,128,42,128,42,128,49,128,49,128,224,128,9,12,24, - 10,0,0,131,128,198,0,198,0,170,0,170,0,146,0,146, - 0,170,0,170,0,198,0,198,0,131,128,9,12,24,10,0, - 0,193,128,99,0,99,0,85,0,85,0,73,0,73,0,85, - 0,85,0,99,0,99,0,193,128,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,8,13,13,10,1,0,255,216,216, - 216,216,216,216,216,216,216,216,216,255,8,13,13,10,1,0, - 255,27,27,27,27,27,27,27,27,27,27,27,255,4,13,13, - 10,4,0,16,48,32,96,64,192,128,192,64,96,32,48,16, - 4,13,13,10,4,0,128,192,64,96,32,48,16,48,32,96, - 64,192,128,7,13,13,10,1,0,18,54,36,108,72,216,144, - 216,72,108,36,54,18,7,13,13,10,2,0,144,216,72,108, - 36,54,18,54,36,108,72,216,144,255,255,255,255,255,255,255, - 255,255,10,8,16,10,0,2,24,0,48,0,96,0,255,192, - 255,192,96,0,48,0,24,0,10,8,16,10,0,2,6,0, - 3,0,1,128,255,192,255,192,1,128,3,0,6,0,10,8, - 16,10,0,2,18,0,51,0,97,128,255,192,255,192,97,128, - 51,0,18,0,10,9,18,10,0,2,12,0,24,0,63,192, - 127,192,192,0,127,192,63,192,24,0,12,0,10,9,18,10, - 0,2,12,0,6,0,255,0,255,128,0,192,255,128,255,0, - 6,0,12,0,10,9,18,10,0,2,18,0,51,0,127,128, - 255,192,128,192,255,192,127,128,51,0,18,0,10,8,16,10, - 0,2,24,192,48,192,96,192,255,192,255,192,96,192,48,192, - 24,192,10,8,16,10,0,2,198,0,195,0,193,128,255,192, - 255,192,193,128,195,0,198,0,10,9,18,10,0,2,12,64, - 24,64,63,192,127,192,192,64,127,192,63,192,24,64,12,64, - 10,9,18,10,0,2,140,0,134,0,255,0,255,128,128,192, - 255,128,255,0,134,0,140,0,10,8,16,10,0,2,6,0, - 3,0,171,128,170,192,85,192,85,128,3,0,6,0}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=17 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20[3453] U8G_FONT_SECTION("u8g_font_10x20") = { - 0,10,20,0,252,13,2,74,4,153,32,255,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,10,0,16,2,13,13,10,4,0,192, - 192,0,192,192,192,192,192,192,192,192,192,192,7,12,12,10, - 1,0,24,24,60,102,194,192,192,194,102,60,24,24,9,12, - 24,10,1,0,30,0,51,0,51,0,48,0,48,0,252,0, - 48,0,48,0,48,0,248,0,173,128,231,0,9,9,18,10, - 0,1,128,128,221,128,127,0,99,0,99,0,99,0,127,0, - 221,128,128,128,8,11,11,10,1,0,129,195,102,60,126,24, - 126,24,24,24,24,2,13,13,10,4,0,192,192,192,192,192, - 0,0,0,192,192,192,192,192,8,13,13,10,1,0,60,102, - 198,96,120,204,102,51,30,6,99,102,60,6,2,2,10,2, - 11,204,204,8,11,11,10,1,0,60,102,195,189,165,161,165, - 189,195,102,60,8,9,9,10,1,4,62,67,3,127,195,195, - 125,0,255,9,11,22,10,0,0,4,128,13,128,27,0,54, - 0,108,0,216,0,108,0,54,0,27,0,13,128,4,128,8, - 4,4,10,1,4,255,255,3,3,6,1,1,10,2,6,252, - 8,11,11,10,1,0,60,102,195,189,165,189,169,173,195,102, - 60,8,1,1,10,1,13,255,6,6,6,10,2,7,48,120, - 204,204,120,48,8,7,7,10,1,2,24,24,255,24,24,0, - 255,5,7,7,10,2,6,112,216,24,48,96,192,248,5,7, - 7,10,2,6,112,216,24,48,24,216,112,4,3,3,10,3, - 10,48,96,192,7,10,10,10,1,253,198,198,198,198,198,238, - 250,192,192,192,8,13,13,10,1,0,127,255,251,251,251,123, - 27,27,27,27,27,27,27,3,3,3,10,4,5,224,224,224, - 5,4,4,10,2,252,48,24,216,112,4,7,7,10,2,6, - 96,224,96,96,96,96,240,7,9,9,10,1,4,56,108,198, - 198,198,108,56,0,254,9,11,22,10,1,0,144,0,216,0, - 108,0,54,0,27,0,13,128,27,0,54,0,108,0,216,0, - 144,0,8,12,12,10,1,1,64,192,65,66,228,8,18,38, - 74,158,2,2,8,12,12,10,1,1,64,192,65,66,228,8, - 22,41,65,130,4,15,8,12,12,10,1,1,224,16,97,18, - 228,8,18,38,74,159,2,2,8,13,13,10,1,0,24,24, - 0,24,24,24,48,96,195,195,195,102,60,8,15,15,10,1, - 0,96,48,24,0,24,60,102,195,195,195,255,195,195,195,195, - 8,15,15,10,1,0,6,12,24,0,24,60,102,195,195,195, - 255,195,195,195,195,8,15,15,10,1,0,24,60,102,0,24, - 60,102,195,195,195,255,195,195,195,195,8,15,15,10,1,0, - 50,126,76,0,24,60,102,195,195,195,255,195,195,195,195,8, - 15,15,10,1,0,102,102,0,24,60,102,102,195,195,195,255, - 195,195,195,195,8,16,16,10,1,0,60,102,102,60,0,24, - 60,102,195,195,195,255,195,195,195,195,8,13,13,10,1,0, - 31,60,108,108,204,204,255,204,204,204,204,204,207,8,17,17, - 10,1,252,60,102,195,192,192,192,192,192,192,192,195,102,60, - 24,12,108,56,8,15,15,10,1,0,96,48,24,0,255,192, - 192,192,192,252,192,192,192,192,255,8,15,15,10,1,0,12, - 24,48,0,255,192,192,192,192,252,192,192,192,192,255,8,15, - 15,10,1,0,24,60,102,0,255,192,192,192,192,252,192,192, - 192,192,255,8,15,15,10,1,0,102,102,0,0,255,192,192, - 192,192,252,192,192,192,192,255,6,15,15,10,2,0,96,48, - 24,0,252,48,48,48,48,48,48,48,48,48,252,6,15,15, - 10,2,0,24,48,96,0,252,48,48,48,48,48,48,48,48, - 48,252,6,15,15,10,2,0,48,120,204,0,252,48,48,48, - 48,48,48,48,48,48,252,6,15,15,10,2,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,252,9,13,26,10, - 0,0,126,0,99,0,97,128,97,128,97,128,97,128,249,128, - 97,128,97,128,97,128,97,128,99,0,126,0,8,15,15,10, - 1,0,50,126,76,0,195,227,243,243,219,219,207,207,199,195, - 195,8,15,15,10,1,0,48,24,12,0,60,102,195,195,195, - 195,195,195,195,102,60,8,15,15,10,1,0,12,24,48,0, - 60,102,195,195,195,195,195,195,195,102,60,8,15,15,10,1, - 0,24,60,102,0,60,102,195,195,195,195,195,195,195,102,60, - 8,15,15,10,1,0,50,126,76,0,60,102,195,195,195,195, - 195,195,195,102,60,8,15,15,10,1,0,102,102,0,60,102, - 195,195,195,195,195,195,195,195,102,60,7,8,8,10,1,0, - 130,198,108,56,56,108,198,130,8,15,15,10,1,255,1,62, - 102,199,199,203,203,203,211,211,211,227,102,124,128,8,15,15, - 10,1,0,48,24,12,0,195,195,195,195,195,195,195,195,195, - 102,60,8,15,15,10,1,0,12,24,48,0,195,195,195,195, - 195,195,195,195,195,102,60,8,15,15,10,1,0,24,60,102, - 0,195,195,195,195,195,195,195,195,195,102,60,8,15,15,10, - 1,0,102,102,0,195,195,195,195,195,195,195,195,195,195,102, - 60,8,15,15,10,1,0,12,24,48,0,195,195,102,102,60, - 60,24,24,24,24,24,7,13,13,10,2,0,192,192,192,252, - 198,198,198,198,198,252,192,192,192,8,13,13,10,1,0,28, - 54,99,99,102,236,108,102,99,99,99,102,108,8,12,12,10, - 1,0,48,24,12,0,126,195,3,127,195,195,195,125,8,12, - 12,10,1,0,12,24,48,0,126,195,3,127,195,195,195,125, - 8,12,12,10,1,0,24,60,102,0,126,195,3,127,195,195, - 195,125,8,12,12,10,1,0,50,126,76,0,126,195,3,127, - 195,195,195,125,8,11,11,10,1,0,102,102,0,126,195,3, - 127,195,195,195,125,8,13,13,10,1,0,60,102,102,60,0, - 126,195,3,127,195,195,195,125,8,8,8,10,1,0,118,155, - 27,30,120,216,217,110,8,12,12,10,1,252,62,99,192,192, - 192,192,99,62,24,12,108,56,8,12,12,10,1,0,96,48, - 24,0,60,102,195,255,192,192,99,62,8,12,12,10,1,0, - 6,12,24,0,60,102,195,255,192,192,99,62,8,12,12,10, - 1,0,24,60,102,0,60,102,195,255,192,192,99,62,8,11, - 11,10,1,0,102,102,0,60,102,195,255,192,192,99,62,8, - 12,12,10,1,0,96,48,24,0,120,24,24,24,24,24,24, - 255,8,12,12,10,1,0,12,24,48,0,120,24,24,24,24, - 24,24,255,8,12,12,10,1,0,24,60,102,0,120,24,24, - 24,24,24,24,255,8,11,11,10,1,0,102,102,0,120,24, - 24,24,24,24,24,255,8,13,13,10,1,0,136,216,112,112, - 216,140,62,103,195,195,195,102,60,8,12,12,10,1,0,50, - 126,76,0,220,230,195,195,195,195,195,195,8,12,12,10,1, - 0,96,48,24,0,60,102,195,195,195,195,102,60,8,12,12, - 10,1,0,6,12,24,0,60,102,195,195,195,195,102,60,8, - 12,12,10,1,0,24,60,102,0,60,102,195,195,195,195,102, - 60,8,12,12,10,1,0,50,126,76,0,60,102,195,195,195, - 195,102,60,8,11,11,10,1,0,102,102,0,60,102,195,195, - 195,195,102,60,8,10,10,10,1,1,24,24,0,0,255,255, - 0,0,24,24,8,10,10,10,1,255,1,62,102,203,203,211, - 211,102,124,128,8,12,12,10,1,0,48,24,12,0,195,195, - 195,195,195,195,103,59,8,12,12,10,1,0,6,12,24,0, - 195,195,195,195,195,195,103,59,8,12,12,10,1,0,24,60, - 102,0,195,195,195,195,195,195,103,59,8,11,11,10,1,0, - 102,102,0,195,195,195,195,195,195,103,59,8,16,16,10,1, - 252,12,24,48,0,195,195,195,195,195,195,103,59,3,195,102, - 60,7,17,17,10,2,252,192,192,192,192,192,192,248,204,198, - 198,198,204,248,192,192,192,192,8,15,15,10,1,252,102,102, - 0,195,195,195,195,195,195,103,59,3,195,102,60}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--20-200-75-75-C-100-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w= 9 h=15 x= 4 y=16 dx=10 dy= 0 ascent=16 len=26 - Font Bounding box w=10 h=20 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_10x20r[1667] U8G_FONT_SECTION("u8g_font_10x20r") = { - 0,10,20,0,252,13,2,74,4,153,32,127,252,16,252,13, - 252,0,0,0,10,0,16,2,13,13,10,4,0,192,192,192, - 192,192,192,192,192,192,192,0,192,192,6,4,4,10,2,9, - 204,204,204,72,9,11,22,10,1,1,27,0,27,0,27,0, - 127,128,54,0,54,0,54,0,255,0,108,0,108,0,108,0, - 8,13,13,10,1,0,24,126,219,216,216,216,126,27,27,27, - 219,126,24,9,12,24,10,1,0,115,0,219,0,222,0,118, - 0,12,0,12,0,24,0,24,0,55,0,61,128,109,128,103, - 0,9,13,26,10,1,0,56,0,108,0,108,0,108,0,120, - 0,48,0,112,0,216,0,205,128,199,0,198,0,239,0,121, - 128,2,5,5,10,4,8,192,192,192,192,128,5,13,13,10, - 3,0,24,48,96,96,192,192,192,192,192,96,96,48,24,5, - 13,13,10,2,0,192,96,48,48,24,24,24,24,24,48,48, - 96,192,8,7,7,10,1,3,102,102,60,255,60,102,102,8, - 7,7,10,1,3,24,24,24,255,24,24,24,4,3,3,10, - 3,255,112,112,224,8,1,1,10,1,6,255,3,3,3,10, - 4,0,224,224,224,7,12,12,10,2,0,6,6,12,12,24, - 24,48,48,96,96,192,192,8,13,13,10,1,0,24,60,102, - 102,195,195,195,195,195,102,102,60,24,8,13,13,10,1,0, - 24,56,120,216,24,24,24,24,24,24,24,24,255,8,13,13, - 10,1,0,60,102,195,195,3,3,6,28,48,96,192,192,255, - 8,13,13,10,1,0,60,102,195,195,3,6,28,6,3,195, - 195,102,60,8,13,13,10,1,0,2,6,14,30,54,102,198, - 198,255,6,6,6,6,8,13,13,10,1,0,255,192,192,192, - 192,220,230,3,3,3,195,102,60,8,13,13,10,1,0,60, - 102,194,192,192,220,230,195,195,195,195,102,60,8,13,13,10, - 1,0,255,3,3,6,6,12,12,24,24,48,48,96,96,8, - 13,13,10,1,0,60,102,195,195,195,102,60,102,195,195,195, - 102,60,8,13,13,10,1,0,60,102,195,195,195,195,103,59, - 3,3,67,102,60,3,8,8,10,4,0,224,224,0,0,0, - 0,224,224,4,9,9,10,3,255,112,112,0,0,0,0,112, - 112,224,7,13,13,10,1,0,2,6,12,24,48,96,192,96, - 48,24,12,6,2,8,6,6,10,1,3,255,0,0,0,0, - 255,7,13,13,10,2,0,128,192,96,48,24,12,6,12,24, - 48,96,192,128,8,13,13,10,1,0,60,102,195,195,195,6, - 12,24,24,24,0,24,24,8,13,13,10,1,0,60,102,195, - 207,223,219,219,219,222,204,192,99,62,8,13,13,10,1,0, - 24,60,102,102,195,195,195,255,195,195,195,195,195,8,13,13, - 10,1,0,248,204,198,198,198,204,252,198,195,195,195,198,252, - 8,13,13,10,1,0,60,102,195,192,192,192,192,192,192,192, - 195,102,60,8,13,13,10,1,0,252,198,195,195,195,195,195, - 195,195,195,195,198,252,8,13,13,10,1,0,255,192,192,192, - 192,192,252,192,192,192,192,192,255,8,13,13,10,1,0,255, - 192,192,192,192,192,252,192,192,192,192,192,192,8,13,13,10, - 1,0,60,102,195,192,192,192,207,195,195,195,195,103,61,8, - 13,13,10,1,0,195,195,195,195,195,195,255,195,195,195,195, - 195,195,8,13,13,10,1,0,255,24,24,24,24,24,24,24, - 24,24,24,24,255,9,13,26,10,1,0,31,128,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,198,0,198, - 0,108,0,56,0,8,13,13,10,1,0,195,195,198,198,204, - 204,248,204,204,198,198,195,195,8,13,13,10,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,255,8,13,13,10,1, - 0,195,195,231,231,255,219,219,219,219,195,195,195,195,8,13, - 13,10,1,0,195,227,227,243,243,219,219,207,207,199,199,195, - 195,8,13,13,10,1,0,60,102,195,195,195,195,195,195,195, - 195,195,102,60,8,13,13,10,1,0,252,198,195,195,195,195, - 198,252,192,192,192,192,192,8,14,14,10,1,255,60,102,195, - 195,195,195,195,195,195,219,207,102,62,3,8,13,13,10,1, - 0,252,198,195,195,195,195,198,252,204,198,198,195,195,8,13, - 13,10,1,0,60,102,195,192,192,96,60,6,3,3,195,102, - 60,8,13,13,10,1,0,255,24,24,24,24,24,24,24,24, - 24,24,24,24,8,13,13,10,1,0,195,195,195,195,195,195, - 195,195,195,195,195,102,60,8,13,13,10,1,0,195,195,195, - 195,102,102,102,60,60,60,24,24,24,8,13,13,10,1,0, - 195,195,195,195,195,219,219,219,219,231,231,195,195,8,13,13, - 10,1,0,195,195,102,102,60,60,24,60,60,102,102,195,195, - 8,13,13,10,1,0,195,195,102,102,60,60,24,24,24,24, - 24,24,24,8,13,13,10,1,0,255,3,3,6,12,12,24, - 48,48,96,192,192,255,6,13,13,10,2,0,252,192,192,192, - 192,192,192,192,192,192,192,192,252,7,12,12,10,2,0,192, - 192,96,96,48,48,24,24,12,12,6,6,6,13,13,10,2, - 0,252,12,12,12,12,12,12,12,12,12,12,12,252,8,4, - 4,10,1,9,24,60,102,195,9,1,2,10,1,255,255,128, - 4,3,3,10,3,10,192,96,48,8,8,8,10,1,0,62, - 99,3,127,195,195,195,125,8,13,13,10,1,0,192,192,192, - 192,192,220,230,195,195,195,195,230,220,8,8,8,10,1,0, - 62,99,192,192,192,192,99,62,8,13,13,10,1,0,3,3, - 3,3,3,59,103,195,195,195,195,103,59,8,8,8,10,1, - 0,60,102,195,255,192,192,99,62,8,13,13,10,1,0,30, - 51,51,48,48,252,48,48,48,48,48,48,48,8,12,12,10, - 1,252,125,199,198,198,198,124,192,126,195,195,195,126,8,13, - 13,10,1,0,192,192,192,192,192,220,230,195,195,195,195,195, - 195,8,11,11,10,1,0,24,24,0,120,24,24,24,24,24, - 24,255,7,15,15,10,2,252,6,6,0,30,6,6,6,6, - 6,6,6,198,198,198,124,8,13,13,10,1,0,192,192,192, - 192,192,198,204,216,240,248,204,198,195,8,13,13,10,1,0, - 120,24,24,24,24,24,24,24,24,24,24,24,255,8,8,8, - 10,1,0,182,255,219,219,219,219,219,219,8,8,8,10,1, - 0,220,230,195,195,195,195,195,195,8,8,8,10,1,0,60, - 102,195,195,195,195,102,60,8,12,12,10,1,252,220,230,195, - 195,195,195,230,220,192,192,192,192,8,12,12,10,1,252,59, - 103,195,195,195,195,103,59,3,3,3,3,8,8,8,10,1, - 0,222,115,96,96,96,96,96,96,8,8,8,10,1,0,126, - 195,192,126,3,3,195,126,8,11,11,10,1,0,48,48,48, - 252,48,48,48,48,48,51,30,8,8,8,10,1,0,195,195, - 195,195,195,195,103,59,8,8,8,10,1,0,195,195,102,102, - 60,60,24,24,8,8,8,10,1,0,195,195,195,219,219,219, - 255,102,8,8,8,10,1,0,195,102,60,24,24,60,102,195, - 8,12,12,10,1,252,195,195,195,195,195,195,103,59,3,195, - 102,60,7,8,8,10,2,0,254,6,12,24,48,96,192,254, - 8,13,13,10,1,0,15,24,24,24,24,24,240,24,24,24, - 24,24,15,2,13,13,10,4,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,8,13,13,10,1,0,240,24,24,24, - 24,24,15,24,24,24,24,24,240,8,3,3,10,1,10,115, - 219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6[1500] U8G_FONT_SECTION("u8g_font_4x6") = { - 1,4,6,0,255,5,1,3,1,250,32,255,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,7,0, - 64,18,21,69,128,0,128,128,128,2,53,69,64,224,128,224, - 64,2,53,69,32,64,96,64,160,2,68,68,144,96,96,144, - 2,53,69,160,64,224,64,64,18,21,69,128,128,0,128,128, - 1,54,70,96,192,160,96,32,192,6,49,65,160,1,70,70, - 96,144,208,208,144,96,2,53,69,96,160,96,0,224,3,67, - 67,80,160,80,3,50,66,224,32,4,49,65,224,3,68,68, - 96,240,208,96,6,49,65,224,4,51,67,64,160,64,2,53, - 69,64,224,64,0,224,3,36,68,192,64,128,192,2,37,69, - 192,64,128,64,128,21,34,66,64,128,1,53,69,160,160,160, - 192,128,2,69,69,112,208,208,80,80,20,17,65,128,18,34, - 66,64,128,3,36,68,64,192,64,64,2,53,69,64,160,64, - 0,224,3,67,67,160,80,160,1,70,70,128,128,128,80,112, - 16,1,70,70,128,128,176,16,32,48,1,70,70,192,64,128, - 80,176,16,2,53,69,64,0,64,128,96,2,53,69,128,64, - 160,224,160,2,53,69,32,64,160,224,160,2,53,69,192,64, - 160,224,160,2,53,69,96,192,160,224,160,2,53,69,160,64, - 160,224,160,2,53,69,64,64,160,224,160,2,69,69,112,160, - 240,160,176,1,54,70,64,160,128,160,64,128,2,53,69,128, - 224,192,128,224,2,53,69,32,224,192,128,224,2,53,69,96, - 224,192,128,224,2,53,69,160,224,192,128,224,2,53,69,128, - 224,64,64,224,2,53,69,32,224,64,64,224,2,53,69,64, - 224,64,64,224,2,53,69,160,64,64,64,224,2,69,69,224, - 80,208,80,224,2,69,69,80,160,224,224,160,2,53,69,128, - 64,160,160,64,2,53,69,32,64,160,160,64,2,53,69,64, - 64,160,160,64,2,69,69,112,224,160,160,64,2,53,69,160, - 64,160,160,64,3,51,67,160,64,160,2,53,69,96,160,224, - 160,192,2,53,69,128,64,160,160,224,2,53,69,32,64,160, - 160,224,2,53,69,64,0,160,160,224,2,53,69,160,0,160, - 160,224,2,53,69,32,0,160,64,64,2,53,69,128,192,160, - 192,128,1,54,70,64,160,192,160,224,128,2,53,69,128,64, - 96,160,96,2,53,69,32,64,96,160,96,2,53,69,96,0, - 96,160,96,2,69,69,80,160,96,160,96,2,53,69,160,0, - 96,160,96,2,53,69,64,0,96,160,96,2,68,68,112,176, - 160,112,1,53,69,64,160,128,96,64,2,53,69,128,64,160, - 192,96,2,53,69,32,64,160,192,96,2,53,69,192,64,160, - 192,96,2,53,69,160,64,160,192,96,2,53,69,128,64,64, - 64,224,2,53,69,32,192,64,64,224,2,53,69,64,160,64, - 64,224,2,53,69,160,0,192,64,224,2,53,69,160,64,96, - 160,64,2,69,69,80,160,192,160,160,2,53,69,128,64,64, - 160,64,2,53,69,32,64,64,160,64,2,53,69,64,0,64, - 160,64,2,53,69,224,0,64,160,64,2,53,69,160,0,64, - 160,64,2,53,69,64,0,224,0,64,2,52,68,96,160,160, - 192,2,53,69,128,64,160,160,96,2,53,69,32,64,160,160, - 96,2,53,69,64,0,160,160,96,2,53,69,160,0,160,160, - 96,1,54,70,32,64,160,224,32,192,1,54,70,128,128,192, - 160,192,128,1,54,70,160,0,160,224,32,192}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--6-60-75-75-C-40-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 4 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_4x6r[734] U8G_FONT_SECTION("u8g_font_4x6r") = { - 1,4,6,0,255,5,1,3,1,250,32,127,255,5,255,5, - 255,7,0,64,18,21,69,128,128,128,0,128,5,50,66,160, - 160,2,69,69,160,240,160,240,160,1,54,70,64,224,192,32, - 224,64,2,53,69,128,32,64,128,32,2,69,69,64,160,64, - 160,80,21,18,66,128,128,17,38,70,64,128,128,128,128,64, - 1,38,70,128,64,64,64,64,128,2,53,69,160,64,224,64, - 160,2,53,69,64,64,224,64,64,1,34,66,64,128,4,49, - 65,224,18,17,65,128,2,53,69,32,32,64,128,128,2,53, - 69,64,160,224,160,64,2,53,69,64,192,64,64,224,2,53, - 69,64,160,32,64,224,2,53,69,224,32,64,32,192,2,53, - 69,160,160,224,32,32,2,53,69,224,128,192,32,192,2,53, - 69,96,128,192,160,64,2,53,69,224,32,64,128,128,2,53, - 69,96,160,64,160,192,2,53,69,64,160,96,32,192,18,20, - 68,128,0,0,128,1,37,69,64,0,0,64,128,2,53,69, - 32,64,128,64,32,3,51,67,224,0,224,2,53,69,128,64, - 32,64,128,2,53,69,192,32,64,0,64,2,53,69,96,160, - 160,128,96,2,53,69,64,160,224,160,160,2,53,69,192,160, - 192,160,192,2,53,69,64,160,128,160,64,2,53,69,192,160, - 160,160,192,2,53,69,224,128,192,128,224,2,53,69,224,128, - 192,128,128,2,53,69,96,128,160,160,96,2,53,69,160,160, - 224,160,160,2,53,69,224,64,64,64,224,2,53,69,32,32, - 32,160,64,2,53,69,160,160,192,160,160,2,53,69,128,128, - 128,128,224,2,53,69,160,224,224,160,160,2,53,69,32,160, - 224,160,128,2,53,69,64,160,160,160,64,2,53,69,192,160, - 192,128,128,1,54,70,64,160,160,160,64,32,2,53,69,192, - 160,192,160,160,2,53,69,96,128,64,32,192,2,53,69,224, - 64,64,64,64,2,53,69,160,160,160,160,224,2,53,69,160, - 160,160,224,64,2,53,69,160,160,224,224,160,2,53,69,160, - 160,64,160,160,2,53,69,160,160,64,64,64,2,53,69,224, - 32,64,128,224,18,37,69,192,128,128,128,192,2,53,69,128, - 128,64,32,32,2,37,69,192,64,64,64,192,5,50,66,64, - 160,1,49,65,224,21,34,66,128,64,2,52,68,96,160,160, - 96,2,53,69,128,192,160,160,192,2,52,68,96,128,128,96, - 2,53,69,32,96,160,160,96,2,52,68,64,160,192,96,2, - 53,69,32,64,224,64,64,1,53,69,96,160,96,32,192,2, - 53,69,128,192,160,160,160,2,53,69,64,0,192,64,224,1, - 54,70,32,0,32,32,32,192,2,53,69,128,160,192,160,160, - 2,53,69,192,64,64,64,224,2,52,68,160,224,160,160,2, - 52,68,192,160,160,160,2,52,68,64,160,160,64,1,53,69, - 192,160,192,128,128,1,53,69,96,160,160,96,32,2,52,68, - 160,192,128,128,2,52,68,96,192,32,192,2,53,69,64,224, - 64,64,32,2,52,68,160,160,160,96,2,52,68,160,160,160, - 64,2,52,68,160,160,224,160,2,52,68,160,64,64,160,1, - 53,69,160,160,96,32,192,2,52,68,224,32,64,224,1,54, - 70,32,64,192,64,64,32,18,21,69,128,128,128,128,128,1, - 54,70,128,64,96,64,64,128,5,66,66,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7[1624] U8G_FONT_SECTION("u8g_font_5x7") = { - 1,5,7,0,255,6,1,21,2,39,32,255,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,8,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,69,85,48,64,224, - 64,176,2,85,85,136,112,80,112,136,18,54,86,160,160,64, - 224,64,64,34,21,85,128,128,0,128,128,17,55,87,96,128, - 192,160,96,32,192,23,49,81,160,1,87,87,112,136,168,200, - 168,136,112,5,51,83,96,160,96,3,83,83,72,144,72,3, - 66,82,240,16,20,49,81,224,1,87,87,112,136,232,200,200, - 136,112,7,65,81,240,21,51,83,64,160,64,2,86,86,32, - 32,248,32,32,248,20,36,84,192,64,128,192,20,36,84,192, - 192,64,192,22,34,82,64,128,1,69,85,144,144,144,224,128, - 2,70,86,112,208,208,80,80,80,20,34,82,192,192,17,34, - 82,64,128,20,52,84,64,192,64,224,5,51,83,64,160,64, - 3,83,83,144,72,144,1,71,87,128,128,128,144,48,112,16, - 1,71,87,128,128,128,176,16,32,48,1,71,87,192,192,64, - 208,48,112,16,18,54,86,64,0,64,128,160,64,2,70,86, - 96,144,144,240,144,144,2,70,86,96,144,144,240,144,144,2, - 70,86,96,144,144,240,144,144,2,70,86,96,144,144,240,144, - 144,2,70,86,144,96,144,240,144,144,2,70,86,96,96,144, - 240,144,144,2,70,86,112,160,176,224,160,176,1,71,87,96, - 144,128,128,144,96,64,2,70,86,240,128,224,128,128,240,2, - 70,86,240,128,224,128,128,240,2,70,86,240,128,224,128,128, - 240,2,70,86,240,128,224,128,128,240,18,54,86,224,64,64, - 64,64,224,18,54,86,224,64,64,64,64,224,18,54,86,224, - 64,64,64,64,224,18,54,86,224,64,64,64,64,224,2,70, - 86,224,80,208,80,80,224,2,70,86,176,144,208,176,176,144, - 2,70,86,96,144,144,144,144,96,2,70,86,96,144,144,144, - 144,96,2,70,86,96,144,144,144,144,96,2,70,86,96,144, - 144,144,144,96,2,70,86,144,96,144,144,144,96,2,68,84, - 144,96,96,144,2,70,86,112,176,176,208,208,224,2,70,86, - 144,144,144,144,144,96,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,144,96,2,70,86,144,0,144,144,144, - 96,18,54,86,160,160,160,64,64,64,2,70,86,128,224,144, - 224,128,128,2,70,86,96,144,160,144,144,160,2,70,86,64, - 32,112,144,176,80,2,70,86,32,64,112,144,176,80,2,70, - 86,32,80,112,144,176,80,2,70,86,80,160,112,144,176,80, - 2,70,86,80,0,112,144,176,80,2,70,86,96,96,112,144, - 176,80,2,68,84,112,176,160,112,17,53,85,96,128,128,96, - 64,2,70,86,64,32,96,176,192,96,2,70,86,32,64,96, - 176,192,96,2,70,86,64,160,96,176,192,96,2,70,86,160, - 0,96,176,192,96,18,54,86,128,64,192,64,64,224,18,54, - 86,64,128,192,64,64,224,18,54,86,64,160,192,64,64,224, - 18,54,86,160,0,192,64,64,224,2,70,86,64,48,96,144, - 144,96,2,70,86,80,160,224,144,144,144,2,70,86,64,32, - 96,144,144,96,2,70,86,32,64,96,144,144,96,2,70,86, - 96,0,96,144,144,96,2,70,86,80,160,96,144,144,96,2, - 70,86,80,0,96,144,144,96,2,69,85,96,0,240,0,96, - 2,68,84,112,176,208,224,2,70,86,64,32,144,144,144,112, - 2,70,86,32,64,144,144,144,112,2,70,86,96,0,144,144, - 144,112,2,70,86,80,0,144,144,144,112,1,71,87,32,64, - 144,144,80,32,64,1,70,86,128,224,144,144,224,128,1,71, - 87,80,0,144,144,80,32,64}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--7-70-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 7 x= 2 y= 6 dx= 5 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 7 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x7r[789] U8G_FONT_SECTION("u8g_font_5x7r") = { - 1,5,7,0,255,6,1,21,2,39,32,127,255,6,255,6, - 255,8,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,85,85,80,248,80,248,80,2,85,85,112,160, - 112,40,112,2,70,86,128,144,32,64,144,16,2,69,85,64, - 160,64,160,80,37,19,83,128,128,128,18,38,86,64,128,128, - 128,128,64,18,38,86,128,64,64,64,64,128,18,53,85,160, - 64,224,64,160,2,85,85,32,32,248,32,32,17,51,83,96, - 64,128,4,65,81,240,18,34,82,192,192,3,68,84,16,32, - 64,128,18,54,86,64,160,160,160,160,64,18,54,86,64,192, - 64,64,64,224,2,70,86,96,144,16,32,64,240,2,70,86, - 240,16,96,16,144,96,2,70,86,32,96,160,240,32,32,2, - 70,86,240,128,224,16,144,96,2,70,86,96,128,224,144,144, - 96,2,70,86,240,16,32,32,64,64,2,70,86,96,144,96, - 144,144,96,2,70,86,96,144,144,112,16,96,18,37,85,192, - 192,0,192,192,1,54,86,96,96,0,96,64,128,18,53,85, - 32,64,128,64,32,3,67,83,240,0,240,18,53,85,128,64, - 32,64,128,18,54,86,64,160,32,64,0,64,2,70,86,96, - 144,176,176,128,96,2,70,86,96,144,144,240,144,144,2,70, - 86,224,144,224,144,144,224,2,70,86,96,144,128,128,144,96, - 2,70,86,224,144,144,144,144,224,2,70,86,240,128,224,128, - 128,240,2,70,86,240,128,224,128,128,128,2,70,86,96,144, - 128,176,144,112,2,70,86,144,144,240,144,144,144,18,54,86, - 224,64,64,64,64,224,2,70,86,16,16,16,16,144,96,2, - 70,86,144,160,192,192,160,144,2,70,86,128,128,128,128,128, - 240,2,70,86,144,240,240,144,144,144,2,70,86,144,208,208, - 176,176,144,2,70,86,96,144,144,144,144,96,2,70,86,224, - 144,144,224,128,128,1,71,87,96,144,144,144,208,96,16,2, - 70,86,224,144,144,224,160,144,2,70,86,96,144,64,32,144, - 96,18,54,86,224,64,64,64,64,64,2,70,86,144,144,144, - 144,144,96,2,70,86,144,144,144,144,96,96,2,70,86,144, - 144,144,240,240,144,2,70,86,144,144,96,96,144,144,18,54, - 86,160,160,160,64,64,64,2,70,86,240,16,32,64,128,240, - 18,54,86,224,128,128,128,128,224,3,68,84,128,64,32,16, - 18,54,86,224,32,32,32,32,224,22,50,82,64,160,2,65, - 81,240,22,34,82,128,64,2,68,84,112,144,176,80,2,70, - 86,128,128,224,144,144,224,2,52,84,96,128,128,96,2,70, - 86,16,16,112,144,144,112,2,68,84,96,176,192,96,2,70, - 86,32,80,64,224,64,64,1,69,85,112,144,96,128,112,2, - 70,86,128,128,224,144,144,144,18,54,86,64,0,192,64,64, - 224,17,55,87,32,0,32,32,32,160,64,2,70,86,128,128, - 160,192,160,144,18,54,86,192,64,64,64,64,224,2,68,84, - 160,240,144,144,2,68,84,224,144,144,144,2,68,84,96,144, - 144,96,1,69,85,224,144,144,224,128,1,69,85,112,144,144, - 112,16,2,68,84,224,144,128,128,2,68,84,112,192,48,224, - 2,70,86,64,64,224,64,64,48,2,68,84,144,144,144,112, - 18,52,84,160,160,160,64,2,68,84,144,144,240,240,2,68, - 84,144,96,96,144,1,69,85,144,144,80,32,64,2,68,84, - 240,32,64,240,18,54,86,32,64,192,64,64,32,34,22,86, - 128,128,128,128,128,128,18,54,86,128,64,96,64,64,128,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8[1693] U8G_FONT_SECTION("u8g_font_5x8") = { - 1,5,8,0,255,6,1,33,2,53,32,255,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,9,0,80,34,22,86,128,0,128,128,128, - 128,1,70,86,32,112,160,160,112,32,2,70,86,32,80,224, - 64,80,160,2,85,85,136,112,80,112,136,2,86,86,136,80, - 248,32,248,32,34,23,87,128,128,128,0,128,128,128,2,71, - 87,112,128,224,144,112,16,224,23,49,81,160,2,86,86,112, - 168,200,200,168,112,20,53,85,96,160,96,0,224,3,67,83, - 80,160,80,18,51,83,224,32,32,20,49,81,224,2,86,86, - 112,232,216,232,216,112,23,49,81,224,21,51,83,64,160,64, - 18,53,85,64,224,64,0,224,20,53,85,64,160,32,64,224, - 20,53,85,192,32,192,32,192,22,34,82,64,128,1,69,85, - 144,144,144,224,128,2,86,86,120,232,232,104,40,40,36,17, - 81,128,17,34,82,64,128,20,53,85,64,192,64,64,224,20, - 53,85,64,160,64,0,224,3,67,83,160,80,160,2,71,87, - 128,128,128,160,96,240,32,2,71,87,128,128,160,208,16,32, - 112,2,71,87,128,64,128,96,160,240,32,18,54,86,64,0, - 64,128,160,64,2,71,87,64,32,96,144,240,144,144,2,71, - 87,32,64,96,144,240,144,144,2,71,87,96,144,96,144,240, - 144,144,2,71,87,80,160,96,144,240,144,144,2,71,87,144, - 0,96,144,240,144,144,2,71,87,96,144,96,144,240,144,144, - 2,70,86,112,160,160,240,160,176,1,71,87,96,144,128,128, - 144,96,64,2,71,87,64,32,240,128,224,128,240,2,71,87, - 32,64,240,128,224,128,240,2,71,87,96,144,240,128,224,128, - 240,2,71,87,144,0,240,128,224,128,240,18,55,87,128,64, - 224,64,64,64,224,18,55,87,32,64,224,64,64,64,224,18, - 55,87,64,160,224,64,64,64,224,18,55,87,160,0,224,64, - 64,64,224,2,86,86,112,72,232,72,72,112,2,71,87,80, - 160,144,208,176,144,144,2,71,87,64,32,96,144,144,144,96, - 2,71,87,32,64,96,144,144,144,96,2,71,87,96,144,96, - 144,144,144,96,2,71,87,80,160,96,144,144,144,96,2,71, - 87,144,0,96,144,144,144,96,18,51,83,160,64,160,2,70, - 86,112,176,176,208,208,224,2,71,87,64,32,144,144,144,144, - 96,2,71,87,32,64,144,144,144,144,96,2,71,87,96,144, - 144,144,144,144,96,2,71,87,144,0,144,144,144,144,96,2, - 87,87,16,32,136,80,32,32,32,2,70,86,128,224,144,144, - 224,128,2,70,86,96,144,160,160,144,160,2,71,87,64,32, - 0,112,144,144,112,2,71,87,32,64,0,112,144,144,112,2, - 71,87,32,80,0,112,144,144,112,2,71,87,80,160,0,112, - 144,144,112,2,70,86,80,0,112,144,144,112,2,71,87,96, - 144,96,112,144,144,112,2,84,84,240,104,176,120,17,53,85, - 96,128,128,96,64,2,71,87,64,32,0,96,176,192,96,2, - 71,87,32,64,0,96,176,192,96,2,71,87,96,144,0,96, - 176,192,96,2,70,86,80,0,96,176,192,96,18,55,87,128, - 64,0,192,64,64,224,18,55,87,32,64,0,192,64,64,224, - 18,55,87,64,160,0,192,64,64,224,18,54,86,160,0,192, - 64,64,224,2,71,87,160,64,160,16,112,144,96,2,71,87, - 80,160,0,224,144,144,144,2,71,87,64,32,0,96,144,144, - 96,2,71,87,32,64,0,96,144,144,96,2,71,87,96,144, - 0,96,144,144,96,2,71,87,80,160,0,96,144,144,96,2, - 70,86,144,0,96,144,144,96,18,53,85,64,0,224,0,64, - 2,68,84,112,176,208,224,2,71,87,64,32,0,144,144,144, - 112,2,71,87,32,64,0,144,144,144,112,2,71,87,96,144, - 0,144,144,144,112,2,70,86,144,0,144,144,144,112,1,72, - 88,32,64,0,144,144,112,144,96,1,71,87,128,128,224,144, - 224,128,128,1,71,87,144,0,144,144,112,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--8-80-75-75-C-50-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 8 x= 2 y= 7 dx= 5 dy= 0 ascent= 7 len= 8 - Font Bounding box w= 5 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-1 - X Font ascent = 6 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_5x8r[805] U8G_FONT_SECTION("u8g_font_5x8r") = { - 1,5,8,0,255,6,1,33,2,53,32,127,255,7,255,6, - 255,9,0,80,34,22,86,128,128,128,128,0,128,21,51,83, - 160,160,160,2,87,87,80,80,248,80,248,80,80,2,87,87, - 32,112,160,112,40,112,32,19,53,85,128,160,64,160,32,2, - 71,87,64,160,160,64,160,160,80,37,19,83,128,128,128,18, - 38,86,64,128,128,128,128,64,18,38,86,128,64,64,64,64, - 128,2,69,85,144,96,240,96,144,2,85,85,32,32,248,32, - 32,17,51,83,96,64,128,4,65,81,240,17,51,83,64,224, - 64,2,70,86,16,16,32,64,128,128,18,54,86,64,160,160, - 160,160,64,18,54,86,64,192,64,64,64,224,2,70,86,96, - 144,16,96,128,240,2,70,86,240,32,96,16,144,96,2,70, - 86,32,96,160,240,32,32,2,70,86,240,128,224,16,144,96, - 2,70,86,96,128,224,144,144,96,2,70,86,240,16,32,32, - 64,64,2,70,86,96,144,96,144,144,96,2,70,86,96,144, - 144,112,16,96,18,37,85,192,192,0,192,192,17,54,86,96, - 96,0,96,64,128,18,54,86,32,64,128,128,64,32,3,67, - 83,240,0,240,18,54,86,128,64,32,32,64,128,18,54,86, - 64,160,32,64,0,64,1,88,88,48,72,152,168,168,144,64, - 48,2,70,86,96,144,144,240,144,144,2,70,86,224,144,224, - 144,144,224,2,70,86,96,144,128,128,144,96,2,70,86,224, - 144,144,144,144,224,2,70,86,240,128,224,128,128,240,2,70, - 86,240,128,224,128,128,128,2,70,86,96,144,128,176,144,96, - 2,70,86,144,144,240,144,144,144,18,54,86,224,64,64,64, - 64,224,2,70,86,112,32,32,32,160,64,2,70,86,144,160, - 192,160,160,144,2,70,86,128,128,128,128,128,240,2,70,86, - 144,240,240,144,144,144,2,70,86,144,208,240,176,176,144,2, - 70,86,96,144,144,144,144,96,2,70,86,224,144,144,224,128, - 128,1,71,87,96,144,144,208,176,96,16,2,70,86,224,144, - 144,224,144,144,2,70,86,96,144,64,32,144,96,18,54,86, - 224,64,64,64,64,64,2,70,86,144,144,144,144,144,96,2, - 70,86,144,144,144,144,96,96,2,70,86,144,144,144,240,240, - 144,2,70,86,144,144,96,96,144,144,2,86,86,136,136,80, - 32,32,32,2,70,86,240,16,32,64,128,240,18,54,86,224, - 128,128,128,128,224,2,70,86,128,128,64,32,16,16,18,54, - 86,224,32,32,32,32,224,22,50,82,64,160,1,65,81,240, - 22,34,82,128,64,2,68,84,112,144,144,112,2,70,86,128, - 128,224,144,144,224,18,52,84,96,128,128,96,2,70,86,16, - 16,112,144,144,112,2,68,84,96,176,192,96,2,70,86,32, - 80,64,224,64,64,1,69,85,96,144,112,16,96,2,70,86, - 128,128,224,144,144,144,18,54,86,64,0,192,64,64,224,17, - 55,87,32,0,32,32,32,160,64,2,70,86,128,128,144,224, - 144,144,18,54,86,192,64,64,64,64,224,2,84,84,208,168, - 168,168,2,68,84,224,144,144,144,2,68,84,96,144,144,96, - 1,69,85,224,144,224,128,128,1,69,85,112,144,112,16,16, - 2,68,84,160,208,128,128,18,52,84,96,192,32,192,2,70, - 86,64,64,224,64,80,32,2,68,84,144,144,144,112,18,52, - 84,160,160,160,64,2,84,84,136,168,168,80,2,68,84,144, - 96,96,144,1,69,85,144,144,112,144,96,2,68,84,240,32, - 64,240,2,71,87,48,64,32,192,32,64,48,34,22,86,128, - 128,128,128,128,128,2,71,87,192,32,64,48,64,32,192,6, - 66,82,80,160,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10[1866] U8G_FONT_SECTION("u8g_font_6x10") = { - 1,6,10,0,254,7,1,54,2,104,32,255,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,0,96,34,23,103,128, - 0,128,128,128,128,128,1,87,103,32,120,160,160,160,120,32, - 2,87,103,48,72,64,224,64,72,176,2,85,101,136,112,80, - 112,136,1,88,104,136,136,80,32,248,32,32,32,34,23,103, - 128,128,128,0,128,128,128,1,88,104,112,128,224,144,72,56, - 8,112,25,49,97,160,2,87,103,112,136,168,200,168,136,112, - 19,70,102,112,144,176,80,0,240,2,101,101,36,72,144,72, - 36,20,66,98,240,16,21,65,97,240,2,87,103,112,136,232, - 200,200,136,112,9,81,97,248,22,51,99,64,160,64,2,86, - 102,32,32,248,32,32,248,21,69,101,96,144,32,64,240,21, - 69,101,224,16,96,16,224,40,34,98,64,128,1,86,102,136, - 136,136,200,176,128,2,87,103,120,232,232,104,40,40,40,37, - 17,97,128,32,34,98,64,128,21,53,101,64,192,64,64,224, - 19,70,102,96,144,144,96,0,240,2,101,101,144,72,36,72, - 144,1,105,105,64,192,64,64,228,12,20,60,4,1,105,105, - 64,192,64,64,232,20,4,8,28,1,89,105,192,32,64,32, - 200,24,40,120,8,2,87,103,32,0,32,32,64,136,112,2, - 88,104,64,32,112,136,136,248,136,136,2,88,104,16,32,112, - 136,136,248,136,136,2,88,104,32,80,112,136,136,248,136,136, - 2,88,104,72,176,112,136,136,248,136,136,2,88,104,80,0, - 112,136,136,248,136,136,2,88,104,32,80,112,136,136,248,136, - 136,2,103,103,60,80,144,156,240,144,156,0,89,105,112,136, - 128,128,128,136,112,32,64,2,88,104,64,248,128,128,240,128, - 128,248,2,88,104,16,248,128,128,240,128,128,248,2,88,104, - 32,248,128,128,240,128,128,248,2,88,104,80,248,128,128,240, - 128,128,248,18,56,104,128,64,224,64,64,64,64,224,18,56, - 104,32,64,224,64,64,64,64,224,18,56,104,64,160,224,64, - 64,64,64,224,18,56,104,160,0,224,64,64,64,64,224,2, - 87,103,240,72,72,232,72,72,240,2,88,104,40,80,136,200, - 168,152,136,136,2,88,104,64,32,112,136,136,136,136,112,2, - 88,104,16,32,112,136,136,136,136,112,2,88,104,32,80,112, - 136,136,136,136,112,2,88,104,40,80,112,136,136,136,136,112, - 2,88,104,80,0,112,136,136,136,136,112,2,85,101,136,80, - 32,80,136,2,87,103,112,152,152,168,200,200,112,2,88,104, - 64,32,136,136,136,136,136,112,2,88,104,16,32,136,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,88, - 104,80,0,136,136,136,136,136,112,2,88,104,16,32,136,136, - 80,32,32,32,2,87,103,128,240,136,240,128,128,128,2,87, - 103,112,136,144,160,144,136,176,2,88,104,64,32,0,112,8, - 120,136,120,2,88,104,16,32,0,112,8,120,136,120,2,88, - 104,32,80,0,112,8,120,136,120,2,88,104,40,80,0,112, - 8,120,136,120,2,87,103,80,0,112,8,120,136,120,2,88, - 104,32,80,32,112,8,120,136,120,2,101,101,120,20,124,144, - 124,0,87,103,112,136,128,136,112,32,64,2,88,104,64,32, - 0,112,136,248,128,112,2,88,104,16,32,0,112,136,248,128, - 112,2,88,104,32,80,0,112,136,248,128,112,2,87,103,80, - 0,112,136,248,128,112,18,56,104,128,64,0,192,64,64,64, - 224,18,56,104,64,128,0,192,64,64,64,224,18,56,104,64, - 160,0,192,64,64,64,224,18,55,103,160,0,192,64,64,64, - 224,2,87,103,192,48,112,136,136,136,112,2,88,104,40,80, - 0,176,200,136,136,136,2,88,104,64,32,0,112,136,136,136, - 112,2,88,104,16,32,0,112,136,136,136,112,2,88,104,32, - 80,0,112,136,136,136,112,2,88,104,40,80,0,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,120,152,168,200,240,2,88,104,64, - 32,0,136,136,136,152,104,2,88,104,16,32,0,136,136,136, - 152,104,2,88,104,32,80,0,136,136,136,152,104,2,87,103, - 80,0,136,136,136,152,104,0,89,105,16,32,136,136,152,104, - 8,136,112,0,88,104,128,240,136,136,136,240,128,128,0,89, - 105,80,0,136,136,152,104,8,136,112}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y= 8 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x10r[889] U8G_FONT_SECTION("u8g_font_6x10r") = { - 1,6,10,0,254,7,1,54,2,104,32,127,254,8,254,7, - 254,10,0,96,34,23,103,128,128,128,128,128,0,128,22,51, - 99,160,160,160,2,87,103,80,80,248,80,248,80,80,2,87, - 103,32,112,160,112,40,112,32,2,87,103,72,168,80,32,80, - 168,144,2,87,103,64,160,160,64,168,144,104,38,19,99,128, - 128,128,18,55,103,32,64,128,128,128,64,32,18,55,103,128, - 64,32,32,32,64,128,3,85,101,136,80,248,80,136,3,85, - 101,32,32,248,32,32,17,51,99,96,64,128,5,81,97,248, - 17,51,99,64,224,64,2,87,103,8,8,16,32,64,128,128, - 2,87,103,32,80,136,136,136,80,32,2,87,103,32,96,160, - 32,32,32,248,2,87,103,112,136,8,48,64,128,248,2,87, - 103,248,8,16,48,8,136,112,2,87,103,16,48,80,144,248, - 16,16,2,87,103,248,128,176,200,8,136,112,2,87,103,48, - 64,128,176,200,136,112,2,87,103,248,8,16,16,32,64,64, - 2,87,103,112,136,136,112,136,136,112,2,87,103,112,136,152, - 104,8,16,96,17,55,103,64,224,64,0,64,224,64,17,55, - 103,64,224,64,0,96,64,128,18,71,103,16,32,64,128,64, - 32,16,4,83,99,248,0,248,18,71,103,128,64,32,16,32, - 64,128,2,87,103,112,136,16,32,32,0,32,2,87,103,112, - 136,152,168,176,128,112,2,87,103,32,80,136,136,248,136,136, - 2,87,103,240,72,72,112,72,72,240,2,87,103,112,136,128, - 128,128,136,112,2,87,103,240,72,72,72,72,72,240,2,87, - 103,248,128,128,240,128,128,248,2,87,103,248,128,128,240,128, - 128,128,2,87,103,112,136,128,128,152,136,112,2,87,103,136, - 136,136,248,136,136,136,18,55,103,224,64,64,64,64,64,224, - 2,87,103,56,16,16,16,16,144,96,2,87,103,136,144,160, - 192,160,144,136,2,87,103,128,128,128,128,128,128,248,2,87, - 103,136,136,216,168,136,136,136,2,87,103,136,136,200,168,152, - 136,136,2,87,103,112,136,136,136,136,136,112,2,87,103,240, - 136,136,240,128,128,128,1,88,104,112,136,136,136,136,168,112, - 8,2,87,103,240,136,136,240,160,144,136,2,87,103,112,136, - 128,112,8,136,112,2,87,103,248,32,32,32,32,32,32,2, - 87,103,136,136,136,136,136,136,112,2,87,103,136,136,136,80, - 80,80,32,2,87,103,136,136,136,168,168,216,136,2,87,103, - 136,136,80,32,80,136,136,2,87,103,136,136,80,32,32,32, - 32,2,87,103,248,8,16,32,64,128,248,18,55,103,224,128, - 128,128,128,128,224,2,87,103,128,128,64,32,16,8,8,18, - 55,103,224,32,32,32,32,32,224,6,83,99,32,80,136,1, - 81,97,248,40,34,98,128,64,2,85,101,112,8,120,136,120, - 2,87,103,128,128,176,200,136,200,176,2,85,101,112,136,128, - 136,112,2,87,103,8,8,104,152,136,152,104,2,85,101,112, - 136,248,128,112,2,87,103,48,72,64,240,64,64,64,0,87, - 103,120,136,136,120,8,136,112,2,87,103,128,128,176,200,136, - 136,136,18,55,103,64,0,192,64,64,64,224,16,73,105,16, - 0,48,16,16,16,144,144,96,2,87,103,128,128,136,144,224, - 144,136,18,55,103,192,64,64,64,64,64,224,2,85,101,208, - 168,168,168,136,2,85,101,176,200,136,136,136,2,85,101,112, - 136,136,136,112,0,87,103,176,200,136,200,176,128,128,0,87, - 103,104,152,136,152,104,8,8,2,85,101,176,200,128,128,128, - 2,85,101,112,128,112,8,240,2,87,103,64,64,240,64,64, - 72,48,2,85,101,136,136,136,152,104,2,85,101,136,136,80, - 80,32,2,85,101,136,136,168,168,80,2,85,101,136,80,32, - 80,136,0,87,103,136,136,152,104,8,136,112,2,85,101,248, - 16,32,64,248,18,71,103,48,64,32,192,32,64,48,34,23, - 103,128,128,128,128,128,128,128,18,71,103,192,32,64,48,64, - 32,192,6,83,99,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 3, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 5 y= 8 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_67_75[2382] U8G_FONT_SECTION("u8g_font_6x12_67_75") = { - 1,6,12,0,254,3,2,41,3,99,0,255,0,10,254,8, - 0,2,87,103,168,0,136,0,136,0,168,2,87,103,240,136, - 232,168,232,136,240,2,87,103,112,168,248,168,248,168,112,2, - 87,103,112,136,8,8,8,136,112,18,69,101,96,144,16,144, - 96,1,88,104,112,136,128,128,136,120,8,8,2,87,103,32, - 32,32,32,168,112,32,2,103,103,248,252,252,156,252,252,248, - 2,87,103,112,248,248,168,248,248,112,255,255,255,255,255,255, - 255,3,85,101,32,64,248,64,32,2,87,103,32,112,168,32, - 32,32,32,3,85,101,32,16,248,16,32,2,87,103,32,32, - 32,32,168,112,32,4,83,99,80,248,80,2,87,103,32,112, - 168,32,168,112,32,2,89,105,192,240,224,160,32,16,16,8, - 8,2,89,105,24,120,56,40,32,64,64,128,128,2,89,105, - 128,128,64,64,32,40,56,120,24,2,89,105,8,8,16,16, - 32,160,224,240,192,3,101,101,40,72,252,80,48,3,101,101, - 48,40,252,72,80,4,99,99,192,216,100,4,99,99,12,108, - 152,3,101,101,40,80,252,80,40,2,88,104,32,112,168,112, - 168,32,32,32,3,101,101,80,40,252,40,80,2,88,104,32, - 32,32,168,112,168,112,32,3,101,101,36,72,240,72,36,3, - 101,101,144,72,60,72,144,3,85,101,40,72,248,72,40,2, - 87,103,32,112,168,32,32,32,248,3,85,101,160,144,248,144, - 160,2,87,103,248,32,32,32,168,112,32,2,87,103,32,112, - 168,32,168,112,248,3,101,101,40,68,248,64,32,3,101,101, - 80,136,124,8,16,3,101,101,32,76,252,72,40,3,101,101, - 16,200,252,72,80,3,100,100,72,220,236,72,3,101,101,8, - 88,252,104,64,2,87,103,128,144,176,208,144,56,16,2,88, - 104,32,64,248,72,40,8,8,8,2,88,104,32,16,248,144, - 160,128,128,128,2,88,104,8,8,8,40,72,248,64,32,2, - 87,103,128,128,160,144,248,16,32,3,84,100,240,16,56,16, - 3,85,101,8,8,72,248,64,3,85,101,48,72,72,232,72, - 3,85,101,96,144,144,184,16,2,88,104,248,128,224,192,160, - 32,16,16,2,89,105,160,192,248,192,168,24,248,24,40,2, - 86,102,56,48,168,136,136,112,2,86,102,224,96,168,136,136, - 112,5,83,99,32,64,248,3,83,99,248,64,32,34,56,104, - 128,192,160,128,128,128,128,128,2,56,104,32,96,160,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 56,104,128,128,128,128,128,160,192,128,2,56,104,32,32,32, - 32,32,160,96,32,2,89,105,32,16,248,16,32,64,248,64, - 32,2,88,104,80,240,80,80,80,80,120,80,2,89,105,32, - 64,248,64,32,16,248,16,32,2,89,105,32,64,248,64,32, - 64,248,64,32,2,88,104,80,248,80,80,80,80,80,80,2, - 89,105,32,16,248,16,32,16,248,16,32,2,88,104,80,80, - 80,80,80,80,248,80,2,87,103,32,64,248,0,248,16,32, - 2,87,103,32,16,248,0,248,64,32,2,103,103,20,40,124, - 144,124,32,80,2,103,103,8,88,252,164,252,104,64,2,103, - 103,160,80,248,36,248,16,40,3,85,101,32,120,128,120,32, - 2,87,103,32,80,216,80,80,80,80,3,85,101,32,240,8, - 240,32,2,87,103,80,80,80,80,216,80,32,3,101,101,72, - 252,132,252,72,2,88,104,32,80,216,80,80,216,80,32,2, - 102,102,248,160,208,168,148,8,2,102,102,124,20,44,84,164, - 64,2,102,102,64,164,84,44,20,124,2,102,102,8,148,168, - 208,160,248,2,103,103,16,60,64,252,64,60,16,2,103,103, - 32,240,8,252,8,240,32,3,100,100,64,232,212,64,3,100, - 100,8,92,172,8,2,88,104,32,112,168,32,112,32,112,32, - 2,88,104,32,112,32,112,32,168,112,32,3,101,101,32,64, - 212,64,32,2,88,104,32,112,136,32,0,32,0,32,3,101, - 101,16,8,172,8,16,2,88,104,32,0,32,0,32,136,112, - 32,3,85,101,160,192,248,192,160,3,85,101,40,24,248,24, - 40,3,85,101,32,120,136,120,32,2,88,104,32,80,216,80, - 80,80,80,112,3,85,101,32,240,136,240,32,2,88,104,112, - 80,80,80,80,216,80,32,2,89,105,32,80,216,80,112,0, - 112,80,112,2,89,105,32,80,216,80,80,80,216,136,248,2, - 89,105,32,80,248,136,80,80,216,136,248,2,89,105,32,112, - 248,112,112,112,248,168,248,2,89,105,32,80,216,80,216,80, - 80,80,112,2,89,105,32,80,216,80,216,80,216,136,248,3, - 85,101,160,240,136,240,160,2,88,104,248,128,176,160,144,16, - 8,8,2,88,104,128,128,64,72,40,104,8,248,2,88,104, - 32,80,216,80,80,216,80,32,3,101,101,16,104,252,104,16, - 2,88,104,80,120,80,80,80,80,240,80,2,89,105,16,248, - 16,16,248,16,16,248,16,3,101,101,40,72,252,72,40,3, - 101,101,80,72,252,72,80,3,101,101,48,120,252,120,48,3, - 101,101,56,88,252,88,56,3,101,101,112,104,252,104,112,3, - 101,101,48,120,252,120,48,3,85,101,32,96,184,96,32,3, - 85,101,32,48,232,48,32,3,101,101,48,120,180,120,48,6, - 102,102,252,252,252,252,252,252,0,98,98,252,252,0,99,99, - 252,252,252,0,101,101,252,252,252,252,252,0,102,102,252,252, - 252,252,252,252,0,104,104,252,252,252,252,252,252,252,252,0, - 105,105,252,252,252,252,252,252,252,252,252,0,107,107,252,252, - 252,252,252,252,252,252,252,252,252,0,108,108,252,252,252,252, - 252,252,252,252,252,252,252,252,0,92,108,248,248,248,248,248, - 248,248,248,248,248,248,248,0,76,108,240,240,240,240,240,240, - 240,240,240,240,240,240,0,76,108,240,240,240,240,240,240,240, - 240,240,240,240,240,0,60,108,224,224,224,224,224,224,224,224, - 224,224,224,224,0,44,108,192,192,192,192,192,192,192,192,192, - 192,192,192,0,44,108,192,192,192,192,192,192,192,192,192,192, - 192,192,0,28,108,128,128,128,128,128,128,128,128,128,128,128, - 128,48,60,108,224,224,224,224,224,224,224,224,224,224,224,224, - 1,107,107,168,0,84,0,168,0,84,0,168,0,84,0,108, - 108,168,84,168,84,168,84,168,84,168,84,168,84,0,108,108, - 84,252,168,252,84,252,168,252,84,252,168,252,10,98,98,252, - 252,80,28,108,128,128,128,128,128,128,128,128,128,128,128,128, - 0,54,102,224,224,224,224,224,224,48,54,102,224,224,224,224, - 224,224,6,54,102,224,224,224,224,224,224,0,108,108,224,224, - 224,224,224,224,252,252,252,252,252,252,0,108,108,224,224,224, - 224,224,224,28,28,28,28,28,28,0,108,108,252,252,252,252, - 252,252,224,224,224,224,224,224,0,108,108,252,252,252,252,252, - 252,28,28,28,28,28,28,54,54,102,224,224,224,224,224,224, - 0,108,108,28,28,28,28,28,28,224,224,224,224,224,224,0, - 108,108,28,28,28,28,28,28,252,252,252,252,252,252,2,85, - 101,248,248,248,248,248,2,85,101,248,136,136,136,248,2,85, - 101,112,136,136,136,112,2,85,101,248,136,168,136,248,2,85, - 101,248,136,248,136,248,2,85,101,248,168,168,168,248,2,85, - 101,248,168,248,168,248,2,85,101,248,200,168,152,248,2,85, - 101,248,152,168,200,248,2,85,101,248,216,168,216,248,20,51, - 99,224,224,224,20,51,99,224,160,224,3,101,101,252,252,252, - 252,252,3,101,101,252,132,132,132,252,17,74,106,240,240,240, - 240,240,240,240,240,240,240,17,74,106,240,144,144,144,144,144, - 144,144,144,240,4,99,99,60,120,240,4,99,99,60,72,240, - 2,87,103,32,32,112,112,248,248,248,2,87,103,32,32,80, - 80,136,136,248,3,85,101,32,32,112,112,248,3,85,101,32, - 32,80,80,248,18,71,103,128,192,224,240,224,192,128,18,71, - 103,128,192,160,144,160,192,128,19,53,101,128,192,224,192,128, - 19,53,101,128,192,160,192,128,3,101,101,192,240,252,240,192, - 3,101,101,192,176,140,176,192,2,87,103,248,248,248,112,112, - 32,32,2,87,103,248,136,136,80,80,32,32,2,85,101,248, - 112,112,32,32,2,85,101,248,80,80,32,32,18,71,103,16, - 48,112,240,112,48,16,18,71,103,16,48,80,144,80,48,16, - 19,53,101,32,96,224,96,32,19,53,101,32,96,160,96,32, - 3,101,101,12,60,252,60,12,3,101,101,12,52,196,52,12, - 3,85,101,32,112,248,112,32,3,85,101,32,80,136,80,32, - 3,85,101,32,80,168,80,32,2,102,102,48,72,180,180,72, - 48,2,87,103,32,80,80,136,80,80,32,2,102,102,48,72, - 132,132,72,48,2,102,102,32,8,128,4,64,16,2,85,101, - 112,168,168,168,112,2,87,103,112,136,168,216,168,136,112,2, - 102,102,48,120,252,252,120,48,2,102,102,48,104,228,228,104, - 48,2,102,102,48,88,156,156,88,48,2,102,102,48,72,132, - 252,120,48,2,102,102,48,120,252,132,72,48,2,102,102,48, - 88,156,132,72,48,2,102,102,48,104,228,132,72,48,18,89, - 105,8,56,120,120,248,120,120,56,8,2,89,105,128,224,240, - 240,248,240,240,224,128,0,108,108,252,252,252,252,204,132,132, - 204,252,252,252,252,0,108,108,252,252,252,204,180,120,120,180, - 204,252,252,252,6,102,102,252,252,252,204,180,120,0,102,102, - 120,180,204,252,252,252,5,51,99,32,64,128,53,51,99,128, - 64,32,50,51,99,32,64,128,2,51,99,128,64,32,5,99, - 99,48,72,132,2,99,99,132,72,48,2,85,101,8,24,56, - 120,248,2,85,101,128,192,224,240,248,2,85,101,248,240,224, - 192,128,2,85,101,248,120,56,24,8,2,85,101,112,136,136, - 136,112,2,85,101,248,232,232,232,248,2,85,101,248,184,184, - 184,248,2,85,101,248,248,232,200,248,2,85,101,248,152,184, - 248,248,2,85,101,248,168,168,168,248,2,87,103,32,32,80, - 112,168,136,248,2,87,103,32,32,112,112,232,232,248,2,87, - 103,32,32,112,112,184,184,248,2,103,103,48,72,132,132,132, - 72,48,2,85,101,248,168,232,136,248,2,85,101,248,136,232, - 168,248,2,85,101,248,136,184,168,248,2,85,101,248,168,184, - 136,248,2,85,101,112,168,232,136,112,2,85,101,112,136,232, - 168,112,2,85,101,112,136,184,168,112,2,85,101,112,168,184, - 136,112,3,85,101,248,144,160,192,128,3,85,101,248,72,40, - 24,8,3,85,101,128,192,160,144,248,20,68,100,240,144,144, - 240,19,68,100,240,240,240,240,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 3 - Calculated Max Values w= 6 h=10 x= 1 y= 2 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_75r[427] U8G_FONT_SECTION("u8g_font_6x12_75r") = { - 1,6,12,0,254,7,1,41,0,0,32,79,0,9,255,7, - 0,2,85,101,248,248,248,248,248,2,85,101,248,136,136,136, - 248,2,85,101,112,136,136,136,112,2,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,20,51,99,224,224,224,20,51,99,224,160,224,3,101,101, - 252,252,252,252,252,3,101,101,252,132,132,132,252,17,74,106, - 240,240,240,240,240,240,240,240,240,240,17,74,106,240,144,144, - 144,144,144,144,144,144,240,4,99,99,60,120,240,4,99,99, - 60,72,240,2,87,103,32,32,112,112,248,248,248,2,87,103, - 32,32,80,80,136,136,248,3,85,101,32,32,112,112,248,3, - 85,101,32,32,80,80,248,18,71,103,128,192,224,240,224,192, - 128,18,71,103,128,192,160,144,160,192,128,19,53,101,128,192, - 224,192,128,19,53,101,128,192,160,192,128,3,101,101,192,240, - 252,240,192,3,101,101,192,176,140,176,192,2,87,103,248,248, - 248,112,112,32,32,2,87,103,248,136,136,80,80,32,32,2, - 85,101,248,112,112,32,32,2,85,101,248,80,80,32,32,18, - 71,103,16,48,112,240,112,48,16,18,71,103,16,48,80,144, - 80,48,16,19,53,101,32,96,224,96,32,19,53,101,32,96, - 160,96,32,3,101,101,12,60,252,60,12,3,101,101,12,52, - 196,52,12,3,85,101,32,112,248,112,32,3,85,101,32,80, - 136,80,32,3,85,101,32,80,168,80,32,2,102,102,48,72, - 180,180,72,48,2,87,103,32,80,80,136,80,80,32,2,102, - 102,48,72,132,132,72,48,2,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,2,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 6 h=12 x= 2 y= 4 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12_78_79[2316] U8G_FONT_SECTION("u8g_font_6x12_78_79") = { - 1,6,12,0,254,6,2,80,3,53,0,255,0,10,254,9, - 0,2,87,103,168,0,136,0,136,0,168,3,101,101,144,252, - 32,64,96,3,101,101,196,200,48,200,196,3,101,101,96,64, - 32,252,144,2,103,103,204,148,232,48,232,148,204,255,1,105, - 105,120,132,180,180,164,180,180,132,120,1,105,105,120,132,180, - 132,180,132,204,132,120,3,101,101,32,176,252,176,32,2,101, - 101,252,204,180,132,252,255,255,18,72,104,144,144,80,112,240, - 240,240,112,3,102,102,4,56,124,124,64,128,2,102,102,64, - 224,80,40,20,12,3,99,99,248,140,248,2,102,102,12,20, - 40,80,224,64,3,100,100,248,132,132,248,4,99,99,248,244, - 248,2,87,103,8,8,16,16,160,224,64,2,103,103,12,12, - 28,216,248,112,48,2,85,101,136,80,32,80,136,3,85,101, - 216,248,32,248,216,2,86,102,136,80,32,80,136,128,1,103, - 103,204,204,120,112,252,204,192,1,103,103,120,204,164,244,164, - 204,120,2,102,102,48,48,252,252,48,48,3,85,101,32,32, - 216,32,32,2,102,102,48,48,204,204,48,48,2,87,103,32, - 32,248,32,32,32,32,1,90,106,112,80,216,136,216,80,80, - 80,80,112,2,105,105,120,220,188,220,88,88,88,120,120,2, - 87,103,112,32,168,248,168,32,112,2,87,103,32,248,80,80, - 80,248,32,3,85,101,32,32,248,32,32,3,102,102,48,48, - 252,252,48,48,2,104,104,48,120,48,252,252,48,120,48,2, - 87,103,32,112,168,248,168,112,32,3,85,101,32,112,248,112, - 32,3,85,101,32,112,216,112,32,255,3,85,101,32,216,80, - 32,80,2,87,103,112,216,136,216,168,248,112,3,86,102,32, - 32,248,80,112,136,3,86,102,32,32,216,32,80,136,3,86, - 102,32,32,248,112,112,136,3,86,102,32,32,248,112,112,136, - 3,86,102,32,32,232,48,80,136,2,102,102,48,88,140,88, - 172,88,2,86,102,32,168,112,112,168,32,2,87,103,32,168, - 112,80,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,2,87,103,32,168,112,248, - 112,168,32,2,86,102,32,168,112,112,168,32,1,88,104,80, - 32,168,112,112,168,32,80,1,88,104,80,32,168,112,112,168, - 32,80,2,103,103,80,248,124,248,124,248,80,2,103,103,80, - 168,116,248,116,168,80,2,86,102,32,168,112,112,168,32,2, - 87,103,32,168,112,80,112,168,32,2,86,102,32,168,112,112, - 168,32,2,103,103,168,216,80,168,116,168,32,3,87,103,32, - 112,248,216,112,248,216,3,87,103,32,112,216,168,80,248,216, - 3,86,102,32,112,216,112,248,32,2,87,103,112,248,168,216, - 168,248,112,2,86,102,32,168,112,112,168,32,2,86,102,32, - 168,112,112,168,32,2,86,102,32,168,112,112,168,32,2,86, - 102,32,168,112,112,168,32,2,87,103,32,168,112,248,112,168, - 32,2,87,103,32,168,112,248,112,168,32,2,87,103,32,168, - 112,248,112,168,32,2,87,103,32,168,112,248,112,168,32,2, - 87,103,32,168,112,248,112,168,32,255,3,101,101,120,140,140, - 140,120,255,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,2,102,102,248,140,140,140,252,124,2,102, - 102,124,252,140,140,140,248,255,255,255,2,103,103,16,56,84, - 236,84,56,16,255,34,23,103,128,128,128,128,128,128,128,18, - 39,103,192,192,192,192,192,192,192,18,71,103,240,240,240,240, - 240,240,240,22,69,101,96,128,224,240,96,22,69,101,96,240, - 112,16,96,6,101,101,72,144,216,252,72,6,101,101,72,252, - 108,36,72,255,255,1,106,106,8,124,200,200,200,120,8,200, - 136,112,2,89,105,112,248,248,112,32,0,32,112,32,2,88, - 104,216,248,112,32,0,32,112,32,2,85,101,216,248,248,112, - 32,2,87,103,96,240,240,120,240,240,96,2,104,104,100,184, - 32,216,248,240,228,120,2,102,102,128,88,120,220,152,64,18, - 56,104,32,64,192,192,192,192,64,32,18,56,104,128,64,96, - 96,96,96,64,128,18,40,104,64,192,192,192,192,192,192,64, - 18,40,104,128,192,192,192,192,192,192,128,17,73,105,48,48, - 96,96,192,96,96,48,48,17,73,105,192,192,96,96,48,96, - 96,192,192,2,87,103,24,48,96,192,96,48,24,2,87,103, - 192,96,48,24,48,96,192,1,89,105,56,56,112,112,224,112, - 112,56,56,1,89,105,224,224,112,112,56,112,112,224,224,17, - 57,105,32,64,128,128,128,128,128,64,32,17,57,105,128,64, - 32,32,32,32,32,64,128,17,73,105,48,96,96,96,192,96, - 96,96,48,17,73,105,192,96,96,96,48,96,96,96,192,2, - 89,105,112,248,216,152,216,216,136,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,2,89,105,112,136,168,232,168,168, - 248,136,112,2,89,105,112,136,168,216,152,168,248,136,112,2, - 89,105,112,136,232,152,168,152,232,136,112,2,89,105,112,136, - 200,200,232,248,168,136,112,2,89,105,112,136,248,200,232,152, - 232,136,112,2,89,105,112,136,184,200,232,216,168,136,112,2, - 89,105,112,136,248,152,168,168,168,136,112,2,89,105,112,136, - 168,216,168,216,168,136,112,2,89,105,112,136,168,216,184,152, - 232,136,112,2,105,105,120,132,212,236,236,236,212,132,120,2, - 89,105,112,248,216,152,216,216,216,248,112,2,89,105,112,248, - 216,168,232,216,136,248,112,2,89,105,112,248,152,232,216,232, - 152,248,112,2,89,105,112,248,184,184,152,136,216,248,112,2, - 89,105,112,248,136,184,152,232,152,248,112,2,89,105,112,248, - 200,184,152,168,216,248,112,2,89,105,112,248,136,232,216,216, - 216,248,112,2,89,105,112,248,216,168,216,168,216,248,112,2, - 89,105,112,248,216,168,200,232,152,248,112,2,105,105,120,252, - 172,148,148,148,172,252,120,3,101,101,48,24,252,24,48,255, - 255,255,2,85,101,128,64,40,24,56,3,85,101,32,48,248, - 48,32,2,85,101,56,24,40,64,128,3,101,101,64,48,252, - 48,64,2,102,102,48,56,252,252,56,48,4,99,99,8,252, - 8,2,102,102,16,24,252,252,24,16,3,99,99,8,188,8, - 2,102,102,16,24,188,188,24,16,3,101,101,16,248,252,248, - 16,2,103,103,192,176,72,60,120,240,192,2,103,103,192,240, - 120,60,72,176,192,3,101,101,224,120,60,120,224,3,102,102, - 128,144,248,252,120,16,2,102,102,16,120,252,248,144,128,2, - 103,103,32,240,248,252,248,240,32,3,101,101,32,240,252,240, - 32,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,3,101,101,16,232,132,232,16,3,101,101,16,232,132,232, - 16,2,102,102,16,232,132,132,232,16,2,102,102,16,232,132, - 132,232,16,3,101,101,16,232,132,232,16,255,3,101,101,16, - 232,132,232,16,2,103,103,120,220,12,4,12,220,120,3,99, - 99,232,124,232,2,102,102,64,224,96,16,12,12,3,99,99, - 232,124,232,2,102,102,12,12,16,96,224,64,2,102,102,96, - 224,224,20,12,28,2,101,101,192,232,124,232,192,2,102,102, - 28,12,20,224,224,96,2,101,101,16,200,252,200,16,2,101, - 101,16,200,252,200,16,3,99,99,232,124,232,3,100,100,232, - 252,252,232,2,101,101,80,232,4,232,80,255,2,85,101,136, - 144,160,192,248,2,86,102,32,32,80,112,168,248,2,86,102, - 32,32,32,32,32,248,2,87,103,120,128,144,168,144,128,120, - 2,87,103,240,8,72,168,72,8,240,18,73,105,64,160,160, - 32,32,64,64,64,48,18,73,105,32,80,80,64,64,32,32, - 32,192,2,87,103,136,168,136,80,80,32,32,2,104,104,128, - 156,160,160,160,92,64,64,2,104,104,4,228,20,20,20,232, - 8,8,18,55,103,64,64,64,224,64,64,64,255,2,103,103, - 252,64,32,32,32,32,64,255,255,255,3,85,101,32,80,168, - 80,32,2,87,103,32,32,80,80,136,168,136,2,87,103,168, - 168,168,168,168,168,112,3,85,101,8,8,40,8,248,3,85, - 101,248,128,160,128,128,3,101,101,196,108,84,108,196,3,101, - 101,140,216,168,216,140,2,101,101,204,120,72,120,204,2,87, - 103,32,32,32,32,32,32,248,2,87,103,248,32,32,32,32, - 32,32,3,85,101,80,216,80,216,80,3,85,101,80,80,216, - 80,80,4,99,99,64,188,64,4,99,99,128,252,128,4,99, - 99,4,252,4,18,55,103,64,160,64,64,64,64,224,3,85, - 101,32,80,248,80,32,3,85,101,32,80,136,80,32,3,101, - 101,16,40,196,40,16,3,101,101,32,80,140,80,32,3,101, - 101,124,68,196,68,124,3,101,101,248,136,140,136,248,1,90, - 106,248,160,160,160,160,160,160,160,160,248,1,90,106,248,40, - 40,40,40,40,40,40,40,248,17,57,105,32,32,64,64,128, - 64,64,32,32,17,57,105,128,128,64,64,32,64,64,128,128, - 0,107,107,20,40,40,80,80,160,80,80,40,40,20,0,107, - 107,160,80,80,40,40,20,40,40,80,80,160,16,75,107,16, - 32,96,160,160,160,160,160,96,32,16,16,76,108,128,64,96, - 80,80,80,80,80,80,96,64,128,17,41,105,128,64,64,64, - 64,64,64,64,128,17,41,105,64,128,128,128,128,128,128,128, - 64,2,87,103,32,112,168,168,168,168,168,2,87,103,168,168, - 168,168,168,112,32,2,103,103,56,68,228,68,4,68,56,2, - 103,103,112,136,156,136,128,136,112,4,99,99,104,252,104,3, - 101,101,32,64,252,64,32,3,101,101,16,8,252,8,16,4, - 99,99,72,252,72,2,103,103,16,32,124,128,124,32,16,2, - 103,103,32,16,248,4,248,16,32,3,101,101,72,252,132,252, - 72,3,101,101,36,68,252,68,36,3,101,101,144,136,252,136, - 144,2,103,103,20,36,124,132,124,36,20,2,103,103,160,144, - 248,132,248,144,160,3,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y=10 dx= 6 dy= 0 ascent=10 len=10 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12[1933] U8G_FONT_SECTION("u8g_font_6x12") = { - 1,6,12,0,254,7,1,53,2,107,32,255,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,12,0,96,34,23,103,128,0,128,128,128,128,128,1, - 87,103,32,112,168,160,168,112,32,2,87,103,48,72,64,224, - 64,72,176,2,85,101,168,80,136,80,168,2,87,103,136,80, - 248,32,248,32,32,34,23,103,128,128,128,0,128,128,128,18, - 72,104,112,128,96,144,144,96,16,224,25,49,97,160,2,103, - 103,120,132,148,164,148,132,120,22,53,101,96,160,96,0,224, - 2,85,101,40,80,160,80,40,3,83,99,248,8,8,21,49, - 97,224,2,103,103,120,132,180,164,164,132,120,9,81,97,248, - 23,68,100,96,144,144,96,2,87,103,32,32,248,32,32,0, - 248,23,53,101,64,160,32,64,224,23,53,101,192,32,64,32, - 192,23,51,99,32,64,128,0,87,103,136,136,136,152,232,128, - 128,2,88,104,120,232,232,232,104,40,40,40,37,34,98,192, - 192,16,50,98,32,192,23,53,101,64,192,64,64,224,23,53, - 101,64,160,64,0,224,2,85,101,160,80,40,80,160,2,90, - 106,64,192,64,64,80,48,80,120,16,16,2,90,106,64,192, - 64,64,80,40,8,16,32,56,2,90,106,192,32,64,32,208, - 48,80,120,16,16,2,87,103,32,0,32,32,64,136,112,2, - 90,106,64,32,0,112,136,136,248,136,136,136,2,90,106,16, - 32,0,112,136,136,248,136,136,136,2,90,106,32,80,0,112, - 136,136,248,136,136,136,2,90,106,104,176,0,112,136,136,248, - 136,136,136,2,89,105,80,0,112,136,136,248,136,136,136,2, - 90,106,32,80,32,112,136,136,248,136,136,136,2,87,103,120, - 160,160,240,160,160,184,0,89,105,112,136,128,128,128,136,112, - 16,96,2,90,106,64,32,0,248,128,128,240,128,128,248,2, - 90,106,16,32,0,248,128,128,240,128,128,248,2,90,106,32, - 80,0,248,128,128,240,128,128,248,2,89,105,80,0,248,128, - 128,240,128,128,248,18,58,106,128,64,0,224,64,64,64,64, - 64,224,18,58,106,32,64,0,224,64,64,64,64,64,224,18, - 58,106,64,160,0,224,64,64,64,64,64,224,18,57,105,160, - 0,224,64,64,64,64,64,224,2,87,103,112,72,72,232,72, - 72,112,2,90,106,104,176,0,136,136,200,168,152,136,136,2, - 90,106,64,32,0,112,136,136,136,136,136,112,2,90,106,16, - 32,0,112,136,136,136,136,136,112,2,90,106,32,80,0,112, - 136,136,136,136,136,112,2,90,106,104,176,0,112,136,136,136, - 136,136,112,2,89,105,80,0,112,136,136,136,136,136,112,3, - 85,101,136,80,32,80,136,1,89,105,8,112,152,168,168,168, - 200,112,128,2,90,106,64,32,0,136,136,136,136,136,136,112, - 2,90,106,16,32,0,136,136,136,136,136,136,112,2,90,106, - 32,80,0,136,136,136,136,136,136,112,2,89,105,80,0,136, - 136,136,136,136,136,112,2,90,106,16,32,0,136,136,80,32, - 32,32,32,18,71,103,128,224,144,144,144,224,128,2,87,103, - 112,136,144,160,144,136,176,2,88,104,64,32,0,112,8,120, - 136,120,2,88,104,16,32,0,112,8,120,136,120,2,88,104, - 32,80,0,112,8,120,136,120,2,88,104,104,176,0,112,8, - 120,136,120,2,87,103,80,0,112,8,120,136,120,2,88,104, - 32,80,32,112,8,120,136,120,2,85,101,112,40,112,160,120, - 0,87,103,112,136,128,136,112,16,96,2,88,104,64,32,0, - 112,136,240,128,112,2,88,104,16,32,0,112,136,240,128,112, - 2,88,104,32,80,0,112,136,240,128,112,2,87,103,80,0, - 112,136,240,128,112,18,56,104,128,64,0,192,64,64,64,224, - 18,56,104,32,64,0,192,64,64,64,224,18,56,104,64,160, - 0,192,64,64,64,224,18,55,103,160,0,192,64,64,64,224, - 2,89,105,80,32,80,8,120,136,136,136,112,2,88,104,104, - 176,0,176,200,136,136,136,2,88,104,64,32,0,112,136,136, - 136,112,2,88,104,16,32,0,112,136,136,136,112,2,88,104, - 32,80,0,112,136,136,136,112,2,88,104,104,176,0,112,136, - 136,136,112,2,87,103,80,0,112,136,136,136,112,3,85,101, - 32,0,248,0,32,2,85,101,120,152,168,200,240,2,88,104, - 64,32,0,136,136,136,136,112,2,88,104,16,32,0,136,136, - 136,136,112,2,88,104,32,80,0,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,0,90,106,16,32,0,136,136, - 136,80,32,64,128,0,89,105,128,128,240,136,136,136,240,128, - 128,0,89,105,80,0,136,136,136,80,32,64,128}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--12-110-75-75-C-60-ISO10646-1 - Copyright: Public domain terminal emulator font. Share and enjoy. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 5 h= 9 x= 2 y=10 dx= 6 dy= 0 ascent=10 len= 9 - Font Bounding box w= 6 h=12 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x12r[898] U8G_FONT_SECTION("u8g_font_6x12r") = { - 1,6,12,0,254,7,1,53,2,107,32,127,254,10,254,8, - 254,12,0,96,34,23,103,128,128,128,128,128,0,128,23,51, - 99,160,160,160,2,86,102,80,248,80,80,248,80,1,89,105, - 32,112,168,160,112,40,168,112,32,2,87,103,200,200,16,32, - 64,152,152,2,87,103,64,160,160,64,168,144,104,39,19,99, - 128,128,128,17,57,105,32,64,64,128,128,128,64,64,32,17, - 57,105,128,64,64,32,32,32,64,64,128,2,87,103,32,168, - 112,32,112,168,32,3,85,101,32,32,248,32,32,1,51,99, - 96,96,192,5,81,97,248,18,34,98,192,192,2,87,103,8, - 16,16,32,64,64,128,18,71,103,96,144,144,144,144,144,96, - 18,55,103,64,192,64,64,64,64,224,2,87,103,112,136,8, - 16,32,64,248,2,87,103,248,8,16,48,8,136,112,2,87, - 103,16,48,80,144,248,16,16,2,87,103,248,128,240,8,8, - 136,112,2,87,103,48,64,128,240,136,136,112,2,87,103,248, - 8,16,16,32,32,32,2,87,103,112,136,136,112,136,136,112, - 2,87,103,112,136,136,120,8,16,96,18,37,101,192,192,0, - 192,192,1,54,102,96,96,0,96,96,192,19,53,101,32,64, - 128,64,32,4,83,99,248,0,248,19,53,101,128,64,32,64, - 128,2,87,103,112,136,16,32,32,0,32,2,87,103,112,136, - 184,168,184,128,112,2,87,103,112,136,136,248,136,136,136,2, - 87,103,240,72,72,112,72,72,240,2,87,103,112,136,128,128, - 128,136,112,2,87,103,240,72,72,72,72,72,240,2,87,103, - 248,128,128,240,128,128,248,2,87,103,248,128,128,240,128,128, - 128,2,87,103,112,136,128,128,152,136,112,2,87,103,136,136, - 136,248,136,136,136,18,55,103,224,64,64,64,64,64,224,2, - 87,103,56,16,16,16,16,144,96,2,87,103,136,144,160,192, - 160,144,136,2,87,103,128,128,128,128,128,128,248,2,87,103, - 136,216,168,136,136,136,136,2,87,103,136,136,200,168,152,136, - 136,2,87,103,112,136,136,136,136,136,112,2,87,103,240,136, - 136,240,128,128,128,2,87,103,112,136,136,136,168,144,104,2, - 87,103,240,136,136,240,160,144,136,2,87,103,112,136,128,112, - 8,136,112,2,87,103,248,32,32,32,32,32,32,2,87,103, - 136,136,136,136,136,136,112,2,87,103,136,136,136,136,80,80, - 32,2,87,103,136,136,136,136,168,168,80,2,87,103,136,136, - 80,32,80,136,136,2,87,103,136,136,80,32,32,32,32,2, - 87,103,248,8,16,32,64,128,248,17,57,105,224,128,128,128, - 128,128,128,128,224,2,87,103,128,64,64,32,16,16,8,17, - 57,105,224,32,32,32,32,32,32,32,224,7,83,99,32,80, - 136,0,81,97,248,23,51,99,128,64,32,2,85,101,112,8, - 120,136,120,2,87,103,128,128,240,136,136,136,240,2,85,101, - 112,136,128,136,112,2,87,103,8,8,120,136,136,136,120,2, - 85,101,112,136,240,128,112,2,87,103,48,72,64,224,64,64, - 64,0,87,103,112,136,136,136,120,8,112,2,87,103,128,128, - 240,136,136,136,136,18,55,103,64,0,192,64,64,64,224,16, - 73,105,16,0,48,16,16,16,16,144,96,2,87,103,128,128, - 136,144,224,144,136,18,55,103,192,64,64,64,64,64,224,2, - 85,101,208,168,168,168,168,2,85,101,176,200,136,136,136,2, - 85,101,112,136,136,136,112,0,87,103,240,136,136,136,240,128, - 128,0,87,103,120,136,136,136,120,8,8,2,85,101,176,200, - 128,128,128,2,85,101,120,128,112,8,240,2,87,103,32,32, - 248,32,32,32,24,2,85,101,136,136,136,152,104,2,85,101, - 136,136,136,80,32,2,85,101,136,136,168,168,80,2,85,101, - 136,80,32,80,136,0,87,103,136,136,136,80,32,64,128,2, - 85,101,248,16,32,64,248,17,57,105,32,64,64,64,128,64, - 64,64,32,33,25,105,128,128,128,128,128,128,128,128,128,17, - 57,105,128,64,64,64,32,64,64,64,128,4,83,99,72,168, - 144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w= 6 h=13 x= 5 y= 9 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_67_75[2236] U8G_FONT_SECTION("u8g_font_6x13_67_75") = { - 1,6,13,0,254,3,1,73,2,147,32,255,0,11,254,9, - 0,3,101,101,80,40,252,40,80,2,89,105,32,32,32,32, - 168,112,168,112,32,3,101,101,36,72,240,72,36,3,101,101, - 144,72,60,72,144,3,85,101,32,72,248,72,32,2,89,105, - 32,112,168,32,32,32,32,32,248,3,85,101,32,144,248,144, - 32,2,89,105,248,32,32,32,32,32,168,112,32,2,89,105, - 32,112,168,32,32,168,112,32,248,3,101,101,40,68,248,64, - 32,3,101,101,80,136,124,8,16,3,101,101,32,76,252,72, - 40,3,101,101,16,200,252,72,80,4,100,100,72,220,236,72, - 3,101,101,8,88,252,104,64,2,89,105,128,128,144,176,208, - 144,16,56,16,2,89,105,32,64,248,72,40,8,8,8,8, - 2,89,105,32,16,248,144,160,128,128,128,128,2,89,105,8, - 8,8,8,40,72,248,64,32,2,89,105,128,128,128,128,160, - 144,248,16,32,3,85,101,240,16,16,56,16,3,86,102,8, - 8,8,72,248,64,3,85,101,48,72,72,232,72,3,85,101, - 96,144,144,184,144,2,89,105,248,128,224,192,160,32,16,16, - 8,2,89,105,160,192,248,192,168,24,248,24,40,3,86,102, - 56,48,168,136,136,112,3,86,102,224,96,168,136,136,112,5, - 83,99,32,64,248,3,83,99,248,64,32,34,57,105,128,192, - 160,128,128,128,128,128,128,2,57,105,32,96,160,32,32,32, - 32,32,32,5,83,99,32,16,248,3,83,99,248,16,32,34, - 57,105,128,128,128,128,128,128,160,192,128,2,57,105,32,32, - 32,32,32,32,160,96,32,2,89,105,32,16,248,16,32,64, - 248,64,32,2,89,105,80,240,80,80,80,80,80,120,80,2, - 89,105,32,64,248,64,32,16,248,16,32,2,89,105,32,64, - 248,64,32,64,248,64,32,2,89,105,80,248,80,80,80,80, - 80,80,80,2,89,105,32,16,248,16,32,16,248,16,32,2, - 89,105,80,80,80,80,80,80,80,248,80,2,87,103,32,64, - 248,0,248,16,32,2,87,103,32,16,248,0,248,64,32,2, - 103,103,20,40,124,144,124,32,80,2,103,103,8,88,252,164, - 252,104,64,2,103,103,160,80,248,36,248,16,40,2,103,103, - 16,32,124,128,124,32,16,2,89,105,32,80,216,80,80,80, - 80,80,80,2,103,103,32,16,248,4,248,16,32,2,89,105, - 80,80,80,80,80,80,216,80,32,3,101,101,72,252,132,252, - 72,2,89,105,32,80,216,80,80,80,216,80,32,3,102,102, - 248,160,208,168,148,8,3,102,102,124,20,44,84,164,64,3, - 102,102,64,164,84,44,20,124,3,102,102,8,148,168,208,160, - 248,2,103,103,16,60,64,252,64,60,16,2,103,103,32,240, - 8,252,8,240,32,4,100,100,64,232,212,64,4,100,100,8, - 92,172,8,2,89,105,32,112,168,32,112,32,112,32,32,2, - 89,105,32,32,112,32,112,32,168,112,32,3,85,101,32,64, - 168,64,32,2,89,105,32,112,168,0,32,32,0,32,32,3, - 85,101,32,16,168,16,32,2,89,105,32,32,0,32,32,0, - 168,112,32,3,85,101,160,192,248,192,160,3,85,101,40,24, - 248,24,40,3,85,101,32,120,136,120,32,2,89,105,32,80, - 216,80,80,80,80,80,112,3,85,101,32,240,136,240,32,2, - 89,105,112,80,80,80,80,80,216,80,32,2,90,106,32,80, - 216,80,80,112,0,112,80,112,2,89,105,32,80,216,80,80, - 80,216,136,248,2,89,105,32,80,248,136,80,80,216,136,248, - 2,89,105,32,112,248,112,112,112,248,168,248,2,89,105,32, - 80,216,80,216,80,80,80,112,2,89,105,32,80,216,80,216, - 80,216,136,248,3,85,101,160,240,136,240,160,3,88,104,248, - 128,176,224,144,16,8,8,2,88,104,128,128,64,72,56,104, - 8,248,2,89,105,32,80,216,80,80,80,216,80,32,3,101, - 101,16,104,252,104,16,2,89,105,80,120,80,80,80,80,80, - 240,80,2,89,105,16,248,16,16,248,16,16,248,16,3,101, - 101,40,72,252,72,40,3,101,101,80,72,252,72,80,4,101, - 101,48,120,252,120,48,3,101,101,56,88,252,88,56,3,101, - 101,112,104,252,104,112,4,101,101,48,120,252,120,48,3,85, - 101,32,96,184,96,32,3,85,101,32,48,232,48,32,4,101, - 101,48,120,180,120,48,7,102,102,252,252,252,252,252,252,0, - 98,98,252,252,0,99,99,252,252,252,0,101,101,252,252,252, - 252,252,0,103,103,252,252,252,252,252,252,252,0,104,104,252, - 252,252,252,252,252,252,252,0,106,106,252,252,252,252,252,252, - 252,252,252,252,0,107,107,252,252,252,252,252,252,252,252,252, - 252,252,0,109,109,252,252,252,252,252,252,252,252,252,252,252, - 252,252,0,93,109,248,248,248,248,248,248,248,248,248,248,248, - 248,248,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,77,109,240,240,240,240,240,240,240,240,240,240,240, - 240,240,0,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,45,109,192,192,192,192,192,192,192,192,192,192,192, - 192,192,0,29,109,128,128,128,128,128,128,128,128,128,128,128, - 128,128,48,61,109,224,224,224,224,224,224,224,224,224,224,224, - 224,224,0,109,109,168,0,84,0,168,0,84,0,168,0,84, - 0,168,0,109,109,168,84,168,84,168,84,168,84,168,84,168, - 84,168,0,109,109,84,252,168,252,84,252,168,252,84,252,168, - 252,84,11,98,98,252,252,80,29,109,128,128,128,128,128,128, - 128,128,128,128,128,128,128,0,55,103,224,224,224,224,224,224, - 224,48,55,103,224,224,224,224,224,224,224,7,54,102,224,224, - 224,224,224,224,0,109,109,224,224,224,224,224,224,252,252,252, - 252,252,252,252,0,109,109,224,224,224,224,224,224,28,28,28, - 28,28,28,28,0,109,109,252,252,252,252,252,252,224,224,224, - 224,224,224,224,0,109,109,252,252,252,252,252,252,28,28,28, - 28,28,28,28,55,54,102,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,224,224,224,224,224,224,224,0,109,109, - 28,28,28,28,28,28,252,252,252,252,252,252,252,3,85,101, - 248,248,248,248,248,3,85,101,248,136,136,136,248,3,85,101, - 112,136,136,136,112,3,85,101,248,136,168,136,248,2,85,101, - 248,136,248,136,248,2,85,101,248,168,168,168,248,2,85,101, - 248,168,248,168,248,2,85,101,248,200,168,152,248,2,85,101, - 248,152,168,200,248,2,85,101,248,216,168,216,248,21,51,99, - 224,224,224,21,51,99,224,160,224,4,101,101,252,252,252,252, - 252,4,101,101,252,132,132,132,252,17,75,107,240,240,240,240, - 240,240,240,240,240,240,240,17,75,107,240,144,144,144,144,144, - 144,144,144,144,240,5,99,99,60,120,240,5,99,99,60,72, - 240,2,89,105,32,32,32,112,112,112,248,248,248,2,89,105, - 32,32,32,80,80,80,136,136,248,4,85,101,32,32,112,112, - 248,4,85,101,32,32,80,80,248,2,89,105,128,192,224,240, - 248,240,224,192,128,2,89,105,128,192,160,144,136,144,160,192, - 128,20,53,101,128,192,224,192,128,20,53,101,128,192,160,192, - 128,4,101,101,192,240,252,240,192,4,101,101,192,176,140,176, - 192,2,89,105,248,248,248,112,112,112,32,32,32,2,89,105, - 248,136,136,80,80,80,32,32,32,3,85,101,248,112,112,32, - 32,3,85,101,248,80,80,32,32,2,89,105,8,24,56,120, - 248,120,56,24,8,2,89,105,8,24,40,72,136,72,40,24, - 8,20,53,101,32,96,224,96,32,20,53,101,32,96,160,96, - 32,4,101,101,12,60,252,60,12,4,101,101,12,52,196,52, - 12,4,85,101,32,112,248,112,32,4,85,101,32,80,136,80, - 32,4,85,101,32,80,168,80,32,3,102,102,48,72,180,180, - 72,48,2,89,105,32,32,80,80,136,80,80,32,32,3,102, - 102,48,72,132,132,72,48,3,102,102,32,8,128,4,64,16, - 2,85,101,112,168,168,168,112,2,87,103,112,136,168,216,168, - 136,112,3,102,102,48,120,252,252,120,48,3,102,102,48,104, - 228,228,104,48,3,102,102,48,88,156,156,88,48,3,102,102, - 48,72,132,252,120,48,3,102,102,48,120,252,132,72,48,3, - 102,102,48,88,156,132,72,48,3,102,102,48,88,156,252,120, - 48,18,90,106,8,56,120,120,248,248,120,120,56,8,2,90, - 106,128,224,240,240,248,248,240,240,224,128,0,109,109,252,252, - 252,252,252,204,132,132,204,252,252,252,252,0,109,109,252,252, - 252,252,204,180,120,120,180,204,252,252,252,6,103,103,252,252, - 252,252,204,180,120,0,102,102,120,180,204,252,252,252,6,51, - 99,32,64,128,54,51,99,128,64,32,51,51,99,32,64,128, - 3,51,99,128,64,32,6,99,99,48,72,132,3,99,99,132, - 72,48,3,85,101,8,24,56,120,248,3,85,101,128,192,224, - 240,248,3,85,101,248,240,224,192,128,3,85,101,248,120,56, - 24,8,4,85,101,112,136,136,136,112,3,85,101,248,232,232, - 232,248,3,85,101,248,184,184,184,248,3,85,101,248,248,232, - 200,248,3,85,101,248,152,184,248,248,3,85,101,248,168,168, - 168,248,2,89,105,32,32,32,80,80,112,168,136,248,2,89, - 105,32,32,32,112,112,112,232,232,248,2,89,105,32,32,32, - 112,112,112,184,184,248,2,103,103,48,72,132,132,132,72,48, - 3,85,101,248,168,232,136,248,3,85,101,248,136,232,168,248, - 3,85,101,248,136,184,168,248,3,85,101,248,168,184,136,248, - 3,85,101,112,168,232,136,112,3,85,101,112,136,232,168,112, - 3,85,101,112,136,184,168,112,3,85,101,112,168,184,136,112, - 3,85,101,248,144,160,192,128,3,85,101,248,72,40,24,8, - 3,85,101,128,192,160,144,248,20,68,100,240,144,144,240,20, - 68,100,240,240,240,240,20,68,100,240,144,144,240,20,68,100, - 240,240,240,240,3,85,101,8,24,40,72,248}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 3 - Calculated Max Values w= 6 h=11 x= 1 y= 3 dx= 6 dy= 0 ascent=10 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_75r[447] U8G_FONT_SECTION("u8g_font_6x13_75r") = { - 1,6,13,0,254,9,1,57,0,0,32,79,0,10,255,9, - 0,3,85,101,248,248,248,248,248,3,85,101,248,136,136,136, - 248,3,85,101,112,136,136,136,112,3,85,101,248,136,168,136, - 248,2,85,101,248,136,248,136,248,2,85,101,248,168,168,168, - 248,2,85,101,248,168,248,168,248,2,85,101,248,200,168,152, - 248,2,85,101,248,152,168,200,248,2,85,101,248,216,168,216, - 248,21,51,99,224,224,224,21,51,99,224,160,224,4,101,101, - 252,252,252,252,252,4,101,101,252,132,132,132,252,17,75,107, - 240,240,240,240,240,240,240,240,240,240,240,17,75,107,240,144, - 144,144,144,144,144,144,144,144,240,5,99,99,60,120,240,5, - 99,99,60,72,240,2,89,105,32,32,32,112,112,112,248,248, - 248,2,89,105,32,32,32,80,80,80,136,136,248,4,85,101, - 32,32,112,112,248,4,85,101,32,32,80,80,248,2,89,105, - 128,192,224,240,248,240,224,192,128,2,89,105,128,192,160,144, - 136,144,160,192,128,20,53,101,128,192,224,192,128,20,53,101, - 128,192,160,192,128,4,101,101,192,240,252,240,192,4,101,101, - 192,176,140,176,192,2,89,105,248,248,248,112,112,112,32,32, - 32,2,89,105,248,136,136,80,80,80,32,32,32,3,85,101, - 248,112,112,32,32,3,85,101,248,80,80,32,32,2,89,105, - 8,24,56,120,248,120,56,24,8,2,89,105,8,24,40,72, - 136,72,40,24,8,20,53,101,32,96,224,96,32,20,53,101, - 32,96,160,96,32,4,101,101,12,60,252,60,12,4,101,101, - 12,52,196,52,12,4,85,101,32,112,248,112,32,4,85,101, - 32,80,136,80,32,4,85,101,32,80,168,80,32,3,102,102, - 48,72,180,180,72,48,2,89,105,32,32,80,80,136,80,80, - 32,32,3,102,102,48,72,132,132,72,48,3,102,102,32,8, - 128,4,64,16,2,85,101,112,168,168,168,112,2,87,103,112, - 136,168,216,168,136,112,3,102,102,48,120,252,252,120,48}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 6 h=13 x= 2 y= 5 dx= 6 dy= 0 ascent=11 len=13 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13_78_79[1470] U8G_FONT_SECTION("u8g_font_6x13_78_79") = { - 1,6,13,0,254,7,1,42,2,11,32,255,0,11,254,10, - 0,2,87,103,112,32,168,248,168,32,112,255,2,104,104,48, - 48,48,252,252,48,48,48,2,89,105,32,112,32,168,248,168, - 32,112,32,2,89,105,32,112,32,168,248,168,32,112,32,2, - 89,105,32,112,32,168,248,168,32,112,32,4,85,101,32,112, - 248,112,32,4,85,101,32,80,136,80,32,255,4,86,102,32, - 32,248,80,112,136,2,89,105,112,216,216,0,136,136,112,248, - 112,4,86,102,32,32,248,80,112,136,4,86,102,32,32,248, - 112,112,136,4,86,102,32,32,248,112,112,136,4,86,102,32, - 32,248,112,112,136,4,86,102,32,32,248,112,112,136,4,102, - 102,48,48,252,88,120,204,3,87,103,32,168,112,112,112,168, - 32,3,87,103,32,168,112,80,112,168,32,3,87,103,32,168, - 112,248,112,168,32,3,87,103,32,168,112,248,112,168,32,3, - 87,103,32,168,112,248,112,168,32,3,87,103,32,168,112,112, - 112,168,32,3,87,103,80,80,248,32,248,80,80,3,87,103, - 80,112,248,112,248,112,80,255,255,3,87,103,32,168,168,112, - 168,168,32,3,87,103,32,168,168,80,168,168,32,3,87,103, - 32,168,168,112,168,168,32,3,87,103,32,168,168,80,168,168, - 32,4,85,101,32,248,80,112,216,255,255,255,3,87,103,32, - 168,168,112,168,168,32,3,87,103,32,168,168,112,168,168,32, - 3,87,103,32,168,168,112,168,168,32,3,87,103,32,168,168, - 112,168,168,32,3,87,103,32,168,112,248,112,168,32,3,87, - 103,32,168,112,248,112,168,32,3,87,103,32,168,168,112,168, - 168,32,3,87,103,32,168,112,248,112,168,32,3,87,103,32, - 168,112,248,112,168,32,255,2,102,102,120,140,140,140,140,120, - 255,2,102,102,248,136,140,140,252,60,2,102,102,60,252,140, - 140,136,248,2,102,102,248,140,140,140,252,124,2,102,102,124, - 252,140,140,140,248,255,255,255,2,89,105,32,112,32,80,248, - 80,32,112,32,255,34,25,105,128,128,128,128,128,128,128,128, - 128,18,57,105,224,224,224,224,224,224,224,224,224,2,89,105, - 248,248,248,248,248,248,248,248,248,23,53,101,96,128,224,224, - 64,23,53,101,64,224,224,32,192,7,101,101,108,144,252,252, - 72,7,101,101,72,252,252,36,216,255,255,2,106,106,8,124, - 232,232,120,8,104,104,72,48,18,57,105,64,224,224,64,64, - 0,64,224,64,2,89,105,80,248,248,112,32,0,32,112,32, - 2,87,103,80,248,248,248,112,32,32,2,103,103,96,240,248, - 124,248,240,96,2,89,105,104,176,16,216,248,240,96,104,48, - 2,104,104,64,144,184,124,92,188,184,80,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,2,89,105,112,248,216,152, - 216,216,136,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,2,89,105,112,136,168,232,168,168,168,136,112,2,89,105, - 112,136,168,216,152,168,248,136,112,2,89,105,112,136,168,216, - 168,152,232,136,112,2,89,105,112,136,200,200,232,248,168,136, - 112,2,89,105,112,136,248,200,232,152,232,136,112,2,89,105, - 112,136,184,200,232,216,168,136,112,2,89,105,112,136,248,152, - 168,168,168,136,112,2,89,105,112,136,168,216,168,216,168,136, - 112,2,89,105,112,136,168,216,184,152,232,136,112,2,105,105, - 120,132,212,236,236,236,212,132,120,2,89,105,112,248,216,152, - 216,216,216,248,112,2,89,105,112,248,216,168,232,216,136,248, - 112,2,89,105,112,248,216,168,216,232,152,248,112,2,89,105, - 112,248,184,184,152,136,216,248,112,2,89,105,112,248,136,184, - 152,232,152,248,112,2,89,105,112,248,200,184,152,168,216,248, - 112,2,89,105,112,248,136,232,216,216,216,248,112,2,89,105, - 112,248,216,168,216,168,216,248,112,2,89,105,112,248,216,168, - 200,232,152,248,112,2,105,105,120,252,172,148,148,148,172,252, - 120,4,102,102,48,24,252,252,24,48,255,255,255,4,85,101, - 128,64,40,24,56,4,85,101,32,48,248,48,32,4,85,101, - 56,24,40,64,128,3,103,103,64,32,48,252,48,32,64,3, - 104,104,32,48,24,252,252,24,48,32,4,101,101,16,24,252, - 24,16,4,102,102,16,24,252,252,24,16,4,102,102,16,24, - 188,188,24,16,3,103,103,32,48,184,188,184,48,32,3,103, - 103,32,48,248,252,248,48,32,255,255,4,101,101,192,112,60, - 112,192,3,103,103,32,176,248,252,120,48,32,3,103,103,32, - 48,120,252,248,176,32,0,109,109,32,32,48,240,248,248,252, - 248,248,240,48,32,32,255,255,255,255,255,255,255,255,255,255, - 1,107,107,120,252,220,204,4,0,4,204,220,248,120,255,4, - 102,102,32,32,224,20,12,28,4,101,101,144,200,124,200,144, - 4,102,102,28,12,20,224,32,32,4,102,102,32,32,224,20, - 12,28,4,101,101,144,200,124,200,144,4,102,102,28,12,20, - 224,32,32,4,101,101,16,8,252,8,16,4,101,101,16,200, - 252,200,16,5,99,99,232,124,232,4,101,101,208,216,124,216, - 208,2,105,105,160,80,40,244,4,244,40,80,160,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,1,91,107,248,160,160,160,160,160,160,160,160, - 160,248,1,91,107,248,40,40,40,40,40,40,40,40,40,248, - 17,75,107,16,32,32,64,64,128,64,64,32,32,16,17,75, - 107,128,64,64,32,32,16,32,32,64,64,128,1,107,107,20, - 40,40,80,80,160,80,80,40,40,20,1,107,107,160,80,80, - 40,40,20,40,40,80,80,160,255,255,255,255,255,255,255,255, - 255,3,101,101,32,64,252,64,32,3,101,101,16,8,252,8, - 16,4,99,99,72,252,72,2,103,103,16,32,124,128,124,32, - 16,2,103,103,32,16,248,4,248,16,32,3,101,101,72,252, - 132,252,72,3,101,101,36,68,252,68,36,3,101,101,144,136, - 252,136,144,2,103,103,20,36,124,132,124,36,20,2,103,103, - 160,144,248,132,248,144,160,4,100,100,8,92,172,8}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13B[2171] U8G_FONT_SECTION("u8g_font_6x13B") = { - 1,6,13,0,254,9,1,99,2,211,32,255,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 13,0,96,34,42,106,192,192,0,192,192,192,192,192,192,192, - 3,104,104,16,120,212,208,208,212,120,16,2,105,105,56,108, - 96,96,248,96,96,100,248,3,102,102,204,252,72,72,252,204, - 2,105,105,204,204,120,120,252,48,252,48,48,34,42,106,192, - 192,192,192,0,0,192,192,192,192,2,106,106,120,204,192,120, - 204,204,120,12,204,120,9,98,98,204,204,2,105,105,120,204, - 180,236,228,236,180,204,120,4,103,103,248,12,252,140,252,0, - 252,3,103,103,52,104,208,160,208,104,52,4,100,100,252,252, - 4,4,22,65,97,240,2,105,105,120,204,188,172,188,180,172, - 204,120,9,82,98,248,248,7,100,100,120,204,204,120,2,105, - 105,48,48,252,252,48,48,0,252,252,6,70,102,224,176,48, - 96,192,240,6,70,102,224,176,96,48,176,224,26,50,98,96, - 192,0,104,104,204,204,204,204,204,252,128,128,2,105,105,124, - 252,244,244,244,116,52,52,52,38,34,98,192,192,16,50,98, - 96,192,6,70,102,96,224,96,96,96,240,5,87,103,112,248, - 136,248,112,0,248,3,103,103,176,88,44,20,44,88,176,2, - 106,106,96,224,96,96,100,252,28,52,60,12,2,106,106,96, - 224,96,96,120,236,12,24,48,60,2,106,106,224,176,96,48, - 180,236,28,52,60,12,2,106,106,48,48,0,48,48,96,192, - 204,204,120,2,106,106,96,48,0,48,120,204,204,252,204,204, - 2,106,106,24,48,0,48,120,204,204,252,204,204,2,106,106, - 56,108,0,48,120,204,204,252,204,204,2,106,106,52,88,0, - 48,120,204,204,252,204,204,2,106,106,204,204,0,48,120,204, - 204,252,204,204,2,106,106,48,72,120,48,120,204,204,252,204, - 204,2,105,105,124,176,176,176,184,240,240,176,188,0,107,107, - 120,204,192,192,192,192,192,204,120,48,96,2,106,106,96,48, - 0,252,192,192,248,192,192,252,2,106,106,24,48,0,252,192, - 192,248,192,192,252,2,106,106,56,108,0,252,192,192,248,192, - 192,252,2,106,106,204,204,0,252,192,192,248,192,192,252,18, - 74,106,192,96,0,240,96,96,96,96,96,240,18,74,106,48, - 96,0,240,96,96,96,96,96,240,2,90,106,112,216,0,120, - 48,48,48,48,48,120,2,106,106,204,204,0,120,48,48,48, - 48,48,120,2,105,105,248,108,108,108,236,108,108,108,248,2, - 106,106,52,88,0,204,236,236,252,220,220,204,2,106,106,96, - 48,0,120,204,204,204,204,204,120,2,106,106,24,48,0,120, - 204,204,204,204,204,120,2,106,106,56,108,0,120,204,204,204, - 204,204,120,2,106,106,52,88,0,120,204,204,204,204,204,120, - 2,106,106,204,204,0,120,204,204,204,204,204,120,3,101,101, - 204,120,48,120,204,1,105,105,4,120,220,220,204,236,236,120, - 128,2,106,106,96,48,0,204,204,204,204,204,204,120,2,106, - 106,24,48,0,204,204,204,204,204,204,120,2,106,106,56,108, - 0,204,204,204,204,204,204,120,2,106,106,108,108,0,204,204, - 204,204,204,204,120,2,106,106,24,48,0,204,72,120,48,48, - 48,48,2,105,105,192,248,204,204,204,248,192,192,192,1,105, - 105,120,204,204,248,204,204,204,248,128,2,105,105,96,48,0, - 120,12,124,204,220,108,2,105,105,24,48,0,120,12,124,204, - 220,108,2,105,105,56,108,0,120,12,124,204,220,108,2,105, - 105,52,88,0,120,12,124,204,220,108,2,105,105,108,108,0, - 120,12,124,204,220,108,2,106,106,56,40,56,0,120,12,124, - 204,220,108,2,102,102,120,52,120,176,180,104,0,104,104,120, - 204,192,192,204,120,48,96,2,105,105,96,48,0,120,204,252, - 192,192,120,2,105,105,24,48,0,120,204,252,192,192,120,2, - 105,105,56,108,0,120,204,252,192,192,120,2,105,105,108,108, - 0,120,204,252,192,192,120,18,73,105,192,96,0,224,96,96, - 96,96,240,18,73,105,48,96,0,224,96,96,96,96,240,2, - 89,105,112,216,0,112,48,48,48,48,120,2,89,105,216,216, - 0,112,48,48,48,48,120,2,106,106,216,112,240,152,120,204, - 204,204,204,120,2,105,105,52,88,0,216,236,204,204,204,204, - 2,105,105,96,48,0,120,204,204,204,204,120,2,105,105,24, - 48,0,120,204,204,204,204,120,2,105,105,56,108,0,120,204, - 204,204,204,120,2,105,105,52,88,0,120,204,204,204,204,120, - 2,105,105,204,204,0,120,204,204,204,204,120,3,103,103,48, - 48,0,252,0,48,48,1,105,105,4,120,204,220,204,236,204, - 120,128,2,105,105,96,48,0,204,204,204,204,220,108,2,105, - 105,24,48,0,204,204,204,204,220,108,2,105,105,56,108,0, - 204,204,204,204,220,108,2,105,105,204,204,0,204,204,204,204, - 220,108,0,107,107,24,48,0,204,204,204,220,108,12,204,120, - 0,106,106,192,192,216,236,204,236,216,192,192,192,0,107,107, - 204,204,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Br[1040] U8G_FONT_SECTION("u8g_font_6x13Br") = { - 1,6,13,0,254,9,1,99,2,211,32,127,254,11,254,10, - 254,13,0,96,34,41,105,192,192,192,192,192,192,192,0,192, - 8,83,99,216,216,216,3,103,103,120,120,252,120,252,120,120, - 3,103,103,48,120,240,120,60,120,48,2,105,105,108,252,120, - 24,48,96,120,252,216,2,103,103,96,240,240,96,252,216,124, - 40,35,99,192,192,192,17,75,107,48,96,96,192,192,192,192, - 192,96,96,48,17,75,107,192,96,96,48,48,48,48,48,96, - 96,192,4,101,101,204,120,252,120,204,4,101,101,48,48,252, - 48,48,17,67,99,112,96,192,6,97,97,252,17,67,99,96, - 240,96,2,105,105,12,12,24,24,48,96,96,192,192,2,105, - 105,48,120,204,204,204,204,204,120,48,2,105,105,48,112,240, - 48,48,48,48,48,252,2,105,105,120,204,204,12,24,48,96, - 192,252,2,105,105,252,12,24,48,120,12,12,204,120,2,105, - 105,24,24,56,120,88,216,252,24,24,2,105,105,252,192,192, - 248,236,12,12,204,120,2,105,105,56,96,192,192,248,236,204, - 204,120,2,105,105,252,12,24,24,48,48,96,96,96,2,105, - 105,120,204,204,204,120,204,204,204,120,2,105,105,120,204,204, - 220,124,12,12,24,112,18,72,104,96,240,96,0,0,96,240, - 96,17,72,104,96,240,96,0,0,112,96,192,2,105,105,12, - 24,48,96,192,96,48,24,12,4,100,100,252,0,0,252,2, - 105,105,192,96,48,24,12,24,48,96,192,2,105,105,120,204, - 204,12,24,48,48,0,48,2,105,105,120,204,204,220,252,252, - 248,192,124,2,105,105,48,120,204,204,204,252,204,204,204,2, - 105,105,248,108,108,108,120,108,108,108,248,2,105,105,120,204, - 192,192,192,192,192,204,120,2,105,105,248,108,108,108,108,108, - 108,108,248,2,105,105,252,192,192,192,248,192,192,192,252,2, - 105,105,252,192,192,192,248,192,192,192,192,2,105,105,120,204, - 192,192,192,220,204,204,120,2,105,105,204,204,204,204,252,204, - 204,204,204,18,73,105,240,96,96,96,96,96,96,96,240,2, - 105,105,60,12,12,12,12,12,12,204,120,2,105,105,204,204, - 216,240,224,240,216,204,204,2,105,105,192,192,192,192,192,192, - 192,192,252,2,105,105,204,204,252,252,252,204,204,204,204,2, - 105,105,204,236,236,252,252,220,220,204,204,2,105,105,120,204, - 204,204,204,204,204,204,120,2,105,105,248,204,204,204,248,192, - 192,192,192,1,106,106,120,204,204,204,204,204,204,252,120,12, - 2,105,105,248,204,204,204,248,240,216,204,204,2,105,105,120, - 204,192,192,120,12,12,204,120,2,105,105,252,48,48,48,48, - 48,48,48,48,2,105,105,204,204,204,204,204,204,204,204,120, - 2,105,105,204,204,204,204,120,120,120,48,48,2,105,105,204, - 204,204,204,252,252,252,252,204,2,105,105,204,204,120,120,48, - 120,120,204,204,2,105,105,204,204,120,120,48,48,48,48,48, - 2,105,105,252,12,24,24,48,96,96,192,252,17,75,107,240, - 192,192,192,192,192,192,192,192,192,240,2,105,105,192,192,96, - 96,48,24,24,12,12,17,75,107,240,48,48,48,48,48,48, - 48,48,48,240,8,99,99,48,120,204,1,97,97,252,26,50, - 98,192,96,2,102,102,120,12,124,204,220,108,2,105,105,192, - 192,192,216,236,204,204,236,216,2,102,102,120,204,192,192,204, - 120,2,105,105,12,12,12,108,220,204,204,220,108,2,102,102, - 120,204,252,192,192,120,2,105,105,56,108,96,96,248,96,96, - 96,96,0,104,104,124,216,216,112,192,120,204,120,2,105,105, - 192,192,192,216,236,204,204,204,204,18,73,105,96,96,0,224, - 96,96,96,96,240,0,91,107,24,24,0,56,24,24,24,24, - 216,216,112,2,105,105,192,192,192,216,240,224,240,216,204,18, - 73,105,224,96,96,96,96,96,96,96,240,2,102,102,248,252, - 252,252,252,204,2,102,102,216,236,204,204,204,204,2,102,102, - 120,204,204,204,204,120,0,104,104,216,236,204,236,216,192,192, - 192,0,104,104,108,220,204,220,108,12,12,12,2,102,102,216, - 236,192,192,192,192,2,102,102,120,204,112,24,204,120,2,104, - 104,96,96,248,96,96,96,108,56,2,102,102,204,204,204,204, - 220,108,2,102,102,204,204,204,120,120,48,2,102,102,204,204, - 252,252,252,72,2,102,102,204,120,48,48,120,204,0,104,104, - 204,204,204,220,108,12,204,120,2,102,102,252,24,48,96,192, - 252,1,91,107,56,96,96,96,48,224,48,96,96,96,56,34, - 41,105,192,192,192,192,192,192,192,192,192,1,91,107,224,48, - 48,48,96,56,96,48,48,48,224,8,83,99,104,248,144,255 - }; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13[2160] U8G_FONT_SECTION("u8g_font_6x13") = { - 1,6,13,0,254,9,1,102,2,214,32,255,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,96,34,25,105,128,0,128,128,128,128,128,128,128, - 3,88,104,32,112,168,160,160,168,112,32,2,89,105,48,72, - 64,64,224,64,64,72,176,3,86,102,136,112,80,80,112,136, - 2,89,105,136,136,80,80,248,32,248,32,32,34,25,105,128, - 128,128,128,0,128,128,128,128,18,74,106,96,144,128,96,144, - 144,96,16,144,96,26,50,98,160,160,3,89,105,112,136,168, - 216,200,216,168,136,112,4,87,103,112,8,120,136,120,0,248, - 3,86,102,40,80,160,160,80,40,4,83,99,248,8,8,22, - 49,97,224,3,89,105,112,136,232,216,216,232,216,136,112,10, - 81,97,248,23,68,100,96,144,144,96,3,87,103,32,32,248, - 32,32,0,248,7,53,101,64,160,32,64,224,7,53,101,64, - 160,64,32,192,42,34,98,64,128,0,88,104,136,136,136,136, - 152,232,128,128,2,89,105,120,232,232,232,232,104,40,40,40, - 38,33,97,192,32,34,98,64,128,7,53,101,64,192,64,64, - 224,4,87,103,112,136,136,136,112,0,248,3,86,102,160,80, - 40,40,80,160,2,90,106,64,192,64,64,224,8,24,40,56, - 8,2,90,106,64,192,64,64,224,16,40,8,16,56,2,90, - 106,64,160,64,32,160,72,24,40,56,8,2,89,105,32,0, - 32,32,64,128,136,136,112,2,90,106,64,32,0,32,80,136, - 136,248,136,136,2,90,106,16,32,0,32,80,136,136,248,136, - 136,2,90,106,48,72,0,32,80,136,136,248,136,136,2,90, - 106,40,80,0,32,80,136,136,248,136,136,2,90,106,80,80, - 0,32,80,136,136,248,136,136,2,90,106,32,80,32,32,80, - 136,136,248,136,136,2,89,105,88,160,160,160,176,224,160,160, - 184,0,91,107,112,136,128,128,128,128,128,136,112,32,64,2, - 90,106,64,32,0,248,128,128,240,128,128,248,2,90,106,16, - 32,0,248,128,128,240,128,128,248,2,90,106,48,72,0,248, - 128,128,240,128,128,248,2,90,106,80,80,0,248,128,128,240, - 128,128,248,18,58,106,128,64,0,224,64,64,64,64,64,224, - 18,58,106,32,64,0,224,64,64,64,64,64,224,18,74,106, - 96,144,0,224,64,64,64,64,64,224,18,58,106,160,160,0, - 224,64,64,64,64,64,224,2,89,105,240,72,72,72,232,72, - 72,72,240,2,90,106,40,80,0,136,136,200,168,152,136,136, - 2,90,106,64,32,0,112,136,136,136,136,136,112,2,90,106, - 16,32,0,112,136,136,136,136,136,112,2,90,106,48,72,0, - 112,136,136,136,136,136,112,2,90,106,40,80,0,112,136,136, - 136,136,136,112,2,90,106,80,80,0,112,136,136,136,136,136, - 112,3,85,101,136,80,32,80,136,1,91,107,8,112,152,152, - 168,168,168,200,200,112,128,2,90,106,64,32,0,136,136,136, - 136,136,136,112,2,90,106,16,32,0,136,136,136,136,136,136, - 112,2,90,106,48,72,0,136,136,136,136,136,136,112,2,90, - 106,80,80,0,136,136,136,136,136,136,112,2,90,106,16,32, - 0,136,136,80,32,32,32,32,2,89,105,128,240,136,136,136, - 240,128,128,128,2,89,105,96,144,144,160,160,144,136,136,176, - 2,89,105,64,32,0,112,8,120,136,152,104,2,89,105,16, - 32,0,112,8,120,136,152,104,2,89,105,48,72,0,112,8, - 120,136,152,104,2,89,105,40,80,0,112,8,120,136,152,104, - 2,89,105,80,80,0,112,8,120,136,152,104,2,90,106,48, - 72,48,0,112,8,120,136,152,104,2,86,102,112,40,112,160, - 168,80,0,88,104,112,136,128,128,136,112,32,64,2,89,105, - 64,32,0,112,136,248,128,136,112,2,89,105,16,32,0,112, - 136,248,128,136,112,2,89,105,48,72,0,112,136,248,128,136, - 112,2,89,105,80,80,0,112,136,248,128,136,112,18,57,105, - 128,64,0,192,64,64,64,64,224,18,57,105,32,64,0,192, - 64,64,64,64,224,18,73,105,96,144,0,192,64,64,64,64, - 224,18,57,105,160,160,0,192,64,64,64,64,224,2,90,106, - 80,32,96,16,112,136,136,136,136,112,2,89,105,40,80,0, - 176,200,136,136,136,136,2,89,105,64,32,0,112,136,136,136, - 136,112,2,89,105,16,32,0,112,136,136,136,136,112,2,89, - 105,48,72,0,112,136,136,136,136,112,2,89,105,40,80,0, - 112,136,136,136,136,112,2,89,105,80,80,0,112,136,136,136, - 136,112,3,87,103,32,32,0,248,0,32,32,1,88,104,8, - 112,152,168,168,200,112,128,2,89,105,64,32,0,136,136,136, - 136,152,104,2,89,105,16,32,0,136,136,136,136,152,104,2, - 89,105,48,72,0,136,136,136,136,152,104,2,89,105,80,80, - 0,136,136,136,136,152,104,0,91,107,16,32,0,136,136,136, - 152,104,8,136,112,0,90,106,128,128,176,200,136,136,200,176, - 128,128,0,91,107,80,80,0,136,136,136,152,104,8,136,112 - }; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13O[2162] U8G_FONT_SECTION("u8g_font_6x13O") = { - 1,6,13,0,254,9,1,104,2,216,32,255,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,96,34,41,105,64,0,64,64,64,128,128, - 128,128,3,104,104,16,56,84,80,160,168,112,32,2,105,105, - 24,36,32,32,112,32,64,72,176,3,102,102,68,56,40,80, - 112,136,2,105,105,68,68,40,40,124,32,248,32,32,34,41, - 105,64,64,64,64,0,128,128,128,128,18,90,106,48,72,64, - 48,72,72,48,16,144,96,58,50,98,160,160,2,105,105,56, - 68,84,108,100,216,168,136,112,4,103,103,56,4,124,136,120, - 0,248,19,86,102,40,80,160,160,160,80,20,83,99,248,8, - 16,38,49,97,224,3,105,105,56,68,116,108,108,232,216,136, - 112,26,81,97,248,23,68,100,96,144,144,96,19,71,103,32, - 32,240,64,64,0,240,23,69,101,32,80,32,64,224,23,69, - 101,96,16,96,32,192,58,34,98,64,128,0,104,104,36,36, - 68,72,88,168,128,128,18,89,105,120,232,232,232,232,80,80, - 80,80,54,33,97,192,32,34,98,64,128,23,53,101,32,96, - 64,64,224,4,103,103,56,68,68,136,112,0,248,19,86,102, - 80,40,40,40,80,160,18,90,106,32,96,64,64,224,8,56, - 80,112,16,18,90,106,32,96,64,64,224,16,40,16,32,112, - 18,90,106,96,16,96,32,192,8,56,80,112,16,2,89,105, - 16,0,16,16,32,64,136,136,112,2,106,106,32,16,0,16, - 40,68,68,248,136,136,2,106,106,8,16,0,16,40,68,68, - 248,136,136,2,106,106,24,36,0,16,40,68,68,248,136,136, - 2,106,106,20,40,0,16,40,68,68,248,136,136,2,106,106, - 40,40,0,16,40,68,68,248,136,136,2,106,106,16,40,16, - 16,40,68,68,248,136,136,2,105,105,44,80,80,80,88,224, - 160,160,184,0,107,107,56,68,64,64,64,128,128,136,112,32, - 64,2,106,106,32,16,0,124,64,64,120,128,128,248,2,106, - 106,8,16,0,124,64,64,120,128,128,248,2,106,106,24,36, - 0,124,64,64,120,128,128,248,2,106,106,40,40,0,124,64, - 64,120,128,128,248,18,74,106,64,32,0,112,32,32,32,64, - 64,224,18,74,106,16,32,0,112,32,32,32,64,64,224,18, - 90,106,48,72,0,112,32,32,32,64,64,224,18,74,106,80, - 80,0,112,32,32,32,64,64,224,2,105,105,120,36,36,36, - 116,36,72,72,240,2,106,106,20,40,0,68,68,100,88,136, - 136,136,2,106,106,32,16,0,56,68,68,68,136,136,112,2, - 106,106,8,16,0,56,68,68,68,136,136,112,2,106,106,24, - 36,0,56,68,68,68,136,136,112,2,106,106,20,40,0,56, - 68,68,68,136,136,112,2,106,106,40,40,0,56,68,68,68, - 136,136,112,3,101,101,68,40,48,80,136,1,107,107,4,60, - 76,76,84,84,168,232,232,112,128,2,106,106,32,16,0,68, - 68,68,136,136,136,112,2,106,106,8,16,0,68,68,68,136, - 136,136,112,2,106,106,24,36,0,68,68,68,136,136,136,112, - 2,106,106,40,40,0,68,68,68,136,136,136,112,18,90,106, - 16,32,0,136,136,80,32,64,64,64,2,105,105,64,120,68, - 68,72,240,128,128,128,2,89,105,48,72,72,80,80,144,136, - 136,176,2,105,105,32,16,0,56,4,124,136,152,104,2,105, - 105,8,16,0,56,4,124,136,152,104,2,105,105,24,36,0, - 56,4,124,136,152,104,2,105,105,20,40,0,56,4,124,136, - 152,104,2,105,105,40,40,0,56,4,124,136,152,104,2,106, - 106,24,36,24,0,56,4,124,136,152,104,2,102,102,56,20, - 120,160,168,80,0,104,104,56,68,64,128,136,112,32,64,2, - 105,105,32,16,0,56,68,124,128,136,112,2,105,105,8,16, - 0,56,68,124,128,136,112,2,105,105,24,36,0,56,68,124, - 128,136,112,2,105,105,40,40,0,56,68,124,128,136,112,18, - 57,105,64,32,0,96,32,32,64,64,224,18,73,105,16,32, - 0,96,32,32,64,64,224,18,89,105,48,72,0,96,32,32, - 64,64,224,18,73,105,80,80,0,96,32,32,64,64,224,2, - 106,106,32,24,48,8,56,68,68,136,136,112,2,105,105,20, - 40,0,88,100,68,136,136,136,2,105,105,32,16,0,56,68, - 68,136,136,112,2,105,105,8,16,0,56,68,68,136,136,112, - 2,105,105,24,36,0,56,68,68,136,136,112,2,105,105,20, - 40,0,56,68,68,136,136,112,2,105,105,40,40,0,56,68, - 68,136,136,112,19,87,103,32,32,0,248,0,64,64,1,104, - 104,4,56,76,84,168,200,112,128,2,105,105,32,16,0,68, - 68,68,136,152,104,2,105,105,8,16,0,68,68,68,136,152, - 104,2,105,105,24,36,0,68,68,68,136,152,104,2,105,105, - 40,40,0,68,68,68,136,152,104,0,107,107,8,16,0,68, - 68,136,152,104,8,144,96,0,106,106,64,64,88,100,68,136, - 200,176,128,128,0,107,107,40,40,0,68,68,136,152,104,8, - 144,96}; -/* - Fontname: -Misc-Fixed-Medium-O-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13Or[1043] U8G_FONT_SECTION("u8g_font_6x13Or") = { - 1,6,13,0,254,9,1,104,2,216,32,127,254,11,254,10, - 254,13,0,96,34,41,105,64,64,64,64,128,128,128,0,128, - 40,67,99,80,80,160,3,103,103,40,40,124,40,248,80,80, - 2,105,105,16,60,80,80,56,36,40,240,32,2,105,105,36, - 84,40,8,16,32,80,168,144,2,104,104,16,40,40,48,80, - 148,152,104,56,35,99,64,64,128,17,75,107,16,32,64,64, - 128,128,128,128,64,64,32,17,75,107,64,32,32,16,16,16, - 16,32,32,64,128,3,103,103,16,84,124,56,124,168,32,20, - 69,101,32,32,240,64,64,17,51,99,96,64,128,22,65,97, - 240,17,51,99,64,224,64,2,105,105,4,4,8,16,16,32, - 64,128,128,2,105,105,16,40,68,68,68,136,136,80,32,2, - 89,105,16,48,80,16,16,32,32,32,248,2,105,105,56,68, - 68,8,16,32,64,128,248,2,105,105,124,4,8,16,56,4, - 8,136,112,2,89,105,8,8,24,40,40,72,248,16,16,2, - 105,105,124,64,64,88,100,4,8,136,112,2,105,105,56,68, - 64,64,112,136,136,136,112,18,89,105,248,8,16,16,32,64, - 64,128,128,2,105,105,56,68,68,68,120,136,136,136,112,2, - 105,105,56,68,68,68,56,8,8,136,112,17,72,104,32,112, - 32,0,0,64,224,64,17,72,104,32,112,32,0,0,96,64, - 128,18,89,105,8,16,32,64,128,64,64,32,16,4,100,100, - 124,0,0,248,2,105,105,64,32,16,8,4,8,48,64,128, - 18,89,105,112,136,136,8,16,32,64,0,64,2,105,105,56, - 68,68,88,168,168,144,128,120,2,105,105,16,40,68,68,68, - 248,136,136,136,2,105,105,120,36,36,36,56,72,72,72,240, - 2,105,105,56,68,64,64,64,128,128,136,112,2,105,105,120, - 36,36,36,36,72,72,72,240,2,105,105,124,64,64,64,120, - 128,128,128,248,2,105,105,124,64,64,64,120,128,128,128,128, - 2,105,105,56,68,64,64,64,152,136,136,112,2,105,105,68, - 68,68,68,124,136,136,136,136,18,73,105,112,32,32,32,32, - 64,64,64,224,2,105,105,28,8,8,8,8,16,16,144,96, - 2,105,105,68,68,72,80,96,160,144,136,136,2,89,105,64, - 64,64,64,64,128,128,128,248,2,105,105,68,68,108,84,84, - 136,136,136,136,2,105,105,68,100,100,84,84,152,136,136,136, - 2,105,105,56,68,68,68,68,136,136,136,112,2,105,105,120, - 68,68,68,120,128,128,128,128,1,106,106,56,68,68,68,68, - 136,136,168,112,8,2,105,105,120,68,68,68,120,144,144,136, - 136,2,105,105,56,68,64,64,48,8,8,136,112,18,89,105, - 248,32,32,32,32,64,64,64,64,2,105,105,68,68,68,68, - 68,136,136,136,112,18,89,105,136,136,136,136,144,144,160,160, - 64,2,105,105,68,68,68,68,168,168,168,168,80,2,105,105, - 68,68,40,40,16,48,72,136,136,18,89,105,136,136,80,80, - 32,32,64,64,64,2,105,105,124,4,8,8,16,32,64,128, - 248,1,91,107,56,32,32,32,64,64,64,128,128,128,224,18, - 73,105,128,128,64,64,64,32,32,16,16,1,91,107,56,8, - 8,8,16,16,16,32,32,32,224,24,83,99,32,80,136,1, - 81,97,248,58,34,98,128,64,2,102,102,56,4,124,136,152, - 104,2,105,105,64,64,64,120,68,136,136,136,240,2,102,102, - 56,68,128,128,136,112,2,105,105,4,4,4,60,68,136,136, - 136,120,2,102,102,56,68,124,128,136,112,18,89,105,48,72, - 64,64,240,64,128,128,128,0,104,104,56,68,68,136,120,8, - 136,112,2,105,105,32,32,32,88,100,68,136,136,136,18,56, - 104,32,0,96,32,32,64,64,224,0,90,106,8,0,24,8, - 8,16,16,144,144,96,2,89,105,32,32,32,72,80,96,160, - 144,136,18,73,105,48,16,16,32,32,32,64,64,224,2,102, - 102,104,84,84,168,168,136,2,102,102,88,100,68,136,136,136, - 2,102,102,56,68,68,136,136,112,0,104,104,120,68,68,136, - 240,128,128,128,0,104,104,60,68,132,136,120,8,16,16,2, - 102,102,88,100,64,128,128,128,2,102,102,56,68,32,16,136, - 112,18,72,104,32,32,240,64,64,128,144,96,2,102,102,68, - 68,136,136,152,104,18,86,102,136,136,136,144,160,64,2,102, - 102,68,68,84,168,168,80,2,102,102,68,40,16,32,80,136, - 0,104,104,68,68,136,152,104,8,144,96,2,102,102,124,8, - 16,96,128,248,1,91,107,24,32,32,32,32,192,32,64,64, - 64,48,34,41,105,64,64,64,64,64,128,128,128,128,1,107, - 107,96,16,16,16,16,12,16,32,32,32,192,24,83,99,72, - 168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-SemiCondensed--13-120-75-75-C-60-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 5 h=11 x= 2 y=11 dx= 6 dy= 0 ascent=11 len=11 - Font Bounding box w= 6 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_6x13r[1041] U8G_FONT_SECTION("u8g_font_6x13r") = { - 1,6,13,0,254,9,1,102,2,214,32,127,254,11,254,10, - 254,13,0,96,34,25,105,128,128,128,128,128,128,128,0,128, - 24,51,99,160,160,160,3,87,103,80,80,248,80,248,80,80, - 2,89,105,32,120,160,160,112,40,40,240,32,2,89,105,72, - 168,80,16,32,64,80,168,144,2,88,104,64,160,160,64,160, - 152,144,104,40,19,99,128,128,128,17,59,107,32,64,64,128, - 128,128,128,128,64,64,32,17,59,107,128,64,64,32,32,32, - 32,32,64,64,128,6,85,101,32,168,112,168,32,4,85,101, - 32,32,248,32,32,17,51,99,96,64,128,6,81,97,248,17, - 51,99,64,224,64,2,89,105,8,8,16,16,32,64,64,128, - 128,2,89,105,32,80,136,136,136,136,136,80,32,2,89,105, - 32,96,160,32,32,32,32,32,248,2,89,105,112,136,136,8, - 16,32,64,128,248,2,89,105,248,8,16,32,112,8,8,136, - 112,2,89,105,16,16,48,80,80,144,248,16,16,2,89,105, - 248,128,128,176,200,8,8,136,112,2,89,105,112,136,128,128, - 240,136,136,136,112,2,89,105,248,8,16,16,32,32,64,64, - 64,2,89,105,112,136,136,136,112,136,136,136,112,2,89,105, - 112,136,136,136,120,8,8,136,112,17,56,104,64,224,64,0, - 0,64,224,64,17,56,104,64,224,64,0,0,96,64,128,2, - 89,105,8,16,32,64,128,64,32,16,8,4,84,100,248,0, - 0,248,2,89,105,128,64,32,16,8,16,32,64,128,2,89, - 105,112,136,136,8,16,32,32,0,32,2,89,105,112,136,136, - 152,168,168,176,128,120,2,89,105,32,80,136,136,136,248,136, - 136,136,2,89,105,240,72,72,72,112,72,72,72,240,2,89, - 105,112,136,128,128,128,128,128,136,112,2,89,105,240,72,72, - 72,72,72,72,72,240,2,89,105,248,128,128,128,240,128,128, - 128,248,2,89,105,248,128,128,128,240,128,128,128,128,2,89, - 105,112,136,128,128,128,152,136,136,112,2,89,105,136,136,136, - 136,248,136,136,136,136,18,57,105,224,64,64,64,64,64,64, - 64,224,2,89,105,56,16,16,16,16,16,16,144,96,2,89, - 105,136,136,144,160,192,160,144,136,136,2,89,105,128,128,128, - 128,128,128,128,128,248,2,89,105,136,136,216,168,168,136,136, - 136,136,2,89,105,136,200,200,168,168,152,152,136,136,2,89, - 105,112,136,136,136,136,136,136,136,112,2,89,105,240,136,136, - 136,240,128,128,128,128,1,90,106,112,136,136,136,136,136,136, - 168,112,8,2,89,105,240,136,136,136,240,160,144,136,136,2, - 89,105,112,136,128,128,112,8,8,136,112,2,89,105,248,32, - 32,32,32,32,32,32,32,2,89,105,136,136,136,136,136,136, - 136,136,112,2,89,105,136,136,136,136,80,80,80,32,32,2, - 89,105,136,136,136,136,168,168,168,168,80,2,89,105,136,136, - 80,80,32,80,80,136,136,2,89,105,136,136,80,80,32,32, - 32,32,32,2,89,105,248,8,16,16,32,64,64,128,248,17, - 59,107,224,128,128,128,128,128,128,128,128,128,224,2,89,105, - 128,128,64,64,32,16,16,8,8,17,59,107,224,32,32,32, - 32,32,32,32,32,32,224,8,83,99,32,80,136,1,81,97, - 248,42,34,98,128,64,2,86,102,112,8,120,136,152,104,2, - 89,105,128,128,128,240,136,136,136,136,240,2,86,102,112,136, - 128,128,136,112,2,89,105,8,8,8,120,136,136,136,136,120, - 2,86,102,112,136,248,128,136,112,2,89,105,48,72,64,64, - 240,64,64,64,64,0,88,104,112,136,136,136,120,8,136,112, - 2,89,105,128,128,128,176,200,136,136,136,136,18,56,104,64, - 0,192,64,64,64,64,224,0,74,106,16,0,48,16,16,16, - 16,144,144,96,2,89,105,128,128,128,144,160,192,160,144,136, - 18,57,105,192,64,64,64,64,64,64,64,224,2,86,102,208, - 168,168,168,168,136,2,86,102,176,200,136,136,136,136,2,86, - 102,112,136,136,136,136,112,0,88,104,240,136,136,136,240,128, - 128,128,0,88,104,120,136,136,136,120,8,8,8,2,86,102, - 176,200,128,128,128,128,2,86,102,112,136,96,16,136,112,2, - 88,104,64,64,240,64,64,64,72,48,2,86,102,136,136,136, - 136,152,104,2,86,102,136,136,136,80,80,32,2,86,102,136, - 136,168,168,168,80,2,86,102,136,80,32,32,80,136,0,88, - 104,136,136,136,152,104,8,136,112,2,86,102,248,16,32,64, - 128,248,1,91,107,24,32,32,32,32,192,32,32,32,32,24, - 34,25,105,128,128,128,128,128,128,128,128,128,1,91,107,192, - 32,32,32,32,24,32,32,32,32,192,8,83,99,72,168,144, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 6 y= 9 dx= 7 dy= 0 ascent=11 len=13 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_67_75[2197] U8G_FONT_SECTION("u8g_font_7x13_67_75") = { - 1,7,13,0,254,3,1,91,2,178,32,255,0,11,254,10, - 0,4,117,117,72,36,254,36,72,18,89,121,32,32,32,168, - 112,32,168,112,32,4,101,117,36,72,248,72,36,4,101,117, - 144,72,124,72,144,4,101,117,36,68,252,68,36,18,89,121, - 32,112,168,32,32,32,32,32,248,4,101,117,144,136,252,136, - 144,18,89,121,248,32,32,32,32,32,168,112,32,18,89,121, - 32,112,168,32,32,168,112,32,248,4,117,117,36,66,252,64, - 32,4,117,117,72,132,126,4,8,4,117,117,36,74,252,72, - 40,4,117,117,72,164,126,36,40,4,117,117,40,84,238,68, - 40,4,117,117,40,84,254,84,40,2,106,122,64,64,128,152, - 104,8,16,84,56,16,2,106,122,32,64,252,68,36,4,4, - 4,4,4,2,106,122,16,8,252,136,144,128,128,128,128,128, - 2,106,122,4,4,4,4,4,36,68,252,64,32,2,106,122, - 128,128,128,128,128,144,136,252,8,16,2,104,120,240,16,16, - 16,16,84,56,16,2,90,122,8,8,8,8,8,40,72,248, - 64,32,4,119,119,28,34,34,34,170,112,32,4,119,119,112, - 136,136,136,170,28,8,2,120,120,254,0,224,192,160,16,8, - 4,2,121,121,144,160,254,160,146,10,254,10,18,4,119,119, - 72,156,170,136,136,136,112,4,119,119,36,114,170,34,34,34, - 28,6,99,115,32,64,252,4,99,115,252,64,32,50,57,121, - 128,192,160,128,128,128,128,128,128,18,57,121,32,96,160,32, - 32,32,32,32,32,6,99,115,16,8,252,4,99,115,252,8, - 16,50,57,121,128,128,128,128,128,128,160,192,128,18,57,121, - 32,32,32,32,32,32,160,96,32,2,105,121,16,8,252,8, - 48,64,252,64,32,2,122,122,40,120,168,40,40,40,40,42, - 60,40,2,105,121,32,64,252,64,48,8,252,8,16,2,105, - 121,32,64,252,64,32,64,252,64,32,2,121,121,68,238,68, - 68,68,68,68,68,68,2,105,121,16,8,252,8,16,8,252, - 8,16,2,122,122,68,68,68,68,68,68,68,68,238,68,3, - 103,119,32,64,252,0,252,8,16,3,103,119,16,8,252,0, - 252,64,32,3,119,119,16,34,126,132,126,40,16,4,117,117, - 40,124,146,124,40,3,119,119,16,40,252,66,252,136,16,3, - 119,119,16,32,126,128,126,32,16,2,121,121,16,40,108,170, - 40,40,40,40,40,3,119,119,16,8,252,2,252,8,16,2, - 121,121,40,40,40,40,40,170,108,40,16,4,117,117,40,124, - 130,124,40,2,122,122,16,40,108,170,40,40,170,108,40,16, - 2,119,119,252,144,136,196,162,144,8,2,119,119,126,18,34, - 70,138,18,32,2,119,119,32,18,138,70,34,18,126,2,119, - 119,8,144,162,196,136,144,252,2,121,121,8,16,62,64,254, - 64,62,16,8,2,121,121,32,16,248,4,254,4,248,16,32, - 4,117,117,32,72,254,68,32,4,117,117,8,36,254,68,8, - 18,89,121,32,112,168,32,248,32,248,32,32,18,89,121,32, - 32,248,32,248,32,168,112,32,3,119,119,16,32,64,182,64, - 32,16,2,122,122,16,40,84,146,0,16,16,0,16,16,3, - 119,119,16,8,4,218,4,8,16,2,122,122,16,16,0,16, - 16,0,146,84,40,16,4,117,117,144,160,254,160,144,4,117, - 117,18,10,254,10,18,3,119,119,16,48,94,130,94,48,16, - 2,121,121,16,40,68,238,40,40,40,40,56,3,119,119,16, - 24,244,130,244,24,16,2,121,121,56,40,40,40,40,238,68, - 40,16,1,124,124,16,40,68,238,40,40,40,56,0,56,40, - 56,1,122,122,16,40,68,238,40,40,40,108,68,124,1,122, - 122,16,40,68,254,40,40,40,108,68,124,1,122,122,16,40, - 68,254,56,56,56,124,68,124,2,121,121,16,40,68,238,68, - 238,40,40,56,1,122,122,16,40,68,238,68,238,40,108,68, - 124,3,119,119,144,152,244,130,244,152,144,2,119,119,254,128, - 188,176,168,164,130,2,119,119,130,74,42,26,122,2,254,2, - 121,121,16,40,68,238,40,238,68,40,16,255,255,255,255,255, - 255,255,255,255,255,255,255,7,118,118,254,254,254,254,254,254, - 0,114,114,254,254,0,115,115,254,254,254,0,117,117,254,254, - 254,254,254,0,119,119,254,254,254,254,254,254,254,0,120,120, - 254,254,254,254,254,254,254,254,0,122,122,254,254,254,254,254, - 254,254,254,254,254,0,123,123,254,254,254,254,254,254,254,254, - 254,254,254,0,125,125,254,254,254,254,254,254,254,254,254,254, - 254,254,254,0,109,125,252,252,252,252,252,252,252,252,252,252, - 252,252,252,0,93,125,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,77,125,240,240,240,240,240,240,240,240,240,240, - 240,240,240,0,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,0,45,125,192,192,192,192,192,192,192,192,192,192, - 192,192,192,0,29,125,128,128,128,128,128,128,128,128,128,128, - 128,128,128,64,61,125,224,224,224,224,224,224,224,224,224,224, - 224,224,224,1,123,123,84,0,170,0,84,0,170,0,84,0, - 170,0,125,125,170,84,170,84,170,84,170,84,170,84,170,84, - 170,0,125,125,254,84,254,170,254,84,254,170,254,84,254,170, - 254,11,114,114,254,254,96,29,125,128,128,128,128,128,128,128, - 128,128,128,128,128,128,0,71,119,240,240,240,240,240,240,240, - 64,55,119,224,224,224,224,224,224,224,7,70,118,240,240,240, - 240,240,240,0,125,125,240,240,240,240,240,240,254,254,254,254, - 254,254,254,0,125,125,240,240,240,240,240,240,14,14,14,14, - 14,14,14,0,125,125,254,254,254,254,254,254,240,240,240,240, - 240,240,240,0,125,125,254,254,254,254,254,254,14,14,14,14, - 14,14,14,71,54,118,224,224,224,224,224,224,0,125,125,14, - 14,14,14,14,14,240,240,240,240,240,240,240,0,125,125,14, - 14,14,14,14,14,254,254,254,254,254,254,254,3,119,119,254, - 254,254,254,254,254,254,3,119,119,254,130,130,130,130,130,254, - 3,119,119,124,130,130,130,130,130,124,3,119,119,254,130,186, - 186,186,130,254,3,119,119,254,130,254,130,254,130,254,3,119, - 119,254,170,170,170,170,170,254,3,119,119,254,170,254,170,254, - 170,254,3,119,119,254,146,138,198,162,146,254,3,119,119,254, - 146,162,198,138,146,254,3,119,119,254,214,170,214,170,214,254, - 20,85,117,248,248,248,248,248,20,85,117,248,136,136,136,248, - 4,117,117,254,254,254,254,254,4,117,117,254,130,130,130,254, - 19,87,119,248,248,248,248,248,248,248,19,87,119,248,136,136, - 136,136,136,248,4,117,117,62,126,254,252,248,4,117,117,62, - 66,130,132,248,2,120,120,16,16,56,56,124,124,254,254,2, - 120,120,16,16,40,40,68,68,130,254,19,86,118,32,32,112, - 112,248,248,19,86,118,32,32,80,80,136,248,3,119,119,128, - 224,248,254,248,224,128,3,119,119,128,224,152,134,152,224,128, - 4,101,117,192,240,252,240,192,4,101,117,192,176,140,176,192, - 4,117,117,128,240,254,240,128,4,117,117,128,240,142,240,128, - 2,120,120,254,254,124,124,56,56,16,16,2,120,120,254,130, - 68,68,40,40,16,16,19,86,118,248,248,112,112,32,32,19, - 86,118,248,136,80,80,32,32,3,119,119,2,14,62,254,62, - 14,2,3,119,119,2,14,50,194,50,14,2,4,101,117,12, - 60,252,60,12,4,101,117,12,52,196,52,12,4,117,117,2, - 30,254,30,2,4,117,117,2,30,226,30,2,2,119,119,16, - 56,124,254,124,56,16,2,119,119,16,40,68,130,68,40,16, - 2,119,119,16,40,84,186,84,40,16,3,119,119,56,68,146, - 186,146,68,56,18,89,121,32,32,80,80,136,80,80,32,32, - 3,119,119,56,68,130,130,130,68,56,3,119,119,40,0,130, - 0,130,0,40,3,119,119,56,108,170,170,170,108,56,3,119, - 119,56,68,146,170,146,68,56,3,119,119,56,124,254,254,254, - 124,56,3,119,119,56,116,242,242,242,116,56,3,119,119,56, - 92,158,158,158,92,56,3,119,119,56,68,130,254,254,124,56, - 3,119,119,56,124,254,254,130,68,56,3,119,119,56,92,158, - 158,130,68,56,3,119,119,56,76,142,142,254,124,56,51,71, - 119,192,224,240,240,240,224,192,3,71,119,48,112,240,240,240, - 112,48,0,125,125,254,254,254,254,198,130,130,130,198,254,254, - 254,254,0,125,125,254,254,254,254,198,186,186,186,198,254,254, - 254,254,6,119,119,254,254,254,254,198,186,186,0,119,119,186, - 186,198,254,254,254,254,6,68,116,48,64,128,128,54,68,116, - 192,32,16,16,51,68,116,16,16,32,192,3,68,116,128,128, - 64,48,6,116,116,56,68,130,130,3,116,116,130,130,68,56, - 3,119,119,2,6,14,30,62,126,254,3,119,119,128,192,224, - 240,248,252,254,3,119,119,254,252,248,240,224,192,128,3,119, - 119,254,126,62,30,14,6,2,20,85,117,112,136,136,136,112, - 3,119,119,254,226,226,226,226,226,254,3,119,119,254,142,142, - 142,142,142,254,3,119,119,254,254,250,242,226,194,254,3,119, - 119,254,134,142,158,190,254,254,3,119,119,254,146,146,146,146, - 146,254,2,120,120,16,16,40,40,84,124,146,254,2,120,120, - 16,16,56,56,116,116,242,254,2,120,120,16,16,56,56,92, - 92,158,254,3,119,119,56,68,130,130,130,68,56,2,119,119, - 254,146,146,242,130,130,254,2,119,119,254,130,130,242,146,146, - 254,2,119,119,254,130,130,158,146,146,254,2,119,119,254,146, - 146,158,130,130,254,2,119,119,56,84,146,242,130,68,56,2, - 119,119,56,68,130,242,146,84,56,2,119,119,56,68,130,158, - 146,84,56,2,119,119,56,84,146,158,130,68,56,255,255,255, - 255,255,255,255,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 7, '1' Height: 5 - Calculated Max Values w= 7 h= 9 x= 1 y= 2 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13_75r[471] U8G_FONT_SECTION("u8g_font_7x13_75r") = { - 1,7,13,0,254,7,1,71,0,0,32,79,0,9,0,8, - 0,3,119,119,254,254,254,254,254,254,254,3,119,119,254,130, - 130,130,130,130,254,3,119,119,124,130,130,130,130,130,124,3, - 119,119,254,130,186,186,186,130,254,3,119,119,254,130,254,130, - 254,130,254,3,119,119,254,170,170,170,170,170,254,3,119,119, - 254,170,254,170,254,170,254,3,119,119,254,146,138,198,162,146, - 254,3,119,119,254,146,162,198,138,146,254,3,119,119,254,214, - 170,214,170,214,254,20,85,117,248,248,248,248,248,20,85,117, - 248,136,136,136,248,4,117,117,254,254,254,254,254,4,117,117, - 254,130,130,130,254,19,87,119,248,248,248,248,248,248,248,19, - 87,119,248,136,136,136,136,136,248,4,117,117,62,126,254,252, - 248,4,117,117,62,66,130,132,248,2,120,120,16,16,56,56, - 124,124,254,254,2,120,120,16,16,40,40,68,68,130,254,19, - 86,118,32,32,112,112,248,248,19,86,118,32,32,80,80,136, - 248,3,119,119,128,224,248,254,248,224,128,3,119,119,128,224, - 152,134,152,224,128,4,101,117,192,240,252,240,192,4,101,117, - 192,176,140,176,192,4,117,117,128,240,254,240,128,4,117,117, - 128,240,142,240,128,2,120,120,254,254,124,124,56,56,16,16, - 2,120,120,254,130,68,68,40,40,16,16,19,86,118,248,248, - 112,112,32,32,19,86,118,248,136,80,80,32,32,3,119,119, - 2,14,62,254,62,14,2,3,119,119,2,14,50,194,50,14, - 2,4,101,117,12,60,252,60,12,4,101,117,12,52,196,52, - 12,4,117,117,2,30,254,30,2,4,117,117,2,30,226,30, - 2,2,119,119,16,56,124,254,124,56,16,2,119,119,16,40, - 68,130,68,40,16,2,119,119,16,40,84,186,84,40,16,3, - 119,119,56,68,146,186,146,68,56,18,89,121,32,32,80,80, - 136,80,80,32,32,3,119,119,56,68,130,130,130,68,56,3, - 119,119,40,0,130,0,130,0,40,3,119,119,56,108,170,170, - 170,108,56,3,119,119,56,68,146,170,146,68,56,3,119,119, - 56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13B[2172] U8G_FONT_SECTION("u8g_font_7x13B") = { - 1,7,13,0,254,9,1,105,2,216,32,255,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,13,0,112,34,42,122,192,192,0,192,192,192,192,192,192, - 192,3,104,120,16,124,212,208,208,212,124,16,2,105,121,56, - 108,96,96,248,96,96,108,184,3,102,118,204,252,72,72,252, - 204,2,105,121,204,204,120,120,252,48,252,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,106,122,120,204,192, - 120,204,204,120,12,204,120,26,82,114,216,216,2,106,122,120, - 204,132,180,228,228,180,132,204,120,20,87,119,240,24,248,152, - 248,0,248,3,103,119,52,104,208,160,208,104,52,3,100,116, - 252,12,12,12,21,65,113,240,2,106,122,120,204,132,188,172, - 188,180,172,204,120,27,81,113,248,7,100,116,120,204,204,120, - 3,103,119,48,48,252,48,48,0,252,6,70,118,224,176,48, - 96,192,240,6,70,118,224,176,96,48,176,224,25,67,115,48, - 96,192,1,103,119,204,204,204,204,204,252,128,2,105,121,124, - 252,244,244,244,116,52,52,52,38,34,114,192,192,16,50,114, - 96,192,6,70,118,96,224,96,96,96,240,21,87,119,112,248, - 136,248,112,0,248,3,103,119,176,88,44,20,44,88,176,2, - 106,122,96,224,96,96,100,252,28,52,60,12,2,106,122,96, - 224,96,96,120,236,12,24,48,60,2,106,122,224,176,96,48, - 180,236,28,52,60,12,2,106,122,48,48,0,48,48,96,192, - 204,204,120,2,106,122,96,48,0,48,120,204,204,252,204,204, - 2,106,122,24,48,0,48,120,204,204,252,204,204,2,106,122, - 56,108,0,48,120,204,204,252,204,204,2,106,122,52,88,0, - 48,120,204,204,252,204,204,2,106,122,204,204,0,48,120,204, - 204,252,204,204,2,106,122,120,72,120,48,120,204,204,252,204, - 204,2,105,121,124,248,216,216,220,248,216,216,220,0,107,123, - 120,204,192,192,192,192,192,204,120,48,96,2,106,122,96,48, - 0,252,192,192,240,192,192,252,2,106,122,24,48,0,252,192, - 192,240,192,192,252,2,106,122,56,108,0,252,192,192,240,192, - 192,252,2,106,122,204,204,0,252,192,192,240,192,192,252,2, - 106,122,96,48,0,252,48,48,48,48,48,252,2,106,122,24, - 48,0,252,48,48,48,48,48,252,2,106,122,56,108,0,252, - 48,48,48,48,48,252,2,106,122,204,204,0,252,48,48,48, - 48,48,252,2,105,121,248,108,108,108,236,108,108,108,248,2, - 106,122,52,88,0,204,204,236,252,220,204,204,2,106,122,96, - 48,0,120,204,204,204,204,204,120,2,106,122,24,48,0,120, - 204,204,204,204,204,120,2,106,122,56,108,0,120,204,204,204, - 204,204,120,2,106,122,52,88,0,120,204,204,204,204,204,120, - 2,106,122,204,204,0,120,204,204,204,204,204,120,3,101,117, - 204,120,48,120,204,1,106,122,4,120,220,220,220,236,236,236, - 120,128,2,106,122,96,48,0,204,204,204,204,204,204,120,2, - 106,122,24,48,0,204,204,204,204,204,204,120,2,106,122,56, - 108,0,204,204,204,204,204,204,120,2,106,122,204,204,0,204, - 204,204,204,204,204,120,2,106,122,24,48,0,204,72,120,48, - 48,48,48,2,105,121,192,248,204,204,204,248,192,192,192,2, - 105,121,120,204,204,216,216,204,204,204,216,2,105,121,48,24, - 0,120,12,124,204,220,124,2,105,121,24,48,0,120,12,124, - 204,220,124,2,105,121,56,108,0,120,12,124,204,220,124,2, - 105,121,52,88,0,120,12,124,204,220,124,2,105,121,108,108, - 0,120,12,124,204,220,124,2,106,122,56,40,56,0,120,12, - 124,204,220,124,2,102,118,120,52,124,176,180,104,0,104,120, - 120,204,192,192,204,120,48,96,2,105,121,48,24,0,120,204, - 252,192,204,120,2,105,121,24,48,0,120,204,252,192,204,120, - 2,105,121,56,108,0,120,204,252,192,204,120,2,105,121,108, - 108,0,120,204,252,192,204,120,18,73,121,192,96,0,224,96, - 96,96,96,240,18,73,121,48,96,0,224,96,96,96,96,240, - 2,89,121,112,216,0,112,48,48,48,48,120,18,89,121,216, - 216,0,224,96,96,96,96,240,2,106,122,104,48,120,12,124, - 204,204,204,204,120,2,105,121,52,88,0,248,236,204,204,204, - 204,2,105,121,96,48,0,120,204,204,204,204,120,2,105,121, - 24,48,0,120,204,204,204,204,120,2,105,121,56,108,0,120, - 204,204,204,204,120,2,105,121,52,88,0,120,204,204,204,204, - 120,2,105,121,108,108,0,120,204,204,204,204,120,3,103,119, - 48,48,0,252,0,48,48,1,105,121,4,120,204,220,204,236, - 204,120,128,2,105,121,96,48,0,204,204,204,204,220,124,2, - 105,121,24,48,0,204,204,204,204,220,124,2,105,121,56,108, - 0,204,204,204,204,220,124,2,105,121,108,108,0,204,204,204, - 204,220,124,0,107,123,24,48,0,204,204,204,220,124,12,204, - 120,0,106,122,192,192,216,236,204,204,236,216,192,192,0,107, - 123,108,108,0,204,204,204,220,108,12,204,120}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 2 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Br[1041] U8G_FONT_SECTION("u8g_font_7x13Br") = { - 1,7,13,0,254,9,1,105,2,216,32,127,254,11,254,9, - 254,13,0,112,34,41,121,192,192,192,192,192,192,0,192,192, - 24,83,115,216,216,216,18,89,121,80,80,248,248,80,248,248, - 80,80,2,105,121,48,120,180,176,120,52,180,120,48,2,105, - 121,228,172,232,24,48,96,92,212,156,2,105,121,112,216,216, - 216,112,212,220,216,116,39,36,116,192,192,192,192,18,73,121, - 48,96,96,192,192,192,96,96,48,18,73,121,192,96,96,48, - 48,48,96,96,192,3,102,118,72,48,252,252,48,72,3,102, - 118,48,48,252,252,48,48,17,68,116,112,112,96,192,5,97, - 113,252,17,67,115,96,240,96,2,105,121,12,12,24,24,48, - 96,96,192,192,2,105,121,48,72,204,204,204,204,204,72,48, - 2,105,121,48,112,176,48,48,48,48,48,252,2,105,121,120, - 204,204,12,56,96,192,192,252,2,105,121,252,12,24,48,120, - 12,12,204,120,2,105,121,12,28,60,108,204,204,252,12,12, - 2,105,121,252,192,192,248,204,12,12,204,120,2,105,121,120, - 204,192,192,248,204,204,204,120,2,105,121,252,12,12,24,24, - 48,48,96,96,2,105,121,120,204,204,204,120,204,204,204,120, - 2,105,121,120,204,204,204,124,12,12,204,120,17,72,120,96, - 240,96,0,0,96,240,96,17,72,120,96,240,96,0,112,112, - 96,192,2,105,121,12,24,48,96,192,96,48,24,12,4,100, - 116,252,0,0,252,2,105,121,192,96,48,24,12,24,48,96, - 192,2,105,121,120,204,204,12,56,48,0,48,48,2,105,121, - 120,140,140,188,172,188,128,140,120,2,105,121,120,204,204,204, - 252,204,204,204,204,2,105,121,248,204,204,204,248,204,204,204, - 248,2,105,121,120,204,192,192,192,192,192,204,120,2,105,121, - 248,204,204,204,204,204,204,204,248,2,105,121,252,192,192,192, - 248,192,192,192,252,2,105,121,252,192,192,192,248,192,192,192, - 192,2,105,121,120,204,192,192,220,204,204,204,124,2,105,121, - 204,204,204,204,252,204,204,204,204,2,105,121,252,48,48,48, - 48,48,48,48,252,2,105,121,12,12,12,12,12,12,12,204, - 120,2,105,121,196,204,216,240,224,240,216,204,196,2,105,121, - 192,192,192,192,192,192,192,192,252,2,105,121,132,204,252,252, - 204,204,204,204,204,2,105,121,204,204,236,236,252,220,220,204, - 204,2,105,121,120,204,204,204,204,204,204,204,120,2,105,121, - 248,204,204,204,248,192,192,192,192,1,106,122,120,204,204,204, - 204,204,236,220,120,12,2,105,121,248,204,204,204,248,240,216, - 204,196,2,105,121,120,204,192,192,120,12,12,204,120,2,105, - 121,252,48,48,48,48,48,48,48,48,2,105,121,204,204,204, - 204,204,204,204,204,120,2,105,121,204,204,204,72,72,120,48, - 48,48,2,105,121,204,204,204,204,204,252,252,204,132,2,105, - 121,132,204,72,120,48,120,72,204,132,2,105,121,204,204,120, - 120,48,48,48,48,48,2,105,121,252,12,12,24,48,96,192, - 192,252,18,73,121,240,192,192,192,192,192,192,192,240,2,105, - 121,192,192,96,96,48,24,24,12,12,18,73,121,240,48,48, - 48,48,48,48,48,240,7,100,116,48,120,204,132,1,98,114, - 252,252,25,67,115,192,96,48,2,102,118,120,12,124,204,204, - 124,2,105,121,192,192,192,248,204,204,204,204,248,2,102,118, - 120,204,192,192,204,120,2,105,121,12,12,12,124,204,204,204, - 204,124,2,102,118,120,204,252,192,204,120,2,105,121,56,108, - 96,96,240,96,96,96,96,0,104,120,116,204,204,120,192,120, - 204,120,2,105,121,192,192,192,248,204,204,204,204,204,2,105, - 121,48,48,0,112,48,48,48,48,252,0,107,123,12,12,0, - 12,12,12,12,12,12,204,120,2,105,121,192,192,192,204,216, - 240,240,216,204,2,105,121,112,48,48,48,48,48,48,48,252, - 2,102,118,216,252,252,204,204,204,2,102,118,248,204,204,204, - 204,204,2,102,118,120,204,204,204,204,120,0,104,120,248,204, - 204,204,248,192,192,192,0,104,120,124,204,204,204,124,12,12, - 12,2,102,118,248,204,192,192,192,192,2,102,118,120,204,96, - 24,204,120,2,104,120,96,96,248,96,96,96,108,56,2,102, - 118,204,204,204,204,204,124,2,102,118,204,204,204,120,120,48, - 2,102,118,204,204,204,252,252,72,2,102,118,204,204,120,120, - 204,204,0,104,120,204,204,204,204,124,12,204,120,2,102,118, - 252,12,24,96,192,252,18,73,121,112,192,192,96,192,96,192, - 192,112,34,41,121,192,192,192,192,192,192,192,192,192,18,73, - 121,224,48,48,96,48,96,48,48,224,8,99,115,100,252,152, - 255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13[2157] U8G_FONT_SECTION("u8g_font_7x13") = { - 1,7,13,0,254,9,1,95,2,207,32,255,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,13,0,112,50,25,121, - 128,0,128,128,128,128,128,128,128,19,88,120,32,112,168,160, - 160,168,112,32,2,105,121,56,68,64,64,224,64,64,68,184, - 3,102,118,132,120,72,72,120,132,2,89,121,136,136,80,80, - 248,32,248,32,32,50,25,121,128,128,128,128,0,128,128,128, - 128,18,74,122,96,144,128,96,144,144,96,16,144,96,25,66, - 114,144,144,2,105,121,120,132,180,164,164,164,180,132,120,20, - 87,119,112,8,120,136,120,0,248,3,103,119,20,40,80,160, - 80,40,20,20,83,115,248,8,8,22,65,113,240,2,105,121, - 120,132,180,172,172,180,172,132,120,26,81,113,248,23,68,116, - 96,144,144,96,19,87,119,32,32,248,32,32,0,248,22,54, - 118,64,160,32,64,128,224,22,54,118,224,32,64,32,160,64, - 42,34,114,64,128,1,103,119,132,132,132,132,204,180,128,2, - 105,121,124,232,232,232,104,40,40,40,40,38,33,113,192,32, - 34,114,64,128,22,54,118,64,192,64,64,64,224,21,70,118, - 96,144,144,96,0,240,3,103,119,160,80,40,20,40,80,160, - 2,106,122,64,192,64,64,68,236,20,20,28,4,2,106,122, - 64,192,64,64,72,244,4,8,16,28,2,106,122,224,32,64, - 32,164,76,20,20,28,4,2,105,121,32,0,32,32,64,128, - 132,132,120,2,106,122,32,16,0,48,72,132,132,252,132,132, - 2,106,122,16,32,0,48,72,132,132,252,132,132,2,106,122, - 48,72,0,48,72,132,132,252,132,132,2,106,122,100,152,0, - 48,72,132,132,252,132,132,2,106,122,72,72,0,48,72,132, - 132,252,132,132,2,106,122,48,72,48,48,72,132,132,252,132, - 132,2,105,121,92,160,160,160,184,224,160,160,188,0,107,123, - 120,132,128,128,128,128,128,132,120,16,32,2,106,122,32,16, - 0,252,128,128,240,128,128,252,2,106,122,16,32,0,252,128, - 128,240,128,128,252,2,106,122,48,72,0,252,128,128,240,128, - 128,252,2,106,122,72,72,0,252,128,128,240,128,128,252,18, - 90,122,64,32,0,248,32,32,32,32,32,248,18,90,122,32, - 64,0,248,32,32,32,32,32,248,18,90,122,32,80,0,248, - 32,32,32,32,32,248,18,90,122,136,136,0,248,32,32,32, - 32,32,248,2,105,121,248,68,68,68,228,68,68,68,248,2, - 106,122,100,152,0,132,196,164,164,148,140,132,2,106,122,32, - 16,0,120,132,132,132,132,132,120,2,106,122,16,32,0,120, - 132,132,132,132,132,120,2,106,122,48,72,0,120,132,132,132, - 132,132,120,2,106,122,100,152,0,120,132,132,132,132,132,120, - 2,106,122,72,72,0,120,132,132,132,132,132,120,3,102,118, - 132,72,48,48,72,132,1,107,123,4,120,140,148,148,164,164, - 164,196,120,128,2,106,122,32,16,0,132,132,132,132,132,132, - 120,2,106,122,16,32,0,132,132,132,132,132,132,120,2,106, - 122,48,72,0,132,132,132,132,132,132,120,2,106,122,72,72, - 0,132,132,132,132,132,132,120,18,90,122,16,32,0,136,136, - 80,32,32,32,32,2,105,121,128,248,132,132,132,248,128,128, - 128,18,89,121,96,144,144,160,160,144,136,136,176,2,105,121, - 32,16,0,120,4,124,132,140,116,2,105,121,16,32,0,120, - 4,124,132,140,116,2,105,121,48,72,0,120,4,124,132,140, - 116,2,105,121,100,152,0,120,4,124,132,140,116,2,105,121, - 72,72,0,120,4,124,132,140,116,2,106,122,48,72,48,0, - 120,4,124,132,140,116,2,102,118,104,20,124,144,148,104,0, - 104,120,120,132,128,128,132,120,16,32,2,105,121,32,16,0, - 120,132,252,128,132,120,2,105,121,16,32,0,120,132,252,128, - 132,120,2,105,121,48,72,0,120,132,252,128,132,120,2,105, - 121,72,72,0,120,132,252,128,132,120,18,89,121,64,32,0, - 96,32,32,32,32,248,18,89,121,32,64,0,96,32,32,32, - 32,248,18,89,121,96,144,0,96,32,32,32,32,248,18,89, - 121,144,144,0,96,32,32,32,32,248,2,106,122,72,48,80, - 8,120,132,132,132,132,120,2,105,121,100,152,0,184,196,132, - 132,132,132,2,105,121,32,16,0,120,132,132,132,132,120,2, - 105,121,16,32,0,120,132,132,132,132,120,2,105,121,48,72, - 0,120,132,132,132,132,120,2,105,121,100,152,0,120,132,132, - 132,132,120,2,105,121,72,72,0,120,132,132,132,132,120,19, - 87,119,32,32,0,248,0,32,32,1,104,120,4,120,140,148, - 164,196,120,128,2,105,121,32,16,0,132,132,132,132,140,116, - 2,105,121,16,32,0,132,132,132,132,140,116,2,105,121,48, - 72,0,132,132,132,132,140,116,2,105,121,72,72,0,132,132, - 132,132,140,116,0,107,123,16,32,0,132,132,132,140,116,4, - 132,120,0,106,122,128,128,184,196,132,132,196,184,128,128,0, - 107,123,72,72,0,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13O[2158] U8G_FONT_SECTION("u8g_font_7x13O") = { - 1,7,13,0,254,9,1,96,2,208,32,255,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,13,0,112,34,41, - 121,64,0,64,64,64,128,128,128,128,3,104,120,16,56,84, - 80,160,168,112,32,2,121,121,28,34,32,32,112,32,64,68, - 184,3,118,118,66,60,36,72,120,132,2,105,121,68,68,40, - 40,124,16,248,32,32,34,41,121,64,64,64,64,0,128,128, - 128,128,2,106,122,24,36,32,48,72,72,48,16,144,96,25, - 66,114,144,144,2,121,121,60,66,90,82,82,164,180,132,120, - 4,103,119,56,4,60,68,60,0,248,3,103,119,20,40,80, - 160,160,80,40,20,83,115,248,16,16,22,65,113,240,2,121, - 121,60,66,90,86,172,180,172,132,120,26,81,113,248,23,68, - 116,96,144,144,96,19,87,119,16,16,120,32,32,0,248,22, - 70,118,32,80,16,96,128,224,22,70,118,96,16,96,32,160, - 64,42,34,114,64,128,1,119,119,66,66,66,132,204,180,128, - 2,105,121,124,232,232,232,40,80,80,80,80,38,33,113,192, - 32,34,114,64,128,38,54,118,32,96,32,64,64,224,21,86, - 118,48,72,72,48,0,240,3,103,119,80,40,20,20,40,80, - 160,2,106,122,32,96,32,64,68,236,20,40,56,8,2,106, - 122,32,96,32,64,72,244,4,24,32,56,2,106,122,96,16, - 96,32,164,76,20,40,56,8,2,105,121,16,0,16,16,32, - 64,132,132,120,2,122,122,16,8,0,24,36,66,66,124,132, - 132,2,122,122,8,16,0,24,36,66,66,124,132,132,2,122, - 122,24,36,0,24,36,66,66,124,132,132,2,122,122,50,76, - 0,24,36,66,66,124,132,132,2,122,122,36,36,0,24,36, - 66,66,124,132,132,2,122,122,24,36,24,24,36,66,66,124, - 132,132,2,121,121,46,80,80,80,124,160,160,160,188,0,123, - 123,60,66,64,64,64,128,128,132,120,16,32,2,122,122,16, - 8,0,126,64,64,112,128,128,252,2,122,122,8,16,0,126, - 64,64,112,128,128,252,2,122,122,24,36,0,126,64,64,112, - 128,128,252,2,122,122,36,36,0,126,64,64,112,128,128,252, - 2,106,122,32,16,0,124,16,16,32,32,32,248,2,106,122, - 16,32,0,124,16,16,32,32,32,248,2,106,122,16,40,0, - 124,16,16,32,32,32,248,2,106,122,68,68,0,124,16,16, - 32,32,32,248,2,121,121,124,34,34,34,242,68,68,68,248, - 2,122,122,50,76,0,66,98,82,82,140,140,132,2,122,122, - 16,8,0,60,66,66,132,132,132,120,2,122,122,8,16,0, - 60,66,66,132,132,132,120,2,122,122,24,36,0,60,66,66, - 132,132,132,120,2,122,122,50,76,0,60,66,66,132,132,132, - 120,2,122,122,36,36,0,60,66,66,132,132,132,120,3,118, - 118,66,36,24,48,72,132,1,123,123,2,60,70,74,74,82, - 164,164,196,120,128,2,122,122,16,8,0,66,66,66,132,132, - 132,120,2,122,122,8,16,0,66,66,66,132,132,132,120,2, - 122,122,24,36,0,66,66,66,132,132,132,120,2,122,122,36, - 36,0,66,66,66,132,132,132,120,18,90,122,16,32,0,136, - 136,80,32,32,64,64,2,121,121,64,124,66,66,66,124,128, - 128,128,18,89,121,48,72,72,80,80,144,136,136,176,2,121, - 121,16,8,0,60,2,124,132,140,116,2,121,121,8,16,0, - 60,2,124,132,140,116,2,121,121,24,36,0,60,2,124,132, - 140,116,2,121,121,50,76,0,60,2,124,132,140,116,2,121, - 121,36,36,0,60,2,124,132,140,116,2,122,122,24,36,24, - 0,60,2,124,132,140,116,2,118,118,52,10,124,144,148,104, - 0,120,120,60,66,128,128,132,120,16,32,2,121,121,16,8, - 0,60,66,124,128,132,120,2,121,121,8,16,0,60,66,124, - 128,132,120,2,121,121,24,36,0,60,66,124,128,132,120,2, - 121,121,36,36,0,60,66,124,128,132,120,18,89,121,32,16, - 0,48,16,32,32,32,248,18,89,121,16,32,0,48,16,32, - 32,32,248,18,89,121,48,72,0,48,16,32,32,32,248,18, - 89,121,72,72,0,48,16,32,32,32,248,2,122,122,36,24, - 40,4,60,66,66,132,132,120,2,121,121,50,76,0,92,98, - 66,132,132,132,2,121,121,16,8,0,60,66,66,132,132,120, - 2,121,121,8,16,0,60,66,66,132,132,120,2,121,121,24, - 36,0,60,66,66,132,132,120,2,121,121,50,76,0,60,66, - 66,132,132,120,2,121,121,36,36,0,60,66,66,132,132,120, - 19,71,119,32,32,0,240,0,64,64,1,120,120,2,60,74, - 82,164,196,120,128,2,121,121,16,8,0,66,66,66,132,140, - 116,2,121,121,8,16,0,66,66,66,132,140,116,2,121,121, - 24,36,0,66,66,66,132,140,116,2,121,121,36,36,0,66, - 66,66,132,140,116,0,123,123,8,16,0,66,66,132,140,116, - 4,132,120,0,122,122,64,64,92,98,66,132,196,184,128,128, - 0,123,123,36,36,0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13Or[1035] U8G_FONT_SECTION("u8g_font_7x13Or") = { - 1,7,13,0,254,9,1,96,2,208,32,127,254,11,254,10, - 254,13,0,112,34,41,121,64,64,64,64,128,128,128,0,128, - 40,51,115,160,160,160,3,103,119,40,40,124,40,248,80,80, - 3,103,119,16,60,80,56,40,240,32,2,121,121,34,82,36, - 8,16,32,72,148,136,2,104,120,24,36,36,56,80,148,136, - 116,56,19,115,128,128,128,18,73,121,16,32,64,64,128,128, - 64,64,32,18,73,121,64,32,32,16,16,32,32,64,128,20, - 85,117,72,48,248,96,144,20,69,117,32,32,240,64,64,17, - 67,115,112,96,128,22,81,113,248,33,51,115,64,224,64,2, - 105,121,4,4,8,16,16,32,64,128,128,2,121,121,24,36, - 66,66,66,132,132,72,48,18,89,121,16,48,80,16,16,32, - 32,32,248,2,121,121,60,66,66,2,12,48,64,128,252,2, - 121,121,126,2,4,8,24,4,4,132,120,2,105,121,4,12, - 20,36,72,136,252,8,8,2,121,121,62,32,32,92,98,2, - 4,132,120,2,105,121,28,32,64,64,120,132,132,132,120,2, - 105,121,252,4,8,16,32,64,64,128,128,2,121,121,60,66, - 66,66,124,132,132,132,120,2,105,121,120,132,132,140,116,8, - 8,16,224,17,72,120,32,112,32,0,0,64,224,64,17,88, - 120,16,56,16,0,0,112,96,128,18,89,121,8,16,32,64, - 128,128,64,32,16,4,116,116,126,0,0,252,18,89,121,64, - 32,16,8,8,16,32,64,128,2,105,121,120,132,132,8,16, - 32,32,0,32,2,121,121,60,66,66,78,82,172,148,128,120, - 2,121,121,24,36,66,66,66,124,132,132,132,2,121,121,124, - 34,34,34,60,68,68,68,248,2,121,121,60,66,64,64,64, - 128,128,132,120,2,121,121,124,34,34,34,34,68,68,68,248, - 2,121,121,126,64,64,64,120,128,128,128,252,2,121,121,126, - 64,64,64,120,128,128,128,128,2,121,121,60,66,64,64,64, - 156,132,140,116,2,121,121,66,66,66,66,124,132,132,132,132, - 2,105,121,124,16,16,16,16,32,32,32,248,2,121,121,14, - 4,4,4,4,8,8,136,112,2,121,121,66,68,72,80,96, - 160,144,136,132,2,105,121,64,64,64,64,64,128,128,128,252, - 2,121,121,66,102,102,90,90,132,132,132,132,2,121,121,66, - 66,98,82,74,140,132,132,132,2,121,121,60,66,66,66,66, - 132,132,132,120,2,121,121,124,66,66,66,124,128,128,128,128, - 1,122,122,60,66,66,66,66,132,164,148,120,4,2,121,121, - 124,66,66,66,124,160,144,136,132,2,121,121,60,66,64,64, - 56,4,4,132,120,18,89,121,248,32,32,32,32,64,64,64, - 64,2,121,121,66,66,66,66,66,132,132,132,120,2,105,121, - 132,132,136,136,80,80,96,96,96,2,121,121,66,66,66,66, - 90,180,204,204,132,2,121,121,66,68,36,40,16,40,72,68, - 132,18,89,121,136,136,80,80,32,32,64,64,64,2,121,121, - 126,2,4,8,16,32,64,128,252,17,91,123,120,64,64,64, - 64,64,128,128,128,128,240,18,73,121,128,128,64,64,32,32, - 32,16,16,17,91,123,120,8,8,8,8,8,16,16,16,16, - 240,24,83,115,32,80,136,1,97,113,252,42,34,114,128,64, - 2,118,118,60,2,124,132,140,116,2,121,121,64,64,64,92, - 98,66,132,196,184,2,118,118,60,66,128,128,132,120,2,121, - 121,2,2,2,58,68,132,132,140,116,2,118,118,60,66,124, - 128,132,120,2,105,121,56,68,64,64,240,64,128,128,128,0, - 120,120,58,68,136,112,128,120,132,120,2,121,121,32,32,64, - 92,98,66,132,132,132,18,88,120,16,0,48,16,16,32,32, - 248,0,106,122,4,0,12,4,4,8,8,136,136,112,2,105, - 121,64,64,64,68,88,96,144,136,132,18,89,121,48,16,16, - 16,16,32,32,32,248,2,102,118,104,84,84,168,168,136,2, - 118,118,92,98,66,132,132,132,2,118,118,60,66,66,132,132, - 120,0,120,120,92,98,66,196,184,128,128,128,0,120,120,58, - 70,130,140,116,4,4,4,2,102,118,184,68,64,128,128,128, - 2,118,118,60,66,32,24,132,120,18,88,120,64,64,240,64, - 128,128,136,112,2,118,118,66,66,66,132,140,116,18,86,118, - 136,136,144,144,160,64,2,102,118,68,68,84,168,168,80,2, - 118,118,66,36,24,48,72,132,0,120,120,66,66,132,140,116, - 4,132,120,2,118,118,126,4,24,32,64,252,17,91,123,56, - 64,64,64,32,192,64,128,128,128,112,34,41,121,64,64,64, - 64,64,128,128,128,128,1,107,123,112,8,8,8,16,28,32, - 16,16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 6 h=11 x= 3 y=11 dx= 7 dy= 0 ascent=11 len=11 - Font Bounding box w= 7 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x13r[1034] U8G_FONT_SECTION("u8g_font_7x13r") = { - 1,7,13,0,254,9,1,95,2,207,32,127,254,11,254,10, - 254,13,0,112,50,25,121,128,128,128,128,128,128,128,0,128, - 40,51,115,160,160,160,19,87,119,80,80,248,80,248,80,80, - 19,87,119,32,120,160,112,40,240,32,2,105,121,68,164,72, - 16,16,32,72,148,136,2,103,119,96,144,144,96,148,136,116, - 56,19,115,128,128,128,34,57,121,32,64,64,128,128,128,64, - 64,32,34,57,121,128,64,64,32,32,32,64,64,128,4,101, - 117,72,48,252,48,72,20,85,117,32,32,248,32,32,17,67, - 115,112,96,128,22,81,113,248,33,51,115,64,224,64,18,89, - 121,8,8,16,16,32,64,64,128,128,2,105,121,48,72,132, - 132,132,132,132,72,48,18,89,121,32,96,160,32,32,32,32, - 32,248,2,105,121,120,132,132,4,8,48,64,128,252,2,105, - 121,252,4,8,16,56,4,4,132,120,2,105,121,8,24,40, - 72,136,136,252,8,8,2,105,121,252,128,128,184,196,4,4, - 132,120,2,105,121,56,64,128,128,184,196,132,132,120,2,105, - 121,252,4,8,16,16,32,32,64,64,2,105,121,120,132,132, - 132,120,132,132,132,120,2,105,121,120,132,132,140,116,4,4, - 8,112,33,56,120,64,224,64,0,0,64,224,64,17,72,120, - 32,112,32,0,0,112,96,128,18,89,121,8,16,32,64,128, - 64,32,16,8,4,100,116,252,0,0,252,18,89,121,128,64, - 32,16,8,16,32,64,128,2,105,121,120,132,132,4,8,16, - 16,0,16,2,105,121,120,132,132,156,164,172,148,128,120,2, - 105,121,48,72,132,132,132,252,132,132,132,2,105,121,248,68, - 68,68,120,68,68,68,248,2,105,121,120,132,128,128,128,128, - 128,132,120,2,105,121,248,68,68,68,68,68,68,68,248,2, - 105,121,252,128,128,128,240,128,128,128,252,2,105,121,252,128, - 128,128,240,128,128,128,128,2,105,121,120,132,128,128,128,156, - 132,140,116,2,105,121,132,132,132,132,252,132,132,132,132,18, - 89,121,248,32,32,32,32,32,32,32,248,2,105,121,28,8, - 8,8,8,8,8,136,112,2,105,121,132,136,144,160,192,160, - 144,136,132,2,105,121,128,128,128,128,128,128,128,128,252,2, - 105,121,132,204,204,180,180,132,132,132,132,2,105,121,132,132, - 196,164,148,140,132,132,132,2,105,121,120,132,132,132,132,132, - 132,132,120,2,105,121,248,132,132,132,248,128,128,128,128,1, - 106,122,120,132,132,132,132,132,164,148,120,4,2,105,121,248, - 132,132,132,248,160,144,136,132,2,105,121,120,132,128,128,120, - 4,4,132,120,18,89,121,248,32,32,32,32,32,32,32,32, - 2,105,121,132,132,132,132,132,132,132,132,120,2,105,121,132, - 132,132,72,72,72,48,48,48,2,105,121,132,132,132,132,180, - 180,204,204,132,2,105,121,132,132,72,72,48,72,72,132,132, - 18,89,121,136,136,80,80,32,32,32,32,32,2,105,121,252, - 4,8,16,48,32,64,128,252,17,75,123,240,128,128,128,128, - 128,128,128,128,128,240,18,89,121,128,128,64,64,32,16,16, - 8,8,17,75,123,240,16,16,16,16,16,16,16,16,16,240, - 24,83,115,32,80,136,1,97,113,252,42,34,114,128,64,2, - 102,118,120,4,124,132,140,116,2,105,121,128,128,128,184,196, - 132,132,196,184,2,102,118,120,132,128,128,132,120,2,105,121, - 4,4,4,116,140,132,132,140,116,2,102,118,120,132,252,128, - 132,120,2,105,121,56,68,64,64,240,64,64,64,64,0,104, - 120,116,136,136,112,128,120,132,120,2,105,121,128,128,128,184, - 196,132,132,132,132,18,88,120,32,0,96,32,32,32,32,248, - 16,90,122,8,0,24,8,8,8,8,136,136,112,2,105,121, - 128,128,128,136,144,224,144,136,132,18,89,121,96,32,32,32, - 32,32,32,32,248,18,86,118,208,168,168,168,168,136,2,102, - 118,184,196,132,132,132,132,2,102,118,120,132,132,132,132,120, - 0,104,120,184,196,132,196,184,128,128,128,0,104,120,116,140, - 132,140,116,4,4,4,2,102,118,184,68,64,64,64,64,2, - 102,118,120,132,96,24,132,120,2,104,120,64,64,240,64,64, - 64,68,56,2,102,118,132,132,132,132,140,116,18,86,118,136, - 136,136,80,80,32,18,86,118,136,136,168,168,168,80,2,102, - 118,132,72,48,48,72,132,0,104,120,132,132,132,140,116,4, - 132,120,2,102,118,252,8,16,32,64,252,17,91,123,56,64, - 64,64,32,192,32,64,64,64,56,50,25,121,128,128,128,128, - 128,128,128,128,128,17,91,123,224,16,16,16,32,24,32,16, - 16,16,224,24,83,115,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14B[2390] U8G_FONT_SECTION("u8g_font_7x14B") = { - 1,7,14,0,254,10,1,137,3,30,32,255,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,34,42,122,192,192,0,192,192,192,192,192,192,192,1, - 105,121,48,124,180,176,176,176,180,124,48,2,105,121,56,108, - 96,96,240,96,96,248,108,4,102,118,204,120,104,88,120,204, - 2,106,122,132,204,120,252,48,48,252,48,48,48,34,42,122, - 192,192,192,192,0,0,192,192,192,192,2,107,123,120,204,96, - 48,120,204,120,48,24,204,120,27,82,114,216,216,2,107,123, - 120,204,252,236,236,236,236,236,252,204,120,21,88,120,112,216, - 120,216,216,120,0,248,2,103,119,28,60,120,240,120,60,28, - 2,101,117,252,252,12,12,12,22,65,113,240,2,107,123,120, - 204,252,236,236,252,236,236,236,204,120,28,81,113,248,25,84, - 116,112,216,216,112,2,102,118,48,48,252,48,48,252,22,87, - 119,112,216,24,48,96,192,248,22,87,119,112,216,24,112,24, - 216,112,26,67,115,48,96,192,0,104,120,204,204,204,204,220, - 252,192,192,0,108,124,124,236,236,236,236,108,44,44,44,44, - 44,60,39,34,114,192,192,32,51,115,96,96,192,22,54,118, - 96,224,96,96,96,96,22,86,118,112,216,216,112,0,248,2, - 103,119,224,112,56,28,56,112,224,2,106,122,100,236,104,120, - 120,52,108,92,220,140,2,106,122,100,236,104,120,120,56,116, - 76,216,156,2,106,122,196,108,232,120,240,60,108,220,156,12, - 0,107,123,96,96,0,96,96,96,96,96,204,204,120,2,108, - 124,96,48,0,120,252,204,204,204,252,204,204,204,2,108,124, - 24,48,0,120,252,204,204,204,252,204,204,204,2,108,124,48, - 120,0,120,252,204,204,204,252,204,204,204,2,108,124,104,176, - 0,120,252,204,204,204,252,204,204,204,2,108,124,204,204,0, - 120,252,204,204,204,252,204,204,204,2,108,124,48,72,48,0, - 120,252,204,204,252,204,204,204,2,122,122,126,216,216,216,220, - 248,216,216,216,222,0,108,124,120,204,204,192,192,192,192,204, - 204,120,48,96,2,108,124,96,48,0,252,192,192,192,248,192, - 192,192,252,2,108,124,24,48,0,252,192,192,192,248,192,192, - 192,252,2,108,124,48,120,0,252,192,192,192,248,192,192,192, - 252,2,108,124,204,204,0,252,192,192,192,248,192,192,192,252, - 2,108,124,96,48,0,252,48,48,48,48,48,48,48,252,2, - 108,124,24,48,0,252,48,48,48,48,48,48,48,252,2,108, - 124,48,120,0,252,48,48,48,48,48,48,48,252,2,108,124, - 204,204,0,252,48,48,48,48,48,48,48,252,2,122,122,120, - 108,102,102,254,102,102,102,108,120,2,108,124,104,176,0,204, - 236,236,236,220,220,220,204,204,2,108,124,96,48,0,120,204, - 204,204,204,204,204,204,120,2,108,124,24,48,0,120,204,204, - 204,204,204,204,204,120,2,108,124,48,120,0,120,204,204,204, - 204,204,204,204,120,2,108,124,104,176,0,120,204,204,204,204, - 204,204,204,120,2,108,124,204,204,0,120,204,204,204,204,204, - 204,204,120,2,119,119,198,108,56,56,108,198,130,0,110,126, - 4,4,120,220,220,220,220,236,236,236,236,120,128,128,2,108, - 124,96,48,0,204,204,204,204,204,204,204,204,120,2,108,124, - 24,48,0,204,204,204,204,204,204,204,204,120,2,108,124,48, - 120,0,204,204,204,204,204,204,204,204,120,2,108,124,204,204, - 0,204,204,204,204,204,204,204,204,120,2,108,124,24,48,0, - 204,204,204,120,120,120,48,48,48,2,106,122,192,192,248,204, - 204,204,204,248,192,192,2,106,122,56,108,108,108,120,108,108, - 108,108,248,2,106,122,96,48,0,120,204,60,108,204,204,124, - 2,106,122,24,48,0,120,204,60,108,204,204,124,2,106,122, - 48,120,0,120,204,60,108,204,204,124,2,106,122,104,176,0, - 120,204,60,108,204,204,124,2,106,122,204,204,0,120,204,60, - 108,204,204,124,2,107,123,48,72,48,0,120,204,60,108,204, - 204,124,2,119,119,124,218,58,94,216,222,124,0,105,121,120, - 204,192,192,192,204,120,48,96,2,106,122,96,48,0,120,204, - 204,252,192,204,120,2,106,122,24,48,0,120,204,204,252,192, - 204,120,2,106,122,48,120,0,120,204,204,252,192,204,120,2, - 106,122,204,204,0,120,204,204,252,192,204,120,34,58,122,192, - 96,0,96,96,96,96,96,96,96,34,58,122,96,192,0,192, - 192,192,192,192,192,192,18,74,122,96,240,0,96,96,96,96, - 96,96,96,2,106,122,204,204,0,48,48,48,48,48,48,48, - 2,107,123,216,112,240,152,12,124,204,204,204,204,120,2,106, - 122,104,176,0,248,204,204,204,204,204,204,2,106,122,96,48, - 0,120,204,204,204,204,204,120,2,106,122,24,48,0,120,204, - 204,204,204,204,120,2,106,122,48,120,0,120,204,204,204,204, - 204,120,2,106,122,104,176,0,120,204,204,204,204,204,120,2, - 106,122,204,204,0,120,204,204,204,204,204,120,2,104,120,48, - 48,0,252,252,0,48,48,0,107,123,4,8,120,220,220,236, - 236,204,120,128,128,2,106,122,96,48,0,204,204,204,204,204, - 204,124,2,106,122,24,48,0,204,204,204,204,204,204,124,2, - 106,122,48,120,0,204,204,204,204,204,204,124,2,106,122,204, - 204,0,204,204,204,204,204,204,124,0,108,124,24,48,0,204, - 204,204,120,56,56,48,240,96,0,108,124,192,192,192,248,204, - 204,204,204,204,248,192,192,0,108,124,204,204,0,204,204,204, - 120,56,56,48,240,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 6 h=13 x= 2 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14Br[1151] U8G_FONT_SECTION("u8g_font_7x14Br") = { - 1,7,14,0,254,10,1,137,3,30,32,127,254,12,254,11, - 254,14,0,112,34,42,122,192,192,192,192,192,192,192,0,192, - 192,25,84,116,216,216,216,216,2,106,122,120,120,120,252,120, - 120,252,120,120,120,1,107,123,48,120,180,180,112,56,52,180, - 180,120,48,2,106,122,108,220,216,112,16,32,56,108,236,216, - 2,106,122,56,108,108,108,56,108,220,216,216,108,41,36,116, - 192,192,192,192,16,93,125,24,48,96,96,192,192,192,192,192, - 96,96,48,24,16,93,125,192,96,48,48,24,24,24,24,24, - 48,48,96,192,5,103,119,180,180,120,48,120,180,180,3,103, - 119,48,48,48,252,48,48,48,32,52,116,224,96,96,192,6, - 97,113,252,34,34,114,192,192,0,109,125,12,12,12,24,24, - 48,48,48,96,96,192,192,192,2,106,122,120,204,204,204,204, - 204,204,204,204,120,2,106,122,48,112,240,48,48,48,48,48, - 48,252,2,106,122,120,204,204,12,24,24,48,96,192,252,2, - 106,122,120,204,204,12,56,12,12,204,204,120,2,106,122,8, - 24,24,56,120,216,216,252,24,24,2,106,122,252,192,192,248, - 204,12,12,204,204,120,2,106,122,56,108,204,192,248,204,204, - 204,204,120,2,106,122,252,204,216,24,48,48,48,48,48,48, - 2,106,122,120,204,204,204,120,120,204,204,204,120,2,106,122, - 120,204,204,204,204,124,12,204,216,112,35,39,119,192,192,0, - 0,0,192,192,33,57,121,96,96,0,0,0,224,96,96,192, - 2,105,121,12,24,48,96,192,96,48,24,12,4,100,116,252, - 0,0,252,2,105,121,192,96,48,24,12,24,48,96,192,2, - 106,122,120,204,204,24,48,48,48,0,48,48,2,106,122,56, - 108,220,244,244,244,244,220,96,60,2,106,122,120,252,204,204, - 204,204,252,204,204,204,2,106,122,248,204,204,200,248,204,204, - 204,204,248,2,106,122,120,204,204,192,192,192,192,204,204,120, - 2,106,122,240,216,204,204,204,204,204,204,216,240,2,106,122, - 252,192,192,192,248,192,192,192,192,252,2,106,122,252,192,192, - 192,248,192,192,192,192,192,2,106,122,120,204,204,192,192,220, - 204,204,204,120,2,106,122,204,204,204,204,252,204,204,204,204, - 204,2,106,122,252,48,48,48,48,48,48,48,48,252,2,106, - 122,12,12,12,12,12,12,12,204,216,112,2,106,122,204,216, - 240,224,224,240,240,216,204,204,2,106,122,192,192,192,192,192, - 192,192,192,192,252,2,106,122,132,204,204,252,252,204,204,204, - 204,204,2,106,122,204,204,236,236,236,220,220,220,204,204,2, - 106,122,120,204,204,204,204,204,204,204,204,120,2,106,122,248, - 204,204,204,204,248,192,192,192,192,0,108,124,120,204,204,204, - 204,204,236,220,204,120,12,4,2,106,122,248,204,204,204,248, - 216,204,204,204,204,2,106,122,120,204,204,96,48,48,24,204, - 204,120,2,106,122,252,48,48,48,48,48,48,48,48,48,2, - 106,122,204,204,204,204,204,204,204,204,204,120,2,106,122,204, - 204,204,204,204,204,204,120,120,48,2,106,122,204,204,204,204, - 204,252,252,252,252,72,2,106,122,204,204,120,120,48,48,120, - 120,204,204,2,106,122,204,204,204,120,120,48,48,48,48,48, - 2,106,122,252,12,24,24,48,48,96,96,192,252,16,93,125, - 248,192,192,192,192,192,192,192,192,192,192,192,248,0,109,125, - 192,192,192,96,96,48,48,48,24,24,12,12,12,16,93,125, - 248,24,24,24,24,24,24,24,24,24,24,24,248,11,99,115, - 48,120,204,0,98,114,252,252,26,67,115,192,96,48,2,103, - 119,120,204,28,108,204,204,124,2,106,122,192,192,192,248,204, - 204,204,204,204,248,2,103,119,120,204,192,192,192,204,120,2, - 106,122,12,12,12,124,204,204,204,204,204,124,2,103,119,120, - 204,204,252,192,204,120,2,106,122,24,60,48,48,252,48,48, - 48,48,48,0,105,121,116,220,216,216,112,64,248,204,120,2, - 106,122,192,192,192,248,204,204,204,204,204,204,34,42,122,192, - 192,0,192,192,192,192,192,192,192,16,92,124,24,24,0,24, - 24,24,24,24,24,24,216,112,2,106,122,192,192,192,200,216, - 240,240,216,204,196,34,42,122,192,192,192,192,192,192,192,192, - 192,192,2,103,119,216,252,252,252,252,252,204,2,103,119,248, - 204,204,204,204,204,204,2,103,119,120,204,204,204,204,204,120, - 0,105,121,248,204,204,204,204,204,248,192,192,0,105,121,124, - 204,204,204,204,204,124,12,12,2,103,119,248,204,204,192,192, - 192,192,2,103,119,120,204,96,48,24,204,120,2,106,122,48, - 48,48,252,48,48,48,48,48,28,2,103,119,204,204,204,204, - 204,204,124,2,103,119,204,204,204,120,120,48,48,2,103,119, - 204,204,252,252,252,252,72,2,103,119,204,204,120,48,120,204, - 204,0,105,121,204,204,108,108,56,56,24,216,112,2,103,119, - 252,12,24,48,96,192,252,16,93,125,56,96,96,96,96,96, - 192,96,96,96,96,96,56,32,45,125,192,192,192,192,192,192, - 192,192,192,192,192,192,192,16,93,125,224,48,48,48,48,48, - 24,48,48,48,48,48,224,9,100,116,68,244,188,136,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=14 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14[2374] U8G_FONT_SECTION("u8g_font_7x14") = { - 1,7,14,0,254,10,1,138,3,30,32,255,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,14, - 0,112,50,26,122,128,128,0,128,128,128,128,128,128,128,1, - 105,121,32,120,164,160,160,160,164,120,32,18,89,121,48,72, - 64,64,240,64,64,240,72,4,102,118,132,120,72,72,120,132, - 18,90,122,136,80,80,32,248,32,248,32,32,32,50,26,122, - 128,128,128,128,0,0,128,128,128,128,2,107,123,120,132,64, - 48,72,132,72,48,8,132,120,27,66,114,144,144,2,107,123, - 120,132,180,204,196,196,196,204,180,132,120,21,88,120,112,136, - 120,136,152,104,0,248,2,103,119,20,40,80,160,80,40,20, - 18,84,116,248,8,8,8,22,65,113,240,2,107,123,120,132, - 244,204,204,244,204,204,204,132,120,27,81,113,248,25,68,116, - 96,144,144,96,18,86,118,32,32,248,32,32,248,22,71,119, - 96,144,16,32,64,128,240,22,71,119,96,144,16,96,16,144, - 96,42,51,115,32,64,128,16,88,120,136,136,136,136,216,168, - 128,128,16,92,124,120,168,168,168,168,104,40,40,40,40,40, - 56,55,17,113,128,32,35,115,64,64,128,38,55,119,64,192, - 64,64,64,64,224,22,70,118,96,144,144,96,0,240,2,103, - 119,160,80,40,20,40,80,160,2,106,122,64,196,72,72,80, - 36,44,84,156,132,2,106,122,64,196,72,72,80,40,52,68, - 136,156,2,106,122,196,36,72,48,208,36,76,84,156,4,0, - 107,123,32,32,0,32,32,32,32,64,132,132,120,2,108,124, - 32,16,0,48,72,132,132,252,132,132,132,132,2,108,124,16, - 32,0,48,72,132,132,252,132,132,132,132,2,108,124,48,72, - 0,48,72,132,132,252,132,132,132,132,2,108,124,100,152,0, - 48,72,132,132,252,132,132,132,132,2,107,123,72,0,48,72, - 132,132,252,132,132,132,132,2,107,123,48,72,48,72,132,132, - 252,132,132,132,132,2,106,122,60,80,144,144,252,144,144,144, - 144,156,0,108,124,120,132,132,128,128,128,128,132,132,120,16, - 32,2,108,124,32,16,0,252,128,128,128,248,128,128,128,252, - 2,108,124,16,32,0,252,128,128,128,248,128,128,128,252,2, - 108,124,48,72,0,252,128,128,128,248,128,128,128,252,2,107, - 123,72,0,252,128,128,128,248,128,128,128,252,18,92,124,64, - 32,0,248,32,32,32,32,32,32,32,248,18,92,124,16,32, - 0,248,32,32,32,32,32,32,32,248,18,92,124,32,80,0, - 248,32,32,32,32,32,32,32,248,18,91,123,80,0,248,32, - 32,32,32,32,32,32,248,2,122,122,120,68,66,66,242,66, - 66,66,68,120,2,108,124,100,152,0,196,196,164,164,148,148, - 148,140,140,2,108,124,32,16,0,120,132,132,132,132,132,132, - 132,120,2,108,124,16,32,0,120,132,132,132,132,132,132,132, - 120,2,108,124,48,72,0,120,132,132,132,132,132,132,132,120, - 2,108,124,100,152,0,120,132,132,132,132,132,132,132,120,2, - 107,123,72,0,120,132,132,132,132,132,132,132,120,2,119,119, - 130,68,40,16,40,68,130,0,110,126,4,4,120,140,148,148, - 148,164,164,164,196,120,128,128,2,108,124,32,16,0,132,132, - 132,132,132,132,132,132,120,2,108,124,16,32,0,132,132,132, - 132,132,132,132,132,120,2,108,124,48,72,0,132,132,132,132, - 132,132,132,132,120,2,107,123,72,0,132,132,132,132,132,132, - 132,132,120,18,92,124,16,32,0,136,136,80,80,32,32,32, - 32,32,2,106,122,128,128,248,132,132,132,132,248,128,128,2, - 106,122,48,72,72,72,112,72,68,68,68,248,2,106,122,32, - 16,0,120,132,4,124,132,132,124,2,106,122,8,16,0,120, - 132,4,124,132,132,124,2,106,122,48,72,0,120,132,4,124, - 132,132,124,2,106,122,100,152,0,120,132,4,124,132,132,124, - 2,105,121,72,0,120,132,4,124,132,132,124,2,107,123,48, - 72,48,0,120,132,4,124,132,132,124,2,119,119,124,146,50, - 94,144,146,124,0,105,121,120,132,128,128,128,132,120,16,32, - 2,106,122,32,16,0,120,132,132,252,128,132,120,2,106,122, - 16,32,0,120,132,132,252,128,132,120,2,106,122,48,72,0, - 120,132,132,252,128,132,120,2,105,121,72,0,120,132,132,252, - 128,132,120,18,90,122,64,32,0,96,32,32,32,32,32,248, - 18,90,122,16,32,0,96,32,32,32,32,32,248,18,90,122, - 96,144,0,96,32,32,32,32,32,248,18,89,121,80,0,96, - 32,32,32,32,32,248,18,91,123,80,32,80,8,120,136,136, - 136,136,136,112,2,106,122,100,152,0,184,196,132,132,132,132, - 132,2,106,122,32,16,0,120,132,132,132,132,132,120,2,106, - 122,16,32,0,120,132,132,132,132,132,120,2,106,122,48,72, - 0,120,132,132,132,132,132,120,2,106,122,100,152,0,120,132, - 132,132,132,132,120,2,105,121,72,0,120,132,132,132,132,132, - 120,2,101,117,48,0,252,0,48,0,107,123,4,8,120,148, - 148,164,164,196,120,128,128,2,106,122,32,16,0,132,132,132, - 132,132,140,116,2,106,122,16,32,0,132,132,132,132,132,140, - 116,2,106,122,48,72,0,132,132,132,132,132,140,116,2,105, - 121,72,0,132,132,132,132,132,140,116,0,108,124,16,32,0, - 132,132,68,72,40,56,16,144,96,0,108,124,128,128,128,184, - 196,132,132,132,196,184,128,128,0,107,123,72,0,132,132,68, - 72,40,56,16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=13 x= 3 y=12 dx= 7 dy= 0 ascent=12 len=13 - Font Bounding box w= 7 h=14 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_7x14r[1151] U8G_FONT_SECTION("u8g_font_7x14r") = { - 1,7,14,0,254,10,1,138,3,30,32,127,254,12,254,11, - 254,14,0,112,50,26,122,128,128,128,128,128,128,128,0,128, - 128,41,52,116,160,160,160,160,18,90,122,80,80,80,248,80, - 80,248,80,80,80,1,107,123,16,120,148,148,80,56,20,148, - 148,120,16,2,106,122,100,148,152,112,16,32,56,100,164,152, - 2,106,122,48,72,72,72,48,100,148,136,152,100,57,20,116, - 128,128,128,128,32,77,125,16,32,64,64,128,128,128,128,128, - 64,64,32,16,16,77,125,128,64,32,32,16,16,16,16,16, - 32,32,64,128,19,87,119,32,168,112,32,112,168,32,19,87, - 119,32,32,32,248,32,32,32,32,36,116,192,64,64,128,22, - 81,113,248,33,51,115,64,224,64,0,109,125,4,4,8,8, - 16,16,16,32,32,64,64,128,128,2,106,122,48,72,132,132, - 132,132,132,132,72,48,18,90,122,32,96,160,32,32,32,32, - 32,32,248,2,106,122,120,132,132,4,8,8,16,32,64,252, - 2,106,122,252,4,8,16,56,4,4,132,132,120,2,106,122, - 8,24,40,40,72,72,136,252,8,8,2,106,122,252,128,128, - 248,132,4,4,132,132,120,2,106,122,56,64,128,128,184,196, - 132,132,132,120,2,106,122,252,4,8,8,16,16,32,32,64, - 64,2,106,122,120,132,132,72,48,72,132,132,132,120,2,106, - 122,120,132,132,132,140,116,4,132,136,112,34,56,120,64,224, - 64,0,0,64,224,64,33,40,120,192,192,0,0,192,64,64, - 128,18,89,121,8,16,32,64,128,64,32,16,8,5,100,116, - 252,0,0,252,18,89,121,128,64,32,16,8,16,32,64,128, - 2,106,122,120,132,132,8,16,16,16,0,16,16,2,106,122, - 56,68,156,164,164,164,164,156,64,60,2,106,122,48,72,132, - 132,132,252,132,132,132,132,2,106,122,240,136,132,136,240,136, - 132,132,136,240,2,106,122,120,132,132,128,128,128,128,132,132, - 120,2,106,122,240,136,132,132,132,132,132,132,136,240,2,106, - 122,252,128,128,128,240,128,128,128,128,252,2,106,122,252,128, - 128,128,240,128,128,128,128,128,2,106,122,120,132,132,128,128, - 156,132,132,140,116,2,106,122,132,132,132,132,252,132,132,132, - 132,132,18,90,122,248,32,32,32,32,32,32,32,32,248,2, - 106,122,28,8,8,8,8,8,8,136,136,112,2,106,122,132, - 136,144,160,192,160,144,136,132,132,2,106,122,128,128,128,128, - 128,128,128,128,128,252,2,106,122,132,204,204,180,180,132,132, - 132,132,132,2,106,122,132,132,196,196,164,148,140,140,132,132, - 2,106,122,120,132,132,132,132,132,132,132,132,120,2,106,122, - 248,132,132,132,132,248,128,128,128,128,0,108,124,120,132,132, - 132,132,132,228,148,140,120,8,4,2,106,122,248,132,132,132, - 132,248,144,136,132,132,2,106,122,120,132,132,128,96,24,4, - 132,132,120,2,122,122,254,16,16,16,16,16,16,16,16,16, - 2,106,122,132,132,132,132,132,132,132,132,132,120,2,106,122, - 132,132,132,132,72,72,72,48,48,48,18,90,122,136,136,136, - 136,136,136,168,168,168,80,2,106,122,132,132,72,72,48,48, - 72,72,132,132,18,90,122,136,136,136,80,80,32,32,32,32, - 32,2,106,122,252,4,8,16,16,32,64,64,128,252,32,77, - 125,240,128,128,128,128,128,128,128,128,128,128,128,240,0,109, - 125,128,128,64,64,32,32,32,16,16,8,8,4,4,16,77, - 125,240,16,16,16,16,16,16,16,16,16,16,16,240,10,99, - 115,48,72,132,0,97,113,252,42,51,115,128,64,32,2,103, - 119,120,132,4,124,132,132,124,2,106,122,128,128,128,184,196, - 132,132,132,196,184,2,103,119,120,132,128,128,128,132,120,2, - 106,122,4,4,4,116,140,132,132,132,140,116,2,103,119,120, - 132,132,252,128,132,120,2,106,122,24,36,32,32,248,32,32, - 32,32,32,0,105,121,116,136,136,136,112,64,184,132,120,2, - 106,122,128,128,128,184,196,132,132,132,132,132,18,90,122,32, - 32,0,96,32,32,32,32,32,248,16,92,124,8,8,0,24, - 8,8,8,8,8,136,136,112,2,106,122,128,128,128,136,144, - 160,224,144,136,132,18,90,122,96,32,32,32,32,32,32,32, - 32,248,18,87,119,208,168,168,168,168,168,136,2,103,119,184, - 196,132,132,132,132,132,2,103,119,120,132,132,132,132,132,120, - 0,105,121,184,196,132,132,132,196,184,128,128,0,105,121,116, - 140,132,132,132,140,116,4,4,2,103,119,184,196,132,128,128, - 128,128,2,103,119,120,132,64,48,8,132,120,2,106,122,32, - 32,32,248,32,32,32,32,36,24,2,103,119,132,132,132,132, - 132,140,116,18,87,119,136,136,136,80,80,32,32,18,87,119, - 136,136,168,168,168,168,80,2,103,119,132,132,72,48,72,132, - 132,0,105,121,132,132,132,132,140,116,4,132,120,2,103,119, - 252,8,16,32,32,64,252,32,77,125,48,64,64,64,64,64, - 128,64,64,64,64,64,48,48,29,125,128,128,128,128,128,128, - 128,128,128,128,128,128,128,16,77,125,192,32,32,32,32,32, - 16,32,32,32,32,32,192,9,100,116,64,164,148,8,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 3, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 7 y= 9 dx= 8 dy= 0 ascent=11 len=13 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_67_75[2420] U8G_FONT_SECTION("u8g_font_8x13_67_75") = { - 1,8,13,0,254,3,1,94,2,193,32,255,0,11,254,10, - 0,3,133,133,36,18,255,18,36,18,88,136,32,32,168,112, - 32,168,112,32,2,119,135,16,34,68,248,68,34,16,18,119, - 135,16,136,68,62,68,136,16,3,133,133,32,65,255,65,32, - 18,89,137,32,112,168,32,32,32,32,32,112,3,133,133,4, - 130,255,130,4,18,89,137,112,32,32,32,32,32,168,112,32, - 2,122,138,16,56,84,16,16,16,84,56,16,254,3,133,133, - 34,65,254,64,32,3,133,133,68,130,127,2,4,3,133,133, - 34,69,254,68,36,3,133,133,68,162,127,34,36,3,133,133, - 36,90,231,66,36,3,133,133,36,82,255,82,36,18,106,138, - 64,64,128,152,104,8,16,84,56,16,18,106,138,32,64,252, - 68,36,4,4,4,4,4,18,106,138,16,8,252,136,144,128, - 128,128,128,128,18,106,138,4,4,4,4,4,36,68,252,64, - 32,18,106,138,128,128,128,128,128,144,136,252,8,16,18,104, - 136,240,16,16,16,16,84,56,16,18,90,138,8,8,8,8, - 8,40,72,248,64,32,4,135,135,12,18,33,33,169,112,32, - 4,135,135,48,72,132,132,149,14,4,2,136,136,255,0,112, - 96,80,8,4,2,2,136,136,136,144,190,144,9,125,9,17, - 4,135,135,100,142,149,132,132,72,48,4,135,135,38,113,169, - 33,33,18,12,5,131,131,32,64,255,3,131,131,255,64,32, - 50,57,137,128,192,160,128,128,128,128,128,128,34,57,137,32, - 96,160,32,32,32,32,32,32,5,131,131,4,2,255,3,131, - 131,255,2,4,50,57,137,128,128,128,128,128,128,160,192,128, - 34,57,137,32,32,32,32,32,32,160,96,32,2,121,137,8, - 4,254,4,40,64,254,64,32,2,138,138,36,116,172,36,36, - 36,36,53,46,36,2,121,137,32,64,254,64,40,4,254,4, - 8,2,139,139,32,64,255,64,32,0,32,64,255,64,32,2, - 122,138,68,238,68,68,68,68,68,68,68,68,2,139,139,4, - 2,255,2,4,0,4,2,255,2,4,2,122,138,68,68,68, - 68,68,68,68,68,238,68,2,119,135,32,64,254,0,254,4, - 8,2,119,135,8,4,254,0,254,64,32,2,135,135,16,33, - 127,130,127,36,16,3,133,133,36,126,153,126,36,2,135,135, - 8,36,254,65,254,132,8,2,135,135,16,32,127,128,127,32, - 16,18,121,137,16,40,108,170,40,40,40,40,40,2,135,135, - 8,4,254,1,254,4,8,2,121,137,40,40,40,40,40,170, - 108,40,16,3,133,133,36,126,129,126,36,2,123,139,16,40, - 108,170,40,40,40,170,108,40,16,2,119,135,252,144,136,196, - 162,144,8,18,119,135,126,18,34,70,138,18,32,18,119,135, - 32,18,138,70,34,18,126,2,119,135,8,144,162,196,136,144, - 252,2,137,137,8,16,63,64,255,64,63,16,8,2,137,137, - 16,8,252,2,255,2,252,8,16,2,135,135,16,32,72,245, - 66,32,16,2,135,135,8,4,18,175,66,4,8,2,122,138, - 16,56,84,146,16,124,16,124,16,16,2,122,138,16,16,124, - 16,124,16,146,84,56,16,2,119,135,16,32,64,182,64,32, - 16,2,122,138,16,40,84,146,0,16,16,0,16,16,18,119, - 135,16,8,4,218,4,8,16,2,122,138,16,16,0,16,16, - 0,146,84,40,16,3,117,133,144,160,254,160,144,19,117,133, - 18,10,254,10,18,2,135,135,16,48,95,129,95,48,16,2, - 121,137,16,40,68,238,40,40,40,40,56,2,135,135,8,12, - 250,129,250,12,8,2,121,137,56,40,40,40,40,238,68,40, - 16,1,123,139,16,40,68,238,40,40,56,0,56,40,56,1, - 122,138,16,40,68,238,40,40,40,108,68,124,1,122,138,16, - 40,68,254,40,40,40,108,68,124,1,122,138,16,40,68,254, - 56,56,56,124,68,124,2,121,137,16,40,68,238,68,238,40, - 40,56,1,122,138,16,40,68,238,68,238,40,108,68,124,2, - 135,135,136,140,250,129,250,140,136,2,119,135,254,128,188,176, - 168,164,130,2,119,135,130,74,42,26,122,2,254,2,121,137, - 16,40,68,238,40,238,68,40,16,4,133,133,36,82,255,82, - 36,2,138,138,36,46,53,36,36,36,36,172,116,36,0,141, - 141,4,2,255,2,4,2,255,2,4,2,255,2,4,4,117, - 133,40,72,254,72,40,20,117,133,40,36,254,36,40,4,117, - 133,16,84,254,84,16,4,133,133,42,74,255,74,42,4,133, - 133,84,82,255,82,84,4,133,133,24,90,255,90,24,3,135, - 135,16,48,80,159,80,48,16,3,135,135,8,12,10,249,10, - 12,8,4,133,133,36,102,189,102,36,7,134,134,255,255,255, - 255,255,255,0,130,130,255,255,0,131,131,255,255,255,0,133, - 133,255,255,255,255,255,0,135,135,255,255,255,255,255,255,255, - 0,136,136,255,255,255,255,255,255,255,255,0,138,138,255,255, - 255,255,255,255,255,255,255,255,0,139,139,255,255,255,255,255, - 255,255,255,255,255,255,0,141,141,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,125,141,254,254,254,254,254,254,254, - 254,254,254,254,254,254,0,109,141,252,252,252,252,252,252,252, - 252,252,252,252,252,252,0,93,141,248,248,248,248,248,248,248, - 248,248,248,248,248,248,0,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,0,61,141,224,224,224,224,224,224,224, - 224,224,224,224,224,224,0,45,141,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,29,141,128,128,128,128,128,128,128, - 128,128,128,128,128,128,64,77,141,240,240,240,240,240,240,240, - 240,240,240,240,240,240,1,139,139,85,0,170,0,85,0,170, - 0,85,0,170,0,141,141,170,85,170,85,170,85,170,85,170, - 85,170,85,170,0,141,141,255,85,255,170,255,85,255,170,255, - 85,255,170,255,11,130,130,255,255,112,29,141,128,128,128,128, - 128,128,128,128,128,128,128,128,128,0,71,135,240,240,240,240, - 240,240,240,64,71,135,240,240,240,240,240,240,240,7,70,134, - 240,240,240,240,240,240,0,141,141,240,240,240,240,240,240,255, - 255,255,255,255,255,255,0,141,141,240,240,240,240,240,240,15, - 15,15,15,15,15,15,0,141,141,255,255,255,255,255,255,240, - 240,240,240,240,240,240,0,141,141,255,255,255,255,255,255,15, - 15,15,15,15,15,15,71,70,134,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,240,240,240,240,240,240,240,0, - 141,141,15,15,15,15,15,15,255,255,255,255,255,255,255,2, - 119,135,254,254,254,254,254,254,254,2,119,135,254,130,130,130, - 130,130,254,2,119,135,124,130,130,130,130,130,124,2,119,135, - 254,130,186,186,186,130,254,2,119,135,254,130,254,130,254,130, - 254,2,119,135,254,170,170,170,170,170,254,2,119,135,254,170, - 254,170,254,170,254,2,119,135,254,146,138,198,162,146,254,2, - 119,135,254,146,162,198,138,146,254,2,119,135,254,214,170,214, - 170,214,254,37,51,131,224,224,224,37,51,131,224,160,224,21, - 100,132,252,252,252,252,21,100,132,252,132,132,252,18,89,137, - 248,248,248,248,248,248,248,248,248,18,89,137,248,136,136,136, - 136,136,136,136,248,5,132,132,31,62,124,248,5,132,132,31, - 34,68,248,2,136,136,24,24,60,60,126,126,255,255,2,136, - 136,24,24,36,36,66,66,129,255,18,102,134,48,48,120,120, - 252,252,18,102,134,48,48,72,72,132,252,18,107,139,128,192, - 224,240,248,252,248,240,224,192,128,18,107,139,128,192,160,144, - 136,132,136,144,160,192,128,20,101,133,192,240,252,240,192,20, - 101,133,192,176,140,176,192,3,119,135,128,224,248,254,248,224, - 128,3,119,135,128,224,152,134,152,224,128,2,136,136,255,255, - 126,126,60,60,24,24,2,136,136,255,129,66,66,36,36,24, - 24,18,102,134,252,252,120,120,48,48,18,102,134,252,132,72, - 72,48,48,18,107,139,4,12,28,60,124,252,124,60,28,12, - 4,18,107,139,4,12,20,36,68,132,68,36,20,12,4,20, - 101,133,12,60,252,60,12,20,101,133,12,52,196,52,12,3, - 119,135,2,14,62,254,62,14,2,3,119,135,2,14,50,194, - 50,14,2,3,119,135,16,56,124,254,124,56,16,3,119,135, - 16,40,68,130,68,40,16,3,119,135,16,40,84,186,84,40, - 16,3,119,135,56,68,146,186,146,68,56,18,105,137,48,48, - 72,72,132,72,72,48,48,2,136,136,60,66,129,129,129,129, - 66,60,2,136,136,24,66,0,129,129,0,66,24,2,136,136, - 60,106,171,171,171,171,106,60,2,136,136,60,66,153,165,165, - 153,66,60,2,136,136,60,126,255,255,255,255,126,60,2,136, - 136,60,114,241,241,241,241,114,60,2,136,136,60,78,143,143, - 143,143,78,60,2,136,136,60,66,129,129,255,255,126,60,2, - 136,136,60,126,255,255,129,129,66,60,2,136,136,60,78,143, - 143,129,129,66,60,2,136,136,60,78,143,143,255,255,126,60, - 2,72,136,48,112,240,240,240,240,112,48,66,72,136,192,224, - 240,240,240,240,224,192,0,141,141,255,255,255,255,195,129,129, - 129,129,195,255,255,255,0,141,141,255,255,255,255,195,153,189, - 189,153,195,255,255,255,6,135,135,255,255,255,255,195,153,189, - 0,134,134,189,153,195,255,255,255,6,68,132,48,64,128,128, - 70,68,132,192,32,16,16,66,68,132,16,16,32,192,2,68, - 132,128,128,64,48,6,132,132,60,66,129,129,2,132,132,129, - 129,66,60,2,136,136,1,3,7,15,31,63,127,255,2,136, - 136,128,192,224,240,248,252,254,255,2,136,136,255,254,252,248, - 240,224,192,128,2,136,136,255,127,63,31,15,7,3,1,20, - 85,133,112,136,136,136,112,2,120,136,254,226,226,226,226,226, - 226,254,2,120,136,254,142,142,142,142,142,142,254,2,120,136, - 254,254,250,242,226,194,130,254,2,120,136,254,130,134,142,158, - 190,254,254,2,120,136,254,146,146,146,146,146,146,254,2,122, - 138,16,16,40,40,68,84,124,146,130,254,2,122,138,16,16, - 56,56,116,116,116,242,242,254,2,122,138,16,16,56,56,92, - 92,92,158,158,254,2,136,136,60,66,129,129,129,129,66,60, - 2,119,135,254,146,146,242,130,130,254,2,119,135,254,130,130, - 242,146,146,254,2,119,135,254,130,130,158,146,146,254,2,119, - 135,254,146,146,158,130,130,254,2,119,135,124,146,146,242,130, - 130,124,2,119,135,124,130,130,242,146,146,124,2,119,135,124, - 130,130,158,146,146,124,2,119,135,124,146,146,158,130,130,124, - 19,102,134,252,136,144,160,192,128,19,102,134,252,68,36,20, - 12,4,19,102,134,128,192,160,144,136,252,19,102,134,252,132, - 132,132,132,252,19,102,134,252,252,252,252,252,252,37,68,132, - 240,144,144,240,37,68,132,240,240,240,240,19,102,134,4,12, - 20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 11, '1' Height: 4 - Calculated Max Values w= 8 h=11 x= 2 y= 3 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13_75r[496] U8G_FONT_SECTION("u8g_font_8x13_75r") = { - 1,8,13,0,254,11,1,83,0,0,32,79,0,11,0,11, - 0,2,119,135,254,254,254,254,254,254,254,2,119,135,254,130, - 130,130,130,130,254,2,119,135,124,130,130,130,130,130,124,2, - 119,135,254,130,186,186,186,130,254,2,119,135,254,130,254,130, - 254,130,254,2,119,135,254,170,170,170,170,170,254,2,119,135, - 254,170,254,170,254,170,254,2,119,135,254,146,138,198,162,146, - 254,2,119,135,254,146,162,198,138,146,254,2,119,135,254,214, - 170,214,170,214,254,37,51,131,224,224,224,37,51,131,224,160, - 224,21,100,132,252,252,252,252,21,100,132,252,132,132,252,18, - 89,137,248,248,248,248,248,248,248,248,248,18,89,137,248,136, - 136,136,136,136,136,136,248,5,132,132,31,62,124,248,5,132, - 132,31,34,68,248,2,136,136,24,24,60,60,126,126,255,255, - 2,136,136,24,24,36,36,66,66,129,255,18,102,134,48,48, - 120,120,252,252,18,102,134,48,48,72,72,132,252,18,107,139, - 128,192,224,240,248,252,248,240,224,192,128,18,107,139,128,192, - 160,144,136,132,136,144,160,192,128,20,101,133,192,240,252,240, - 192,20,101,133,192,176,140,176,192,3,119,135,128,224,248,254, - 248,224,128,3,119,135,128,224,152,134,152,224,128,2,136,136, - 255,255,126,126,60,60,24,24,2,136,136,255,129,66,66,36, - 36,24,24,18,102,134,252,252,120,120,48,48,18,102,134,252, - 132,72,72,48,48,18,107,139,4,12,28,60,124,252,124,60, - 28,12,4,18,107,139,4,12,20,36,68,132,68,36,20,12, - 4,20,101,133,12,60,252,60,12,20,101,133,12,52,196,52, - 12,3,119,135,2,14,62,254,62,14,2,3,119,135,2,14, - 50,194,50,14,2,3,119,135,16,56,124,254,124,56,16,3, - 119,135,16,40,68,130,68,40,16,3,119,135,16,40,84,186, - 84,40,16,3,119,135,56,68,146,186,146,68,56,18,105,137, - 48,48,72,72,132,72,72,48,48,2,136,136,60,66,129,129, - 129,129,66,60,2,136,136,24,66,0,129,129,0,66,24,2, - 136,136,60,106,171,171,171,171,106,60,2,136,136,60,66,153, - 165,165,153,66,60,2,136,136,60,126,255,255,255,255,126,60 - }; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=12 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=12 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13B[2302] U8G_FONT_SECTION("u8g_font_8x13B") = { - 1,8,13,0,254,10,1,127,3,12,32,255,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,13,0,128,50,42,138,192,192,0,192,192,192,192, - 192,192,192,3,104,136,16,124,212,208,208,212,124,16,1,123, - 139,60,102,96,96,252,96,96,96,240,190,224,3,119,135,198, - 254,108,68,108,254,198,18,106,138,204,204,204,120,120,252,48, - 252,48,48,50,42,138,192,192,192,192,0,0,192,192,192,192, - 18,106,138,120,204,192,120,204,204,120,12,204,120,26,82,130, - 216,216,3,121,137,124,198,186,234,226,234,186,198,124,21,87, - 135,240,24,248,152,248,0,248,3,119,135,54,108,216,176,216, - 108,54,3,101,133,252,252,4,4,4,22,81,129,248,3,121, - 137,124,198,186,170,186,178,170,198,124,28,97,129,252,24,100, - 132,120,204,204,120,19,103,135,48,48,252,48,48,0,252,22, - 70,134,224,176,48,96,192,240,22,70,134,224,176,96,48,176, - 224,41,67,131,48,96,192,0,121,137,198,198,198,198,198,238, - 252,192,192,1,123,139,62,122,202,202,202,122,58,10,10,10, - 14,54,34,130,192,192,16,67,131,48,144,96,22,70,134,96, - 224,96,96,96,240,21,87,135,112,248,136,248,112,0,248,3, - 119,135,216,108,54,26,54,108,216,2,122,138,96,224,96,96, - 98,246,14,26,30,6,2,122,138,96,224,96,96,124,246,6, - 12,24,30,2,122,138,224,176,96,48,178,230,14,26,30,6, - 18,106,138,48,48,0,48,48,96,192,204,204,120,2,122,138, - 48,24,0,56,124,198,198,254,198,198,2,122,138,24,48,0, - 56,124,198,198,254,198,198,2,122,138,56,108,0,56,124,198, - 198,254,198,198,2,122,138,52,88,0,56,124,198,198,254,198, - 198,2,122,138,108,108,0,56,124,198,198,254,198,198,2,123, - 139,24,36,24,0,56,124,198,198,254,198,198,2,122,138,126, - 248,216,216,216,252,216,216,216,222,0,124,140,124,230,192,192, - 192,192,192,230,124,24,72,48,2,122,138,48,24,0,254,192, - 192,248,192,192,254,2,122,138,24,48,0,254,192,192,248,192, - 192,254,2,122,138,56,108,0,254,192,192,248,192,192,254,2, - 122,138,108,108,0,254,192,192,248,192,192,254,34,74,138,192, - 96,0,240,96,96,96,96,96,240,34,74,138,48,96,0,240, - 96,96,96,96,96,240,34,90,138,112,216,0,240,96,96,96, - 96,96,240,34,90,138,216,216,0,240,96,96,96,96,96,240, - 2,120,136,252,102,102,246,102,102,102,252,2,122,138,52,88, - 0,198,230,246,214,222,206,198,2,123,139,48,24,0,124,198, - 198,198,198,198,198,124,2,123,139,24,48,0,124,198,198,198, - 198,198,198,124,2,123,139,56,108,0,124,198,198,198,198,198, - 198,124,2,123,139,52,88,0,124,198,198,198,198,198,198,124, - 2,123,139,108,108,0,124,198,198,198,198,198,198,124,2,119, - 135,198,198,124,56,124,198,198,1,122,138,2,124,206,214,214, - 214,214,230,124,128,2,122,138,48,24,0,198,198,198,198,198, - 198,124,2,122,138,24,48,0,198,198,198,198,198,198,124,2, - 122,138,56,108,0,198,198,198,198,198,198,124,2,122,138,108, - 108,0,198,198,198,198,198,198,124,18,106,138,24,48,0,204, - 72,120,48,48,48,48,2,121,137,192,252,198,198,198,252,192, - 192,192,2,122,138,60,102,102,108,236,108,102,102,102,108,2, - 122,138,48,24,0,124,6,126,198,198,206,118,2,122,138,24, - 48,0,124,6,126,198,198,206,118,2,122,138,56,108,0,124, - 6,126,198,198,206,118,2,122,138,52,88,0,124,6,126,198, - 198,206,118,2,122,138,108,108,0,124,6,126,198,198,206,118, - 2,123,139,24,36,24,0,124,6,126,198,198,206,118,2,119, - 135,108,218,26,124,216,218,108,0,122,138,124,230,192,192,192, - 230,124,24,72,48,2,122,138,48,24,0,124,198,198,254,192, - 198,124,2,122,138,24,48,0,124,198,198,254,192,198,124,2, - 122,138,56,108,0,124,198,198,254,192,198,124,2,122,138,108, - 108,0,124,198,198,254,192,198,124,34,74,138,192,96,0,224, - 96,96,96,96,96,240,34,74,138,96,192,0,224,96,96,96, - 96,96,240,18,90,138,112,216,0,112,48,48,48,48,48,120, - 18,90,138,216,216,0,112,48,48,48,48,48,120,2,122,138, - 108,56,120,12,126,198,198,198,198,124,2,122,138,52,88,0, - 220,230,198,198,198,198,198,2,122,138,48,24,0,124,198,198, - 198,198,198,124,2,122,138,24,48,0,124,198,198,198,198,198, - 124,2,122,138,56,108,0,124,198,198,198,198,198,124,2,122, - 138,52,88,0,124,198,198,198,198,198,124,2,122,138,108,108, - 0,124,198,198,198,198,198,124,19,103,135,48,48,0,252,0, - 48,48,1,121,137,2,124,206,214,214,214,230,124,128,2,122, - 138,48,24,0,198,198,198,198,198,206,118,2,122,138,24,48, - 0,198,198,198,198,198,206,118,2,122,138,56,108,0,198,198, - 198,198,198,206,118,2,122,138,108,108,0,198,198,198,198,198, - 206,118,0,124,140,24,48,0,198,198,198,198,206,118,6,198, - 124,0,123,139,192,192,220,230,198,198,198,230,220,192,192,0, - 124,140,108,108,0,198,198,198,198,206,118,6,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =10 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Br[1123] U8G_FONT_SECTION("u8g_font_8x13Br") = { - 1,8,13,0,254,10,1,127,3,12,32,127,254,11,254,10, - 254,13,0,128,50,42,138,192,192,192,192,192,192,192,0,192, - 192,24,84,132,216,216,216,216,2,121,137,108,108,254,254,108, - 254,254,108,108,1,123,139,16,124,214,208,240,124,30,22,214, - 124,16,2,122,138,230,166,236,24,24,48,48,110,202,206,2, - 119,135,120,204,204,120,206,204,126,56,36,132,192,192,192,192, - 17,91,139,24,48,96,96,192,192,192,96,96,48,24,17,91, - 139,192,96,48,48,24,24,24,48,48,96,192,3,119,135,16, - 16,254,56,56,108,68,20,102,134,48,48,252,252,48,48,33, - 69,133,240,112,112,96,192,22,97,129,252,34,67,131,96,240, - 96,2,122,138,2,6,6,12,24,48,96,192,192,128,2,122, - 138,56,108,198,198,198,198,198,198,108,56,18,106,138,48,112, - 240,48,48,48,48,48,48,252,2,122,138,124,198,198,6,12, - 24,48,96,192,254,2,122,138,254,6,12,24,60,6,6,6, - 198,124,2,122,138,12,28,60,108,204,204,254,12,12,12,2, - 122,138,254,192,192,252,230,6,6,6,198,124,2,122,138,60, - 96,192,192,252,230,198,198,230,124,2,122,138,254,6,6,12, - 24,24,48,48,48,48,2,122,138,124,198,198,198,124,198,198, - 198,198,124,2,122,138,124,206,198,198,206,126,6,6,12,120, - 34,72,136,96,240,96,0,0,96,240,96,33,73,137,96,240, - 96,0,240,112,112,96,192,18,105,137,12,24,48,96,192,96, - 48,24,12,20,100,132,252,0,0,252,18,105,137,192,96,48, - 24,12,24,48,96,192,2,122,138,124,198,198,6,12,24,24, - 0,24,24,2,121,137,124,254,206,222,210,210,222,224,126,2, - 122,138,56,124,198,198,198,254,198,198,198,198,2,122,138,252, - 102,102,102,124,102,102,102,102,252,2,122,138,124,230,198,192, - 192,192,192,198,230,124,2,122,138,252,102,102,102,102,102,102, - 102,102,252,2,122,138,254,192,192,192,248,192,192,192,192,254, - 2,122,138,254,192,192,192,248,192,192,192,192,192,2,122,138, - 124,198,198,192,192,192,206,198,198,124,2,122,138,198,198,198, - 198,254,198,198,198,198,198,34,74,138,240,96,96,96,96,96, - 96,96,96,240,2,122,138,14,6,6,6,6,6,6,198,198, - 124,2,122,138,198,198,204,216,240,240,216,204,198,198,2,122, - 138,192,192,192,192,192,192,192,192,194,254,2,122,138,198,198, - 238,254,214,198,198,198,198,198,2,122,138,198,198,230,230,246, - 222,206,206,198,198,2,122,138,124,198,198,198,198,198,198,198, - 198,124,2,122,138,252,198,198,198,198,252,192,192,192,192,1, - 123,139,124,198,198,198,198,198,198,198,222,124,6,2,122,138, - 252,198,198,198,252,248,204,204,198,198,2,122,138,124,198,198, - 192,124,6,6,198,198,124,18,106,138,252,48,48,48,48,48, - 48,48,48,48,2,122,138,198,198,198,198,198,198,198,198,198, - 124,2,122,138,198,198,198,198,68,108,108,56,56,16,2,122, - 138,198,198,198,198,198,198,214,214,254,108,2,122,138,198,198, - 108,108,56,56,108,108,198,198,18,106,138,204,204,204,120,120, - 48,48,48,48,48,2,122,138,254,6,6,12,24,48,96,192, - 192,254,17,91,139,248,192,192,192,192,192,192,192,192,192,248, - 2,122,138,128,192,192,96,48,24,12,6,6,2,17,91,139, - 248,24,24,24,24,24,24,24,24,24,248,8,116,132,16,56, - 108,198,1,113,129,254,41,67,131,192,96,48,2,119,135,124, - 6,126,198,198,206,118,2,122,138,192,192,192,220,230,198,198, - 198,230,220,2,119,135,124,230,192,192,192,230,124,2,122,138, - 6,6,6,118,206,198,198,198,206,118,2,119,135,124,198,198, - 254,192,198,124,2,122,138,60,102,96,96,96,252,96,96,96, - 96,0,121,137,126,204,204,204,120,240,124,198,124,2,122,138, - 192,192,192,220,230,198,198,198,198,198,34,73,137,96,96,0, - 224,96,96,96,96,240,0,123,139,6,6,0,14,6,6,6, - 6,198,198,124,2,122,138,192,192,192,204,216,240,240,216,204, - 198,34,74,138,224,96,96,96,96,96,96,96,96,240,2,119, - 135,108,254,214,214,198,198,198,2,119,135,220,230,198,198,198, - 198,198,2,119,135,124,198,198,198,198,198,124,0,121,137,220, - 230,198,198,198,230,220,192,192,0,121,137,118,206,198,198,198, - 206,118,6,6,2,119,135,220,230,192,192,192,192,192,2,119, - 135,124,198,96,56,12,198,124,2,122,138,96,96,96,96,252, - 96,96,96,102,60,2,119,135,198,198,198,198,198,206,118,2, - 119,135,198,198,198,198,108,108,56,2,119,135,198,198,198,214, - 214,254,108,2,119,135,198,198,108,56,108,198,198,0,121,137, - 198,198,198,198,206,118,6,198,124,2,119,135,254,12,24,48, - 96,192,254,17,107,139,60,96,96,96,48,224,48,96,96,96, - 60,50,42,138,192,192,192,192,192,192,192,192,192,192,17,107, - 139,240,24,24,24,48,28,48,24,24,24,240,8,115,131,114, - 254,156,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13[2152] U8G_FONT_SECTION("u8g_font_8x13") = { - 1,8,13,0,254,9,1,97,2,205,32,255,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,13,0,128,50,25,137,128,0,128,128,128,128, - 128,128,128,19,88,136,32,112,168,160,160,168,112,32,2,121, - 137,28,34,32,112,32,32,32,98,220,19,102,134,132,120,72, - 72,120,132,2,121,137,130,130,68,40,124,16,124,16,16,50, - 25,137,128,128,128,128,0,128,128,128,128,34,74,138,96,144, - 128,96,144,144,96,16,144,96,42,66,130,144,144,3,121,137, - 56,68,146,170,162,170,146,68,56,20,87,135,112,8,120,136, - 120,0,248,3,119,135,18,36,72,144,72,36,18,19,100,132, - 252,4,4,4,38,65,129,240,3,121,137,56,68,146,170,170, - 178,170,68,56,26,97,129,252,39,68,132,96,144,144,96,19, - 87,135,32,32,248,32,32,0,248,22,70,134,96,144,16,96, - 128,240,22,70,134,96,144,32,16,144,96,58,34,130,64,128, - 17,103,135,132,132,132,132,204,180,128,18,105,137,124,232,232, - 232,104,40,40,40,40,54,33,129,192,48,34,130,64,192,22, - 54,134,64,192,64,64,64,224,21,70,134,96,144,144,96,0, - 240,3,119,135,144,72,36,18,36,72,144,2,122,138,64,192, - 64,64,66,230,10,18,26,6,2,122,138,64,192,64,64,76, - 242,2,12,16,30,2,122,138,96,144,32,16,146,102,10,18, - 26,6,18,105,137,32,0,32,32,64,128,132,132,120,18,106, - 138,32,16,0,48,72,132,132,252,132,132,18,106,138,16,32, - 0,48,72,132,132,252,132,132,18,106,138,48,72,0,48,72, - 132,132,252,132,132,18,106,138,100,152,0,48,72,132,132,252, - 132,132,18,106,138,72,72,0,48,72,132,132,252,132,132,18, - 106,138,48,72,48,48,72,132,132,252,132,132,2,121,137,110, - 144,144,144,156,240,144,144,158,16,107,139,120,132,128,128,128, - 128,128,132,120,16,32,18,106,138,32,16,0,252,128,128,240, - 128,128,252,18,106,138,16,32,0,252,128,128,240,128,128,252, - 18,106,138,48,72,0,252,128,128,240,128,128,252,18,106,138, - 72,72,0,252,128,128,240,128,128,252,18,90,138,64,32,0, - 248,32,32,32,32,32,248,18,90,138,16,32,0,248,32,32, - 32,32,32,248,18,90,138,48,72,0,248,32,32,32,32,32, - 248,18,90,138,136,136,0,248,32,32,32,32,32,248,2,121, - 137,120,68,66,66,226,66,66,68,120,2,122,138,100,152,0, - 130,194,162,146,138,134,130,2,122,138,32,16,0,124,130,130, - 130,130,130,124,2,122,138,8,16,0,124,130,130,130,130,130, - 124,2,122,138,24,36,0,124,130,130,130,130,130,124,2,122, - 138,100,152,0,124,130,130,130,130,130,124,2,122,138,68,68, - 0,124,130,130,130,130,130,124,19,102,134,132,72,48,48,72, - 132,17,107,139,4,120,140,148,148,164,164,164,196,120,128,18, - 106,138,64,32,0,132,132,132,132,132,132,120,18,106,138,16, - 32,0,132,132,132,132,132,132,120,18,106,138,48,72,0,132, - 132,132,132,132,132,120,18,106,138,72,72,0,132,132,132,132, - 132,132,120,18,90,138,16,32,0,136,136,80,32,32,32,32, - 18,105,137,128,248,132,132,132,248,128,128,128,18,105,137,112, - 136,136,144,160,152,132,132,184,18,105,137,32,16,0,120,4, - 124,132,140,116,18,105,137,8,16,0,120,4,124,132,140,116, - 18,105,137,48,72,0,120,4,124,132,140,116,18,105,137,100, - 152,0,120,4,124,132,140,116,18,105,137,72,72,0,120,4, - 124,132,140,116,18,106,138,48,72,48,0,120,4,124,132,140, - 116,2,118,134,108,18,124,144,146,108,16,104,136,120,132,128, - 128,132,120,16,32,18,105,137,32,16,0,120,132,252,128,132, - 120,18,105,137,16,32,0,120,132,252,128,132,120,18,105,137, - 48,72,0,120,132,252,128,132,120,18,105,137,72,72,0,120, - 132,252,128,132,120,18,89,137,64,32,0,96,32,32,32,32, - 248,18,89,137,32,64,0,96,32,32,32,32,248,18,89,137, - 96,144,0,96,32,32,32,32,248,18,89,137,144,144,0,96, - 32,32,32,32,248,18,106,138,72,48,80,8,120,132,132,132, - 132,120,18,105,137,100,152,0,184,196,132,132,132,132,18,105, - 137,64,32,0,120,132,132,132,132,120,18,105,137,16,32,0, - 120,132,132,132,132,120,18,105,137,48,72,0,120,132,132,132, - 132,120,18,105,137,100,152,0,120,132,132,132,132,120,18,105, - 137,72,72,0,120,132,132,132,132,120,19,87,135,32,32,0, - 248,0,32,32,17,104,136,4,120,140,148,164,196,120,128,18, - 105,137,64,32,0,136,136,136,136,136,116,18,105,137,16,32, - 0,136,136,136,136,136,116,18,105,137,48,72,0,136,136,136, - 136,136,116,18,105,137,80,80,0,136,136,136,136,136,116,16, - 107,139,16,32,0,132,132,132,140,116,4,132,120,16,106,138, - 128,128,184,196,132,132,196,184,128,128,16,107,139,72,72,0, - 132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=11 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=11 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13O[2153] U8G_FONT_SECTION("u8g_font_8x13O") = { - 1,8,13,0,254,9,1,98,2,206,32,255,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,13,0,128,50,41,137,64,0,64,64,64, - 128,128,128,128,19,104,136,16,56,84,80,160,168,112,32,2, - 137,137,14,17,16,56,16,32,32,98,220,3,118,134,66,60, - 36,72,120,132,2,121,137,130,130,68,40,124,16,248,32,32, - 50,41,137,64,64,64,64,0,128,128,128,128,18,90,138,48, - 72,64,48,72,144,96,16,144,96,42,66,130,144,144,2,137, - 137,28,34,73,85,162,170,146,68,56,20,103,135,56,4,120, - 136,120,0,248,3,119,135,18,36,72,144,144,72,36,19,100, - 132,252,4,8,8,38,65,129,240,2,137,137,28,34,89,85, - 170,178,170,68,56,26,97,129,252,39,68,132,96,144,144,96, - 19,103,135,16,16,124,32,32,0,248,22,86,134,48,72,8, - 112,128,240,22,86,134,112,8,48,16,144,96,58,34,130,64, - 128,1,119,135,66,66,66,132,204,180,128,18,105,137,124,232, - 232,232,104,80,80,80,80,54,33,129,192,48,34,130,64,192, - 38,54,134,32,96,32,64,64,224,21,102,134,24,36,72,48, - 0,240,3,119,135,72,36,18,18,36,72,144,18,106,138,32, - 96,32,64,68,236,20,40,60,8,2,122,138,32,96,32,64, - 76,242,4,24,32,60,18,106,138,112,8,48,16,148,108,20, - 40,60,8,18,105,137,16,0,16,16,32,64,132,136,112,2, - 122,138,16,8,0,24,36,66,66,124,132,132,2,122,138,8, - 16,0,24,36,66,66,124,132,132,2,122,138,24,36,0,24, - 36,66,66,124,132,132,2,122,138,50,76,0,24,36,66,66, - 124,132,132,2,122,138,36,36,0,24,36,66,66,124,132,132, - 2,122,138,24,36,24,24,36,66,66,124,132,132,2,137,137, - 55,72,72,72,78,112,144,144,158,0,123,139,60,66,64,64, - 64,128,128,132,120,16,32,2,122,138,16,8,0,126,64,64, - 112,128,128,252,2,122,138,8,16,0,126,64,64,112,128,128, - 252,2,122,138,24,36,0,126,64,64,112,128,128,252,2,122, - 138,36,36,0,126,64,64,112,128,128,252,18,106,138,32,16, - 0,124,16,16,32,32,32,248,18,106,138,8,16,0,124,16, - 16,32,32,32,248,18,106,138,24,36,0,124,16,16,32,32, - 32,248,18,106,138,68,68,0,124,16,16,32,32,32,248,2, - 121,137,120,68,66,66,226,68,132,136,240,2,138,138,50,76, - 0,65,97,81,146,138,134,130,2,138,138,16,8,0,62,65, - 65,130,130,130,124,2,138,138,4,8,0,62,65,65,130,130, - 130,124,2,138,138,12,18,0,62,65,65,130,130,130,124,2, - 138,138,50,76,0,62,65,65,130,130,130,124,2,138,138,34, - 34,0,62,65,65,130,130,130,124,3,118,134,66,36,24,48, - 72,132,1,123,139,2,60,70,74,74,82,164,164,196,120,128, - 2,122,138,32,16,0,66,66,66,132,132,132,120,2,122,138, - 8,16,0,66,66,66,132,132,132,120,2,122,138,24,36,0, - 66,66,66,132,132,132,120,2,122,138,36,36,0,66,66,66, - 132,132,132,120,18,90,138,16,32,0,136,136,80,96,64,64, - 64,2,121,137,64,124,66,66,66,124,128,128,128,18,105,137, - 56,68,68,72,80,136,132,132,184,2,121,137,16,8,0,60, - 2,124,132,140,116,2,121,137,4,8,0,60,2,124,132,140, - 116,2,121,137,24,36,0,60,2,124,132,140,116,2,121,137, - 50,76,0,60,2,124,132,140,116,2,121,137,36,36,0,60, - 2,124,132,140,116,2,122,138,24,36,24,0,60,2,124,132, - 140,116,2,134,134,54,9,126,144,146,108,0,120,136,60,66, - 128,128,132,120,16,32,2,121,137,16,8,0,60,66,124,128, - 132,120,2,121,137,8,16,0,60,66,124,128,132,120,2,121, - 137,24,36,0,60,66,124,128,132,120,2,121,137,36,36,0, - 60,66,124,128,132,120,18,89,137,32,16,0,48,16,16,32, - 32,248,18,89,137,16,32,0,48,16,16,32,32,248,18,89, - 137,48,72,0,48,16,16,32,32,248,18,89,137,72,72,0, - 48,16,16,32,32,248,2,122,138,36,24,40,4,60,66,66, - 132,132,120,2,121,137,50,76,0,92,98,66,132,132,132,2, - 121,137,32,16,0,60,66,66,132,132,120,2,121,137,8,16, - 0,60,66,66,132,132,120,2,121,137,24,36,0,60,66,66, - 132,132,120,2,121,137,50,76,0,60,66,66,132,132,120,2, - 121,137,36,36,0,60,66,66,132,132,120,19,103,135,16,16, - 0,252,0,32,32,1,120,136,2,60,70,90,164,196,120,128, - 18,105,137,32,16,0,68,68,68,136,136,116,18,105,137,8, - 16,0,68,68,68,136,136,116,18,105,137,24,36,0,68,68, - 68,136,136,116,18,105,137,40,40,0,68,68,68,136,136,116, - 0,123,139,8,16,0,66,66,132,140,116,4,132,120,0,122, - 138,64,64,92,98,66,132,196,184,128,128,0,123,139,36,36, - 0,66,66,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-O-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 8 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13Or[1029] U8G_FONT_SECTION("u8g_font_8x13Or") = { - 1,8,13,0,254,9,1,98,2,206,32,127,254,11,254,9, - 254,13,0,128,50,41,137,64,64,64,64,128,128,128,0,128, - 40,67,131,144,144,144,3,119,135,36,36,126,36,252,72,72, - 18,105,137,16,60,80,80,56,40,40,240,32,2,121,137,34, - 82,36,8,16,32,72,148,136,18,104,136,24,36,40,48,84, - 136,152,100,56,19,131,128,128,128,34,73,137,16,32,64,64, - 128,128,64,64,32,34,73,137,64,32,32,16,16,32,32,64, - 128,20,101,133,72,48,252,96,144,20,85,133,32,32,248,64, - 64,33,67,131,112,96,128,22,81,129,248,33,51,131,64,224, - 64,2,137,137,1,1,2,4,24,32,64,128,128,2,121,137, - 24,36,66,66,66,132,132,72,48,18,89,137,16,48,80,16, - 16,32,32,32,248,2,121,137,60,66,66,2,12,48,64,128, - 252,2,121,137,126,2,4,8,24,4,4,132,120,18,105,137, - 4,12,20,36,72,136,252,16,16,2,121,137,62,32,32,92, - 98,2,4,132,120,2,121,137,28,34,64,64,120,132,132,132, - 120,18,105,137,252,4,8,16,32,64,64,128,128,2,121,137, - 60,66,66,66,124,132,132,132,120,18,105,137,120,132,132,140, - 116,8,8,16,224,33,72,136,32,112,32,0,0,64,224,64, - 17,88,136,16,56,16,0,0,112,96,128,18,89,137,8,16, - 32,64,128,128,64,32,16,4,116,132,126,0,0,252,18,89, - 137,64,32,16,8,8,16,32,64,128,18,105,137,56,68,132, - 8,16,32,32,0,32,2,121,137,60,66,66,78,82,166,152, - 128,120,2,121,137,24,36,66,66,66,252,132,132,132,2,121, - 137,120,68,66,68,120,136,132,136,240,2,121,137,60,66,64, - 64,64,128,128,132,120,2,121,137,120,68,66,66,66,132,132, - 136,240,2,121,137,126,64,64,64,120,128,128,128,252,2,121, - 137,126,64,64,64,120,128,128,128,128,2,121,137,60,66,64, - 64,64,156,132,140,116,2,121,137,66,66,66,66,124,132,132, - 132,132,18,105,137,124,16,16,16,16,32,32,32,248,2,121, - 137,30,4,4,4,4,8,8,136,112,2,121,137,66,68,72, - 80,96,160,144,136,132,18,105,137,64,64,64,64,64,128,128, - 128,252,2,137,137,65,65,99,85,73,130,130,130,130,2,121, - 137,66,66,98,82,74,140,132,132,132,2,121,137,60,66,66, - 66,66,132,132,132,120,2,121,137,124,66,66,66,124,128,128, - 128,128,1,122,138,60,66,66,66,132,132,164,148,120,4,2, - 121,137,124,66,66,66,124,160,144,136,132,2,121,137,60,66, - 64,64,56,4,4,132,120,2,121,137,254,16,16,16,16,32, - 32,32,32,2,121,137,66,66,66,66,132,132,132,132,120,2, - 121,137,130,130,132,68,72,72,80,80,32,2,137,137,65,65, - 65,65,73,146,146,170,68,2,137,137,65,65,34,20,24,40, - 68,130,130,2,121,137,130,130,68,40,16,16,32,32,32,2, - 121,137,126,2,4,8,16,32,64,128,252,18,89,137,120,64, - 64,64,64,128,128,128,240,18,105,137,128,128,64,32,16,16, - 8,4,4,18,89,137,120,8,8,8,8,16,16,16,240,24, - 83,131,32,80,136,1,113,129,254,58,34,130,128,64,2,118, - 134,60,2,124,132,140,116,2,121,137,64,64,64,92,98,66, - 132,196,184,2,118,134,60,66,128,128,132,120,2,121,137,2, - 2,2,58,68,132,132,140,116,2,118,134,60,66,124,128,132, - 120,18,105,137,56,68,64,64,248,64,128,128,128,0,120,136, - 58,68,136,112,128,120,132,120,2,121,137,32,32,64,92,98, - 66,132,132,132,18,88,136,16,0,48,16,16,32,32,248,16, - 106,138,4,0,12,4,4,8,8,136,136,112,18,105,137,64, - 64,64,68,88,96,144,136,132,18,89,137,48,16,16,16,16, - 32,32,32,248,2,134,134,118,73,73,146,146,130,2,118,134, - 92,98,66,132,132,132,2,118,134,60,66,66,132,132,120,0, - 136,136,46,49,33,98,92,64,128,128,0,120,136,58,70,132, - 140,116,4,8,8,18,102,134,184,68,64,128,128,128,2,118, - 134,60,66,32,24,132,120,18,88,136,64,64,248,64,128,128, - 136,112,18,102,134,68,68,68,136,136,116,18,86,134,136,136, - 144,160,160,64,2,134,134,65,65,146,146,170,68,2,118,134, - 66,36,24,48,72,132,0,120,136,66,66,132,140,116,4,132, - 120,2,118,134,126,4,24,32,64,252,18,89,137,56,64,64, - 32,192,64,128,128,112,50,41,137,64,64,64,64,64,128,128, - 128,128,18,89,137,112,8,8,16,24,32,16,16,224,24,83, - 131,72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--13-120-75-75-C-80-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=10 x= 3 y=11 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w= 8 h=13 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_8x13r[1028] U8G_FONT_SECTION("u8g_font_8x13r") = { - 1,8,13,0,254,9,1,97,2,205,32,127,254,11,254,9, - 254,13,0,128,50,25,137,128,128,128,128,128,128,128,0,128, - 40,67,131,144,144,144,19,103,135,72,72,252,72,252,72,72, - 18,89,137,32,120,160,160,112,40,40,240,32,18,105,137,68, - 164,72,16,16,32,72,84,136,18,103,135,96,144,144,96,148, - 136,116,56,19,131,128,128,128,50,57,137,32,64,64,128,128, - 128,64,64,32,34,57,137,128,64,64,32,32,32,64,64,128, - 22,101,133,72,48,252,48,72,20,85,133,32,32,248,32,32, - 17,67,131,112,96,128,22,81,129,248,33,51,131,64,224,64, - 2,121,137,2,2,4,8,16,32,64,128,128,18,105,137,48, - 72,132,132,132,132,132,72,48,18,89,137,32,96,160,32,32, - 32,32,32,248,18,105,137,120,132,132,4,8,48,64,128,252, - 18,105,137,252,4,8,16,56,4,4,132,120,18,105,137,8, - 24,40,72,136,136,252,8,8,18,105,137,252,128,128,184,196, - 4,4,132,120,18,105,137,56,64,128,128,184,196,132,132,120, - 18,105,137,252,4,8,16,16,32,32,64,64,18,105,137,120, - 132,132,132,120,132,132,132,120,18,105,137,120,132,132,140,116, - 4,4,8,112,33,56,136,64,224,64,0,0,64,224,64,17, - 72,136,32,112,32,0,0,112,96,128,34,89,137,8,16,32, - 64,128,64,32,16,8,20,100,132,252,0,0,252,18,89,137, - 128,64,32,16,8,16,32,64,128,18,105,137,120,132,132,4, - 8,16,16,0,16,18,105,137,120,132,132,156,164,172,148,128, - 120,18,105,137,48,72,132,132,132,252,132,132,132,18,105,137, - 240,136,132,136,240,136,132,136,240,18,105,137,120,132,128,128, - 128,128,128,132,120,18,105,137,240,136,132,132,132,132,132,136, - 240,18,105,137,252,128,128,128,240,128,128,128,252,18,105,137, - 252,128,128,128,240,128,128,128,128,18,105,137,120,132,128,128, - 128,156,132,140,116,18,105,137,132,132,132,132,252,132,132,132, - 132,18,89,137,248,32,32,32,32,32,32,32,248,18,121,137, - 62,8,8,8,8,8,8,136,112,18,105,137,132,136,144,160, - 192,160,144,136,132,18,105,137,128,128,128,128,128,128,128,128, - 252,2,121,137,130,130,198,170,146,146,130,130,130,18,105,137, - 132,132,196,164,148,140,132,132,132,18,105,137,120,132,132,132, - 132,132,132,132,120,18,105,137,248,132,132,132,248,128,128,128, - 128,17,106,138,120,132,132,132,132,132,164,148,120,4,18,105, - 137,248,132,132,132,248,160,144,136,132,18,105,137,120,132,128, - 128,120,4,4,132,120,2,121,137,254,16,16,16,16,16,16, - 16,16,18,105,137,132,132,132,132,132,132,132,132,120,2,121, - 137,130,130,68,68,68,40,40,40,16,2,121,137,130,130,130, - 130,146,146,146,170,68,2,121,137,130,130,68,40,16,40,68, - 130,130,2,121,137,130,130,68,40,16,16,16,16,16,18,105, - 137,252,4,8,16,32,64,128,128,252,34,73,137,240,128,128, - 128,128,128,128,128,240,2,121,137,128,128,64,32,16,8,4, - 2,2,18,73,137,240,16,16,16,16,16,16,16,240,24,83, - 131,32,80,136,1,113,129,254,58,34,130,128,64,18,102,134, - 120,4,124,132,140,116,18,105,137,128,128,128,184,196,132,132, - 196,184,18,102,134,120,132,128,128,132,120,18,105,137,4,4, - 4,116,140,132,132,140,116,18,102,134,120,132,252,128,132,120, - 18,105,137,56,68,64,64,248,64,64,64,64,16,104,136,116, - 136,136,112,128,120,132,120,18,105,137,128,128,128,184,196,132, - 132,132,132,18,88,136,32,0,96,32,32,32,32,248,16,90, - 138,8,0,24,8,8,8,8,136,136,112,18,105,137,128,128, - 128,136,144,224,144,136,132,18,89,137,96,32,32,32,32,32, - 32,32,248,2,118,134,236,146,146,146,146,130,18,102,134,184, - 196,132,132,132,132,18,102,134,120,132,132,132,132,120,16,104, - 136,184,196,132,196,184,128,128,128,16,104,136,116,140,132,140, - 116,4,4,4,18,102,134,184,68,64,64,64,64,18,102,134, - 120,132,96,24,132,120,18,104,136,64,64,248,64,64,64,68, - 56,18,102,134,136,136,136,136,136,116,18,86,134,136,136,136, - 80,80,32,2,118,134,130,130,146,146,170,68,18,102,134,132, - 72,48,48,72,132,16,104,136,132,132,132,140,116,4,132,120, - 18,102,134,252,8,16,32,64,252,34,89,137,56,64,64,32, - 192,32,64,64,56,50,25,137,128,128,128,128,128,128,128,128, - 128,18,89,137,224,16,16,32,24,32,16,16,224,24,83,131, - 72,168,144,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=15 x= 8 y=10 dx= 9 dy= 0 ascent=12 len=30 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_67_75[3804] U8G_FONT_SECTION("u8g_font_9x15_67_75") = { - 0,9,15,0,253,4,1,255,4,34,32,255,0,12,253,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,11,11,9,1,255,16,40,68,238,68,238,40,40,40, - 40,56,7,11,11,9,1,255,16,40,68,238,68,238,40,40, - 108,68,124,9,7,14,9,0,1,132,0,134,0,253,0,128, - 128,253,0,134,0,132,0,7,7,7,9,1,0,254,128,188, - 176,168,164,130,7,7,7,9,1,0,130,74,42,26,122,2, - 254,7,11,11,9,1,255,16,40,68,238,40,40,40,238,68, - 40,16,9,7,14,9,0,1,4,0,50,0,73,0,255,128, - 73,0,50,0,4,0,9,10,20,9,0,0,34,0,39,0, - 42,128,34,0,34,0,34,0,34,0,170,0,114,0,34,0, - 7,13,13,9,1,254,8,4,254,4,8,4,254,4,8,4, - 254,4,8,8,5,5,9,0,2,36,68,255,68,36,8,5, - 5,9,0,2,36,34,255,34,36,9,5,10,9,0,2,42, - 0,73,0,255,128,73,0,42,0,8,5,5,9,0,2,42, - 74,255,74,42,8,5,5,9,0,2,84,82,255,82,84,9, - 5,10,9,0,2,85,0,148,128,255,128,148,128,85,0,7, - 7,7,9,1,1,16,48,80,158,80,48,16,7,7,7,9, - 1,1,16,24,20,242,20,24,16,8,5,5,9,0,2,36, - 102,189,102,36,9,7,14,9,0,5,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,2,4,9,0,253,255,128, - 255,128,9,4,8,9,0,253,255,128,255,128,255,128,255,128, - 9,6,12,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,9,8,16,9,0,253,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,9,9,18,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,11,22,9,0,253,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,13,26,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,15,30,9, - 0,253,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 8,15,15,9,0,253,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,15,15,9,0,253,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,6,15,15,9,0,253, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 15,15,9,0,253,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,3,15,15,9,0,253,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,2,15,15,9,0,253,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,1,15, - 15,9,0,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,15,15,9,5,253,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,15,30,9,0,253,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,0,0,170,128, - 0,0,85,0,0,0,170,128,0,0,85,0,9,15,30,9, - 0,253,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 85,0,170,128,85,0,170,128,85,0,170,128,85,0,170,128, - 9,15,30,9,0,253,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,170,128,255,128,85,0,255,128,170,128,255,128, - 85,0,255,128,9,2,4,9,0,10,255,128,255,128,1,15, - 15,9,8,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,8,8,9,0,253,248,248,248,248,248,248,248, - 248,4,8,8,9,5,253,240,240,240,240,240,240,240,240,5, - 7,7,9,0,5,248,248,248,248,248,248,248,9,15,30,9, - 0,253,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 9,15,30,9,0,253,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,9,15,30,9,0,253,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,4,7,7,9, - 5,5,240,240,240,240,240,240,240,9,15,30,9,0,253,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,9,15,30, - 9,0,253,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56,7,7,7,9,1,1,56,116, - 242,242,242,116,56,7,7,7,9,1,1,56,92,158,158,158, - 92,56,7,7,7,9,1,1,56,68,130,254,254,124,56,7, - 7,7,9,1,1,56,124,254,254,130,68,56,7,7,7,9, - 1,1,56,92,158,158,130,68,56,7,7,7,9,1,1,56, - 92,158,254,254,124,56,4,7,7,9,1,1,48,112,240,240, - 240,112,48,4,7,7,9,4,1,192,224,240,240,240,224,192, - 9,15,30,9,0,253,255,128,255,128,255,128,255,128,255,128, - 227,128,193,128,193,128,193,128,227,128,255,128,255,128,255,128, - 255,128,255,128,9,15,30,9,0,253,255,128,255,128,255,128, - 255,128,227,128,221,128,190,128,190,128,190,128,221,128,227,128, - 255,128,255,128,255,128,255,128,9,8,16,9,0,4,255,128, - 255,128,255,128,255,128,227,128,221,128,190,128,190,128,9,8, - 16,9,0,253,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,4,4,4,9,1,4,48,64,128,128,4,4, - 4,9,4,4,192,32,16,16,4,4,4,9,4,1,16,16, - 32,192,4,4,4,9,1,1,128,128,64,48,7,4,4,9, - 1,4,56,68,130,130,7,4,4,9,1,1,130,130,68,56, - 7,7,7,9,1,1,2,6,14,30,62,126,254,7,7,7, - 9,1,1,128,192,224,240,248,252,254,7,7,7,9,1,1, - 254,252,248,240,224,192,128,7,7,7,9,1,1,254,126,62, - 30,14,6,2,5,5,5,9,2,2,112,136,136,136,112,7, - 7,7,9,1,1,254,242,242,242,242,242,254,7,7,7,9, - 1,1,254,158,158,158,158,158,254,7,7,7,9,1,1,254, - 254,250,242,226,194,254,7,7,7,9,1,1,254,134,142,158, - 190,254,254,7,7,7,9,1,1,254,146,146,146,146,146,254, - 9,10,20,9,0,0,8,0,8,0,20,0,20,0,34,0, - 42,0,93,0,73,0,128,128,255,128,9,10,20,9,0,0, - 8,0,8,0,28,0,28,0,58,0,58,0,121,0,121,0, - 248,128,255,128,9,10,20,9,0,0,8,0,8,0,28,0, - 28,0,46,0,46,0,79,0,79,0,143,128,255,128,9,9, - 18,9,0,0,62,0,65,0,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,7,7,7,9,1,1,254,146,146,242, - 130,130,254,7,7,7,9,1,1,254,130,130,242,146,146,254, - 7,7,7,9,1,1,254,130,130,158,146,146,254,7,7,7, - 9,1,1,254,146,146,158,130,130,254,7,7,7,9,1,1, - 124,146,146,242,130,130,124,7,7,7,9,1,1,124,130,130, - 242,146,146,124,7,7,7,9,1,1,124,130,130,158,146,146, - 124,7,7,7,9,1,1,124,146,146,158,130,130,124,6,6, - 6,9,1,1,252,136,144,160,192,128,6,6,6,9,1,1, - 252,68,36,20,12,4,6,6,6,9,1,1,128,192,160,144, - 136,252,6,6,6,9,1,1,252,132,132,132,132,252,6,6, - 6,9,1,1,252,252,252,252,252,252,5,5,5,9,2,1, - 248,136,136,136,248,5,5,5,9,2,1,248,248,248,248,248, - 6,6,6,9,1,1,4,12,20,36,68,252}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_75r[792] U8G_FONT_SECTION("u8g_font_9x15_75r") = { - 0,9,15,0,253,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15_78_79[3795] U8G_FONT_SECTION("u8g_font_9x15_78_79") = { - 0,9,15,0,253,9,2,231,4,175,32,255,0,12,254,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,7,7,7,9,1,0,130,132,136,144,160, - 192,254,9,10,20,9,0,0,8,0,8,0,20,0,20,0, - 42,0,42,0,85,0,93,0,128,128,255,128,7,10,10,9, - 1,0,16,16,16,16,16,16,16,16,16,254,7,7,7,9, - 1,1,62,64,132,138,132,64,62,7,7,7,9,1,1,248, - 4,66,162,66,4,248,5,12,12,9,2,255,112,136,136,16, - 16,32,32,64,64,128,128,112,5,12,12,9,2,255,112,136, - 136,64,64,32,32,16,16,8,8,112,7,8,8,9,1,0, - 130,146,84,68,40,40,16,16,8,10,10,9,0,255,128,143, - 144,80,80,80,80,47,32,32,8,10,10,9,0,255,1,241, - 9,10,10,10,10,244,4,4,3,10,10,9,3,0,64,64, - 64,64,224,64,64,64,64,64,255,255,255,255,255,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,136,128,65,0,34, - 0,20,0,8,0,7,8,8,9,1,0,16,16,40,40,68, - 84,146,130,7,7,7,9,1,1,146,146,146,146,146,84,56, - 7,7,7,9,1,1,2,2,2,18,2,2,254,7,7,7, - 9,1,1,254,128,128,144,128,128,128,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,9,13,26,9,0,254,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,9,13,26,9,0,254,255,128, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,7,7,7,9,1,1,40,40, - 238,40,238,40,40,7,7,7,9,1,1,40,40,40,238,40, - 40,40,7,3,3,9,1,3,64,190,64,9,5,10,9,0, - 2,128,0,128,0,255,128,128,0,128,0,9,5,10,9,0, - 2,0,128,0,128,255,128,0,128,0,128,5,10,10,9,2, - 0,32,80,32,32,32,32,32,32,32,248,5,9,9,9,2, - 0,32,32,80,80,248,80,80,32,32,7,9,9,9,1,0, - 16,16,16,40,198,40,16,16,16,8,9,9,9,0,0,8, - 8,8,20,227,20,8,8,8,8,9,9,9,1,0,16,16, - 16,40,199,40,16,16,16,8,7,7,9,0,1,127,65,65, - 193,65,65,127,8,7,7,9,1,1,254,130,130,131,130,130, - 254,5,12,12,9,2,255,248,160,160,160,160,160,160,160,160, - 160,160,248,5,12,12,9,2,255,248,40,40,40,40,40,40, - 40,40,40,40,248,3,10,10,9,3,0,32,32,64,64,128, - 128,64,64,32,32,3,10,10,9,3,0,128,128,64,64,32, - 32,64,64,128,128,6,10,10,9,1,0,36,36,72,72,144, - 144,72,72,36,36,6,10,10,9,2,0,144,144,72,72,36, - 36,72,72,144,144,255,255,255,255,9,11,22,9,0,0,8, - 0,20,0,54,0,85,0,213,128,85,0,85,0,85,0,85, - 0,85,0,85,0,9,11,22,9,0,255,85,0,85,0,85, - 0,85,0,85,0,85,0,213,128,85,0,54,0,20,0,8, - 0,8,8,8,9,0,0,28,34,169,113,33,1,34,28,8, - 8,8,9,0,0,56,68,149,142,132,128,68,56,9,5,10, - 9,0,2,114,0,169,0,255,128,169,0,114,0,9,5,10, - 9,0,2,32,0,64,0,255,128,64,0,32,0,9,5,10, - 9,0,2,2,0,1,0,255,128,1,0,2,0,9,5,10, - 9,0,2,34,0,65,0,255,128,65,0,34,0,9,7,14, - 9,0,1,16,0,32,0,127,128,128,0,127,128,32,0,16, - 0,9,7,14,9,0,1,4,0,2,0,255,0,0,128,255, - 0,2,0,4,0,9,7,14,9,0,1,20,0,34,0,127, - 0,128,128,127,0,34,0,20,0,9,5,10,9,0,2,32, - 128,64,128,255,128,64,128,32,128,9,5,10,9,0,2,130, - 0,129,0,255,128,129,0,130,0,9,7,14,9,0,1,16, - 128,32,128,127,128,128,128,127,128,32,128,16,128,9,7,14, - 9,0,1,132,0,130,0,255,0,128,128,255,0,130,0,132, - 0,9,6,12,9,0,1,2,0,1,0,85,128,170,128,1, - 0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=20 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15B[2990] U8G_FONT_SECTION("u8g_font_9x15B") = { - 0,9,15,0,253,10,1,232,3,214,32,255,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,12,2,10,10,9,4,0,192,0,192,192,192, - 192,192,192,192,192,7,8,8,9,1,0,4,124,206,208,208, - 230,124,64,8,10,10,9,0,255,30,51,48,48,124,48,48, - 248,191,224,7,7,7,9,1,2,198,254,108,68,108,254,198, - 8,10,10,9,0,0,195,195,102,60,126,24,126,24,24,24, - 2,11,11,9,4,255,192,192,192,192,192,0,0,192,192,192, - 192,6,11,11,9,1,255,120,204,192,120,204,204,204,120,12, - 204,120,6,2,2,9,1,9,204,204,8,11,11,9,0,0, - 60,126,195,189,165,161,165,189,195,126,60,5,7,7,9,1, - 3,240,24,248,152,248,0,248,8,8,8,9,0,1,27,54, - 108,216,216,108,54,27,7,5,5,9,1,2,254,254,6,6, - 6,6,1,1,9,1,4,252,8,11,11,9,0,0,60,126, - 195,189,165,189,169,173,195,126,60,6,2,2,9,1,9,252, - 252,6,4,4,9,2,6,120,204,204,120,8,10,10,9,0, - 0,24,24,24,255,255,24,24,24,255,255,5,7,7,9,1, - 4,112,152,24,48,96,192,248,5,7,7,9,1,4,112,152, - 24,48,24,152,112,4,3,3,9,2,8,48,96,192,7,10, - 10,9,1,253,198,198,198,198,198,238,250,192,192,192,7,10, - 10,9,1,0,126,254,246,246,246,118,54,54,54,54,3,3, - 3,9,3,3,64,224,64,5,3,3,9,2,253,24,216,112, - 4,7,7,9,1,4,96,224,96,96,96,96,240,5,6,6, - 9,1,4,112,216,216,112,0,248,8,8,8,9,0,1,216, - 108,54,27,27,54,108,216,8,11,11,9,0,0,96,224,96, - 96,97,99,247,15,27,31,3,8,11,11,9,0,0,96,224, - 96,96,110,115,243,6,12,24,31,8,11,11,9,0,0,112, - 152,24,48,25,155,119,15,27,31,3,7,10,10,9,1,0, - 24,24,0,24,48,96,192,198,198,124,8,12,12,9,0,0, - 96,48,24,0,60,102,195,195,255,195,195,195,8,12,12,9, - 0,0,6,12,24,0,60,102,195,195,255,195,195,195,8,12, - 12,9,0,0,24,60,102,0,60,102,195,195,255,195,195,195, - 8,12,12,9,0,0,50,126,76,0,60,102,195,195,255,195, - 195,195,8,11,11,9,0,0,102,102,0,60,102,195,195,255, - 195,195,195,8,12,12,9,0,0,24,36,36,24,60,102,195, - 195,255,195,195,195,8,10,10,9,0,0,31,60,108,108,204, - 255,204,204,204,207,8,13,13,9,0,253,62,99,193,192,192, - 192,192,193,99,62,12,108,56,7,12,12,9,1,0,96,48, - 24,0,254,192,192,252,192,192,192,254,7,12,12,9,1,0, - 12,24,48,0,254,192,192,252,192,192,192,254,7,12,12,9, - 1,0,24,60,102,0,254,192,192,252,192,192,192,254,7,11, - 11,9,1,0,102,102,0,254,192,192,252,192,192,192,254,6, - 12,12,9,1,0,192,96,48,0,252,48,48,48,48,48,48, - 252,6,12,12,9,1,0,24,48,96,0,252,48,48,48,48, - 48,48,252,6,12,12,9,1,0,48,120,204,0,252,48,48, - 48,48,48,48,252,6,11,11,9,1,0,204,204,0,252,48, - 48,48,48,48,48,252,9,10,20,9,0,0,126,0,99,0, - 97,128,97,128,249,128,249,128,97,128,97,128,99,0,126,0, - 8,12,12,9,0,0,50,126,76,0,195,227,243,251,223,207, - 199,195,8,12,12,9,0,0,96,48,24,0,60,102,195,195, - 195,195,102,60,8,12,12,9,0,0,6,12,24,0,60,102, - 195,195,195,195,102,60,8,12,12,9,0,0,24,60,102,0, - 60,102,195,195,195,195,102,60,8,12,12,9,0,0,50,126, - 76,0,60,102,195,195,195,195,102,60,8,11,11,9,0,0, - 102,102,0,60,102,195,195,195,195,102,60,7,8,8,9,1, - 0,130,198,108,56,56,108,198,130,8,12,12,9,0,255,1, - 63,102,199,203,203,211,211,227,102,252,128,8,12,12,9,0, - 0,96,48,24,0,195,195,195,195,195,195,102,60,8,12,12, - 9,0,0,6,12,24,0,195,195,195,195,195,195,102,60,8, - 12,12,9,0,0,24,60,102,0,195,195,195,195,195,195,102, - 60,8,11,11,9,0,0,102,102,0,195,195,195,195,195,195, - 102,60,8,12,12,9,0,0,6,12,24,0,195,102,60,24, - 24,24,24,24,7,10,10,9,1,0,240,96,124,102,102,102, - 124,96,96,240,7,10,10,9,1,0,60,102,198,204,216,204, - 198,198,198,220,8,11,11,9,0,0,96,48,24,0,62,67, - 3,127,195,199,123,8,11,11,9,0,0,12,24,48,0,62, - 67,3,127,195,199,123,8,11,11,9,0,0,24,60,102,0, - 62,67,3,127,195,199,123,8,11,11,9,0,0,50,126,76, - 0,62,67,3,127,195,199,123,8,10,10,9,0,0,102,102, - 0,62,67,3,127,195,199,123,8,11,11,9,0,0,24,36, - 36,24,62,67,3,127,195,199,123,8,7,7,9,0,0,118, - 155,27,126,216,217,110,8,10,10,9,0,253,62,99,192,192, - 192,99,62,12,108,56,8,11,11,9,0,0,96,48,24,0, - 60,102,195,255,192,99,62,8,11,11,9,0,0,12,24,48, - 0,60,102,195,255,192,99,62,8,11,11,9,0,0,24,60, - 102,0,60,102,195,255,192,99,62,8,10,10,9,0,0,102, - 102,0,60,102,195,255,192,99,62,6,11,11,9,1,0,192, - 96,48,0,112,48,48,48,48,48,252,6,11,11,9,1,0, - 24,48,96,0,112,48,48,48,48,48,252,6,11,11,9,1, - 0,48,120,204,0,112,48,48,48,48,48,252,6,10,10,9, - 1,0,204,204,0,112,48,48,48,48,48,252,8,12,12,9, - 0,0,136,216,112,112,216,140,62,103,195,195,102,60,8,11, - 11,9,0,0,50,126,76,0,220,230,195,195,195,195,195,8, - 11,11,9,0,0,96,48,24,0,60,102,195,195,195,102,60, - 8,11,11,9,0,0,12,24,48,0,60,102,195,195,195,102, - 60,8,11,11,9,0,0,24,60,102,0,60,102,195,195,195, - 102,60,8,11,11,9,0,0,50,126,76,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,102,102,0,60,102,195,195, - 195,102,60,8,10,10,9,0,0,24,24,0,0,255,255,0, - 0,24,24,8,9,9,9,0,255,1,63,102,207,219,243,102, - 252,128,8,11,11,9,0,0,96,48,24,0,195,195,195,195, - 195,103,59,8,11,11,9,0,0,12,24,48,0,195,195,195, - 195,195,103,59,8,11,11,9,0,0,24,60,102,0,195,195, - 195,195,195,103,59,8,10,10,9,0,0,102,102,0,195,195, - 195,195,195,103,59,8,14,14,9,0,253,12,24,48,0,195, - 195,195,195,195,103,59,3,198,124,7,12,12,9,1,253,224, - 96,96,124,102,102,102,102,124,96,96,224,8,13,13,9,0, - 253,102,102,0,195,195,195,195,195,103,59,3,198,124}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 3 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15Br[1423] U8G_FONT_SECTION("u8g_font_9x15Br") = { - 0,9,15,0,253,10,1,232,3,214,32,127,253,12,253,11, - 253,0,0,0,9,0,12,2,10,10,9,3,0,192,192,192, - 192,192,192,192,192,0,192,5,3,3,9,2,7,216,216,216, - 7,8,8,9,1,1,108,108,254,108,108,254,108,108,7,11, - 11,9,1,255,16,124,214,208,240,124,30,22,214,124,16,8, - 10,10,9,0,0,67,230,230,76,24,24,50,103,103,194,8, - 10,10,9,0,0,56,108,108,120,48,121,207,198,206,123,2, - 4,4,9,3,6,192,192,192,192,5,12,12,9,2,255,24, - 48,96,96,192,192,192,192,96,96,48,24,5,12,12,9,2, - 255,192,96,48,48,24,24,24,24,48,48,96,192,7,5,5, - 9,1,2,108,56,254,56,108,8,7,7,9,0,1,24,24, - 24,255,24,24,24,3,5,5,9,3,253,224,224,96,96,192, - 8,1,1,9,0,4,255,4,3,3,9,2,255,96,240,96, - 8,10,10,9,0,0,3,6,6,12,24,24,48,96,96,192, - 8,10,10,9,0,0,24,60,102,195,195,195,195,102,60,24, - 6,10,10,9,1,0,48,112,240,48,48,48,48,48,48,252, - 8,10,10,9,0,0,60,102,195,3,6,12,24,48,96,255, - 8,10,10,9,0,0,124,198,3,6,28,6,3,3,198,124, - 8,10,10,9,0,0,6,14,30,54,102,198,255,6,6,6, - 8,10,10,9,0,0,254,192,192,220,230,3,3,195,102,60, - 8,10,10,9,0,0,60,102,194,192,220,230,195,195,102,60, - 8,10,10,9,0,0,255,3,3,6,12,12,24,24,24,24, - 8,10,10,9,0,0,60,102,195,102,60,102,195,195,102,60, - 8,10,10,9,0,0,60,102,195,195,103,59,3,67,102,60, - 4,8,8,9,2,255,96,240,96,0,0,96,240,96,4,10, - 10,9,2,253,96,240,96,0,0,112,112,48,48,96,6,10, - 10,9,1,0,12,24,48,96,192,192,96,48,24,12,8,4, - 4,9,0,2,255,0,0,255,6,10,10,9,1,0,192,96, - 48,24,12,12,24,48,96,192,7,10,10,9,1,0,124,198, - 198,6,12,24,48,0,48,48,8,10,10,9,0,0,60,102, - 195,207,219,219,206,192,99,62,8,10,10,9,0,0,24,60, - 102,195,195,195,255,195,195,195,8,10,10,9,0,0,252,198, - 195,198,252,198,195,195,198,252,8,10,10,9,0,0,62,99, - 193,192,192,192,192,193,99,62,8,10,10,9,0,0,252,198, - 195,195,195,195,195,195,198,252,7,10,10,9,1,0,254,192, - 192,192,252,192,192,192,192,254,8,10,10,9,0,0,255,192, - 192,192,252,192,192,192,192,192,8,10,10,9,0,0,62,99, - 192,192,192,199,195,195,99,62,8,10,10,9,0,0,195,195, - 195,195,255,195,195,195,195,195,6,10,10,9,1,0,252,48, - 48,48,48,48,48,48,48,252,6,10,10,9,1,0,60,12, - 12,12,12,12,12,140,216,112,8,10,10,9,0,0,195,198, - 204,216,240,240,216,204,198,195,7,10,10,9,1,0,192,192, - 192,192,192,192,192,192,192,254,8,10,10,9,0,0,195,231, - 255,219,219,219,195,195,195,195,8,10,10,9,0,0,195,227, - 243,243,219,219,207,199,199,195,8,10,10,9,0,0,60,102, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,254,195, - 195,195,254,192,192,192,192,192,8,10,10,9,0,0,60,102, - 195,195,195,195,219,207,102,61,8,10,10,9,0,0,254,195, - 195,195,254,248,204,198,195,195,8,10,10,9,0,0,126,195, - 192,192,126,3,3,3,195,126,8,10,10,9,0,0,255,24, - 24,24,24,24,24,24,24,24,8,10,10,9,0,0,195,195, - 195,195,195,195,195,195,102,60,8,10,10,9,0,0,195,195, - 195,102,102,102,60,60,24,24,8,10,10,9,0,0,195,195, - 195,195,219,219,219,255,231,195,8,10,10,9,0,0,195,195, - 102,60,24,24,60,102,195,195,8,10,10,9,0,0,195,195, - 102,60,24,24,24,24,24,24,7,10,10,9,1,0,254,6, - 6,12,24,48,96,192,192,254,5,12,12,9,2,255,248,192, - 192,192,192,192,192,192,192,192,192,248,8,10,10,9,0,0, - 192,96,96,48,24,24,12,6,6,3,5,12,12,9,2,255, - 248,24,24,24,24,24,24,24,24,24,24,248,6,4,4,9, - 1,6,48,120,204,132,8,1,1,9,0,255,255,4,3,3, - 9,2,8,192,96,48,8,7,7,9,0,0,62,99,3,127, - 195,199,123,8,10,10,9,0,0,192,192,192,220,230,195,195, - 195,230,220,8,7,7,9,0,0,62,99,192,192,192,99,62, - 8,10,10,9,0,0,3,3,3,59,103,195,195,195,103,59, - 8,7,7,9,0,0,60,102,195,255,192,99,62,8,10,10, - 9,0,0,30,51,51,48,48,252,48,48,48,48,8,10,10, - 9,0,253,125,199,198,198,124,192,126,195,195,126,8,10,10, - 9,0,0,192,192,192,220,230,195,195,195,195,195,6,10,10, - 9,1,0,48,48,0,112,48,48,48,48,48,252,7,13,13, - 9,1,253,6,6,0,30,6,6,6,6,6,198,198,198,124, - 7,10,10,9,1,0,192,192,192,204,216,240,240,216,204,198, - 6,10,10,9,1,0,112,48,48,48,48,48,48,48,48,252, - 8,7,7,9,0,0,182,219,219,219,219,219,219,8,7,7, - 9,0,0,220,230,195,195,195,195,195,8,7,7,9,0,0, - 60,102,195,195,195,102,60,8,10,10,9,0,253,220,230,195, - 195,195,230,220,192,192,192,8,10,10,9,0,253,59,103,195, - 195,195,103,59,3,3,3,8,7,7,9,0,0,222,115,96, - 96,96,96,96,8,7,7,9,0,0,126,195,192,126,3,195, - 126,8,9,9,9,0,0,48,48,252,48,48,48,48,51,30, - 8,7,7,9,0,0,195,195,195,195,195,103,59,8,7,7, - 9,0,0,195,195,102,102,60,60,24,8,7,7,9,0,0, - 195,195,219,219,219,255,102,8,7,7,9,0,0,195,102,60, - 24,60,102,195,8,10,10,9,0,253,195,195,195,195,195,103, - 59,3,198,124,6,7,7,9,1,0,252,12,24,48,96,192, - 252,5,12,12,9,2,255,56,96,96,96,96,192,192,96,96, - 96,96,56,2,10,10,9,3,0,192,192,192,192,192,192,192, - 192,192,192,5,12,12,9,2,255,224,48,48,48,48,24,24, - 48,48,48,48,224,8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=14 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15[2959] U8G_FONT_SECTION("u8g_font_9x15") = { - 0,9,15,0,253,10,1,232,3,216,32,255,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,12,1,11,11,9,4,0,128, - 128,0,0,128,128,128,128,128,128,128,6,8,8,9,1,0, - 8,120,148,144,160,164,120,64,7,10,10,9,1,0,28,34, - 32,32,248,32,32,96,162,92,7,6,6,9,1,3,130,124, - 68,68,124,130,7,10,10,9,1,0,130,130,68,40,124,16, - 124,16,16,16,1,11,11,9,4,255,128,128,128,128,128,0, - 128,128,128,128,128,4,11,11,9,2,255,96,144,128,96,144, - 144,144,96,16,144,96,5,2,2,9,2,9,136,136,8,9, - 9,9,0,1,60,66,153,165,161,165,153,66,60,5,7,7, - 9,1,3,96,144,112,144,120,0,248,7,8,8,9,1,1, - 18,36,72,144,144,72,36,18,6,4,4,9,1,2,252,4, - 4,4,5,1,1,9,2,4,248,8,9,9,9,0,1,60, - 66,185,165,185,169,165,66,60,6,1,1,9,1,9,252,4, - 4,4,9,3,6,96,144,144,96,7,9,9,9,1,1,16, - 16,16,254,16,16,16,0,254,4,6,6,9,1,4,96,144, - 16,96,128,240,4,6,6,9,1,4,96,144,32,16,144,96, - 3,3,3,9,3,8,32,64,128,7,9,9,9,1,254,130, - 130,130,130,130,198,186,128,128,7,10,10,9,1,0,126,138, - 138,138,122,10,10,10,10,10,2,2,2,9,4,4,192,192, - 4,3,3,9,2,253,48,144,96,3,6,6,9,1,4,64, - 192,64,64,64,224,5,6,6,9,1,4,112,136,136,112,0, - 248,7,8,8,9,1,1,144,72,36,18,18,36,72,144,7, - 10,10,9,1,0,64,192,64,64,66,230,10,18,26,6,7, - 10,10,9,1,0,64,192,64,64,76,242,2,12,16,30,7, - 10,10,9,1,0,96,144,32,16,146,102,10,18,26,6,7, - 10,10,9,1,0,16,0,16,16,32,64,128,130,130,124,7, - 12,12,9,1,0,64,32,16,0,56,68,130,130,254,130,130, - 130,7,12,12,9,1,0,4,8,16,0,56,68,130,130,254, - 130,130,130,7,12,12,9,1,0,16,40,68,0,56,68,130, - 130,254,130,130,130,7,11,11,9,1,0,98,156,0,56,68, - 130,130,254,130,130,130,7,11,11,9,1,0,68,68,0,56, - 68,130,130,254,130,130,130,7,11,11,9,1,0,56,68,56, - 40,68,130,130,254,130,130,130,7,10,10,9,1,0,110,144, - 144,144,144,252,144,144,144,158,7,13,13,9,1,253,124,130, - 128,128,128,128,128,128,130,124,24,72,48,7,12,12,9,1, - 0,64,32,16,0,254,64,64,120,64,64,64,254,7,12,12, - 9,1,0,4,8,16,0,254,64,64,120,64,64,64,254,7, - 12,12,9,1,0,16,40,68,0,254,64,64,120,64,64,64, - 254,7,11,11,9,1,0,68,68,0,254,64,64,120,64,64, - 64,254,5,12,12,9,2,0,128,64,32,0,248,32,32,32, - 32,32,32,248,5,12,12,9,2,0,8,16,32,0,248,32, - 32,32,32,32,32,248,5,12,12,9,2,0,32,80,136,0, - 248,32,32,32,32,32,32,248,5,11,11,9,2,0,136,136, - 0,248,32,32,32,32,32,32,248,8,10,10,9,0,0,124, - 66,65,65,225,65,65,65,66,124,7,11,11,9,1,0,98, - 156,0,130,194,162,146,146,138,134,130,7,12,12,9,1,0, - 64,32,16,0,124,130,130,130,130,130,130,124,7,12,12,9, - 1,0,4,8,16,0,124,130,130,130,130,130,130,124,7,12, - 12,9,1,0,16,40,68,0,124,130,130,130,130,130,130,124, - 7,11,11,9,1,0,98,156,0,124,130,130,130,130,130,130, - 124,7,11,11,9,1,0,68,68,0,124,130,130,130,130,130, - 130,124,7,7,7,9,1,1,130,68,40,16,40,68,130,7, - 12,12,9,1,255,2,124,134,138,138,146,146,162,162,194,124, - 128,7,12,12,9,1,0,64,32,16,0,130,130,130,130,130, - 130,130,124,7,12,12,9,1,0,4,8,16,0,130,130,130, - 130,130,130,130,124,7,12,12,9,1,0,16,40,68,0,130, - 130,130,130,130,130,130,124,7,11,11,9,1,0,68,68,0, - 130,130,130,130,130,130,130,124,7,12,12,9,1,0,4,8, - 16,0,130,130,68,40,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,4,8,16,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,50,76,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,68,68,0,124,2,2,126,130,134,122,7,11,11, - 9,1,0,24,36,24,0,124,2,2,126,130,134,122,7,7, - 7,9,1,0,108,146,18,124,144,146,110,7,10,10,9,1, - 253,124,130,128,128,128,130,124,24,72,48,7,11,11,9,1, - 0,64,32,16,0,124,130,130,254,128,128,124,7,11,11,9, - 1,0,4,8,16,0,124,130,130,254,128,128,124,7,11,11, - 9,1,0,16,40,68,0,124,130,130,254,128,128,124,7,10, - 10,9,1,0,68,68,0,124,130,130,254,128,128,124,5,11, - 11,9,2,0,128,64,32,0,224,32,32,32,32,32,248,5, - 11,11,9,2,0,16,32,64,0,224,32,32,32,32,32,248, - 6,11,11,9,1,0,32,80,136,0,112,16,16,16,16,16, - 124,5,10,10,9,2,0,144,144,0,224,32,32,32,32,32, - 248,7,11,11,9,1,0,72,48,80,8,124,130,130,130,130, - 130,124,7,10,10,9,1,0,98,156,0,188,194,130,130,130, - 130,130,7,11,11,9,1,0,64,32,16,0,124,130,130,130, - 130,130,124,7,11,11,9,1,0,4,8,16,0,124,130,130, - 130,130,130,124,7,11,11,9,1,0,16,40,68,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,98,156,0,124,130, - 130,130,130,130,124,7,10,10,9,1,0,68,68,0,124,130, - 130,130,130,130,124,7,9,9,9,1,0,16,56,16,0,254, - 0,16,56,16,7,9,9,9,1,255,2,124,138,138,146,162, - 162,124,128,7,11,11,9,1,0,64,32,16,0,132,132,132, - 132,132,132,122,7,11,11,9,1,0,4,8,16,0,132,132, - 132,132,132,132,122,7,11,11,9,1,0,16,40,68,0,132, - 132,132,132,132,132,122,7,10,10,9,1,0,72,72,0,132, - 132,132,132,132,132,122,6,14,14,9,1,253,8,16,32,0, - 132,132,132,132,132,140,116,4,132,120,7,12,12,9,1,253, - 128,128,128,188,194,130,130,194,188,128,128,128,6,13,13,9, - 1,253,72,72,0,132,132,132,132,132,140,116,4,132,120}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--15-140-75-75-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=12 dx= 9 dy= 0 ascent=12 len=13 - Font Bounding box w= 9 h=15 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x15r[1427] U8G_FONT_SECTION("u8g_font_9x15r") = { - 0,9,15,0,253,10,1,232,3,216,32,127,253,12,253,11, - 253,0,0,0,9,0,12,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,9,3,7,144,144, - 144,6,8,8,9,1,1,72,72,252,72,72,252,72,72,7, - 11,11,9,1,255,16,124,146,144,80,56,20,18,146,124,16, - 7,10,10,9,1,0,66,164,164,72,16,16,36,74,74,132, - 7,10,10,9,1,0,96,144,144,144,96,98,148,136,148,98, - 1,3,3,9,4,7,128,128,128,3,12,12,9,3,255,32, - 64,64,128,128,128,128,128,128,64,64,32,3,12,12,9,3, - 255,128,64,64,32,32,32,32,32,32,64,64,128,7,7,7, - 9,1,3,16,146,84,56,84,146,16,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,5,5,9,4,253,192,192,64, - 64,128,7,1,1,9,1,4,254,2,2,2,9,4,0,192, - 192,7,10,10,9,1,0,2,4,4,8,16,16,32,64,64, - 128,7,10,10,9,1,0,56,68,130,130,130,130,130,130,68, - 56,7,10,10,9,1,0,16,48,80,144,16,16,16,16,16, - 254,7,10,10,9,1,0,124,130,130,4,8,16,32,64,128, - 254,7,10,10,9,1,0,254,2,4,8,28,2,2,2,130, - 124,7,10,10,9,1,0,4,12,20,36,68,132,254,4,4, - 4,7,10,10,9,1,0,254,128,128,188,194,2,2,2,130, - 124,7,10,10,9,1,0,60,64,128,128,188,194,130,130,130, - 124,7,10,10,9,1,0,254,2,4,4,8,8,16,16,32, - 32,7,10,10,9,1,0,56,68,130,68,56,68,130,130,68, - 56,7,10,10,9,1,0,124,130,130,130,134,122,2,2,4, - 120,2,7,7,9,4,0,192,192,0,0,0,192,192,2,10, - 10,9,4,253,192,192,0,0,0,192,192,64,64,128,5,10, - 10,9,2,0,8,16,32,64,128,128,64,32,16,8,7,4, - 4,9,1,2,254,0,0,254,5,10,10,9,2,0,128,64, - 32,16,8,8,16,32,64,128,7,10,10,9,1,0,124,130, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,124,130, - 130,158,162,166,154,128,128,124,7,10,10,9,1,0,16,40, - 68,130,130,130,254,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,124,130, - 128,128,128,128,128,128,130,124,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,124,130, - 128,128,128,142,130,130,130,124,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,8,10,10,9,1,0,31,4, - 4,4,4,4,4,4,132,120,7,10,10,9,1,0,130,132, - 136,144,224,160,144,136,132,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,170,146,146,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,252,130, - 130,130,252,128,128,128,128,128,7,12,12,9,1,254,124,130, - 130,130,130,130,130,162,146,124,8,6,7,10,10,9,1,0, - 252,130,130,130,252,144,136,132,130,130,7,10,10,9,1,0, - 124,130,130,128,112,12,2,130,130,124,7,10,10,9,1,0, - 254,16,16,16,16,16,16,16,16,16,7,10,10,9,1,0, - 130,130,130,130,130,130,130,130,130,124,7,10,10,9,1,0, - 130,130,130,68,68,68,40,40,40,16,7,10,10,9,1,0, - 130,130,130,130,146,146,146,146,170,68,7,10,10,9,1,0, - 130,130,68,40,16,16,40,68,130,130,7,10,10,9,1,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 254,2,4,8,16,32,64,128,128,254,4,12,12,9,3,255, - 240,128,128,128,128,128,128,128,128,128,128,240,7,10,10,9, - 1,0,128,64,64,32,16,16,8,4,4,2,4,12,12,9, - 2,255,240,16,16,16,16,16,16,16,16,16,16,240,7,4, - 4,9,1,6,16,40,68,130,8,1,1,9,0,255,255,3, - 3,3,9,3,8,128,64,32,7,7,7,9,1,0,124,2, - 2,126,130,134,122,7,10,10,9,1,0,128,128,128,188,194, - 130,130,130,194,188,7,7,7,9,1,0,124,130,128,128,128, - 130,124,7,10,10,9,1,0,2,2,2,122,134,130,130,130, - 134,122,7,7,7,9,1,0,124,130,130,254,128,128,124,7, - 10,10,9,1,0,28,34,34,32,32,248,32,32,32,32,7, - 10,10,9,1,253,122,132,132,132,120,128,124,130,130,124,7, - 10,10,9,1,0,128,128,128,188,194,130,130,130,130,130,5, - 10,10,9,2,0,96,0,0,224,32,32,32,32,32,248,6, - 13,13,9,1,253,12,0,0,28,4,4,4,4,4,132,132, - 132,120,7,10,10,9,1,0,128,128,128,130,140,176,192,176, - 140,130,5,10,10,9,2,0,224,32,32,32,32,32,32,32, - 32,248,7,7,7,9,1,0,236,146,146,146,146,146,130,7, - 7,7,9,1,0,188,194,130,130,130,130,130,7,7,7,9, - 1,0,124,130,130,130,130,130,124,7,10,10,9,1,253,188, - 194,130,130,130,194,188,128,128,128,7,10,10,9,1,253,122, - 134,130,130,130,134,122,2,2,2,7,7,7,9,1,0,156, - 98,66,64,64,64,64,7,7,7,9,1,0,124,130,128,124, - 2,130,124,7,9,9,9,1,0,32,32,252,32,32,32,32, - 34,28,7,7,7,9,1,0,132,132,132,132,132,132,122,7, - 7,7,9,1,0,130,130,68,68,40,40,16,7,7,7,9, - 1,0,130,130,146,146,146,170,68,7,7,7,9,1,0,130, - 68,40,16,40,68,130,6,10,10,9,1,253,132,132,132,132, - 132,140,116,4,132,120,7,7,7,9,1,0,254,4,8,16, - 32,64,254,5,12,12,9,3,255,56,64,64,64,32,192,192, - 32,64,64,64,56,1,12,12,9,4,255,128,128,128,128,128, - 128,128,128,128,128,128,128,5,12,12,9,1,255,224,16,16, - 16,32,24,24,32,16,16,16,224,7,3,3,9,1,7,98, - 146,140,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 4, '1' Height: 10 - Calculated Max Values w= 9 h=18 x= 8 y=12 dx= 9 dy= 0 ascent=14 len=36 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 4 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_67_75[3936] U8G_FONT_SECTION("u8g_font_9x18_67_75") = { - 0,9,18,0,252,4,1,255,4,34,32,255,0,14,252,10, - 0,8,7,7,9,0,1,72,36,18,255,18,36,72,7,10, - 10,9,1,0,16,16,16,146,84,56,146,84,56,16,7,7, - 7,9,1,1,16,34,68,248,68,34,16,7,7,7,9,1, - 1,16,136,68,62,68,136,16,7,7,7,9,1,1,16,34, - 66,254,66,34,16,7,10,10,9,1,0,16,56,84,146,16, - 16,16,16,16,124,7,7,7,9,1,1,16,136,132,254,132, - 136,16,7,10,10,9,1,0,124,16,16,16,16,16,146,84, - 56,16,7,10,10,9,1,0,16,56,84,146,16,146,84,56, - 16,254,8,7,7,9,0,1,16,34,65,254,64,32,16,8, - 7,7,9,0,1,8,68,130,127,2,4,8,8,7,7,9, - 0,1,16,34,69,254,68,36,16,8,7,7,9,0,1,8, - 68,162,127,34,36,8,9,5,10,9,0,2,34,0,73,0, - 247,128,65,0,34,0,9,5,10,9,0,2,34,0,73,0, - 255,128,73,0,34,0,5,10,10,9,2,0,32,64,72,184, - 200,16,16,160,120,32,6,10,10,9,1,0,32,64,252,68, - 36,4,4,4,4,4,7,10,10,9,1,0,8,4,254,132, - 136,128,128,128,128,128,6,10,10,9,1,0,4,4,4,4, - 4,36,68,252,64,32,7,10,10,9,1,0,128,128,128,128, - 128,136,132,254,4,8,7,8,8,9,1,0,248,8,8,8, - 8,42,28,8,7,8,8,9,1,1,2,2,2,34,66,254, - 64,32,9,7,14,9,0,2,14,0,17,0,32,128,32,128, - 168,128,112,0,32,0,9,7,14,9,0,2,56,0,68,0, - 130,0,130,0,138,128,7,0,2,0,7,10,10,9,1,0, - 254,64,112,96,80,8,8,4,2,2,7,9,9,9,1,0, - 144,160,254,160,146,10,254,10,18,9,7,14,9,0,1,50, - 0,71,0,138,128,130,0,130,0,68,0,56,0,9,7,14, - 9,0,1,38,0,113,0,168,128,32,128,32,128,17,0,14, - 0,7,4,4,9,1,3,16,32,64,254,7,4,4,9,1, - 0,254,64,32,16,4,10,10,9,4,0,128,192,160,144,128, - 128,128,128,128,128,4,10,10,9,1,0,16,48,80,144,16, - 16,16,16,16,16,7,4,4,9,1,3,16,8,4,254,7, - 4,4,9,1,0,254,4,8,16,4,10,10,9,4,0,128, - 128,128,128,128,128,144,160,192,128,4,10,10,9,1,0,16, - 16,16,16,16,16,144,80,48,16,7,9,9,9,1,0,8, - 4,254,4,40,64,254,64,32,9,10,20,9,0,0,34,0, - 114,0,170,0,34,0,34,0,34,0,34,0,42,128,39,0, - 34,0,7,9,9,9,1,0,32,64,254,64,40,4,254,4, - 8,7,10,10,9,1,0,32,64,254,64,32,32,64,254,64, - 32,9,10,20,9,0,0,34,0,119,0,170,128,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,7,10,10,9,1, - 0,8,4,254,4,8,8,4,254,4,8,9,10,20,9,0, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,170, - 128,119,0,34,0,7,7,7,9,1,1,32,64,254,0,254, - 4,8,7,7,7,9,1,1,8,4,254,0,254,64,32,9, - 7,14,9,0,1,16,0,33,0,127,128,130,0,127,128,36, - 0,16,0,9,7,14,9,0,1,20,0,34,0,127,0,136, - 128,127,0,34,0,20,0,9,7,14,9,0,1,4,0,18, - 0,255,0,32,128,255,0,66,0,4,0,9,7,14,9,0, - 1,16,0,32,0,127,128,128,0,127,128,32,0,16,0,7, - 10,10,9,1,0,16,40,108,170,40,40,40,40,40,40,9, - 7,14,9,0,1,4,0,2,0,255,0,0,128,255,0,2, - 0,4,0,7,10,10,9,1,0,40,40,40,40,40,40,170, - 108,40,16,9,7,14,9,0,1,20,0,34,0,127,0,128, - 128,127,0,34,0,20,0,7,10,10,9,1,0,16,40,108, - 170,40,40,170,108,40,16,7,7,7,9,1,1,252,144,136, - 196,162,144,8,7,7,7,9,1,1,126,18,34,70,138,18, - 32,7,7,7,9,1,1,32,18,138,70,34,18,126,7,7, - 7,9,1,1,8,144,162,196,136,144,252,9,9,18,9,0, - 0,8,0,16,0,63,128,64,0,255,128,64,0,63,128,16, - 0,8,0,9,9,18,9,0,0,8,0,4,0,254,0,1, - 0,255,128,1,0,254,0,4,0,8,0,8,7,7,9,0, - 1,16,32,72,245,66,32,16,8,7,7,9,0,1,8,4, - 18,175,66,4,8,7,10,10,9,1,0,16,56,84,146,16, - 124,16,124,16,16,7,10,10,9,1,0,16,16,124,16,124, - 16,146,84,56,16,7,7,7,9,1,1,16,32,64,182,64, - 32,16,7,10,10,9,1,0,16,40,84,146,0,16,16,0, - 16,16,7,7,7,9,1,1,16,8,4,218,4,8,16,7, - 10,10,9,1,0,16,16,0,16,16,0,146,84,40,16,7, - 5,5,9,1,2,144,160,254,160,144,7,5,5,9,1,2, - 18,10,254,10,18,9,7,14,9,0,1,16,0,48,0,95, - 128,128,128,95,128,48,0,16,0,7,10,10,9,1,0,16, - 40,68,238,40,40,40,40,40,56,9,7,14,9,0,1,4, - 0,6,0,253,0,128,128,253,0,6,0,4,0,7,10,10, - 9,1,0,56,40,40,40,40,40,238,68,40,16,7,11,11, - 9,1,0,16,40,68,238,40,40,56,0,56,40,56,7,11, - 11,9,1,255,16,40,68,238,40,40,40,40,108,68,124,7, - 11,11,9,1,255,16,40,68,254,40,40,40,40,108,68,124, - 7,11,11,9,1,255,16,40,68,254,56,56,56,56,124,68, - 124,7,10,10,9,1,0,16,40,68,238,68,238,40,40,40, - 56,7,11,11,9,1,255,16,40,68,238,68,238,40,40,108, - 68,124,9,7,14,9,0,1,132,0,134,0,253,0,128,128, - 253,0,134,0,132,0,7,7,7,9,1,0,252,128,184,176, - 168,132,2,7,7,7,9,1,0,128,66,42,26,58,2,126, - 7,11,11,9,1,255,16,40,68,238,40,40,40,238,68,40, - 16,9,7,14,9,0,1,4,0,50,0,73,0,255,128,73, - 0,50,0,4,0,9,10,20,9,0,0,34,0,39,0,42, - 128,34,0,34,0,34,0,34,0,170,0,114,0,34,0,7, - 13,13,9,1,254,8,4,254,4,8,4,254,4,8,4,254, - 4,8,8,5,5,9,0,2,36,68,255,68,36,8,5,5, - 9,0,2,36,34,255,34,36,9,5,10,9,0,2,42,0, - 73,0,255,128,73,0,42,0,8,5,5,9,0,2,42,74, - 255,74,42,8,5,5,9,0,2,84,82,255,82,84,9,5, - 10,9,0,2,85,0,148,128,255,128,148,128,85,0,7,7, - 7,9,1,1,16,48,80,158,80,48,16,7,7,7,9,1, - 1,16,24,20,242,20,24,16,8,5,5,9,0,2,36,102, - 189,102,36,9,9,18,9,0,5,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,2,4,9,0, - 252,255,128,255,128,9,4,8,9,0,252,255,128,255,128,255, - 128,255,128,9,7,14,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,9,9,18,9,0,252,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,9, - 11,22,9,0,252,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,9,14,28,9,0, - 252,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,9,16,32, - 9,0,252,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,9,18,36,9,0,252,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,255,128,255,128,255,128,255,128,255,128,8,18,18, - 9,0,252,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,7,18,18,9,0,252,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,254,254,254,254,6,18,18, - 9,0,252,252,252,252,252,252,252,252,252,252,252,252,252,252, - 252,252,252,252,252,5,18,18,9,0,252,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,3,18,18, - 9,0,252,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,2,18,18,9,0,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,1,18,18, - 9,0,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,18,18,9,5,252,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,9,17,34, - 9,0,253,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,0,0,170,128,0,0,85,0,0,0,170, - 128,0,0,85,0,9,18,36,9,0,252,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,170, - 128,85,0,170,128,85,0,170,128,85,0,170,128,85,0,9, - 18,36,9,0,252,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,255,128,85,0,255,128,170, - 128,255,128,85,0,255,128,170,128,9,2,4,9,0,12,255, - 128,255,128,1,18,18,9,8,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,9,9,9,0, - 252,248,248,248,248,248,248,248,248,248,4,9,9,9,5,252, - 240,240,240,240,240,240,240,240,240,5,9,9,9,0,5,248, - 248,248,248,248,248,248,248,248,9,18,36,9,0,252,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,9,18,36,9,0,252,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,9,18,36,9,0,252,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 4,9,9,9,5,5,240,240,240,240,240,240,240,240,240,9, - 18,36,9,0,252,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,9,18,36,9,0,252,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,255,128,255,128,255,128,255,128,255,128,255,128,255,128,255, - 128,255,128,7,7,7,9,1,1,254,254,254,254,254,254,254, - 7,7,7,9,1,1,254,130,130,130,130,130,254,7,7,7, - 9,1,1,124,130,130,130,130,130,124,7,7,7,9,1,1, - 254,130,186,186,186,130,254,7,7,7,9,1,1,254,130,254, - 130,254,130,254,7,7,7,9,1,1,254,170,170,170,170,170, - 254,7,7,7,9,1,1,254,170,254,170,254,170,254,7,7, - 7,9,1,1,254,146,138,198,162,146,254,7,7,7,9,1, - 1,254,146,162,198,138,146,254,7,7,7,9,1,1,254,214, - 138,214,162,214,254,3,3,3,9,3,3,224,224,224,3,3, - 3,9,3,3,224,160,224,9,5,10,9,0,2,255,128,255, - 128,255,128,255,128,255,128,9,5,10,9,0,2,255,128,128, - 128,128,128,128,128,255,128,5,9,9,9,2,0,248,248,248, - 248,248,248,248,248,248,5,9,9,9,2,0,248,136,136,136, - 136,136,136,136,248,9,5,10,9,0,2,127,128,127,128,255, - 128,255,0,255,0,9,5,10,9,0,2,127,128,64,128,128, - 128,129,0,255,0,9,10,20,9,0,0,8,0,8,0,28, - 0,28,0,62,0,62,0,127,0,127,0,255,128,255,128,9, - 10,20,9,0,0,8,0,8,0,20,0,20,0,34,0,34, - 0,65,0,65,0,128,128,255,128,7,7,7,9,1,1,16, - 16,56,56,124,124,254,7,7,7,9,1,1,16,16,40,40, - 68,68,254,9,9,18,9,0,0,192,0,240,0,252,0,255, - 0,255,128,255,0,252,0,240,0,192,0,9,9,18,9,0, - 0,192,0,176,0,140,0,131,0,128,128,131,0,140,0,176, - 0,192,0,7,7,7,9,1,1,128,224,248,254,248,224,128, - 7,7,7,9,1,1,128,224,152,134,152,224,128,9,5,10, - 9,0,2,224,0,252,0,255,128,252,0,224,0,9,5,10, - 9,0,2,224,0,156,0,131,128,156,0,224,0,9,10,20, - 9,0,0,255,128,255,128,127,0,127,0,62,0,62,0,28, - 0,28,0,8,0,8,0,9,10,20,9,0,0,255,128,128, - 128,65,0,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,7,7,9,1,1,254,124,124,56,56,16,16,7,7, - 7,9,1,1,254,68,68,40,40,16,16,9,9,18,9,0, - 0,1,128,7,128,31,128,127,128,255,128,127,128,31,128,7, - 128,1,128,9,9,18,9,0,0,1,128,6,128,24,128,96, - 128,128,128,96,128,24,128,6,128,1,128,7,7,7,9,1, - 1,2,14,62,254,62,14,2,7,7,7,9,1,1,2,14, - 50,194,50,14,2,9,5,10,9,0,2,3,128,31,128,255, - 128,31,128,3,128,9,5,10,9,0,2,3,128,28,128,224, - 128,28,128,3,128,9,9,18,9,0,0,8,0,28,0,62, - 0,127,0,255,128,127,0,62,0,28,0,8,0,9,9,18, - 9,0,0,8,0,20,0,34,0,65,0,128,128,65,0,34, - 0,20,0,8,0,9,9,18,9,0,0,8,0,20,0,34, - 0,73,0,156,128,73,0,34,0,20,0,8,0,7,7,7, - 9,1,1,56,68,146,186,146,68,56,5,9,9,9,2,0, - 32,32,80,80,136,80,80,32,32,7,7,7,9,1,1,56, - 68,130,130,130,68,56,7,7,7,9,1,1,16,68,0,130, - 0,68,16,7,7,7,9,1,1,56,108,170,170,170,108,56, - 7,7,7,9,1,1,56,68,146,170,146,68,56,7,7,7, - 9,1,1,56,124,254,254,254,124,56,7,7,7,9,1,1, - 56,116,242,242,242,116,56,7,7,7,9,1,1,56,92,158, - 158,158,92,56,7,7,7,9,1,1,56,68,130,254,254,124, - 56,7,7,7,9,1,1,56,124,254,254,130,68,56,7,7, - 7,9,1,1,56,92,158,158,130,68,56,7,7,7,9,1, - 1,56,92,158,254,254,124,56,4,7,7,9,1,1,48,112, - 240,240,240,112,48,4,7,7,9,4,1,192,224,240,240,240, - 224,192,9,18,36,9,0,252,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,227,128,193,128,193,128,193,128,227,128, - 255,128,255,128,255,128,255,128,255,128,255,128,9,18,36,9, - 0,252,255,128,255,128,255,128,255,128,255,128,255,128,227,128, - 221,128,190,128,190,128,190,128,221,128,227,128,255,128,255,128, - 255,128,255,128,255,128,9,10,20,9,0,4,255,128,255,128, - 255,128,255,128,255,128,255,128,227,128,221,128,190,128,190,128, - 9,9,18,9,0,252,190,128,190,128,221,128,227,128,255,128, - 255,128,255,128,255,128,255,128,4,4,4,9,1,4,48,64, - 128,128,4,4,4,9,4,4,192,32,16,16,4,4,4,9, - 4,1,16,16,32,192,4,4,4,9,1,1,128,128,64,48, - 7,4,4,9,1,4,56,68,130,130,7,4,4,9,1,1, - 130,130,68,56,7,7,7,9,1,1,2,6,14,30,62,126, - 254,7,7,7,9,1,1,128,192,224,240,248,252,254,7,7, - 7,9,1,1,254,252,248,240,224,192,128,7,7,7,9,1, - 1,254,126,62,30,14,6,2,5,5,5,9,2,2,112,136, - 136,136,112,7,7,7,9,1,1,254,242,242,242,242,242,254, - 7,7,7,9,1,1,254,158,158,158,158,158,254,7,7,7, - 9,1,1,254,254,250,242,226,194,254,7,7,7,9,1,1, - 254,134,142,158,190,254,254,7,7,7,9,1,1,254,146,146, - 146,146,146,254,9,10,20,9,0,0,8,0,8,0,20,0, - 20,0,34,0,42,0,93,0,73,0,128,128,255,128,9,10, - 20,9,0,0,8,0,8,0,28,0,28,0,58,0,58,0, - 121,0,121,0,248,128,255,128,9,10,20,9,0,0,8,0, - 8,0,28,0,28,0,46,0,46,0,79,0,79,0,143,128, - 255,128,9,9,18,9,0,0,62,0,65,0,128,128,128,128, - 128,128,128,128,128,128,65,0,62,0,7,7,7,9,1,1, - 254,146,146,242,130,130,254,7,7,7,9,1,1,254,130,130, - 242,146,146,254,7,7,7,9,1,1,254,130,130,158,146,146, - 254,7,7,7,9,1,1,254,146,146,158,130,130,254,7,7, - 7,9,1,1,124,146,146,242,130,130,124,7,7,7,9,1, - 1,124,130,130,242,146,146,124,7,7,7,9,1,1,124,130, - 130,158,146,146,124,7,7,7,9,1,1,124,146,146,158,130, - 130,124,6,6,6,9,1,1,252,136,144,160,192,128,6,6, - 6,9,1,1,252,68,36,20,12,4,6,6,6,9,1,1, - 128,192,160,144,136,252,6,6,6,9,1,1,252,132,132,132, - 132,252,6,6,6,9,1,1,252,252,252,252,252,252,5,5, - 5,9,2,1,248,136,136,136,248,5,5,5,9,2,1,248, - 248,248,248,248,6,6,6,9,1,1,4,12,20,36,68,252 - }; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 9, '1' Height: 5 - Calculated Max Values w= 9 h=10 x= 3 y= 3 dx= 9 dy= 0 ascent=10 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_75r[792] U8G_FONT_SECTION("u8g_font_9x18_75r") = { - 0,9,18,0,252,9,2,33,0,0,32,79,0,10,0,9, - 0,7,7,7,9,1,1,254,254,254,254,254,254,254,7,7, - 7,9,1,1,254,130,130,130,130,130,254,7,7,7,9,1, - 1,124,130,130,130,130,130,124,7,7,7,9,1,1,254,130, - 186,186,186,130,254,7,7,7,9,1,1,254,130,254,130,254, - 130,254,7,7,7,9,1,1,254,170,170,170,170,170,254,7, - 7,7,9,1,1,254,170,254,170,254,170,254,7,7,7,9, - 1,1,254,146,138,198,162,146,254,7,7,7,9,1,1,254, - 146,162,198,138,146,254,7,7,7,9,1,1,254,214,138,214, - 162,214,254,3,3,3,9,3,3,224,224,224,3,3,3,9, - 3,3,224,160,224,9,5,10,9,0,2,255,128,255,128,255, - 128,255,128,255,128,9,5,10,9,0,2,255,128,128,128,128, - 128,128,128,255,128,5,9,9,9,2,0,248,248,248,248,248, - 248,248,248,248,5,9,9,9,2,0,248,136,136,136,136,136, - 136,136,248,9,5,10,9,0,2,127,128,127,128,255,128,255, - 0,255,0,9,5,10,9,0,2,127,128,64,128,128,128,129, - 0,255,0,9,10,20,9,0,0,8,0,8,0,28,0,28, - 0,62,0,62,0,127,0,127,0,255,128,255,128,9,10,20, - 9,0,0,8,0,8,0,20,0,20,0,34,0,34,0,65, - 0,65,0,128,128,255,128,7,7,7,9,1,1,16,16,56, - 56,124,124,254,7,7,7,9,1,1,16,16,40,40,68,68, - 254,9,9,18,9,0,0,192,0,240,0,252,0,255,0,255, - 128,255,0,252,0,240,0,192,0,9,9,18,9,0,0,192, - 0,176,0,140,0,131,0,128,128,131,0,140,0,176,0,192, - 0,7,7,7,9,1,1,128,224,248,254,248,224,128,7,7, - 7,9,1,1,128,224,152,134,152,224,128,9,5,10,9,0, - 2,224,0,252,0,255,128,252,0,224,0,9,5,10,9,0, - 2,224,0,156,0,131,128,156,0,224,0,9,10,20,9,0, - 0,255,128,255,128,127,0,127,0,62,0,62,0,28,0,28, - 0,8,0,8,0,9,10,20,9,0,0,255,128,128,128,65, - 0,65,0,34,0,34,0,20,0,20,0,8,0,8,0,7, - 7,7,9,1,1,254,124,124,56,56,16,16,7,7,7,9, - 1,1,254,68,68,40,40,16,16,9,9,18,9,0,0,1, - 128,7,128,31,128,127,128,255,128,127,128,31,128,7,128,1, - 128,9,9,18,9,0,0,1,128,6,128,24,128,96,128,128, - 128,96,128,24,128,6,128,1,128,7,7,7,9,1,1,2, - 14,62,254,62,14,2,7,7,7,9,1,1,2,14,50,194, - 50,14,2,9,5,10,9,0,2,3,128,31,128,255,128,31, - 128,3,128,9,5,10,9,0,2,3,128,28,128,224,128,28, - 128,3,128,9,9,18,9,0,0,8,0,28,0,62,0,127, - 0,255,128,127,0,62,0,28,0,8,0,9,9,18,9,0, - 0,8,0,20,0,34,0,65,0,128,128,65,0,34,0,20, - 0,8,0,9,9,18,9,0,0,8,0,20,0,34,0,73, - 0,156,128,73,0,34,0,20,0,8,0,7,7,7,9,1, - 1,56,68,146,186,146,68,56,5,9,9,9,2,0,32,32, - 80,80,136,80,80,32,32,7,7,7,9,1,1,56,68,130, - 130,130,68,56,7,7,7,9,1,1,16,68,0,130,0,68, - 16,7,7,7,9,1,1,56,108,170,170,170,108,56,7,7, - 7,9,1,1,56,68,146,170,146,68,56,7,7,7,9,1, - 1,56,124,254,254,254,124,56}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 9 h=12 x= 4 y= 5 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =12 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18_78_79[3336] U8G_FONT_SECTION("u8g_font_9x18_78_79") = { - 0,9,18,0,252,9,2,231,4,175,32,255,0,12,255,11, - 0,9,9,18,9,0,0,62,0,28,0,136,128,201,128,247, - 128,201,128,136,128,28,0,62,0,9,9,18,9,0,0,8, - 0,20,0,255,128,162,128,65,0,162,128,255,128,20,0,8, - 0,9,9,18,9,0,0,8,0,28,0,8,0,73,0,255, - 128,73,0,8,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,28,0,28,0,107,0,255, - 128,107,0,28,0,28,0,8,0,9,9,18,9,0,0,8, - 0,28,0,28,0,107,0,255,128,107,0,28,0,28,0,8, - 0,9,9,18,9,0,0,8,0,8,0,28,0,62,0,255, - 128,62,0,28,0,8,0,8,0,9,9,18,9,0,0,8, - 0,20,0,20,0,99,0,128,128,99,0,20,0,20,0,8, - 0,255,9,9,18,9,0,0,8,0,8,0,20,0,247,128, - 65,0,34,0,73,0,85,0,99,0,9,10,20,9,0,0, - 127,0,247,128,247,128,227,128,0,0,128,128,193,128,201,128, - 156,128,127,0,9,9,18,9,0,0,8,0,8,0,28,0, - 227,128,99,0,34,0,62,0,119,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 235,128,93,0,42,0,34,0,127,0,65,0,9,9,18,9, - 0,0,8,0,8,0,20,0,235,128,93,0,42,0,34,0, - 127,0,65,0,9,9,18,9,0,0,8,0,8,0,20,0, - 247,128,73,0,54,0,42,0,127,0,65,0,8,7,7,9, - 0,2,24,24,44,199,46,60,102,8,9,9,9,0,0,24, - 219,255,126,24,126,255,219,24,8,9,9,9,0,0,24,219, - 255,102,36,102,255,219,24,9,9,18,9,0,0,8,0,73, - 0,42,0,28,0,255,128,28,0,42,0,73,0,8,0,9, - 9,18,9,0,0,8,0,73,0,62,0,62,0,255,128,62, - 0,62,0,73,0,8,0,9,9,18,9,0,0,8,0,73, - 0,54,0,62,0,213,128,62,0,54,0,73,0,8,0,9, - 9,18,9,0,0,8,0,136,128,107,0,62,0,28,0,62, - 0,107,0,136,128,8,0,9,9,18,9,0,0,34,0,20, - 0,148,128,127,0,28,0,127,0,148,128,20,0,34,0,9, - 9,18,9,0,0,34,0,54,0,255,128,127,0,62,0,127, - 0,255,128,54,0,34,0,9,9,18,9,0,0,42,0,42, - 0,221,128,62,0,255,128,62,0,221,128,42,0,42,0,9, - 9,18,9,0,0,42,0,42,0,221,128,42,0,255,128,42, - 0,221,128,42,0,42,0,9,11,22,9,0,0,28,0,28, - 0,201,128,201,128,34,0,8,0,34,0,201,128,201,128,28, - 0,28,0,9,11,22,9,0,0,28,0,28,0,201,128,201, - 128,62,0,20,0,62,0,201,128,201,128,28,0,28,0,9, - 11,22,9,0,0,28,0,28,0,201,128,201,128,62,0,28, - 0,62,0,201,128,201,128,28,0,28,0,9,11,22,9,0, - 0,28,0,20,0,201,128,201,128,62,0,20,0,127,0,170, - 128,201,128,28,0,28,0,8,9,9,9,0,0,24,24,219, - 255,36,36,126,231,66,255,255,255,8,9,9,9,0,0,24, - 203,189,110,24,118,189,211,24,9,12,24,9,0,0,8,0, - 42,0,93,0,170,128,107,0,221,128,221,128,107,0,170,128, - 93,0,42,0,8,0,9,12,24,9,0,0,8,0,42,0, - 93,0,170,128,107,0,221,128,221,128,107,0,170,128,93,0, - 42,0,8,0,9,12,24,9,0,0,8,0,42,0,93,0, - 170,128,107,0,221,128,221,128,107,0,170,128,93,0,42,0, - 8,0,9,9,18,9,0,0,8,0,73,0,42,0,20,0, - 235,128,20,0,42,0,73,0,8,0,9,9,18,9,0,0, - 8,0,73,0,42,0,20,0,235,128,20,0,42,0,73,0, - 8,0,8,9,9,9,0,0,24,219,203,60,24,60,211,219, - 24,9,9,18,9,0,0,8,0,73,0,42,0,0,0,235, - 128,0,0,42,0,73,0,8,0,9,9,18,9,0,0,8, - 0,73,0,42,0,28,0,255,128,28,0,42,0,73,0,8, - 0,255,9,8,16,9,0,1,62,0,67,0,129,128,129,128, - 129,128,129,128,67,0,62,0,255,9,9,18,9,0,0,254, - 0,130,0,131,128,131,128,131,128,131,128,255,128,63,128,63, - 128,9,9,18,9,0,0,63,128,63,128,255,128,131,128,131, - 128,131,128,131,128,130,0,254,0,8,8,8,9,0,0,254, - 131,131,131,131,131,255,127,8,8,8,9,0,0,127,255,131, - 131,131,131,131,254,255,255,255,9,9,18,9,0,0,8,0, - 28,0,8,0,65,0,227,128,65,0,8,0,28,0,8,0, - 255,1,10,10,9,4,0,128,128,128,128,128,128,128,128,128, - 128,2,10,10,9,3,0,192,192,192,192,192,192,192,192,192, - 192,3,10,10,9,3,0,224,224,224,224,224,224,224,224,224, - 224,4,6,6,9,3,5,112,128,224,240,240,96,4,6,6, - 9,3,5,96,240,240,112,16,224,9,6,12,9,0,5,115, - 128,132,0,231,0,247,128,247,128,99,0,9,6,12,9,0, - 5,99,0,247,128,247,128,115,128,16,128,231,0,255,255,7, - 10,10,9,1,0,4,126,228,228,228,124,4,100,104,48,5, - 10,10,9,2,0,112,248,248,112,32,32,0,32,112,32,5, - 10,10,9,2,0,80,248,248,112,32,32,0,32,112,32,9, - 9,18,9,0,0,99,0,247,128,255,128,255,128,127,0,62, - 0,28,0,8,0,8,0,9,9,18,9,0,0,112,0,248, - 0,252,0,126,0,63,128,126,0,252,0,248,0,112,0,9, - 12,24,9,0,0,8,0,116,128,149,0,14,0,4,0,107, - 0,247,128,255,128,127,0,62,0,28,0,8,0,9,12,24, - 9,0,0,16,0,41,0,82,0,156,0,32,0,88,0,124, - 0,60,0,254,0,254,128,255,0,126,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,227,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,237,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,152,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,152,128,132,128,132, - 128,136,128,156,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,152,128,132,128,136,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,152,128,168, - 128,188,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,144,128,152,128,132,128,152,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,140,128,144,128,152, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,156,128,132,128,136,128,136,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,136,128,148,128,136, - 128,148,128,136,128,128,128,127,0,9,9,18,9,0,0,127, - 0,128,128,136,128,148,128,140,128,132,128,136,128,128,128,127, - 0,9,9,18,9,0,0,127,0,128,128,164,128,170,128,170, - 128,170,128,164,128,128,128,127,0,9,9,18,9,0,0,127, - 0,247,128,231,128,247,128,247,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,253,128,251, - 128,247,128,239,128,193,128,127,0,9,9,18,9,0,0,127, - 0,227,128,221,128,253,128,243,128,253,128,221,128,227,128,127, - 0,9,9,18,9,0,0,127,0,243,128,235,128,219,128,193, - 128,251,128,251,128,251,128,127,0,9,9,18,9,0,0,127, - 0,193,128,223,128,223,128,195,128,253,128,253,128,195,128,127, - 0,9,9,18,9,0,0,127,0,225,128,223,128,223,128,195, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,193,128,253,128,251,128,251,128,247,128,247,128,247,128,127, - 0,9,9,18,9,0,0,127,0,227,128,221,128,221,128,227, - 128,221,128,221,128,227,128,127,0,9,9,18,9,0,0,127, - 0,225,128,221,128,221,128,225,128,253,128,253,128,227,128,127, - 0,9,9,18,9,0,0,127,0,219,128,213,128,213,128,213, - 128,213,128,213,128,219,128,127,0,7,8,8,9,1,1,48, - 24,12,254,254,12,24,48,255,255,255,7,5,5,9,1,1, - 224,250,62,14,30,8,7,7,9,1,1,8,12,230,255,230, - 12,8,7,5,5,9,1,1,30,14,62,250,224,9,7,14, - 9,0,0,48,0,28,0,31,0,255,128,31,0,28,0,48, - 0,9,9,18,9,0,0,28,0,30,0,15,0,255,128,255, - 128,255,128,15,0,30,0,28,0,9,5,10,9,0,1,2, - 0,3,0,255,128,3,0,2,0,9,7,14,9,0,0,4, - 0,6,0,255,0,255,128,255,0,6,0,4,0,9,5,10, - 9,0,1,2,0,183,0,183,128,183,0,2,0,9,5,10, - 9,0,1,2,0,171,0,171,128,171,0,2,0,9,5,10, - 9,0,1,2,0,255,0,255,128,255,0,2,0,9,8,16, - 9,0,1,128,0,112,0,78,0,33,128,31,128,62,0,112, - 0,128,0,9,8,16,9,0,1,128,0,112,0,62,0,31, - 128,33,128,78,0,112,0,128,0,9,8,16,9,0,1,128, - 0,112,0,62,0,31,128,31,128,62,0,112,0,128,0,9, - 7,14,9,0,0,132,0,134,0,255,0,255,128,127,0,6, - 0,4,0,9,7,14,9,0,0,4,0,6,0,127,0,255, - 128,255,0,134,0,132,0,6,9,9,9,2,0,16,16,248, - 248,252,248,248,16,16,8,9,9,9,0,1,4,4,254,254, - 255,254,254,4,4,9,9,18,9,0,0,24,0,28,0,22, - 0,243,0,129,128,243,0,22,0,28,0,24,0,9,9,18, - 9,0,0,24,0,28,0,26,0,249,0,192,128,249,0,26, - 0,28,0,24,0,9,9,18,9,0,0,0,128,1,128,62, - 128,64,128,129,128,243,0,238,0,60,0,56,0,9,9,18, - 9,0,0,56,0,60,0,238,0,243,0,129,128,64,128,62, - 128,1,128,0,128,8,9,9,9,0,1,16,24,20,242,129, - 243,118,28,24,8,9,9,9,0,1,24,28,118,243,129,242, - 20,24,16,9,7,14,9,0,2,4,0,250,0,129,0,64, - 128,129,128,251,0,6,0,255,9,7,14,9,0,2,6,0, - 251,0,129,128,64,128,129,0,250,0,4,0,9,9,18,9, - 0,1,28,0,127,0,251,128,1,128,0,128,1,128,251,128, - 127,0,28,0,9,5,10,9,0,3,210,0,43,0,127,128, - 43,0,210,0,9,9,18,9,0,0,16,0,56,0,92,0, - 236,0,116,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,7,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,116,0,236,0,92,0, - 56,0,16,0,9,9,18,9,0,0,16,0,24,0,28,0, - 252,0,124,0,60,0,2,128,1,128,3,128,9,5,10,9, - 0,2,242,0,123,0,127,128,123,0,242,0,9,9,18,9, - 0,0,3,128,1,128,2,128,60,0,124,0,252,0,28,0, - 24,0,16,0,9,7,14,9,0,1,3,0,3,0,113,0, - 255,128,113,0,3,0,3,0,9,7,14,9,0,1,2,0, - 115,0,121,0,255,128,121,0,115,0,2,0,9,5,10,9, - 0,2,242,0,123,0,63,128,123,0,242,0,9,7,14,9, - 0,1,226,0,242,0,123,0,63,128,123,0,242,0,226,0, - 9,7,14,9,0,1,20,0,10,0,253,0,0,128,253,0, - 10,0,20,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,8,11,11,9,0,255, - 193,99,99,85,85,73,85,85,99,99,193,8,11,11,9,1, - 255,131,198,198,170,170,146,170,170,198,198,131,9,11,22,9, - 0,255,193,128,99,0,99,0,85,0,85,0,73,0,85,0, - 85,0,99,0,99,0,193,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,5,12,12,9,2,255,248,160,160,160, - 160,160,160,160,160,160,160,248,5,12,12,9,2,255,248,40, - 40,40,40,40,40,40,40,40,40,248,3,10,10,9,3,0, - 32,32,64,64,128,128,64,64,32,32,3,10,10,9,3,0, - 128,128,64,64,32,32,64,64,128,128,6,10,10,9,1,0, - 36,36,72,72,144,144,72,72,36,36,6,10,10,9,2,0, - 144,144,72,72,36,36,72,72,144,144,255,255,255,255,9,11, - 22,9,0,0,8,0,20,0,54,0,85,0,213,128,85,0, - 85,0,85,0,85,0,85,0,85,0,9,11,22,9,0,255, - 85,0,85,0,85,0,85,0,85,0,85,0,213,128,85,0, - 54,0,20,0,8,0,8,8,8,9,0,0,28,34,169,113, - 33,1,34,28,8,8,8,9,0,0,56,68,149,142,132,128, - 68,56,9,5,10,9,0,2,114,0,169,0,255,128,169,0, - 114,0,9,5,10,9,0,2,32,0,64,0,255,128,64,0, - 32,0,9,5,10,9,0,2,2,0,1,0,255,128,1,0, - 2,0,9,5,10,9,0,2,34,0,65,0,255,128,65,0, - 34,0,9,7,14,9,0,1,16,0,32,0,127,128,128,0, - 127,128,32,0,16,0,9,7,14,9,0,1,4,0,2,0, - 255,0,0,128,255,0,2,0,4,0,9,7,14,9,0,1, - 20,0,34,0,127,0,128,128,127,0,34,0,20,0,9,5, - 10,9,0,2,32,128,64,128,255,128,64,128,32,128,9,5, - 10,9,0,2,130,0,129,0,255,128,129,0,130,0,9,7, - 14,9,0,1,16,128,32,128,127,128,128,128,127,128,32,128, - 16,128,9,7,14,9,0,1,132,0,130,0,255,0,128,128, - 255,0,130,0,132,0,9,6,12,9,0,1,2,0,1,0, - 85,128,170,128,1,0,2,0}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18B[3026] U8G_FONT_SECTION("u8g_font_9x18B") = { - 0,9,18,0,252,10,1,242,3,225,32,255,253,14,252,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,9,0,14, - 2,10,10,9,4,0,192,0,192,192,192,192,192,192,192,192, - 7,8,8,9,1,0,4,124,206,208,208,230,124,64,8,10, - 10,9,0,255,30,51,48,48,124,48,48,248,191,224,7,7, - 7,9,1,2,198,254,108,68,108,254,198,8,10,10,9,0, - 0,195,195,102,60,126,24,126,24,24,24,2,11,11,9,3, - 255,192,192,192,192,192,0,192,192,192,192,192,6,11,11,9, - 1,255,120,204,192,120,204,204,204,120,12,204,120,5,2,2, - 9,2,11,216,216,8,11,11,9,0,0,60,126,195,189,165, - 161,165,189,195,126,60,5,7,7,9,1,3,112,24,120,216, - 120,0,248,8,8,8,9,0,1,27,54,108,216,216,108,54, - 27,7,5,5,9,1,2,254,254,6,6,6,6,1,1,9, - 1,4,252,8,11,11,9,0,0,60,126,195,189,165,189,169, - 173,195,126,60,6,2,2,9,1,9,252,252,5,4,4,9, - 1,8,112,216,216,112,6,9,9,9,1,1,48,48,48,252, - 48,48,48,0,252,5,6,6,9,1,4,112,216,24,48,96, - 248,5,6,6,9,1,4,112,216,48,24,216,112,4,3,3, - 9,2,10,48,96,192,7,9,9,9,1,254,198,198,198,198, - 206,222,246,192,192,7,10,10,9,1,0,126,246,246,246,118, - 54,54,54,54,54,3,2,2,9,3,4,224,224,6,3,3, - 9,1,253,24,204,120,4,6,6,9,1,4,96,224,96,96, - 96,240,5,7,7,9,1,3,112,216,216,216,112,0,248,8, - 8,8,9,0,1,216,108,54,27,27,54,108,216,8,11,11, - 9,0,0,96,224,96,96,97,99,247,15,27,31,3,8,11, - 11,9,0,0,96,224,96,96,110,115,243,6,12,24,31,8, - 11,11,9,0,0,112,152,24,48,25,155,119,15,27,31,3, - 7,10,10,9,1,0,24,24,0,24,48,96,192,198,198,124, - 7,14,14,9,1,0,96,48,24,0,16,56,56,56,108,124, - 108,198,198,198,7,14,14,9,1,0,12,24,48,0,16,56, - 56,56,108,124,108,198,198,198,7,14,14,9,1,0,16,56, - 108,0,16,56,56,56,108,124,108,198,198,198,7,13,13,9, - 1,0,118,220,0,16,56,56,56,108,124,108,198,198,198,7, - 13,13,9,1,0,108,108,0,16,56,56,56,108,124,108,198, - 198,198,7,14,14,9,1,0,56,108,108,56,16,56,56,56, - 108,124,108,198,198,198,7,10,10,9,1,0,62,60,108,108, - 110,252,204,204,204,206,7,14,14,9,1,252,60,102,192,192, - 192,192,192,192,102,60,24,12,108,56,7,14,14,9,1,0, - 96,48,24,0,254,192,192,192,248,192,192,192,192,254,7,14, - 14,9,1,0,12,24,48,0,254,192,192,192,248,192,192,192, - 192,254,7,14,14,9,1,0,16,56,108,0,254,192,192,192, - 248,192,192,192,192,254,7,13,13,9,1,0,108,108,0,254, - 192,192,192,248,192,192,192,192,254,6,14,14,9,1,0,96, - 48,24,0,252,48,48,48,48,48,48,48,48,252,6,14,14, - 9,1,0,12,24,48,0,252,48,48,48,48,48,48,48,48, - 252,6,14,14,9,1,0,16,56,108,0,252,48,48,48,48, - 48,48,48,48,252,6,13,13,9,1,0,108,108,0,252,48, - 48,48,48,48,48,48,48,252,8,10,10,9,0,0,124,102, - 99,99,243,99,99,99,102,124,7,13,13,9,1,0,118,220, - 0,198,198,230,246,222,206,198,198,198,198,7,14,14,9,1, - 0,96,48,24,0,124,198,198,198,198,198,198,198,198,124,7, - 14,14,9,1,0,12,24,48,0,124,198,198,198,198,198,198, - 198,198,124,7,14,14,9,1,0,16,56,108,0,124,198,198, - 198,198,198,198,198,198,124,7,13,13,9,1,0,118,220,0, - 124,198,198,198,198,198,198,198,198,124,7,13,13,9,1,0, - 108,108,0,124,198,198,198,198,198,198,198,198,124,8,7,7, - 9,0,1,195,102,60,24,60,102,195,7,12,12,9,1,255, - 6,126,206,206,222,222,246,246,230,230,252,192,7,14,14,9, - 1,0,96,48,24,0,198,198,198,198,198,198,198,198,108,56, - 7,14,14,9,1,0,12,24,48,0,198,198,198,198,198,198, - 198,198,108,56,7,14,14,9,1,0,16,56,108,0,198,198, - 198,198,198,198,198,198,108,56,7,13,13,9,1,0,108,108, - 0,198,198,198,198,198,198,198,198,108,56,8,14,14,9,0, - 0,12,24,48,0,195,195,102,60,24,24,24,24,24,24,7, - 10,10,9,1,0,192,192,252,198,198,198,252,192,192,192,7, - 10,10,9,1,0,60,102,102,102,236,102,102,102,102,108,7, - 11,11,9,1,0,96,48,24,0,124,6,6,126,198,198,126, - 7,11,11,9,1,0,12,24,48,0,124,6,6,126,198,198, - 126,7,11,11,9,1,0,16,56,108,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,118,220,0,124,6,6,126,198, - 198,126,7,10,10,9,1,0,108,108,0,124,6,6,126,198, - 198,126,7,11,11,9,1,0,56,108,56,0,124,6,6,126, - 198,198,126,8,7,7,9,0,0,118,27,27,127,216,219,118, - 7,11,11,9,1,252,124,198,192,192,192,198,124,24,12,108, - 56,7,11,11,9,1,0,96,48,24,0,124,198,198,254,192, - 198,124,7,11,11,9,1,0,12,24,48,0,124,198,198,254, - 192,198,124,7,11,11,9,1,0,16,56,108,0,124,198,198, - 254,192,198,124,7,10,10,9,1,0,108,108,0,124,198,198, - 254,192,198,124,6,11,11,9,1,0,192,96,48,0,240,48, - 48,48,48,48,252,6,11,11,9,1,0,12,24,48,0,240, - 48,48,48,48,48,252,6,11,11,9,1,0,32,112,216,0, - 240,48,48,48,48,48,252,6,10,10,9,1,0,108,108,0, - 240,48,48,48,48,48,252,7,11,11,9,1,0,108,56,56, - 108,12,126,198,198,198,198,124,7,10,10,9,1,0,118,220, - 0,220,230,198,198,198,198,198,7,11,11,9,1,0,96,48, - 24,0,56,108,198,198,198,108,56,7,11,11,9,1,0,12, - 24,48,0,56,108,198,198,198,108,56,7,11,11,9,1,0, - 16,56,108,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,118,220,0,56,108,198,198,198,108,56,7,10,10,9,1, - 0,108,108,0,56,108,198,198,198,108,56,8,7,7,9,0, - 1,24,24,0,255,0,24,24,8,9,9,9,0,255,1,63, - 102,207,219,243,102,252,128,7,11,11,9,1,0,96,48,24, - 0,198,198,198,198,198,198,126,7,11,11,9,1,0,12,24, - 48,0,198,198,198,198,198,198,126,7,11,11,9,1,0,16, - 56,108,0,198,198,198,198,198,198,126,7,10,10,9,1,0, - 108,108,0,198,198,198,198,198,198,126,7,14,14,9,1,253, - 12,24,48,0,198,198,108,108,108,56,56,48,176,96,7,11, - 11,9,1,254,192,192,248,204,198,198,198,204,248,192,192,7, - 13,13,9,1,253,108,108,0,198,198,108,108,108,56,56,48, - 176,96}; -/* - Fontname: -Misc-Fixed-Bold-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y=14 dx= 9 dy= 0 ascent=14 len=20 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18Br[1434] U8G_FONT_SECTION("u8g_font_9x18Br") = { - 0,9,18,0,252,10,1,242,3,225,32,127,253,14,253,11, - 253,0,0,0,9,0,14,2,11,11,9,3,0,192,192,192, - 192,192,192,192,0,0,192,192,5,4,4,9,2,7,216,216, - 216,216,7,10,10,9,1,0,108,108,108,254,108,108,254,108, - 108,108,8,11,11,9,0,255,24,126,219,216,120,60,30,27, - 219,126,24,8,10,10,9,0,0,115,222,222,108,24,24,54, - 123,123,206,8,10,10,9,0,0,112,216,216,216,112,115,222, - 204,222,115,2,4,4,9,3,7,192,192,192,192,4,12,12, - 9,2,255,48,96,96,192,192,192,192,192,192,96,96,48,4, - 12,12,9,2,255,192,96,96,48,48,48,48,48,48,96,96, - 192,8,7,7,9,0,1,24,219,126,60,126,219,24,8,7, - 7,9,0,1,24,24,24,255,24,24,24,3,4,4,9,3, - 254,224,224,96,192,7,1,1,9,1,4,254,3,2,2,9, - 3,0,224,224,8,10,10,9,0,0,3,6,6,12,24,24, - 48,96,96,192,7,10,10,9,1,0,56,108,198,198,198,198, - 198,198,108,56,8,10,10,9,0,0,24,56,120,216,24,24, - 24,24,24,255,7,10,10,9,1,0,56,108,198,6,6,12, - 24,48,96,254,7,10,10,9,1,0,254,6,12,24,56,12, - 6,6,204,120,7,10,10,9,1,0,12,28,60,108,204,204, - 254,12,12,12,7,10,10,9,1,0,254,192,192,192,248,12, - 6,6,204,120,7,10,10,9,1,0,60,96,192,192,248,204, - 198,198,108,56,7,10,10,9,1,0,254,6,12,12,24,24, - 48,48,48,48,7,10,10,9,1,0,56,108,198,108,56,108, - 198,198,108,56,7,10,10,9,1,0,56,108,198,198,110,62, - 6,6,12,120,3,7,7,9,3,0,224,224,0,0,0,224, - 224,3,9,9,9,3,254,224,224,0,0,0,224,224,96,192, - 6,9,9,9,1,0,12,24,48,96,192,96,48,24,12,7, - 4,4,9,1,2,254,0,0,254,6,9,9,9,1,0,192, - 96,48,24,12,24,48,96,192,7,10,10,9,1,0,56,108, - 198,6,12,24,48,48,0,48,9,10,20,9,0,0,62,0, - 99,0,205,128,213,128,213,128,213,128,213,128,207,0,96,0, - 62,0,7,10,10,9,1,0,16,56,56,56,108,124,108,198, - 198,198,7,10,10,9,1,0,252,198,198,198,252,198,198,198, - 198,252,7,10,10,9,1,0,60,102,192,192,192,192,192,192, - 102,60,7,10,10,9,1,0,248,204,198,198,198,198,198,198, - 204,248,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,254,7,10,10,9,1,0,254,192,192,192,248,192,192,192, - 192,192,7,10,10,9,1,0,56,108,198,192,192,206,198,198, - 108,56,7,10,10,9,1,0,198,198,198,198,254,198,198,198, - 198,198,6,10,10,9,1,0,252,48,48,48,48,48,48,48, - 48,252,7,10,10,9,1,0,30,12,12,12,12,12,12,204, - 204,120,7,10,10,9,1,0,198,204,216,240,224,240,216,204, - 198,198,7,10,10,9,1,0,192,192,192,192,192,192,192,192, - 192,254,7,10,10,9,1,0,198,238,254,214,198,198,198,198, - 198,198,7,10,10,9,1,0,198,198,230,246,222,206,198,198, - 198,198,7,10,10,9,1,0,124,198,198,198,198,198,198,198, - 198,124,7,10,10,9,1,0,248,204,198,198,204,248,192,192, - 192,192,8,11,11,9,1,255,56,108,198,198,198,198,198,222, - 108,62,3,7,10,10,9,1,0,252,198,198,198,198,252,216, - 204,198,198,7,10,10,9,1,0,124,198,192,192,124,6,6, - 6,198,124,6,10,10,9,1,0,252,48,48,48,48,48,48, - 48,48,48,7,10,10,9,1,0,198,198,198,198,198,198,198, - 198,108,56,7,10,10,9,1,0,198,198,198,108,108,108,56, - 56,56,16,7,10,10,9,1,0,198,198,198,198,214,214,214, - 254,238,68,7,10,10,9,1,0,198,198,108,56,16,16,56, - 108,198,198,8,10,10,9,0,0,195,195,102,60,24,24,24, - 24,24,24,7,10,10,9,1,0,254,6,6,12,24,48,96, - 192,192,254,5,12,12,9,2,255,248,192,192,192,192,192,192, - 192,192,192,192,248,8,10,10,9,0,0,192,96,96,48,24, - 24,12,6,6,3,4,12,12,9,2,255,240,48,48,48,48, - 48,48,48,48,48,48,240,8,4,4,9,0,6,24,60,102, - 195,8,1,1,9,0,255,255,4,3,3,9,2,10,192,96, - 48,7,7,7,9,1,0,124,6,6,126,198,198,126,7,10, - 10,9,1,0,192,192,192,252,198,198,198,198,198,252,7,7, - 7,9,1,0,124,198,192,192,192,198,124,7,10,10,9,1, - 0,6,6,6,126,198,198,198,198,198,126,7,7,7,9,1, - 0,124,198,198,254,192,198,124,6,10,10,9,1,0,56,108, - 108,96,96,240,96,96,96,96,7,10,10,9,1,253,126,204, - 204,204,120,192,124,198,198,124,7,10,10,9,1,0,192,192, - 192,252,198,198,198,198,198,198,6,10,10,9,1,0,48,48, - 0,240,48,48,48,48,48,252,5,13,13,9,2,253,24,24, - 0,56,24,24,24,24,24,24,216,216,112,7,10,10,9,1, - 0,192,192,192,204,216,240,240,216,204,198,6,10,10,9,1, - 0,240,48,48,48,48,48,48,48,48,252,8,7,7,9,0, - 0,254,219,219,219,219,219,195,7,7,7,9,1,0,220,230, - 198,198,198,198,198,7,7,7,9,1,0,56,108,198,198,198, - 108,56,7,10,10,9,1,253,248,204,198,198,198,204,248,192, - 192,192,7,10,10,9,1,253,62,102,198,198,198,102,62,6, - 6,6,7,7,7,9,1,0,220,118,96,96,96,96,96,7, - 7,7,9,1,0,124,198,192,124,6,198,124,7,9,9,9, - 1,0,48,48,252,48,48,48,48,54,28,7,7,7,9,1, - 0,198,198,198,198,198,198,126,7,7,7,9,1,0,198,198, - 108,108,56,56,16,8,7,7,9,0,0,195,195,219,219,219, - 255,102,7,7,7,9,1,0,198,108,56,16,56,108,198,7, - 10,10,9,1,253,198,198,108,108,108,56,56,48,176,96,6, - 7,7,9,1,0,252,12,24,48,96,192,252,6,11,11,9, - 1,0,60,96,96,96,96,192,96,96,96,96,60,2,12,12, - 9,3,255,192,192,192,192,192,192,192,192,192,192,192,192,6, - 11,11,9,1,0,224,48,48,48,48,28,48,48,48,48,224, - 8,3,3,9,0,7,115,219,206,255}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=14 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=14 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18[3011] U8G_FONT_SECTION("u8g_font_9x18") = { - 0,9,18,0,252,10,1,232,3,215,32,255,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,14,1,11,11,9,4,0,128,128,0,0, - 128,128,128,128,128,128,128,6,8,8,9,1,0,8,120,148, - 144,160,164,120,64,7,10,10,9,1,0,28,34,32,32,248, - 32,32,96,162,92,7,6,6,9,1,3,130,124,68,68,124, - 130,7,10,10,9,1,0,130,130,68,40,124,16,124,16,16, - 16,1,11,11,9,4,255,128,128,128,128,128,0,128,128,128, - 128,128,4,11,11,9,2,255,96,144,128,96,144,144,144,96, - 16,144,96,3,2,2,9,3,11,160,160,8,9,9,9,0, - 1,60,66,153,165,161,165,153,66,60,5,7,7,9,1,3, - 96,144,112,144,120,0,248,7,8,8,9,1,1,18,36,72, - 144,144,72,36,18,6,4,4,9,1,2,252,4,4,4,5, - 1,1,9,2,4,248,8,9,9,9,0,1,60,66,185,165, - 189,169,165,66,60,6,1,1,9,1,9,252,4,4,4,9, - 3,6,96,144,144,96,7,9,9,9,1,1,16,16,16,254, - 16,16,16,0,254,4,6,6,9,1,4,96,144,16,96,128, - 240,4,6,6,9,1,4,96,144,32,16,144,96,3,3,3, - 9,3,10,32,64,128,7,9,9,9,1,254,130,130,130,130, - 130,198,186,128,128,7,10,10,9,1,0,126,138,138,138,122, - 10,10,10,10,10,2,2,2,9,4,4,192,192,4,3,3, - 9,2,253,32,144,96,3,6,6,9,1,4,64,192,64,64, - 64,224,5,6,6,9,1,4,112,136,136,112,0,248,7,8, - 8,9,1,1,144,72,36,18,18,36,72,144,7,10,10,9, - 1,0,64,192,64,64,66,230,10,18,26,6,7,10,10,9, - 1,0,64,192,64,64,76,242,2,12,16,30,7,10,10,9, - 1,0,96,144,32,16,146,102,10,18,26,6,7,10,10,9, - 1,0,16,0,16,16,32,64,128,130,130,124,7,14,14,9, - 1,0,32,16,8,0,16,40,40,40,68,124,68,130,130,130, - 7,14,14,9,1,0,8,16,32,0,16,40,40,40,68,124, - 68,130,130,130,7,14,14,9,1,0,16,40,68,0,16,40, - 40,40,68,124,68,130,130,130,7,13,13,9,1,0,52,88, - 0,16,40,40,40,68,124,68,130,130,130,7,13,13,9,1, - 0,40,40,0,16,40,40,40,68,124,68,130,130,130,7,14, - 14,9,1,0,16,40,40,16,16,40,40,40,68,124,68,130, - 130,130,7,10,10,9,1,0,30,40,40,40,78,120,72,136, - 136,142,7,13,13,9,1,253,60,66,128,128,128,128,128,128, - 66,60,8,36,24,7,14,14,9,1,0,32,16,8,0,254, - 128,128,128,248,128,128,128,128,254,7,14,14,9,1,0,8, - 16,32,0,254,128,128,128,248,128,128,128,128,254,7,14,14, - 9,1,0,16,40,68,0,254,128,128,128,248,128,128,128,128, - 254,7,13,13,9,1,0,40,40,0,254,128,128,128,248,128, - 128,128,128,254,5,14,14,9,2,0,64,32,16,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,9,2,0,16,32, - 64,0,248,32,32,32,32,32,32,32,32,248,5,14,14,9, - 2,0,32,80,136,0,248,32,32,32,32,32,32,32,32,248, - 5,13,13,9,2,0,80,80,0,248,32,32,32,32,32,32, - 32,32,248,7,10,10,9,1,0,120,68,66,66,242,66,66, - 66,68,120,7,13,13,9,1,0,52,88,0,130,130,194,162, - 146,138,134,130,130,130,7,14,14,9,1,0,32,16,8,0, - 124,130,130,130,130,130,130,130,130,124,7,14,14,9,1,0, - 8,16,32,0,124,130,130,130,130,130,130,130,130,124,7,14, - 14,9,1,0,16,40,68,0,124,130,130,130,130,130,130,130, - 130,124,7,13,13,9,1,0,52,88,0,124,130,130,130,130, - 130,130,130,130,124,7,13,13,9,1,0,40,40,0,124,130, - 130,130,130,130,130,130,130,124,7,7,7,9,1,1,130,68, - 40,16,40,68,130,7,12,12,9,1,255,2,124,134,138,138, - 146,146,162,162,194,124,128,7,14,14,9,1,0,32,16,8, - 0,130,130,130,130,130,130,130,130,68,56,7,14,14,9,1, - 0,8,16,32,0,130,130,130,130,130,130,130,130,68,56,7, - 14,14,9,1,0,16,40,68,0,130,130,130,130,130,130,130, - 130,68,56,7,13,13,9,1,0,40,40,0,130,130,130,130, - 130,130,130,130,68,56,7,14,14,9,1,0,8,16,32,0, - 130,130,68,40,16,16,16,16,16,16,7,10,10,9,1,0, - 128,128,252,130,130,130,252,128,128,128,6,10,10,9,1,0, - 56,68,68,72,208,72,68,68,68,88,7,11,11,9,1,0, - 32,16,8,0,124,2,2,126,130,134,122,7,11,11,9,1, - 0,8,16,32,0,124,2,2,126,130,134,122,7,11,11,9, - 1,0,16,40,68,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,52,88,0,124,2,2,126,130,134,122,7,10,10, - 9,1,0,40,40,0,124,2,2,126,130,134,122,7,12,12, - 9,1,0,16,40,40,16,0,124,2,2,126,130,134,122,7, - 7,7,9,1,0,108,18,18,126,144,146,108,7,10,10,9, - 1,253,124,130,128,128,128,130,124,16,72,48,7,11,11,9, - 1,0,32,16,8,0,124,130,130,254,128,130,124,7,11,11, - 9,1,0,8,16,32,0,124,130,130,254,128,130,124,7,11, - 11,9,1,0,16,40,68,0,124,130,130,254,128,130,124,7, - 10,10,9,1,0,40,40,0,124,130,130,254,128,130,124,5, - 12,12,9,2,0,128,64,32,0,0,224,32,32,32,32,32, - 248,5,12,12,9,2,0,16,32,64,0,0,224,32,32,32, - 32,32,248,5,12,12,9,2,0,32,80,136,0,0,224,32, - 32,32,32,32,248,5,11,11,9,2,0,80,80,0,0,224, - 32,32,32,32,32,248,7,11,11,9,1,0,72,48,80,8, - 60,68,130,130,130,68,56,7,10,10,9,1,0,52,88,0, - 188,194,130,130,130,130,130,7,11,11,9,1,0,32,16,8, - 0,124,130,130,130,130,130,124,7,11,11,9,1,0,8,16, - 32,0,124,130,130,130,130,130,124,7,11,11,9,1,0,16, - 40,68,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 52,88,0,124,130,130,130,130,130,124,7,10,10,9,1,0, - 40,40,0,124,130,130,130,130,130,124,7,9,9,9,1,0, - 16,56,16,0,254,0,16,56,16,7,9,9,9,1,255,2, - 124,138,138,146,162,162,124,128,7,11,11,9,1,0,64,32, - 16,0,130,130,130,130,130,134,122,7,11,11,9,1,0,8, - 16,32,0,130,130,130,130,130,134,122,7,11,11,9,1,0, - 16,40,68,0,130,130,130,130,130,134,122,7,10,10,9,1, - 0,40,40,0,130,130,130,130,130,134,122,7,14,14,9,1, - 253,4,8,16,0,66,66,36,36,36,24,24,16,144,96,7, - 11,11,9,1,254,128,128,184,196,130,130,130,196,184,128,128, - 7,13,13,9,1,253,36,36,0,66,66,36,36,36,24,24, - 16,144,96}; -/* - Fontname: -Misc-Fixed-Medium-R-Normal--18-120-100-100-C-90-ISO10646-1 - Copyright: Public domain font. Share and enjoy. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 8 h=13 x= 4 y=14 dx= 9 dy= 0 ascent=14 len=13 - Font Bounding box w= 9 h=18 x= 0 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_9x18r[1424] U8G_FONT_SECTION("u8g_font_9x18r") = { - 0,9,18,0,252,10,1,232,3,215,32,127,253,14,253,11, - 253,0,0,0,9,0,14,1,11,11,9,4,0,128,128,128, - 128,128,128,128,0,0,128,128,4,4,4,9,3,7,144,144, - 144,144,8,10,10,9,0,0,36,36,36,255,36,36,255,36, - 36,36,7,11,11,9,1,255,16,124,146,144,80,56,20,18, - 146,124,16,7,10,10,9,1,0,66,164,164,72,16,16,36, - 74,74,132,7,10,10,9,1,0,96,144,144,144,96,98,148, - 136,148,98,1,4,4,9,4,7,128,128,128,128,3,12,12, - 9,3,255,32,64,64,128,128,128,128,128,128,64,64,32,3, - 12,12,9,3,255,128,64,64,32,32,32,32,32,32,64,64, - 128,7,7,7,9,1,3,16,146,84,56,84,146,16,7,7, - 7,9,1,1,16,16,16,254,16,16,16,2,4,4,9,4, - 254,192,192,64,128,7,1,1,9,1,4,254,2,2,2,9, - 4,0,192,192,7,10,10,9,1,0,2,4,4,8,16,16, - 32,64,64,128,7,10,10,9,1,0,56,68,130,130,130,130, - 130,130,68,56,7,10,10,9,1,0,16,48,80,144,16,16, - 16,16,16,254,7,10,10,9,1,0,56,68,130,2,4,8, - 16,32,64,254,7,10,10,9,1,0,254,2,4,8,24,4, - 2,2,132,120,7,10,10,9,1,0,4,12,20,36,68,132, - 254,4,4,4,7,10,10,9,1,0,254,128,128,128,248,4, - 2,2,132,120,7,10,10,9,1,0,60,64,128,128,184,196, - 130,130,68,56,7,10,10,9,1,0,254,2,4,4,8,8, - 16,16,16,16,7,10,10,9,1,0,56,68,130,68,56,68, - 130,130,68,56,7,10,10,9,1,0,56,68,130,130,70,58, - 2,2,4,120,2,7,7,9,4,0,192,192,0,0,0,192, - 192,2,9,9,9,4,254,192,192,0,0,0,192,192,64,128, - 5,9,9,9,2,0,8,16,32,64,128,64,32,16,8,7, - 4,4,9,1,2,254,0,0,254,5,9,9,9,2,0,128, - 64,32,16,8,16,32,64,128,7,10,10,9,1,0,56,68, - 130,2,4,8,16,16,0,16,7,10,10,9,1,0,56,68, - 154,170,170,170,170,156,64,60,7,10,10,9,1,0,16,40, - 40,40,68,124,68,130,130,130,7,10,10,9,1,0,248,132, - 130,132,248,132,130,130,132,248,7,10,10,9,1,0,60,66, - 128,128,128,128,128,128,66,60,7,10,10,9,1,0,248,132, - 130,130,130,130,130,130,132,248,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,254,7,10,10,9,1,0,254,128, - 128,128,248,128,128,128,128,128,7,10,10,9,1,0,56,68, - 130,128,128,142,130,130,68,56,7,10,10,9,1,0,130,130, - 130,130,254,130,130,130,130,130,5,10,10,9,2,0,248,32, - 32,32,32,32,32,32,32,248,7,10,10,9,1,0,62,8, - 8,8,8,8,8,136,136,112,7,10,10,9,1,0,130,132, - 136,144,160,208,136,132,130,130,7,10,10,9,1,0,128,128, - 128,128,128,128,128,128,128,254,7,10,10,9,1,0,130,130, - 198,170,146,130,130,130,130,130,7,10,10,9,1,0,130,130, - 194,162,146,138,134,130,130,130,7,10,10,9,1,0,124,130, - 130,130,130,130,130,130,130,124,7,10,10,9,1,0,248,132, - 130,130,132,248,128,128,128,128,8,11,11,9,1,255,56,68, - 130,130,130,130,130,138,68,58,1,7,10,10,9,1,0,248, - 132,130,130,132,248,144,136,132,130,7,10,10,9,1,0,124, - 130,128,128,124,2,2,2,130,124,7,10,10,9,1,0,254, - 16,16,16,16,16,16,16,16,16,7,10,10,9,1,0,130, - 130,130,130,130,130,130,130,68,56,7,10,10,9,1,0,130, - 130,130,68,68,68,40,40,40,16,7,10,10,9,1,0,130, - 130,130,130,146,146,146,146,170,68,7,10,10,9,1,0,130, - 130,68,40,16,16,40,68,130,130,7,10,10,9,1,0,130, - 130,68,40,16,16,16,16,16,16,7,10,10,9,1,0,254, - 2,4,8,16,32,64,128,128,254,4,12,12,9,3,255,240, - 128,128,128,128,128,128,128,128,128,128,240,7,10,10,9,1, - 0,128,64,64,32,16,16,8,4,4,2,4,12,12,9,2, - 255,240,16,16,16,16,16,16,16,16,16,16,240,7,4,4, - 9,1,6,16,40,68,130,8,1,1,9,0,255,255,3,3, - 3,9,3,10,128,64,32,7,7,7,9,1,0,124,2,2, - 126,130,134,122,7,10,10,9,1,0,128,128,128,188,194,130, - 130,130,194,188,7,7,7,9,1,0,124,130,128,128,128,130, - 124,7,10,10,9,1,0,2,2,2,122,134,130,130,130,134, - 122,7,7,7,9,1,0,124,130,130,254,128,130,124,7,10, - 10,9,1,0,28,34,34,32,32,248,32,32,32,32,7,10, - 10,9,1,253,122,132,132,132,120,128,124,130,130,124,7,10, - 10,9,1,0,128,128,128,188,194,130,130,130,130,130,5,10, - 10,9,2,0,96,0,0,224,32,32,32,32,32,248,5,13, - 13,9,2,253,24,0,0,56,8,8,8,8,8,8,136,136, - 112,7,10,10,9,1,0,128,128,128,132,136,144,176,200,132, - 130,5,10,10,9,2,0,224,32,32,32,32,32,32,32,32, - 248,7,7,7,9,1,0,236,146,146,146,146,146,130,7,7, - 7,9,1,0,188,194,130,130,130,130,130,7,7,7,9,1, - 0,124,130,130,130,130,130,124,7,10,10,9,1,253,184,196, - 130,130,130,196,184,128,128,128,7,10,10,9,1,253,58,70, - 130,130,130,70,58,2,2,2,7,7,7,9,1,0,156,98, - 66,64,64,64,64,7,7,7,9,1,0,124,130,128,124,2, - 130,124,7,9,9,9,1,0,32,32,252,32,32,32,32,34, - 28,7,7,7,9,1,0,130,130,130,130,130,134,122,7,7, - 7,9,1,0,130,130,68,68,40,40,16,7,7,7,9,1, - 0,130,130,146,146,146,170,68,7,7,7,9,1,0,130,68, - 40,16,40,68,130,7,10,10,9,1,253,66,66,36,36,36, - 24,24,16,144,96,7,7,7,9,1,0,254,4,8,16,32, - 64,254,6,11,11,9,2,0,28,32,32,32,32,192,32,32, - 32,32,28,1,12,12,9,4,255,128,128,128,128,128,128,128, - 128,128,128,128,128,6,11,11,9,1,0,224,16,16,16,16, - 12,16,16,16,16,224,7,3,3,9,1,7,98,146,140,255 - }; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 9 x= 1 y= 5 dx=10 dy= 0 ascent= 8 len=12 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_baby[2227] U8G_FONT_SECTION("u8g_font_baby") = { - 0,10,10,255,254,5,1,108,2,200,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,1,6,6,3,1,255,128,0,128,128,128,128,4,6,6, - 5,0,255,16,112,160,160,112,64,4,6,6,5,0,0,96, - 208,64,224,64,240,4,4,4,5,0,1,240,144,144,240,5, - 7,7,6,0,255,136,80,32,112,32,112,32,1,7,7,2, - 0,255,128,128,128,0,128,128,128,4,7,7,5,0,255,112, - 128,96,144,96,16,224,3,1,1,4,0,5,160,7,7,7, - 8,0,255,56,68,154,162,154,68,56,3,3,3,4,0,4, - 96,160,224,4,3,3,5,0,1,80,160,80,5,3,3,6, - 0,1,248,8,8,2,1,1,3,0,2,192,7,7,7,8, - 0,255,56,68,178,186,170,68,56,4,1,1,5,0,5,240, - 3,3,3,4,0,4,64,160,64,3,5,5,4,0,0,64, - 224,64,0,224,3,4,4,4,0,4,192,32,64,224,3,4, - 4,4,0,4,224,32,96,224,2,2,2,3,0,5,64,128, - 5,6,6,6,0,254,144,144,144,248,128,128,5,6,6,6, - 0,0,120,232,232,104,40,40,1,1,1,3,1,2,128,3, - 3,3,4,0,254,64,32,192,3,4,4,4,0,4,64,192, - 64,224,4,4,4,5,0,4,96,144,144,96,4,3,3,5, - 0,1,160,80,160,7,6,6,8,0,0,136,144,160,42,78, - 130,7,6,6,8,0,0,136,144,164,42,68,142,9,6,12, - 10,0,0,226,0,100,0,232,0,10,128,19,128,32,128,4, - 6,6,5,0,255,32,0,32,64,144,96,4,8,8,5,0, - 0,64,32,0,96,144,144,240,144,4,8,8,5,0,0,32, - 64,0,96,144,144,240,144,4,8,8,5,0,0,96,144,0, - 96,144,144,240,144,4,8,8,5,0,0,80,160,0,96,144, - 144,240,144,4,7,7,5,0,0,80,0,96,144,144,240,144, - 4,7,7,5,0,0,96,0,96,144,144,240,144,7,5,5, - 8,0,0,126,144,156,240,158,4,7,7,5,0,254,96,144, - 128,144,96,32,64,4,8,8,5,0,0,64,32,0,240,128, - 224,128,240,4,8,8,5,0,0,32,64,0,240,128,224,128, - 240,4,8,8,5,0,0,96,144,0,240,128,224,128,240,4, - 7,7,5,0,0,80,0,240,128,224,128,240,3,8,8,4, - 0,0,128,64,0,224,64,64,64,224,3,8,8,4,0,0, - 32,64,0,224,64,64,64,224,3,8,8,4,0,0,64,160, - 0,224,64,64,64,224,3,7,7,4,0,0,160,0,224,64, - 64,64,224,5,5,5,6,0,0,112,72,232,72,112,4,8, - 8,5,0,0,80,160,0,144,144,208,176,144,4,8,8,5, - 0,0,64,32,0,96,144,144,144,96,4,8,8,5,0,0, - 32,64,0,96,144,144,144,96,4,8,8,5,0,0,96,144, - 0,96,144,144,144,96,4,8,8,5,0,0,80,160,0,96, - 144,144,144,96,4,7,7,5,0,0,80,0,96,144,144,144, - 96,3,3,3,4,0,1,160,64,160,6,5,5,7,0,0, - 48,76,120,200,48,4,8,8,5,0,0,64,32,0,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,144,144, - 96,4,8,8,5,0,0,96,144,0,144,144,144,144,96,4, - 7,7,5,0,0,80,0,144,144,144,144,96,4,9,9,5, - 0,255,32,64,0,144,144,144,112,16,96,4,6,6,5,0, - 0,128,224,144,144,224,128,4,5,5,5,0,0,96,144,160, - 144,160,4,7,7,5,0,0,64,32,0,96,144,144,112,4, - 7,7,5,0,0,32,64,0,96,144,144,112,4,7,7,5, - 0,0,96,144,0,96,144,144,112,4,7,7,5,0,0,80, - 160,0,96,144,144,112,4,6,6,5,0,0,80,0,96,144, - 144,112,4,7,7,5,0,0,96,96,0,96,144,144,112,7, - 4,4,8,0,0,108,146,148,126,3,6,6,4,0,254,96, - 128,128,96,32,64,4,7,7,5,0,0,64,32,0,96,144, - 160,112,4,7,7,5,0,0,32,64,0,96,144,160,112,4, - 7,7,5,0,0,96,144,0,96,144,160,112,4,6,6,5, - 0,0,80,0,96,144,160,112,2,6,6,3,0,0,128,64, - 0,64,64,64,2,6,6,3,0,0,64,128,0,128,128,128, - 3,6,6,4,0,0,64,160,0,64,64,64,3,5,5,4, - 0,0,160,0,64,64,64,5,6,6,6,0,0,96,24,112, - 144,144,96,4,7,7,5,0,0,80,160,0,224,144,144,144, - 4,7,7,5,0,0,64,32,0,96,144,144,96,4,7,7, - 5,0,0,32,64,0,96,144,144,96,4,7,7,5,0,0, - 96,144,0,96,144,144,96,4,7,7,5,0,0,80,160,0, - 96,144,144,96,4,6,6,5,0,0,80,0,96,144,144,96, - 5,5,5,6,0,0,32,0,248,0,32,4,4,4,5,0, - 0,96,176,208,96,4,7,7,5,0,0,64,32,0,144,144, - 144,112,4,7,7,5,0,0,32,64,0,144,144,144,112,4, - 7,7,5,0,0,96,144,0,144,144,144,112,4,6,6,5, - 0,0,80,0,144,144,144,112,4,9,9,5,0,254,32,64, - 0,144,144,144,112,16,96,4,8,8,5,0,254,128,128,224, - 144,144,224,128,128,4,8,8,5,0,254,80,0,144,144,144, - 112,16,96}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 6 x= 1 y= 3 dx= 5 dy= 0 ascent= 6 len= 6 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyn[189] U8G_FONT_SECTION("u8g_font_babyn") = { - 0,10,10,255,254,5,0,0,0,0,42,58,0,6,254,5, - 0,3,3,3,4,0,3,160,64,160,3,3,3,5,1,1, - 64,224,64,2,3,3,3,0,254,192,64,128,3,1,1,4, - 0,2,224,1,1,1,2,0,0,128,3,6,6,4,0,255, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,160,160, - 64,2,5,5,3,0,0,64,192,64,64,64,4,5,5,5, - 0,0,96,144,32,64,240,4,5,5,5,0,0,224,16,96, - 16,224,4,5,5,5,0,0,144,144,144,112,16,4,5,5, - 5,0,0,240,128,224,16,224,4,5,5,5,0,0,96,128, - 224,144,96,4,5,5,5,0,0,240,16,32,64,128,4,5, - 5,5,0,0,96,144,96,144,96,4,5,5,5,0,0,96, - 144,112,16,96,1,3,3,3,1,0,128,0,128}; -/* - Fontname: -FreeType-Baby-Medium-R-Normal--8-80-72-72-P-42-ISO10646-1 - Copyright: Copyright mrsbarrett 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 1 y= 5 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w=10 h=10 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_babyr[1040] U8G_FONT_SECTION("u8g_font_babyr") = { - 0,10,10,255,254,5,1,108,2,200,32,127,254,7,254,6, - 254,0,0,0,2,0,0,1,6,6,3,1,0,128,128,128, - 128,0,128,3,3,3,4,0,4,160,160,160,5,5,5,6, - 0,0,80,248,80,248,80,3,7,7,4,0,255,64,96,128, - 64,32,192,64,5,5,5,6,0,0,200,208,32,88,152,5, - 6,6,6,0,0,64,160,64,160,144,104,1,3,3,2,0, - 4,128,128,128,2,7,7,3,0,255,64,128,128,128,128,128, - 64,2,7,7,3,0,255,128,64,64,64,64,64,128,3,3, - 3,4,0,3,160,64,160,3,3,3,5,1,1,64,224,64, - 2,3,3,3,0,254,192,64,128,3,1,1,4,0,2,224, - 1,1,1,2,0,0,128,3,6,6,4,0,255,32,32,64, - 64,128,128,3,5,5,4,0,0,64,160,160,160,64,2,5, - 5,3,0,0,64,192,64,64,64,4,5,5,5,0,0,96, - 144,32,64,240,4,5,5,5,0,0,224,16,96,16,224,4, - 5,5,5,0,0,144,144,144,112,16,4,5,5,5,0,0, - 240,128,224,16,224,4,5,5,5,0,0,96,128,224,144,96, - 4,5,5,5,0,0,240,16,32,64,128,4,5,5,5,0, - 0,96,144,96,144,96,4,5,5,5,0,0,96,144,112,16, - 96,1,3,3,3,1,0,128,0,128,2,5,5,3,0,254, - 64,0,64,64,128,4,5,5,5,0,0,16,96,128,96,16, - 3,3,3,4,0,1,224,0,224,4,5,5,5,0,0,128, - 96,16,96,128,4,6,6,5,0,0,96,144,32,64,0,64, - 5,6,6,6,0,0,112,136,168,176,128,112,4,5,5,5, - 0,0,96,144,144,240,144,4,5,5,5,0,0,224,144,224, - 144,224,4,5,5,5,0,0,96,144,128,144,96,4,5,5, - 5,0,0,224,144,144,144,224,4,5,5,5,0,0,240,128, - 224,128,240,4,5,5,5,0,0,240,128,224,128,128,4,5, - 5,5,0,0,96,128,176,144,96,4,5,5,5,0,0,144, - 144,240,144,144,3,5,5,4,0,0,224,64,64,64,224,4, - 5,5,5,0,0,112,16,16,144,96,4,5,5,5,0,0, - 144,144,144,224,144,3,5,5,4,0,0,128,128,128,128,224, - 5,5,5,6,0,0,216,168,168,168,136,4,5,5,5,0, - 0,144,144,208,176,144,4,5,5,5,0,0,96,144,144,144, - 96,4,5,5,5,0,0,224,144,144,224,128,4,5,5,5, - 0,0,96,144,144,80,224,4,5,5,5,0,0,224,144,144, - 224,144,3,5,5,4,0,0,96,128,64,32,192,3,5,5, - 4,0,0,224,64,64,64,64,4,5,5,5,0,0,144,144, - 144,144,96,5,5,5,6,0,0,136,80,80,80,32,5,5, - 5,6,0,0,136,136,136,168,80,4,5,5,5,0,0,144, - 144,144,96,144,4,6,6,5,0,255,144,144,144,112,16,96, - 4,5,5,5,0,0,240,32,64,128,240,2,7,7,3,0, - 255,192,128,128,128,128,128,192,3,6,6,4,0,255,128,128, - 64,64,32,32,2,7,7,3,0,255,192,64,64,64,64,64, - 192,3,2,2,4,0,4,64,160,4,1,1,5,0,255,240, - 2,2,2,3,0,5,128,64,4,4,4,5,0,0,96,144, - 144,112,4,5,5,5,0,0,128,224,144,144,96,3,4,4, - 4,0,0,96,128,128,96,4,5,5,5,0,0,16,112,144, - 144,96,4,4,4,5,0,0,96,144,160,112,4,5,5,5, - 0,0,96,144,128,192,128,4,6,6,5,0,254,96,144,144, - 112,16,96,4,5,5,5,0,0,128,224,144,144,144,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,32,192,3,5,5,4,0,0,128,160,192,160, - 160,1,5,5,2,0,0,128,128,128,128,128,5,4,4,6, - 0,0,208,168,168,136,4,4,4,5,0,0,224,144,144,144, - 4,4,4,5,0,0,96,144,144,96,4,6,6,5,0,254, - 96,144,144,224,128,128,4,6,6,5,0,254,96,144,144,112, - 16,16,4,4,4,5,0,0,224,144,128,128,4,4,4,5, - 0,0,112,64,32,224,3,5,5,4,0,0,64,224,64,64, - 64,4,4,4,5,0,0,144,144,144,112,4,4,4,5,0, - 0,144,144,144,96,5,4,4,6,0,0,136,168,168,80,4, - 4,4,5,0,0,144,144,96,144,4,6,6,5,0,254,144, - 144,144,112,16,96,4,4,4,5,0,0,240,32,64,240,3, - 7,7,4,0,255,32,64,64,128,64,64,32,1,7,7,2, - 0,255,128,128,128,128,128,128,128,3,7,7,4,0,255,128, - 64,64,32,64,64,128,5,3,3,6,0,1,64,168,16,255 - }; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07[948] U8G_FONT_SECTION("u8g_font_blipfest_07") = { - 0,5,6,0,255,5,1,5,2,47,32,255,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07n[169] U8G_FONT_SECTION("u8g_font_blipfest_07n") = { - 0,5,6,0,255,5,0,0,0,0,42,58,0,5,0,5, - 0,255,3,3,3,4,0,1,64,224,64,1,2,2,2,0, - 0,128,128,3,1,1,4,0,2,224,1,1,1,2,0,0, - 128,255,3,5,5,4,0,0,224,160,160,160,224,2,5,5, - 3,0,0,192,64,64,64,64,3,5,5,4,0,0,224,32, - 224,128,224,3,5,5,4,0,0,224,32,224,32,224,3,5, - 5,4,0,0,160,160,224,32,32,3,5,5,4,0,0,224, - 128,224,32,224,3,5,5,4,0,0,224,128,224,160,224,3, - 5,5,4,0,0,224,32,32,32,32,3,5,5,4,0,0, - 224,160,224,160,224,3,5,5,4,0,0,224,160,224,32,224, - 1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Blipfest 07-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright cwillmor 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_blipfest_07r[820] U8G_FONT_SECTION("u8g_font_blipfest_07r") = { - 0,5,6,0,255,5,1,5,2,47,32,127,255,5,255,5, - 255,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,255,255,255,4,5,5, - 5,0,0,224,160,240,160,240,1,2,2,2,0,3,128,128, - 255,255,255,3,3,3,4,0,1,64,224,64,1,2,2,2, - 0,0,128,128,3,1,1,4,0,2,224,1,1,1,2,0, - 0,128,255,3,5,5,4,0,0,224,160,160,160,224,2,5, - 5,3,0,0,192,64,64,64,64,3,5,5,4,0,0,224, - 32,224,128,224,3,5,5,4,0,0,224,32,224,32,224,3, - 5,5,4,0,0,160,160,224,32,32,3,5,5,4,0,0, - 224,128,224,32,224,3,5,5,4,0,0,224,128,224,160,224, - 3,5,5,4,0,0,224,32,32,32,32,3,5,5,4,0, - 0,224,160,224,160,224,3,5,5,4,0,0,224,160,224,32, - 224,1,3,3,2,0,0,128,0,128,1,4,4,2,0,255, - 128,0,128,128,255,3,3,3,4,0,1,224,0,224,255,3, - 5,5,4,0,0,224,32,96,0,64,5,5,5,6,0,0, - 248,136,184,168,240,3,5,5,4,0,0,224,160,160,224,160, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,128,128,128,224,3,5,5,4,0,0,192,160,160,160, - 192,3,5,5,4,0,0,224,128,224,128,224,3,5,5,4, - 0,0,224,128,224,128,128,3,5,5,4,0,0,224,128,160, - 160,224,3,5,5,4,0,0,160,160,160,224,160,3,5,5, - 4,0,0,224,64,64,64,224,3,5,5,4,0,0,32,32, - 32,160,224,3,5,5,4,0,0,160,160,160,192,160,3,5, - 5,4,0,0,128,128,128,128,224,3,5,5,4,0,0,160, - 224,160,160,160,3,5,5,4,0,0,224,160,160,160,160,3, - 5,5,4,0,0,224,160,160,160,224,3,5,5,4,0,0, - 224,160,160,224,128,3,5,5,4,0,0,224,160,160,224,64, - 3,5,5,4,0,0,224,160,160,192,160,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,64,64,64, - 64,3,5,5,4,0,0,160,160,160,160,224,3,5,5,4, - 0,0,160,160,160,160,64,3,5,5,4,0,0,160,160,160, - 224,224,3,5,5,4,0,0,160,160,64,160,160,3,5,5, - 4,0,0,160,160,160,64,64,3,5,5,4,0,0,224,32, - 224,128,224,255,255,255,255,3,1,1,4,0,0,224,255,3, - 3,3,4,0,0,96,160,224,3,5,5,4,0,0,128,128, - 224,160,224,3,3,3,4,0,0,224,128,224,3,5,5,4, - 0,0,32,32,224,160,224,3,3,3,4,0,0,224,160,192, - 3,5,5,4,0,0,96,64,224,64,64,3,4,4,4,0, - 255,224,160,224,64,3,5,5,4,0,0,128,128,224,160,160, - 1,5,5,2,0,0,128,0,128,128,128,2,5,5,3,0, - 0,64,0,64,64,192,3,5,5,4,0,0,128,128,160,192, - 160,1,5,5,2,0,0,128,128,128,128,128,5,3,3,6, - 0,0,248,168,168,3,3,3,4,0,0,192,160,160,3,3, - 3,4,0,0,224,160,224,3,4,4,4,0,255,224,160,224, - 128,3,4,4,4,0,255,224,160,224,32,3,3,3,4,0, - 0,224,128,128,3,3,3,4,0,0,96,64,192,3,5,5, - 4,0,0,64,224,64,64,96,3,3,3,4,0,0,160,160, - 224,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,4,4,4, - 0,255,160,160,224,32,3,3,3,4,0,0,224,64,224,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 9 h= 8 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=10 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikita[2236] U8G_FONT_SECTION("u8g_font_chikita") = { - 0,9,10,0,254,5,1,107,2,195,32,255,254,8,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,1,7,7,2,0,255,128, - 0,128,128,128,128,128,3,5,5,4,0,0,64,224,128,224, - 64,5,6,6,6,0,0,112,136,72,224,64,248,5,5,5, - 6,0,0,136,112,80,112,136,5,6,6,6,0,0,136,80, - 32,112,112,32,1,5,5,2,0,0,128,128,0,128,128,4, - 7,7,5,0,254,112,128,96,144,96,16,224,3,1,1,4, - 0,6,160,7,7,7,8,0,255,124,130,186,162,186,130,124, - 3,4,4,4,0,4,96,224,160,96,6,5,5,7,0,0, - 36,72,144,72,36,5,3,3,6,0,2,248,8,8,3,1, - 1,5,1,2,224,7,7,7,8,0,255,124,130,186,178,170, - 130,124,5,1,1,6,0,6,248,4,4,4,5,0,3,96, - 144,144,96,3,5,5,5,1,0,64,224,64,0,224,4,5, - 5,5,0,2,96,144,32,64,240,4,5,5,5,0,2,224, - 16,96,16,224,2,2,2,3,0,5,64,128,5,6,6,6, - 0,254,136,136,216,168,128,128,6,7,7,7,0,254,124,232, - 232,104,40,40,40,3,3,3,5,1,1,224,224,224,3,3, - 3,5,1,254,64,32,224,2,5,5,3,0,2,64,192,64, - 64,64,4,5,5,5,0,2,96,144,144,144,96,6,5,5, - 7,0,0,144,72,36,72,144,7,8,8,8,0,254,66,196, - 72,80,38,74,142,2,7,8,8,8,0,254,66,196,72,80, - 44,66,132,14,7,8,8,8,0,254,226,68,40,208,38,74, - 142,2,5,7,7,6,0,255,32,0,32,32,72,136,112,5, - 8,8,6,0,0,64,32,0,112,136,136,248,136,5,8,8, - 6,0,0,16,32,0,112,136,136,248,136,5,8,8,6,0, - 0,32,80,0,112,136,136,248,136,5,8,8,6,0,0,40, - 80,0,112,136,136,248,136,5,7,7,6,0,0,80,0,112, - 136,136,248,136,5,8,8,6,0,0,32,80,32,112,136,136, - 248,136,9,5,10,10,0,0,63,128,72,0,143,0,248,0, - 143,128,5,7,7,6,0,254,112,136,128,136,112,16,112,5, - 8,8,6,0,0,64,32,0,248,128,240,128,248,5,8,8, - 6,0,0,16,32,0,248,128,240,128,248,5,8,8,6,0, - 0,32,80,0,248,128,240,128,248,5,7,7,6,0,0,80, - 0,248,128,240,128,248,3,8,8,4,0,0,128,64,0,224, - 64,64,64,224,3,8,8,4,0,0,32,64,0,224,64,64, - 64,224,3,8,8,4,0,0,64,160,0,224,64,64,64,224, - 3,7,7,4,0,0,160,0,224,64,64,64,224,5,5,5, - 6,0,0,112,72,232,72,112,5,8,8,6,0,0,40,80, - 0,136,200,168,152,136,5,8,8,6,0,0,64,32,0,112, - 136,136,136,112,5,8,8,6,0,0,16,32,0,112,136,136, - 136,112,5,8,8,6,0,0,32,80,0,112,136,136,136,112, - 5,8,8,6,0,0,64,168,16,112,136,136,136,112,5,7, - 7,6,0,0,80,0,112,136,136,136,112,3,3,3,4,0, - 1,160,64,160,5,5,5,6,0,0,120,152,168,200,240,5, - 8,8,6,0,0,64,32,0,136,136,136,136,112,5,8,8, - 6,0,0,16,32,0,136,136,136,136,112,5,8,8,6,0, - 0,32,80,0,136,136,136,136,112,5,7,7,6,0,0,80, - 0,136,136,136,136,112,5,8,8,6,0,0,16,32,0,136, - 136,80,32,32,5,5,5,6,0,0,128,240,136,240,128,4, - 5,5,5,0,0,96,144,160,144,160,4,7,7,5,0,0, - 64,32,0,112,144,144,240,4,7,7,5,0,0,32,64,0, - 112,144,144,240,4,7,7,5,0,0,32,80,0,112,144,144, - 240,4,7,7,5,0,0,80,160,0,112,144,144,240,4,6, - 6,5,0,0,80,0,112,144,144,240,4,7,7,5,0,0, - 32,80,32,112,144,144,240,7,5,5,8,0,0,236,18,126, - 144,238,4,6,6,5,0,254,112,128,128,112,32,96,4,7, - 7,5,0,0,64,32,0,96,144,224,112,4,7,7,5,0, - 0,32,64,0,96,144,224,112,4,7,7,5,0,0,32,80, - 0,96,144,224,112,4,6,6,5,0,0,80,0,96,144,224, - 112,2,7,7,3,0,0,128,64,0,64,64,64,64,2,7, - 7,3,0,0,64,128,0,128,128,128,128,3,7,7,4,0, - 0,64,160,0,64,64,64,64,3,6,6,4,0,0,160,0, - 64,64,64,64,4,6,6,5,0,0,64,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,96,144,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,5,5,5, - 6,0,0,32,0,248,0,32,4,4,4,5,0,0,112,176, - 208,224,4,7,7,5,0,0,64,32,0,144,144,144,112,4, - 7,7,5,0,0,32,64,0,144,144,144,112,4,7,7,5, - 0,0,32,80,0,144,144,144,112,4,6,6,5,0,0,80, - 0,144,144,144,112,4,8,8,5,0,254,32,64,0,144,144, - 112,16,224,4,6,6,5,0,254,128,224,144,144,224,128,4, - 7,7,5,0,254,80,0,144,144,112,16,224}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitan[189] U8G_FONT_SECTION("u8g_font_chikitan") = { - 0,9,10,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,5,1,1,160,64,160,5,5,5,6,0,0, - 32,32,248,32,32,2,2,2,3,0,255,64,128,5,1,1, - 6,0,2,248,1,1,1,2,0,0,128,3,5,5,5,1, - 0,32,32,64,128,128,4,5,5,5,0,0,96,144,144,144, - 96,2,5,5,3,0,0,64,192,64,64,64,5,5,5,6, - 0,0,112,136,48,64,248,5,5,5,6,0,0,240,8,112, - 8,240,5,5,5,6,0,0,48,80,144,248,16,5,5,5, - 6,0,0,248,128,240,8,240,5,5,5,6,0,0,120,128, - 240,136,112,5,5,5,6,0,0,248,8,16,32,64,5,5, - 5,6,0,0,112,136,112,136,112,5,5,5,6,0,0,112, - 136,120,8,240,1,3,3,2,0,1,128,0,128}; -/* - Fontname: -FreeType-Chikita-Medium-R-Normal--8-80-72-72-P-47-ISO10646-1 - Copyright: Copyright southernmedia 2008 Chikita is based on pixelspace 5x5 by David Chiu (http://fontstruct.com/fontstructors/skyleth) - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 7 h= 7 x= 1 y= 4 dx= 8 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_chikitar[1032] U8G_FONT_SECTION("u8g_font_chikitar") = { - 0,9,10,0,254,5,1,107,2,195,32,127,254,6,254,6, - 254,0,0,0,2,0,0,1,7,7,2,0,255,128,128,128, - 128,128,0,128,3,2,2,4,0,4,160,160,5,5,5,6, - 0,0,80,248,80,248,80,5,7,7,6,0,255,32,120,160, - 112,40,240,32,5,5,5,6,0,0,200,208,32,88,152,5, - 5,5,6,0,0,32,80,104,144,104,1,2,2,2,0,4, - 128,128,3,7,7,4,0,255,32,64,128,128,128,64,32,3, - 7,7,4,0,255,128,64,32,32,32,64,128,3,3,3,5, - 1,1,160,64,160,5,5,5,6,0,0,32,32,248,32,32, - 2,2,2,3,0,255,64,128,5,1,1,6,0,2,248,1, - 1,1,2,0,0,128,3,5,5,5,1,0,32,32,64,128, - 128,4,5,5,5,0,0,96,144,144,144,96,2,5,5,3, - 0,0,64,192,64,64,64,5,5,5,6,0,0,112,136,48, - 64,248,5,5,5,6,0,0,240,8,112,8,240,5,5,5, - 6,0,0,48,80,144,248,16,5,5,5,6,0,0,248,128, - 240,8,240,5,5,5,6,0,0,120,128,240,136,112,5,5, - 5,6,0,0,248,8,16,32,64,5,5,5,6,0,0,112, - 136,112,136,112,5,5,5,6,0,0,112,136,120,8,240,1, - 3,3,2,0,1,128,0,128,1,4,4,2,0,0,128,0, - 128,128,5,5,5,6,0,0,24,96,128,96,24,5,3,3, - 6,0,1,248,0,248,5,5,5,6,0,0,192,48,8,48, - 192,5,7,7,6,0,255,112,136,16,32,32,0,32,7,7, - 7,8,0,255,124,130,154,170,190,128,124,5,5,5,6,0, - 0,112,136,136,248,136,5,5,5,6,0,0,240,136,240,136, - 240,5,5,5,6,0,0,112,136,128,136,112,5,5,5,6, - 0,0,240,136,136,136,240,5,5,5,6,0,0,248,128,240, - 128,248,5,5,5,6,0,0,248,128,240,128,128,5,5,5, - 6,0,0,112,128,184,136,112,5,5,5,6,0,0,136,136, - 248,136,136,3,5,5,4,0,0,224,64,64,64,224,5,5, - 5,6,0,0,8,8,8,136,112,5,5,5,6,0,0,136, - 144,224,144,136,5,5,5,6,0,0,128,128,128,128,248,5, - 5,5,6,0,0,136,216,168,136,136,5,5,5,6,0,0, - 136,200,168,152,136,5,5,5,6,0,0,112,136,136,136,112, - 5,5,5,6,0,0,240,136,136,240,128,5,5,5,6,0, - 0,112,136,136,152,120,5,5,5,6,0,0,240,136,136,240, - 136,5,5,5,6,0,0,120,128,112,8,240,5,5,5,6, - 0,0,248,32,32,32,32,5,5,5,6,0,0,136,136,136, - 136,112,5,5,5,6,0,0,136,136,136,80,32,5,5,5, - 6,0,0,136,168,168,168,80,5,5,5,6,0,0,136,80, - 32,80,136,5,5,5,6,0,0,136,136,80,32,32,5,5, - 5,6,0,0,248,16,32,64,248,2,6,6,3,0,255,192, - 128,128,128,128,192,3,5,5,4,0,0,128,128,64,32,32, - 2,6,6,3,0,255,192,64,64,64,64,192,3,2,2,4, - 0,4,64,160,5,1,1,6,0,255,248,2,2,2,3,0, - 4,128,64,4,4,4,5,0,0,112,144,144,240,4,5,5, - 5,0,0,128,224,144,144,224,4,4,4,5,0,0,112,128, - 128,112,4,5,5,5,0,0,16,112,144,144,112,4,4,4, - 5,0,0,96,144,224,112,4,5,5,5,0,0,48,64,240, - 64,64,4,6,6,5,0,254,112,144,144,240,16,224,4,5, - 5,5,0,0,128,224,144,144,144,1,5,5,2,0,0,128, - 0,128,128,128,2,7,7,3,0,254,64,0,64,64,64,64, - 128,4,5,5,5,0,0,128,144,160,224,144,1,5,5,2, - 0,0,128,128,128,128,128,6,4,4,7,0,0,168,212,148, - 148,4,4,4,5,0,0,160,208,144,144,4,4,4,5,0, - 0,96,144,144,96,4,6,6,5,0,254,224,144,144,224,128, - 128,4,6,6,5,0,254,112,144,144,112,16,16,4,4,4, - 5,0,0,176,192,128,128,4,4,4,5,0,0,112,192,48, - 224,4,5,5,5,0,0,64,240,64,64,48,4,4,4,5, - 0,0,144,144,144,112,5,4,4,6,0,0,136,136,80,32, - 5,4,4,6,0,0,136,136,168,80,4,4,4,5,0,0, - 144,96,96,144,4,6,6,5,0,254,144,144,144,112,16,224, - 4,4,4,5,0,0,240,32,64,240,3,6,6,4,0,255, - 96,64,128,128,64,96,1,6,6,2,0,255,128,128,128,128, - 128,128,3,6,6,4,0,255,192,64,32,32,64,192,5,3, - 3,6,0,1,64,168,16,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08[2425] U8G_FONT_SECTION("u8g_font_courB08") = { - 0,12,16,253,252,6,1,146,3,13,32,255,254,9,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,1,2, - 7,7,6,1,254,192,0,192,192,192,192,192,5,8,8,6, - 0,255,32,32,120,200,192,120,32,32,6,7,7,6,0,0, - 56,104,32,248,32,100,248,5,5,5,6,0,1,136,112,80, - 112,136,6,7,7,6,0,0,204,72,252,48,252,48,120,1, - 9,9,6,2,254,128,128,128,128,0,128,128,128,128,5,8, - 8,6,0,255,120,72,96,144,72,48,144,240,3,1,1,6, - 1,5,160,6,7,7,6,0,0,48,72,180,164,180,72,48, - 4,5,5,6,1,2,224,16,208,0,240,7,5,5,6,255, - 0,54,108,216,108,54,5,3,3,6,0,2,248,8,8,5, - 1,1,6,0,3,248,7,7,7,6,0,0,56,68,186,178, - 170,68,56,4,1,1,6,0,5,240,4,3,3,6,0,4, - 96,144,96,5,6,6,6,0,0,32,32,248,32,0,248,3, - 4,4,6,1,3,96,160,64,224,3,4,4,6,1,3,224, - 64,32,192,2,2,2,6,2,5,64,128,7,7,7,6,255, - 254,236,108,108,108,126,64,64,6,8,8,6,0,255,124,168, - 168,104,40,40,40,108,2,1,1,6,1,3,192,3,3,3, - 6,1,254,64,32,192,3,4,4,6,1,3,192,64,64,224, - 4,5,5,6,1,2,96,144,96,0,240,7,5,5,6,255, - 0,216,108,54,108,216,7,7,7,6,255,0,192,68,72,244, - 44,94,4,7,7,7,6,255,0,192,68,72,246,42,68,14, - 7,7,7,6,255,0,224,68,40,212,44,94,4,5,7,7, - 6,0,254,48,0,48,48,96,200,112,7,9,9,6,255,0, - 32,16,0,120,56,40,124,108,238,7,9,9,6,255,0,16, - 32,0,120,56,40,124,108,238,7,9,9,6,255,0,16,40, - 0,120,56,40,124,108,238,7,9,9,6,255,0,52,72,0, - 120,56,40,124,108,238,7,8,8,6,255,0,40,0,120,56, - 40,124,108,238,7,9,9,6,255,0,48,72,48,120,56,40, - 124,108,238,7,6,6,6,255,0,126,58,108,120,218,222,5, - 8,8,6,0,254,120,216,192,192,216,112,16,96,6,9,9, - 6,255,0,32,16,0,252,100,120,96,108,252,6,9,9,6, - 255,0,16,32,0,252,100,120,96,108,252,6,9,9,6,255, - 0,32,80,0,252,100,120,96,108,252,6,8,8,6,255,0, - 80,0,252,100,120,96,108,252,4,9,9,6,0,0,64,32, - 0,240,96,96,96,96,240,4,9,9,6,0,0,32,64,0, - 240,96,96,96,96,240,4,9,9,6,0,0,64,160,0,240, - 96,96,96,96,240,4,8,8,6,0,0,160,0,240,96,96, - 96,96,240,6,6,6,6,255,0,248,108,244,100,108,248,7, - 9,9,6,255,0,52,72,0,238,100,116,124,108,236,5,9, - 9,6,0,0,64,32,0,112,216,216,216,216,112,5,9,9, - 6,0,0,32,64,0,112,216,216,216,216,112,5,9,9,6, - 0,0,32,80,0,112,216,216,216,216,112,5,9,9,6,0, - 0,104,144,0,112,216,216,216,216,112,5,8,8,6,0,0, - 80,0,112,216,216,216,216,112,5,5,5,6,0,1,136,80, - 32,80,136,7,6,6,6,255,0,58,108,124,108,108,184,7, - 9,9,6,255,0,32,16,0,238,108,108,108,108,56,7,9, - 9,6,255,0,8,16,0,238,108,108,108,108,56,7,9,9, - 6,255,0,16,40,0,238,108,108,108,108,56,7,8,8,6, - 255,0,40,0,238,108,108,108,108,56,7,9,9,6,255,0, - 4,8,0,230,102,60,24,24,60,6,6,6,6,255,0,224, - 120,108,108,120,224,7,6,6,6,255,0,56,104,124,102,102, - 236,6,8,8,6,0,0,32,16,0,112,152,120,216,252,6, - 8,8,6,0,0,16,32,0,112,152,120,216,252,6,8,8, - 6,0,0,32,80,0,112,152,120,216,252,6,8,8,6,0, - 0,104,144,0,112,152,120,216,252,6,7,7,6,0,0,80, - 0,112,152,120,216,252,6,9,9,6,0,0,48,72,48,0, - 112,152,120,216,252,6,5,5,6,255,0,108,180,124,176,220, - 5,7,7,6,0,254,112,216,192,216,112,16,96,5,8,8, - 6,0,0,64,32,0,112,216,248,192,120,5,8,8,6,0, - 0,32,64,0,112,216,248,192,120,5,8,8,6,0,0,32, - 80,0,112,216,248,192,120,5,7,7,6,0,0,80,0,112, - 216,248,192,120,6,8,8,6,0,0,32,16,0,112,48,48, - 48,252,6,8,8,6,0,0,16,32,0,112,48,48,48,252, - 6,8,8,6,0,0,32,80,0,112,48,48,48,252,6,7, - 7,6,0,0,80,0,112,48,48,48,252,5,8,8,6,0, - 0,208,96,176,120,216,216,216,112,7,8,8,6,255,0,52, - 72,0,216,108,108,108,110,5,8,8,6,0,0,64,32,0, - 112,216,216,216,112,5,8,8,6,0,0,32,64,0,112,216, - 216,216,112,5,8,8,6,0,0,32,80,0,112,216,216,216, - 112,5,8,8,6,0,0,104,144,0,112,216,216,216,112,5, - 7,7,6,0,0,80,0,112,216,216,216,112,5,5,5,6, - 0,1,32,0,248,0,32,5,7,7,6,0,255,8,112,216, - 248,216,112,128,7,8,8,6,255,0,32,16,0,236,108,108, - 108,62,7,8,8,6,255,0,16,32,0,236,108,108,108,62, - 7,8,8,6,255,0,16,40,0,236,108,108,108,62,7,7, - 7,6,255,0,40,0,236,108,108,108,62,7,10,10,6,255, - 254,8,16,0,238,108,108,40,56,48,240,6,9,9,6,255, - 254,224,96,120,108,108,108,120,96,240,7,9,9,6,255,254, - 40,0,238,108,108,40,56,48,240}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=12 h=16 x=-3 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB08r[1145] U8G_FONT_SECTION("u8g_font_courB08r") = { - 0,12,16,253,252,6,1,146,3,13,32,127,254,8,254,7, - 254,0,0,0,6,0,1,2,6,6,6,1,0,192,192,192, - 192,0,192,3,3,3,6,1,3,160,160,160,5,8,8,6, - 0,255,80,80,248,80,80,248,80,80,5,9,9,6,0,255, - 32,120,200,240,120,24,216,240,32,5,7,7,6,0,0,224, - 168,240,32,120,168,56,6,6,6,6,255,0,56,96,48,124, - 216,124,1,3,3,6,2,3,128,128,128,3,8,8,6,1, - 255,32,64,192,192,192,192,64,32,3,8,8,6,1,255,128, - 64,96,96,96,96,64,128,4,4,4,6,0,3,32,240,96, - 144,5,5,5,6,0,1,32,32,248,32,32,3,3,3,6, - 1,254,96,64,128,5,1,1,6,0,3,248,2,1,1,6, - 1,0,192,4,8,8,6,1,255,16,16,32,32,64,64,128, - 128,5,7,7,6,0,0,112,216,216,216,216,216,112,6,7, - 7,6,0,0,48,240,48,48,48,48,252,5,7,7,6,0, - 0,112,216,24,48,96,216,248,5,7,7,6,0,0,112,216, - 24,112,24,216,112,6,7,7,6,0,0,24,56,88,216,252, - 24,24,5,7,7,6,0,0,248,192,240,216,24,152,240,5, - 7,7,6,0,0,112,216,192,240,216,216,112,5,7,7,6, - 0,0,248,216,24,48,48,96,96,5,7,7,6,0,0,112, - 216,216,112,216,216,112,5,7,7,6,0,0,112,216,216,120, - 24,216,112,2,4,4,6,1,0,192,0,0,192,3,6,6, - 6,0,254,96,0,0,96,64,128,4,5,5,6,0,1,48, - 96,192,96,48,4,3,3,6,0,2,240,0,240,4,5,5, - 6,1,1,192,96,48,96,192,5,6,6,6,0,0,112,152, - 48,96,0,96,6,8,8,6,0,255,112,200,152,168,168,156, - 192,112,7,6,6,6,255,0,120,56,40,124,108,238,6,6, - 6,6,255,0,248,108,120,108,108,248,5,6,6,6,0,0, - 120,216,192,192,216,112,6,6,6,6,255,0,248,108,108,108, - 108,248,6,6,6,6,255,0,252,96,120,96,108,252,6,6, - 6,6,255,0,252,96,120,96,96,240,5,6,6,6,0,0, - 112,216,192,248,216,120,7,6,6,6,255,0,238,108,124,108, - 108,238,4,6,6,6,0,0,240,96,96,96,96,240,6,6, - 6,6,255,0,60,24,24,216,216,112,7,6,6,6,255,0, - 236,104,112,120,108,246,6,6,6,6,255,0,240,96,96,96, - 108,252,6,6,6,6,255,0,196,108,108,124,84,212,7,6, - 6,6,255,0,238,116,116,108,108,228,5,6,6,6,0,0, - 112,216,216,216,216,112,6,6,6,6,255,0,248,108,108,120, - 96,240,5,7,7,6,0,255,112,216,216,216,216,112,24,7, - 6,6,6,255,0,248,108,108,120,108,246,5,6,6,6,0, - 0,120,200,240,56,152,240,6,6,6,6,255,0,252,180,48, - 48,48,120,7,6,6,6,255,0,238,108,108,108,108,56,7, - 6,6,6,255,0,238,108,40,56,56,16,7,6,6,6,255, - 0,214,84,84,124,56,40,6,6,6,6,0,0,204,120,48, - 48,120,204,7,6,6,6,255,0,230,102,60,24,24,60,5, - 6,6,6,0,0,248,216,48,96,216,248,3,8,8,6,1, - 255,224,192,192,192,192,192,192,224,4,8,8,6,0,255,128, - 128,64,64,32,32,16,16,3,8,8,6,1,255,224,96,96, - 96,96,96,96,224,5,3,3,6,0,4,32,112,216,6,1, - 1,6,0,254,252,2,2,2,6,2,6,128,64,6,5,5, - 6,0,0,112,216,120,216,252,6,7,7,6,255,0,224,96, - 120,108,108,108,248,5,5,5,6,0,0,112,216,192,216,112, - 6,7,7,6,0,0,56,24,120,216,216,216,124,5,5,5, - 6,0,0,112,216,248,192,120,5,7,7,6,0,0,56,96, - 248,96,96,96,248,6,7,7,6,0,254,108,216,216,216,120, - 24,240,6,7,7,6,255,0,224,96,120,108,108,108,108,6, - 7,7,6,0,0,48,0,240,48,48,48,252,4,9,9,6, - 0,254,48,0,240,48,48,48,48,48,224,7,7,7,6,255, - 0,224,96,108,120,112,120,110,6,7,7,6,0,0,240,48, - 48,48,48,48,252,6,5,5,6,255,0,248,124,84,84,84, - 6,5,5,6,255,0,216,108,108,108,108,5,5,5,6,0, - 0,112,216,216,216,112,6,7,7,6,255,254,248,108,108,108, - 120,96,240,6,7,7,6,0,254,108,216,216,216,120,24,60, - 6,5,5,6,0,0,220,116,96,96,240,6,5,5,6,0, - 0,120,224,120,28,248,6,7,7,6,0,0,96,96,248,96, - 96,108,56,7,5,5,6,255,0,236,108,108,108,62,6,5, - 5,6,255,0,236,108,56,56,16,7,5,5,6,255,0,214, - 84,124,60,40,6,5,5,6,0,0,236,120,48,120,220,7, - 7,7,6,255,254,238,108,108,40,56,48,224,5,5,5,6, - 0,0,248,176,96,216,248,4,8,8,6,1,255,48,96,96, - 192,96,96,96,48,1,7,7,6,2,255,128,128,128,128,128, - 128,128,4,8,8,6,0,255,192,96,96,48,96,96,96,192, - 5,2,2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=12 len=26 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10[3355] U8G_FONT_SECTION("u8g_font_courB10") = { - 0,13,21,254,250,9,1,222,4,32,32,255,253,12,252,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,1,2,9,9,9,3,254,192,192,0,128,192, - 192,192,192,192,6,10,10,9,1,255,48,48,124,204,192,192, - 204,120,48,48,7,9,9,9,1,0,60,102,96,96,248,96, - 96,102,252,7,6,6,9,1,1,198,124,198,198,124,198,10, - 9,18,9,0,0,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,2,11,11,9,3,254,192,192,192, - 192,192,0,192,192,192,192,192,8,11,11,9,0,255,62,98, - 96,240,140,227,57,15,6,70,124,4,2,2,9,2,8,144, - 144,9,8,16,9,0,1,28,0,99,0,205,128,209,128,209, - 128,205,128,99,0,28,0,5,7,7,9,2,2,112,24,120, - 216,104,0,248,7,5,5,9,1,1,54,108,216,108,54,7, - 3,3,9,1,2,254,2,2,6,1,1,9,1,4,252,9, - 8,16,9,0,1,62,0,99,0,217,128,213,128,217,128,213, - 128,99,0,62,0,4,1,1,9,2,8,240,4,4,4,9, - 2,5,96,144,144,96,7,7,7,9,1,1,16,16,254,16, - 16,0,254,5,6,6,9,2,4,112,152,24,48,96,248,5, - 6,6,9,2,4,112,152,48,24,152,112,3,2,2,9,3, - 7,96,192,9,10,20,9,0,253,231,0,99,0,99,0,99, - 0,99,0,103,0,123,128,96,0,96,0,96,0,7,11,11, - 9,1,255,126,212,148,148,212,116,20,20,20,20,126,2,2, - 2,9,3,3,192,192,3,4,4,9,2,253,64,96,32,224, - 4,6,6,9,3,4,96,224,96,96,96,240,5,7,7,9, - 2,2,112,216,136,216,112,0,248,7,5,5,9,1,1,216, - 108,54,108,216,9,10,20,9,0,0,96,0,224,128,97,0, - 98,0,101,0,251,0,23,0,43,0,79,128,131,0,9,10, - 20,9,0,0,96,0,224,128,97,0,98,0,103,0,253,128, - 17,128,35,0,70,0,15,128,10,10,20,9,255,0,112,0, - 152,64,48,128,25,0,154,128,117,128,11,128,21,128,39,192, - 65,128,6,9,9,9,1,254,48,48,0,48,112,192,196,204, - 124,9,12,24,9,0,0,24,0,12,0,0,0,124,0,28, - 0,54,0,54,0,34,0,99,0,127,0,99,0,247,128,9, - 12,24,9,0,0,12,0,24,0,0,0,124,0,28,0,54, - 0,54,0,34,0,99,0,127,0,99,0,247,128,9,12,24, - 9,0,0,28,0,54,0,0,0,124,0,28,0,54,0,54, - 0,34,0,99,0,127,0,99,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,124,0,28,0,54,0,54,0,34, - 0,99,0,127,0,99,0,247,128,9,12,24,9,0,0,36, - 0,36,0,0,0,124,0,28,0,54,0,54,0,34,0,99, - 0,127,0,99,0,247,128,9,12,24,9,0,0,24,0,36, - 0,24,0,126,0,28,0,54,0,54,0,34,0,99,0,127, - 0,99,0,247,128,9,9,18,9,0,0,63,128,28,128,28, - 0,61,0,47,0,109,0,124,0,76,128,223,128,7,13,13, - 9,1,252,58,110,198,192,192,192,192,102,60,16,24,8,56, - 8,12,12,9,0,0,24,12,0,255,99,99,104,120,104,99, - 99,255,8,12,12,9,0,0,12,24,0,255,99,99,104,120, - 104,99,99,255,8,12,12,9,0,0,28,54,0,255,99,99, - 104,120,104,99,99,255,8,12,12,9,0,0,36,36,0,255, - 99,99,104,120,104,99,99,255,6,12,12,9,1,0,96,48, - 0,252,48,48,48,48,48,48,48,252,6,12,12,9,1,0, - 24,48,0,252,48,48,48,48,48,48,48,252,6,12,12,9, - 1,0,56,108,0,252,48,48,48,48,48,48,48,252,6,12, - 12,9,1,0,72,72,0,252,48,48,48,48,48,48,48,252, - 8,9,9,9,0,0,252,102,99,99,243,99,99,102,252,9, - 12,24,9,0,0,26,0,44,0,0,0,231,128,99,0,115, - 0,115,0,107,0,107,0,103,0,103,0,243,0,8,12,12, - 9,0,0,48,24,0,60,102,195,195,195,195,195,102,60,8, - 12,12,9,0,0,12,24,0,60,102,195,195,195,195,195,102, - 60,8,12,12,9,0,0,56,108,0,60,102,195,195,195,195, - 195,102,60,8,12,12,9,0,0,52,88,0,60,102,195,195, - 195,195,195,102,60,8,12,12,9,0,0,36,36,0,60,102, - 195,195,195,195,195,102,60,6,7,7,9,1,1,132,204,120, - 48,120,204,132,8,10,10,9,0,0,1,62,102,203,203,211, - 211,227,102,188,9,12,24,9,0,0,24,0,12,0,0,0, - 247,128,99,0,99,0,99,0,99,0,99,0,99,0,99,0, - 62,0,9,12,24,9,0,0,12,0,24,0,0,0,247,128, - 99,0,99,0,99,0,99,0,99,0,99,0,99,0,62,0, - 9,12,24,9,0,0,28,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,99,0,99,0,99,0,62,0,9,12, - 24,9,0,0,18,0,18,0,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,10,12,24,9, - 255,0,6,0,12,0,0,0,243,192,97,128,51,0,51,0, - 30,0,12,0,12,0,12,0,63,0,8,9,9,9,0,0, - 240,96,126,99,99,102,124,96,240,8,9,9,9,0,0,60, - 102,102,108,102,99,99,107,238,8,10,10,9,0,0,48,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,12,24, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,56,108, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,52,88, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,36,36, - 0,124,6,6,126,198,206,119,8,10,10,9,0,0,24,36, - 24,124,6,6,126,198,206,119,9,7,14,9,0,0,119,0, - 29,128,8,128,127,128,200,0,205,128,119,0,8,11,11,9, - 0,252,61,103,195,192,192,99,62,16,24,8,56,8,10,10, - 9,0,0,48,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,12,24,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,28,54,0,60,102,195,255,192,103,62,8,10,10, - 9,0,0,36,36,0,60,102,195,255,192,103,62,6,10,10, - 9,1,0,96,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,24,48,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,112,216,0,240,48,48,48,48,48,252,6,10,10, - 9,1,0,72,72,0,240,48,48,48,48,48,252,8,10,10, - 9,0,0,236,56,204,62,102,195,195,195,102,60,9,10,20, - 9,0,0,26,0,44,0,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,247,128,8,10,10,9,0,0,48,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,12,24,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,28,54,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,52,88,0, - 60,102,195,195,195,102,60,8,10,10,9,0,0,36,36,0, - 60,102,195,195,195,102,60,8,7,7,9,0,1,24,24,0, - 255,0,24,24,8,7,7,9,0,0,61,102,207,219,243,102, - 188,9,10,20,9,0,0,24,0,12,0,0,0,231,0,99, - 0,99,0,99,0,99,0,103,0,59,128,9,10,20,9,0, - 0,12,0,24,0,0,0,231,0,99,0,99,0,99,0,99, - 0,103,0,59,128,9,10,20,9,0,0,28,0,54,0,0, - 0,231,0,99,0,99,0,99,0,99,0,103,0,59,128,9, - 10,20,9,0,0,36,0,36,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,13,26,9,0,253,6, - 0,12,0,0,0,227,128,99,0,99,0,54,0,54,0,28, - 0,28,0,24,0,24,0,124,0,8,12,12,9,0,253,224, - 96,110,115,99,99,99,115,110,96,96,240,9,13,26,9,0, - 253,18,0,18,0,0,0,227,128,99,0,99,0,54,0,54, - 0,28,0,28,0,24,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 3 y= 7 dx= 9 dy= 0 ascent=11 len=20 - Font Bounding box w=13 h=21 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB10r[1551] U8G_FONT_SECTION("u8g_font_courB10r") = { - 0,13,21,254,250,9,1,222,4,32,32,127,253,11,253,10, - 253,0,0,0,9,0,1,2,9,9,9,3,0,192,192,192, - 192,192,128,0,192,192,5,4,4,9,2,6,216,216,216,72, - 7,11,11,9,1,255,40,40,40,254,40,40,254,40,40,40, - 40,6,12,12,9,1,255,48,48,124,204,192,240,60,12,204, - 248,48,48,7,10,10,9,1,0,96,144,146,108,16,96,152, - 36,36,24,7,8,8,9,1,0,56,96,96,48,122,204,204, - 118,2,4,4,9,3,5,192,192,192,64,4,11,11,9,2, - 254,48,96,96,192,192,192,192,192,96,96,48,4,11,11,9, - 2,254,192,96,96,48,48,48,48,48,96,96,192,5,5,5, - 9,2,4,32,168,248,112,216,7,7,7,9,1,1,16,16, - 16,254,16,16,16,3,4,4,9,2,254,96,96,192,128,6, - 1,1,9,1,4,252,2,2,2,9,3,0,192,192,7,12, - 12,9,0,254,6,6,12,12,24,24,48,48,96,96,192,192, - 7,10,10,9,1,0,56,108,198,198,198,198,198,198,108,56, - 6,10,10,9,2,0,48,240,48,48,48,48,48,48,48,252, - 6,10,10,9,1,0,120,204,204,12,12,24,48,96,192,252, - 6,10,10,9,1,0,120,204,12,12,56,12,12,12,204,120, - 7,10,10,9,1,0,12,28,60,44,76,204,140,254,12,30, - 6,10,10,9,1,0,252,192,192,248,204,12,12,12,204,120, - 6,10,10,9,1,0,60,96,192,216,236,204,204,204,204,120, - 6,10,10,9,1,0,252,140,12,24,24,24,24,48,48,48, - 6,10,10,9,1,0,120,204,204,204,120,204,204,204,204,120, - 6,10,10,9,1,0,120,204,204,204,204,204,124,12,24,240, - 2,7,7,9,3,0,192,192,0,0,0,192,192,3,9,9, - 9,2,254,96,96,0,0,0,96,96,192,128,8,7,7,9, - 0,1,7,28,112,192,112,28,7,7,4,4,9,1,2,254, - 0,0,254,8,7,7,9,1,1,224,56,14,3,14,56,224, - 6,9,9,9,1,0,248,204,140,12,56,48,0,48,48,7, - 9,9,9,1,0,120,196,156,180,164,180,158,192,120,9,9, - 18,9,0,0,124,0,28,0,54,0,54,0,34,0,99,0, - 127,0,99,0,247,128,8,9,9,9,0,0,254,99,99,99, - 126,99,99,99,254,7,9,9,9,1,0,58,102,198,192,192, - 192,192,102,60,8,9,9,9,0,0,252,102,99,99,99,99, - 99,102,252,8,9,9,9,0,0,255,99,99,104,120,104,99, - 99,255,8,9,9,9,0,0,255,99,99,104,120,104,96,96, - 248,9,9,18,9,0,0,61,0,103,0,195,0,192,0,192, - 0,207,128,195,0,99,0,63,0,9,9,18,9,0,0,247, - 128,99,0,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,6,9,9,9,1,0,252,48,48,48,48,48,48,48,252, - 9,9,18,9,0,0,31,128,6,0,6,0,6,0,6,0, - 198,0,198,0,198,0,124,0,9,9,18,9,0,0,247,0, - 102,0,108,0,120,0,124,0,102,0,102,0,99,0,243,128, - 8,9,9,9,0,0,248,96,96,96,96,99,99,99,255,9, - 9,18,9,0,0,227,128,99,0,119,0,119,0,107,0,107, - 0,99,0,99,0,247,128,9,9,18,9,0,0,231,128,99, - 0,115,0,115,0,107,0,107,0,103,0,103,0,243,0,8, - 9,9,9,0,0,60,102,195,195,195,195,195,102,60,8,9, - 9,9,0,0,254,99,99,99,102,124,96,96,248,8,11,11, - 9,0,254,60,102,195,195,195,195,195,102,60,25,110,9,9, - 18,9,0,0,254,0,99,0,99,0,99,0,102,0,124,0, - 102,0,99,0,243,128,7,9,9,9,1,0,122,206,198,224, - 124,14,198,230,188,8,9,9,9,0,0,255,219,219,24,24, - 24,24,24,60,9,9,18,9,0,0,247,128,99,0,99,0, - 99,0,99,0,99,0,99,0,99,0,62,0,9,9,18,9, - 0,0,247,128,99,0,99,0,99,0,54,0,54,0,54,0, - 28,0,28,0,9,9,18,9,0,0,247,128,99,0,107,0, - 107,0,107,0,119,0,119,0,99,0,99,0,8,9,9,9, - 0,0,231,102,102,60,24,60,102,102,231,10,9,18,9,255, - 0,243,192,97,128,51,0,51,0,30,0,12,0,12,0,12, - 0,63,0,7,9,9,9,1,0,254,198,204,24,24,48,102, - 198,254,4,11,11,9,2,254,240,192,192,192,192,192,192,192, - 192,192,240,7,12,12,9,1,254,192,192,96,96,48,48,24, - 24,12,12,6,6,4,11,11,9,2,254,240,48,48,48,48, - 48,48,48,48,48,240,5,4,4,9,2,5,32,112,216,136, - 9,1,2,9,0,254,255,128,3,2,2,9,2,7,192,96, - 8,7,7,9,0,0,124,6,6,126,198,206,119,8,10,10, - 9,0,0,224,96,96,110,115,99,99,99,115,238,8,7,7, - 9,0,0,61,103,195,192,192,99,62,8,10,10,9,0,0, - 14,6,6,118,206,198,198,198,206,119,8,7,7,9,0,0, - 60,102,195,255,192,103,62,7,10,10,9,1,0,30,48,48, - 252,48,48,48,48,48,252,8,10,10,9,0,253,119,206,198, - 198,198,206,118,6,6,124,9,10,20,9,0,0,224,0,96, - 0,96,0,110,0,115,0,99,0,99,0,99,0,99,0,247, - 128,6,10,10,9,1,0,48,48,0,240,48,48,48,48,48, - 252,5,13,13,9,1,253,24,24,0,120,24,24,24,24,24, - 24,24,24,240,8,10,10,9,0,0,224,96,96,103,108,120, - 120,108,102,231,6,10,10,9,1,0,240,48,48,48,48,48, - 48,48,48,252,9,7,14,9,0,0,223,0,109,128,109,128, - 109,128,109,128,109,128,237,128,9,7,14,9,0,0,238,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,7,7,9, - 0,0,60,102,195,195,195,102,60,8,10,10,9,0,253,238, - 115,99,99,99,115,110,96,96,240,8,10,10,9,0,253,119, - 206,198,198,198,206,118,6,6,15,7,7,7,9,1,0,238, - 112,96,96,96,96,252,7,7,7,9,1,0,126,198,192,124, - 6,198,252,7,9,9,9,1,0,96,96,252,96,96,96,96, - 102,60,9,7,14,9,0,0,231,0,99,0,99,0,99,0, - 99,0,103,0,59,128,9,7,14,9,0,0,247,128,99,0, - 99,0,54,0,54,0,28,0,28,0,10,7,14,9,255,0, - 225,192,109,128,109,128,109,128,45,0,51,0,51,0,8,7, - 7,9,0,0,231,102,60,24,60,102,231,9,10,20,9,0, - 253,227,128,99,0,99,0,54,0,54,0,28,0,28,0,24, - 0,24,0,124,0,6,7,7,9,1,0,252,140,24,48,96, - 196,252,4,11,11,9,2,254,48,96,96,96,96,192,96,96, - 96,96,48,2,11,11,9,3,254,192,192,192,192,192,192,192, - 192,192,192,192,4,11,11,9,2,254,192,96,96,96,96,48, - 96,96,96,96,192,6,3,3,9,1,3,100,252,152,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=11 h=14 x= 4 y= 9 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12[3959] U8G_FONT_SECTION("u8g_font_courB12") = { - 0,16,24,253,250,10,2,51,4,246,32,255,253,14,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,1,2,10,10,10,4,253,192,192,0, - 192,192,192,192,192,192,192,7,10,10,10,1,0,24,24,62, - 102,192,192,102,60,24,24,8,10,10,10,1,0,30,51,48, - 48,252,252,48,51,227,254,8,7,7,10,1,1,195,126,102, - 66,102,126,195,10,10,20,10,0,0,243,192,97,128,51,0, - 51,0,30,0,63,0,12,0,63,0,12,0,63,0,2,13, - 13,10,4,254,192,192,192,192,192,192,0,192,192,192,192,192, - 192,10,12,24,10,0,255,31,128,49,128,49,128,120,0,206, - 0,195,128,112,192,28,192,7,128,99,0,99,0,126,0,5, - 2,2,10,3,8,216,216,10,10,20,10,0,0,12,0,63, - 0,97,128,78,128,216,192,216,192,78,128,97,128,63,0,12, - 0,6,7,7,10,2,3,120,12,124,204,124,0,252,9,7, - 14,10,0,0,25,128,51,0,102,0,204,0,102,0,51,0, - 25,128,8,5,5,10,1,2,255,255,3,3,3,7,2,2, - 10,1,4,254,254,10,10,20,10,0,0,12,0,63,0,97, - 128,92,128,214,192,220,192,82,128,97,128,63,0,12,0,5, - 1,1,10,2,9,248,5,5,5,10,2,6,112,216,136,216, - 112,8,9,9,10,1,0,24,24,255,255,24,24,0,255,255, - 5,6,6,10,2,5,112,216,48,96,200,248,5,6,6,10, - 2,5,112,216,48,24,216,112,4,3,3,10,3,8,48,96, - 192,9,10,20,10,0,253,231,0,99,0,99,0,99,0,99, - 0,103,0,123,128,96,0,96,0,96,0,9,12,24,10,0, - 255,63,128,91,0,219,0,219,0,219,0,91,0,59,0,27, - 0,27,0,27,0,27,0,63,128,3,2,2,10,3,4,224, - 224,4,4,4,10,3,253,32,96,48,240,6,6,6,10,2, - 5,48,240,48,48,48,252,6,7,7,10,2,3,120,204,204, - 204,120,0,252,9,7,14,10,0,0,204,0,102,0,51,0, - 25,128,51,0,102,0,204,0,10,11,22,10,0,0,32,0, - 225,0,99,0,98,0,102,0,252,128,25,128,19,128,54,128, - 111,192,65,128,10,11,22,10,0,0,32,0,224,128,97,128, - 99,0,102,0,255,128,10,192,25,128,51,0,102,64,71,192, - 11,11,22,10,0,0,112,0,216,128,49,128,27,0,218,0, - 118,64,12,192,9,192,27,64,55,224,32,192,7,10,10,10, - 1,253,24,24,0,24,24,112,192,198,198,124,10,14,28,10, - 0,0,48,0,24,0,12,0,0,0,60,0,12,0,30,0, - 18,0,51,0,51,0,63,0,97,128,97,128,243,192,10,14, - 28,10,0,0,6,0,12,0,24,0,0,0,60,0,12,0, - 30,0,18,0,51,0,51,0,63,0,97,128,97,128,243,192, - 10,14,28,10,0,0,12,0,30,0,51,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,59,0,110,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,13,26,10,0,0,54,0,54,0,0,0,60,0, - 12,0,30,0,18,0,51,0,51,0,63,0,97,128,97,128, - 243,192,10,14,28,10,0,0,28,0,54,0,54,0,28,0, - 60,0,12,0,30,0,18,0,51,0,51,0,63,0,97,128, - 97,128,243,192,10,10,20,10,0,0,127,192,60,192,44,0, - 45,0,111,0,77,0,124,0,76,192,204,192,255,192,9,13, - 26,10,0,253,30,128,115,128,97,128,192,0,192,0,192,0, - 192,0,97,128,115,128,30,0,24,0,12,0,60,0,8,14, - 14,10,1,0,48,24,12,0,255,99,96,100,124,100,96,99, - 99,255,8,14,14,10,1,0,6,12,24,0,255,99,96,100, - 124,100,96,99,99,255,8,14,14,10,1,0,24,60,102,0, - 255,99,96,100,124,100,96,99,99,255,8,13,13,10,1,0, - 54,54,0,255,99,96,100,124,100,96,99,99,255,8,14,14, - 10,1,0,48,24,12,0,255,24,24,24,24,24,24,24,24, - 255,8,14,14,10,1,0,12,24,48,0,255,24,24,24,24, - 24,24,24,24,255,8,14,14,10,1,0,24,60,102,0,255, - 24,24,24,24,24,24,24,24,255,8,13,13,10,1,0,54, - 54,0,255,24,24,24,24,24,24,24,24,255,9,10,20,10, - 0,0,252,0,103,0,99,0,97,128,249,128,97,128,97,128, - 99,0,103,0,252,0,10,13,26,10,0,0,59,0,110,0, - 0,0,247,192,113,128,121,128,105,128,109,128,109,128,101,128, - 103,128,99,128,251,128,9,14,28,10,0,0,48,0,24,0, - 12,0,0,0,62,0,99,0,99,0,193,128,193,128,193,128, - 193,128,99,0,99,0,62,0,9,14,28,10,0,0,6,0, - 12,0,24,0,0,0,62,0,99,0,99,0,193,128,193,128, - 193,128,193,128,99,0,99,0,62,0,9,14,28,10,0,0, - 12,0,30,0,51,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,59,0,110,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,9,13,26,10, - 0,0,54,0,54,0,0,0,62,0,99,0,99,0,193,128, - 193,128,193,128,193,128,99,0,99,0,62,0,8,7,7,10, - 1,1,227,118,60,24,60,110,199,9,12,24,10,0,255,0, - 128,63,128,99,0,103,0,197,128,205,128,217,128,209,128,115, - 0,99,0,254,0,128,0,10,14,28,10,0,0,48,0,24, - 0,12,0,0,0,243,192,97,128,97,128,97,128,97,128,97, - 128,97,128,97,128,51,0,30,0,10,14,28,10,0,0,3, - 0,6,0,12,0,0,0,243,192,97,128,97,128,97,128,97, - 128,97,128,97,128,97,128,51,0,30,0,10,14,28,10,0, - 0,12,0,30,0,51,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,13,26, - 10,0,0,27,0,27,0,0,0,243,192,97,128,97,128,97, - 128,97,128,97,128,97,128,97,128,51,0,30,0,10,14,28, - 10,0,0,3,0,6,0,12,0,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,9, - 10,20,10,0,0,240,0,96,0,126,0,99,0,97,128,99, - 0,126,0,96,0,96,0,240,0,8,11,11,10,0,0,60, - 102,102,100,108,102,99,99,99,122,236,8,11,11,10,1,0, - 48,24,12,0,60,102,6,126,198,198,123,8,11,11,10,1, - 0,6,12,24,0,60,102,6,126,198,198,123,8,11,11,10, - 1,0,24,60,102,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,59,110,0,60,102,6,126,198,198,123,8,10,10, - 10,1,0,54,54,0,60,102,6,126,198,198,123,8,12,12, - 10,1,0,28,54,54,28,0,60,102,6,126,198,198,123,10, - 7,14,10,255,0,59,128,108,192,12,192,127,192,204,0,204, - 192,119,128,8,10,10,10,1,253,61,103,195,192,192,227,126, - 24,12,60,8,11,11,10,1,0,48,24,12,0,60,102,195, - 255,192,99,62,8,11,11,10,1,0,6,12,24,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,24,60,102,0,60, - 102,195,255,192,99,62,8,10,10,10,1,0,54,54,0,60, - 102,195,255,192,99,62,8,11,11,10,1,0,96,48,24,0, - 120,24,24,24,24,24,255,8,11,11,10,1,0,6,12,24, - 0,120,24,24,24,24,24,255,8,11,11,10,1,0,24,60, - 102,0,120,24,24,24,24,24,255,8,10,10,10,1,0,108, - 108,0,120,24,24,24,24,24,255,8,12,12,10,1,0,224, - 118,28,60,198,62,103,227,195,195,102,60,9,10,20,10,0, - 0,59,0,110,0,0,0,238,0,115,0,99,0,99,0,99, - 0,99,0,247,128,8,11,11,10,1,0,48,24,12,0,60, - 102,195,195,195,102,60,8,11,11,10,1,0,12,24,48,0, - 60,102,195,195,195,102,60,8,11,11,10,1,0,24,60,102, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,59,110, - 0,60,102,195,195,195,102,60,8,10,10,10,1,0,108,108, - 0,60,102,195,195,195,102,60,8,8,8,10,1,1,24,24, - 0,255,255,0,24,24,8,9,9,10,1,255,3,63,102,207, - 219,243,102,252,192,9,11,22,10,0,0,48,0,24,0,12, - 0,0,0,231,0,99,0,99,0,99,0,99,0,103,0,59, - 128,9,11,22,10,0,0,12,0,24,0,48,0,0,0,231, - 0,99,0,99,0,99,0,99,0,103,0,59,128,9,11,22, - 10,0,0,24,0,60,0,102,0,0,0,231,0,99,0,99, - 0,99,0,99,0,103,0,59,128,9,10,20,10,0,0,54, - 0,54,0,0,0,231,0,99,0,99,0,99,0,99,0,103, - 0,59,128,10,14,28,10,0,253,6,0,12,0,24,0,0, - 0,243,192,97,128,51,0,51,0,30,0,30,0,12,0,24, - 0,24,0,124,0,9,14,28,10,0,253,224,0,96,0,96, - 0,96,0,110,0,115,0,97,128,97,128,97,128,115,0,110, - 0,96,0,96,0,248,0,10,13,26,10,0,253,54,0,54, - 0,0,0,243,192,97,128,51,0,51,0,30,0,30,0,12, - 0,12,0,24,0,124,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB12r[1857] U8G_FONT_SECTION("u8g_font_courB12r") = { - 0,16,24,253,250,10,2,51,4,246,32,127,253,12,253,11, - 253,0,0,0,10,0,1,2,11,11,10,3,0,192,192,192, - 192,192,192,192,192,0,192,192,6,5,5,10,2,6,204,204, - 204,204,204,9,12,24,10,0,255,54,0,54,0,54,0,54, - 0,255,128,54,0,54,0,255,128,54,0,54,0,54,0,54, - 0,7,13,13,10,1,255,24,24,126,198,192,224,124,14,6, - 198,252,48,48,8,11,11,10,1,0,120,204,204,120,7,60, - 224,30,51,51,30,7,9,9,10,1,0,56,108,96,48,118, - 222,204,204,126,2,5,5,10,4,6,192,192,192,192,192,4, - 13,13,10,3,254,48,96,96,96,192,192,192,192,192,96,96, - 96,48,4,13,13,10,2,254,192,96,96,96,48,48,48,48, - 48,96,96,96,192,8,6,6,10,1,5,24,24,255,60,60, - 102,8,8,8,10,1,1,24,24,24,255,255,24,24,24,3, - 5,5,10,3,253,224,224,96,192,128,7,2,2,10,1,4, - 254,254,3,2,2,10,3,0,224,224,7,14,14,10,1,254, - 6,6,12,12,12,24,24,48,48,48,96,96,192,192,8,11, - 11,10,1,0,60,102,102,195,195,195,195,195,102,102,60,8, - 11,11,10,1,0,24,120,216,24,24,24,24,24,24,24,255, - 7,11,11,10,1,0,120,204,134,6,6,12,24,48,96,198, - 254,7,11,11,10,1,0,120,204,134,12,56,12,6,6,134, - 204,120,8,11,11,10,1,0,6,14,30,54,102,70,198,255, - 6,6,31,7,11,11,10,1,0,254,192,192,192,252,198,6, - 6,6,204,248,8,11,11,10,1,0,30,112,96,192,220,230, - 195,195,195,102,60,7,11,11,10,1,0,254,198,6,12,12, - 24,24,24,48,48,48,7,11,11,10,1,0,56,108,198,68, - 56,108,198,198,198,108,56,8,11,11,10,1,0,60,102,195, - 195,103,59,3,3,6,14,120,3,7,7,10,3,0,224,224, - 0,0,0,224,224,3,10,10,10,3,253,224,224,0,0,0, - 224,224,96,192,128,9,9,18,10,1,0,1,128,7,128,30, - 0,120,0,224,0,120,0,30,0,7,128,1,128,9,5,10, - 10,0,2,255,128,255,128,0,0,255,128,255,128,9,9,18, - 10,0,0,192,0,240,0,60,0,15,0,3,128,15,0,60, - 0,240,0,192,0,7,10,10,10,1,0,124,198,198,6,28, - 48,48,0,48,48,9,12,24,10,0,255,62,0,99,0,193, - 128,221,128,178,128,178,128,178,128,178,128,223,0,192,0,99, - 0,62,0,10,10,20,10,0,0,60,0,12,0,30,0,18, - 0,51,0,51,0,63,0,97,128,97,128,243,192,9,10,20, - 10,0,0,254,0,99,0,97,128,99,0,126,0,99,0,97, - 128,97,128,99,0,254,0,9,10,20,10,0,0,30,128,115, - 128,97,128,192,0,192,0,192,0,192,0,97,128,115,128,30, - 0,9,10,20,10,0,0,252,0,103,0,99,0,97,128,97, - 128,97,128,97,128,99,0,103,0,252,0,8,10,10,10,1, - 0,255,99,96,100,124,100,96,99,99,255,8,10,10,10,1, - 0,255,99,96,100,124,100,96,96,96,248,10,10,20,10,0, - 0,30,128,115,128,97,128,192,0,192,0,199,192,193,128,97, - 128,113,128,31,0,9,10,20,10,0,0,247,128,99,0,99, - 0,99,0,127,0,99,0,99,0,99,0,99,0,247,128,8, - 10,10,10,1,0,255,24,24,24,24,24,24,24,24,255,9, - 10,20,10,0,0,63,128,6,0,6,0,6,0,6,0,6, - 0,198,0,198,0,198,0,124,0,9,10,20,10,0,0,247, - 128,99,0,102,0,108,0,120,0,124,0,102,0,102,0,99, - 0,251,128,9,10,20,10,0,0,252,0,48,0,48,0,48, - 0,48,0,48,0,49,128,49,128,49,128,255,128,10,10,20, - 10,0,0,225,192,97,128,115,128,115,128,127,128,109,128,109, - 128,97,128,97,128,243,192,10,10,20,10,0,0,247,192,113, - 128,121,128,105,128,109,128,109,128,101,128,103,128,99,128,251, - 128,9,10,20,10,0,0,62,0,99,0,99,0,193,128,193, - 128,193,128,193,128,99,0,99,0,62,0,9,10,20,10,0, - 0,254,0,99,0,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,252,0,9,12,24,10,0,254,62,0,99,0,99, - 0,193,128,193,128,193,128,193,128,99,0,99,0,62,0,25, - 128,63,0,9,10,20,10,0,0,252,0,102,0,99,0,99, - 0,102,0,124,0,102,0,99,0,99,0,251,128,8,10,10, - 10,1,0,61,103,195,224,120,30,7,195,230,188,8,10,10, - 10,1,0,255,153,153,153,24,24,24,24,24,126,10,10,20, - 10,0,0,243,192,97,128,97,128,97,128,97,128,97,128,97, - 128,97,128,51,0,30,0,10,10,20,10,0,0,243,192,97, - 128,97,128,51,0,51,0,51,0,30,0,30,0,12,0,12, - 0,10,10,20,10,0,0,243,192,97,128,109,128,109,128,109, - 128,63,0,51,0,51,0,51,0,51,0,10,10,20,10,0, - 0,243,192,97,128,51,0,30,0,12,0,12,0,30,0,51, - 0,97,128,243,192,10,10,20,10,0,0,243,192,97,128,51, - 0,51,0,30,0,12,0,12,0,12,0,12,0,63,0,7, - 10,10,10,1,0,254,198,204,28,24,48,112,102,198,254,4, - 13,13,10,3,254,240,192,192,192,192,192,192,192,192,192,192, - 192,240,7,14,14,10,1,254,192,192,96,96,96,48,48,56, - 24,24,12,12,6,6,4,13,13,10,2,254,240,48,48,48, - 48,48,48,48,48,48,48,48,240,8,4,4,10,1,7,24, - 60,102,195,10,2,4,10,0,253,255,192,255,192,4,3,3, - 10,2,8,192,96,48,8,7,7,10,1,0,60,102,6,126, - 198,198,123,9,11,22,10,0,0,224,0,96,0,96,0,96, - 0,110,0,115,0,97,128,97,128,97,128,115,0,238,0,8, - 7,7,10,0,0,61,103,195,192,192,99,62,9,11,22,10, - 0,0,7,0,3,0,3,0,3,0,59,0,103,0,195,0, - 195,0,195,0,103,0,59,128,8,7,7,10,1,0,60,102, - 195,255,192,99,62,8,11,11,10,1,0,30,51,48,48,254, - 48,48,48,48,48,254,9,10,20,10,0,253,59,128,103,0, - 195,0,195,0,195,0,103,0,59,0,3,0,3,0,62,0, - 9,11,22,10,0,0,224,0,96,0,96,0,96,0,110,0, - 115,0,99,0,99,0,99,0,99,0,247,128,8,10,10,10, - 1,0,24,24,0,120,24,24,24,24,24,255,6,13,13,10, - 1,253,24,24,0,252,12,12,12,12,12,12,12,12,248,9, - 11,22,10,0,0,224,0,96,0,96,0,96,0,111,128,102, - 0,108,0,120,0,108,0,102,0,239,128,8,11,11,10,1, - 0,120,24,24,24,24,24,24,24,24,24,255,10,7,14,10, - 0,0,237,128,127,128,109,128,109,128,109,128,109,128,237,192, - 9,7,14,10,0,0,238,0,115,0,99,0,99,0,99,0, - 99,0,247,128,8,7,7,10,1,0,60,102,195,195,195,102, - 60,9,10,20,10,0,253,238,0,115,0,97,128,97,128,97, - 128,115,0,110,0,96,0,96,0,248,0,9,10,20,10,0, - 253,59,128,103,0,195,0,195,0,195,0,103,0,59,0,3, - 0,3,0,15,128,9,7,14,10,0,0,247,0,57,128,48, - 0,48,0,48,0,48,0,254,0,7,7,7,10,1,0,126, - 198,224,124,14,198,252,9,9,18,10,0,0,48,0,48,0, - 255,0,48,0,48,0,48,0,48,0,49,128,31,0,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,10,7,14,10,0,0,243,192,97,128,51,0,51,0, - 30,0,30,0,12,0,10,7,14,10,0,0,243,192,97,128, - 109,128,45,0,63,0,51,0,51,0,8,7,7,10,1,0, - 231,102,60,24,60,102,231,10,10,20,10,0,253,243,192,97, - 128,51,0,51,0,30,0,30,0,12,0,24,0,24,0,124, - 0,7,7,7,10,1,0,254,204,24,48,96,198,254,4,13, - 13,10,3,254,48,96,96,96,96,64,192,96,96,96,96,96, - 48,2,13,13,10,4,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,4,13,13,10,3,254,192,96,96,96,96,32, - 48,96,96,96,96,96,192,8,3,3,10,1,3,112,219,14, - 255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=17 x= 4 y= 9 dx=11 dy= 0 ascent=15 len=34 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14[4784] U8G_FONT_SECTION("u8g_font_courB14") = { - 0,17,26,252,249,11,2,101,5,155,32,255,252,15,251,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,11,0,1,3,12,12, - 11,4,252,192,192,0,192,192,224,224,224,224,224,224,224,8, - 13,13,11,1,0,24,24,24,63,127,227,192,192,227,127,62, - 24,24,10,11,22,11,0,0,62,0,127,0,99,0,96,0, - 48,0,252,0,252,0,48,0,96,192,255,192,255,128,8,9, - 9,11,1,1,195,255,126,195,195,195,126,255,195,10,11,22, - 11,0,0,243,192,243,192,97,128,51,0,30,0,63,0,12, - 0,63,0,12,0,63,0,63,0,2,16,16,11,4,253,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,8, - 14,14,11,1,254,63,115,99,96,248,222,199,227,123,31,6, - 198,206,252,6,2,2,11,2,9,204,204,11,12,24,11,0, - 0,14,0,63,128,113,192,110,192,219,96,216,96,216,96,219, - 96,110,192,113,192,63,128,14,0,6,8,8,11,2,3,112, - 24,120,216,216,108,0,252,9,7,14,11,0,1,25,128,51, - 0,102,0,204,0,102,0,51,0,25,128,9,4,8,11,1, - 4,255,128,255,128,1,128,1,128,8,2,2,11,1,4,255, - 255,11,12,24,11,0,0,14,0,63,128,113,192,126,192,219, - 96,219,96,222,96,223,96,123,224,112,192,63,128,14,0,5, - 2,2,11,2,9,248,248,5,5,5,11,2,6,112,136,136, - 136,112,10,10,20,11,0,0,12,0,12,0,12,0,255,192, - 255,192,12,0,12,0,0,0,255,192,255,192,6,7,7,11, - 2,5,120,204,12,24,48,100,252,6,7,7,11,2,5,120, - 204,12,56,12,204,120,4,3,3,11,4,9,48,96,192,10, - 13,26,11,0,252,231,128,231,128,97,128,97,128,97,128,97, - 128,99,128,127,192,125,192,96,0,96,0,96,0,96,0,8, - 14,14,11,1,254,63,106,202,202,202,106,58,10,10,10,10, - 10,10,59,2,3,3,11,4,3,192,192,192,4,5,5,11, - 3,252,64,96,48,240,224,6,7,7,11,2,5,48,240,48, - 48,48,48,252,6,8,8,11,2,3,120,204,132,132,204,120, - 0,252,9,7,14,11,1,1,204,0,102,0,51,0,25,128, - 51,0,102,0,204,0,11,12,24,11,0,0,48,0,240,32, - 48,96,48,192,49,128,51,64,254,192,13,192,26,192,52,192, - 103,224,64,192,11,12,24,11,0,0,48,0,240,32,48,96, - 48,192,49,128,51,192,255,96,12,96,24,192,49,128,99,32, - 71,224,11,12,24,11,0,0,120,0,204,32,12,96,56,192, - 13,128,207,64,126,192,13,192,26,192,52,192,103,224,64,192, - 7,12,12,11,2,252,24,24,0,24,24,24,120,224,192,198, - 254,124,12,15,30,11,255,0,24,0,12,0,6,0,0,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,12,15,30,11,255,0,3,0,6,0, - 12,0,0,0,62,0,63,0,15,0,15,0,25,128,25,128, - 63,192,63,192,48,192,249,240,249,240,12,15,30,11,255,0, - 6,0,15,0,25,128,0,0,62,0,63,0,15,0,15,0, - 25,128,25,128,63,192,63,192,48,192,249,240,249,240,12,14, - 28,11,255,0,29,128,55,0,0,0,62,0,63,0,15,0, - 15,0,25,128,25,128,63,192,63,192,48,192,249,240,249,240, - 12,14,28,11,255,0,25,128,25,128,0,0,62,0,63,0, - 15,0,15,0,25,128,25,128,63,192,63,192,48,192,249,240, - 249,240,12,15,30,11,255,0,6,0,9,0,9,0,6,0, - 62,0,63,0,15,0,15,0,25,128,25,128,63,192,63,192, - 48,192,249,240,249,240,11,11,22,11,0,0,63,224,63,224, - 30,96,54,0,55,192,39,192,126,0,126,0,102,96,239,224, - 239,224,10,16,32,11,0,251,30,192,127,192,97,192,192,192, - 192,0,192,0,192,0,192,0,96,192,127,192,63,0,8,0, - 12,0,2,0,30,0,28,0,10,15,30,11,0,0,24,0, - 12,0,6,0,0,0,255,192,255,192,48,192,54,192,62,0, - 62,0,54,0,48,192,48,192,255,192,255,192,10,15,30,11, - 0,0,3,0,6,0,12,0,0,0,255,192,255,192,48,192, - 54,192,62,0,62,0,54,0,48,192,48,192,255,192,255,192, - 10,15,30,11,0,0,12,0,30,0,51,0,0,0,255,192, - 255,192,48,192,54,192,62,0,62,0,54,0,48,192,48,192, - 255,192,255,192,10,14,28,11,0,0,51,0,51,0,0,0, - 255,192,255,192,48,192,54,192,62,0,62,0,54,0,48,192, - 48,192,255,192,255,192,8,15,15,11,1,0,96,48,24,0, - 255,255,24,24,24,24,24,24,24,255,255,8,15,15,11,1, - 0,6,12,24,0,255,255,24,24,24,24,24,24,24,255,255, - 8,15,15,11,1,0,24,60,102,0,255,255,24,24,24,24, - 24,24,24,255,255,8,14,14,11,1,0,102,102,0,255,255, - 24,24,24,24,24,24,24,255,255,10,11,22,11,0,0,254, - 0,255,128,97,128,96,192,248,192,248,192,96,192,96,192,97, - 128,255,128,254,0,10,14,28,11,0,0,59,0,110,0,0, - 0,231,192,247,192,113,128,121,128,105,128,109,128,101,128,103, - 128,99,128,251,128,249,128,10,15,30,11,0,0,24,0,12, - 0,6,0,0,0,30,0,127,128,97,128,192,192,192,192,192, - 192,192,192,192,192,97,128,127,128,30,0,10,15,30,11,0, - 0,3,0,6,0,12,0,0,0,30,0,127,128,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,127,128,30,0,10, - 15,30,11,0,0,12,0,30,0,51,0,0,0,30,0,127, - 128,97,128,192,192,192,192,192,192,192,192,192,192,97,128,127, - 128,30,0,10,14,28,11,0,0,59,0,110,0,0,0,30, - 0,127,128,97,128,192,192,192,192,192,192,192,192,192,192,97, - 128,127,128,30,0,10,14,28,11,0,0,51,0,51,0,0, - 0,30,0,127,128,97,128,192,192,192,192,192,192,192,192,192, - 192,97,128,127,128,30,0,10,10,20,11,0,0,64,128,225, - 192,115,128,55,0,30,0,30,0,59,0,115,128,225,192,64, - 128,12,13,26,11,255,255,0,48,15,96,63,192,49,192,99, - 96,102,96,102,96,108,96,120,96,48,192,63,192,111,0,192, - 0,10,15,30,11,0,0,48,0,24,0,12,0,0,0,251, - 192,251,192,97,128,97,128,97,128,97,128,97,128,97,128,115, - 128,63,0,30,0,10,15,30,11,0,0,3,0,6,0,12, - 0,0,0,251,192,251,192,97,128,97,128,97,128,97,128,97, - 128,97,128,115,128,63,0,30,0,10,15,30,11,0,0,12, - 0,30,0,51,0,0,0,251,192,251,192,97,128,97,128,97, - 128,97,128,97,128,97,128,115,128,63,0,30,0,10,14,28, - 11,0,0,51,0,51,0,0,0,251,192,251,192,97,128,97, - 128,97,128,97,128,97,128,97,128,115,128,63,0,30,0,10, - 15,30,11,0,0,3,0,6,0,12,0,0,0,243,192,243, - 192,97,128,51,0,63,0,30,0,12,0,12,0,12,0,63, - 0,63,0,10,11,22,11,0,0,240,0,224,0,127,0,127, - 128,97,192,96,192,97,192,127,128,127,0,224,0,240,0,9, - 12,24,11,1,0,60,0,126,0,99,0,99,0,103,0,110, - 0,103,0,97,128,97,128,105,128,239,128,231,0,10,13,26, - 11,0,0,24,0,12,0,6,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,3,0,6,0,12,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,13,26, - 11,0,0,12,0,30,0,51,0,0,0,63,0,127,128,97, - 128,1,128,127,128,255,128,193,128,255,192,125,192,10,12,24, - 11,0,0,59,0,110,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,12,24,11,0, - 0,51,0,51,0,0,0,63,0,127,128,97,128,1,128,127, - 128,255,128,193,128,255,192,125,192,10,14,28,11,0,0,12, - 0,18,0,18,0,12,0,0,0,63,0,127,128,97,128,1, - 128,127,128,255,128,193,128,255,192,125,192,10,9,18,11,0, - 0,123,128,255,192,204,192,12,192,127,192,255,192,204,0,255, - 192,123,128,10,14,28,11,0,251,61,128,127,128,227,128,193, - 128,192,0,192,0,225,192,127,192,63,0,8,0,12,0,6, - 0,30,0,28,0,10,13,26,11,0,0,24,0,12,0,6, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,3,0,6,0,12, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,13,26,11,0,0,12,0,30,0,51, - 0,0,0,30,0,127,128,225,192,192,192,255,192,255,192,224, - 0,127,192,31,192,10,12,24,11,0,0,51,0,51,0,0, - 0,30,0,127,128,225,192,192,192,255,192,255,192,224,0,127, - 192,31,192,8,13,13,11,1,0,48,24,12,0,248,248,24, - 24,24,24,24,255,255,8,13,13,11,1,0,12,24,48,0, - 248,248,24,24,24,24,24,255,255,8,13,13,11,1,0,24, - 60,102,0,248,248,24,24,24,24,24,255,255,8,12,12,11, - 1,0,204,204,0,248,248,24,24,24,24,24,255,255,10,13, - 26,11,0,0,225,128,251,128,62,0,119,0,195,128,63,128, - 97,192,192,192,192,192,192,192,225,192,127,128,30,0,10,12, - 24,11,0,0,59,0,110,0,0,0,239,0,255,128,113,128, - 97,128,97,128,97,128,97,128,243,192,243,192,10,13,26,11, - 0,0,24,0,12,0,6,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,3,0,6,0,12,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,13,26,11, - 0,0,12,0,30,0,51,0,0,0,30,0,127,128,225,192, - 192,192,192,192,192,192,225,192,127,128,30,0,10,12,24,11, - 0,0,59,0,110,0,0,0,30,0,127,128,225,192,192,192, - 192,192,192,192,225,192,127,128,30,0,10,12,24,11,0,0, - 51,0,51,0,0,0,30,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,30,0,10,10,20,11,0,0,12,0, - 12,0,0,0,0,0,255,192,255,192,0,0,0,0,12,0, - 12,0,12,11,22,11,255,255,0,48,15,96,63,192,113,224, - 99,96,102,96,108,96,120,224,63,192,111,0,192,0,10,13, - 26,11,0,0,24,0,12,0,6,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,6,0,12,0,24,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,13, - 26,11,0,0,12,0,30,0,51,0,0,0,231,128,231,128, - 97,128,97,128,97,128,97,128,99,128,127,192,61,192,10,12, - 24,11,0,0,51,0,51,0,0,0,231,128,231,128,97,128, - 97,128,97,128,97,128,99,128,127,192,61,192,10,17,34,11, - 0,252,3,0,6,0,12,0,0,0,243,192,243,192,97,128, - 97,128,51,0,51,0,30,0,30,0,12,0,24,0,56,0, - 252,0,252,0,10,16,32,11,0,252,224,0,224,0,96,0, - 111,0,127,128,113,192,96,192,96,192,96,192,113,192,127,128, - 111,0,96,0,96,0,248,0,248,0,10,16,32,11,0,252, - 51,0,51,0,0,0,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0 - }; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=12 h=16 x= 4 y= 9 dx=11 dy= 0 ascent=13 len=32 - Font Bounding box w=17 h=26 x=-4 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB14r[2167] U8G_FONT_SECTION("u8g_font_courB14r") = { - 0,17,26,252,249,11,2,101,5,155,32,127,252,13,252,12, - 252,0,0,0,11,0,1,3,12,12,11,4,0,224,224,224, - 224,224,224,192,192,192,0,192,192,6,6,6,11,2,6,204, - 204,204,204,136,136,8,14,14,11,1,255,54,54,54,54,255, - 255,108,108,255,255,108,108,108,108,8,15,15,11,1,254,24, - 24,63,127,195,192,240,126,15,3,199,254,252,24,24,8,12, - 12,11,1,0,112,216,136,216,115,14,120,206,27,17,27,14, - 8,10,10,11,1,0,60,126,102,96,48,123,255,206,255,123, - 2,6,6,11,4,6,192,192,192,192,128,128,4,15,15,11, - 4,253,48,48,96,96,192,192,192,192,192,192,192,96,96,48, - 48,4,15,15,11,2,253,192,192,96,96,48,48,48,48,48, - 48,48,96,96,192,192,8,8,8,11,1,4,24,24,255,255, - 24,126,231,66,10,10,20,11,0,0,12,0,12,0,12,0, - 12,0,255,192,255,192,12,0,12,0,12,0,12,0,4,5, - 5,11,2,253,48,48,96,64,128,8,2,2,11,1,4,255, - 255,2,2,2,11,4,0,192,192,9,16,32,11,0,253,1, - 128,1,128,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,192,0,192,0,8, - 12,12,11,1,0,60,126,102,195,195,195,195,195,195,102,126, - 60,8,12,12,11,1,0,24,248,248,24,24,24,24,24,24, - 24,255,255,8,12,12,11,1,0,60,126,199,195,3,7,14, - 28,56,112,255,255,8,12,12,11,1,0,60,126,102,6,14, - 60,62,7,3,199,254,124,8,12,12,11,1,0,14,30,62, - 54,102,102,198,255,255,6,31,31,8,12,12,11,1,0,127, - 127,96,96,126,127,103,3,3,199,254,124,8,12,12,11,1, - 0,15,63,112,96,220,254,231,195,195,231,126,60,8,12,12, - 11,1,0,255,255,195,6,6,6,12,12,12,24,24,24,8, - 12,12,11,1,0,60,126,231,195,102,60,126,231,195,231,126, - 60,8,12,12,11,1,0,60,126,195,195,195,199,127,59,3, - 6,254,248,2,8,8,11,4,0,192,192,0,0,0,0,192, - 192,4,11,11,11,2,253,48,48,0,0,0,0,48,48,96, - 64,128,9,9,18,11,1,1,1,128,7,128,30,0,120,0, - 224,0,120,0,30,0,7,128,1,128,10,6,12,11,0,2, - 255,192,255,192,0,0,0,0,255,192,255,192,9,9,18,11, - 1,1,192,0,240,0,60,0,15,0,3,128,15,0,60,0, - 240,0,192,0,7,11,11,11,2,0,124,254,198,6,14,60, - 48,48,0,48,48,9,13,26,11,1,255,60,0,102,0,195, - 0,207,0,219,0,219,0,219,0,219,0,207,128,192,0,192, - 0,99,0,62,0,12,11,22,11,255,0,62,0,63,0,15, - 0,25,128,25,128,25,128,63,192,63,192,48,192,249,240,249, - 240,10,11,22,11,0,0,254,0,255,0,49,128,49,128,63, - 0,63,128,48,192,48,192,48,192,255,128,255,0,10,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,192, - 0,224,0,112,192,127,192,31,0,10,11,22,11,0,0,254, - 0,255,128,99,128,97,192,96,192,96,192,96,192,97,192,99, - 128,255,128,254,0,10,11,22,11,0,0,255,192,255,192,48, - 192,54,192,62,0,62,0,54,0,48,192,48,192,255,192,255, - 192,10,11,22,11,0,0,255,192,255,192,48,192,54,192,62, - 0,62,0,54,0,48,0,48,0,254,0,254,0,11,11,22, - 11,0,0,30,192,127,192,113,192,224,192,192,0,192,0,199, - 224,231,224,112,192,127,192,31,128,10,11,22,11,0,0,243, - 192,243,192,97,128,97,128,127,128,127,128,97,128,97,128,97, - 128,243,192,243,192,8,11,11,11,1,0,255,255,24,24,24, - 24,24,24,24,255,255,10,11,22,11,0,0,31,192,31,192, - 3,0,3,0,3,0,3,0,195,0,195,0,195,0,254,0, - 60,0,11,11,22,11,0,0,247,192,247,192,99,0,102,0, - 108,0,124,0,126,0,103,0,99,128,249,224,249,224,10,11, - 22,11,0,0,252,0,252,0,48,0,48,0,48,0,48,0, - 48,192,48,192,48,192,255,192,255,192,10,11,22,11,0,0, - 225,192,225,192,115,128,115,128,127,128,109,128,109,128,109,128, - 97,128,243,192,243,192,10,11,22,11,0,0,231,192,247,192, - 113,128,121,128,105,128,109,128,101,128,103,128,99,128,251,128, - 249,128,10,11,22,11,0,0,30,0,127,128,115,128,225,192, - 192,192,192,192,192,192,225,192,115,128,127,128,30,0,10,11, - 22,11,0,0,255,0,255,128,97,192,96,192,97,192,127,128, - 127,0,96,0,96,0,252,0,252,0,10,13,26,11,0,254, - 30,0,127,128,115,128,225,192,192,192,192,192,192,192,225,192, - 115,128,127,128,30,64,63,192,51,128,11,11,22,11,0,0, - 255,0,255,128,97,192,96,192,97,192,127,128,127,0,99,128, - 97,192,252,224,252,224,9,11,22,11,1,0,61,128,255,128, - 195,128,193,128,248,0,127,0,15,128,193,128,225,128,255,0, - 222,0,10,11,22,11,0,0,255,192,255,192,204,192,204,192, - 204,192,12,0,12,0,12,0,12,0,127,128,127,128,10,11, - 22,11,0,0,247,192,247,192,97,128,97,128,97,128,97,128, - 97,128,97,128,115,128,63,0,30,0,12,11,22,11,255,0, - 249,240,249,240,96,96,96,96,48,192,48,192,25,128,25,128, - 15,0,15,0,6,0,12,11,22,11,255,0,249,240,249,240, - 96,96,102,96,102,96,111,96,111,96,57,192,57,192,48,192, - 48,192,10,11,22,11,0,0,243,192,243,192,97,128,51,0, - 30,0,12,0,30,0,51,0,97,128,243,192,243,192,10,11, - 22,11,0,0,243,192,243,192,97,128,51,0,63,0,30,0, - 12,0,12,0,12,0,63,0,63,0,8,11,11,11,1,0, - 255,255,199,206,12,24,48,115,227,255,255,4,15,15,11,4, - 253,240,240,192,192,192,192,192,192,192,192,192,192,192,240,240, - 9,16,32,11,1,253,192,0,192,0,96,0,96,0,48,0, - 48,0,24,0,24,0,12,0,12,0,6,0,6,0,3,0, - 3,0,1,128,1,128,4,15,15,11,2,253,240,240,48,48, - 48,48,48,48,48,48,48,48,48,240,240,8,7,7,11,1, - 5,24,60,60,102,102,195,195,11,2,4,11,0,252,255,224, - 255,224,4,3,3,11,3,9,192,96,48,10,9,18,11,0, - 0,63,0,127,128,97,128,1,128,127,128,255,128,193,128,255, - 192,125,192,10,12,24,11,0,0,224,0,224,0,96,0,111, - 0,127,128,113,192,96,192,96,192,96,192,113,192,255,128,239, - 0,10,9,18,11,0,0,61,128,127,128,227,128,193,128,192, - 0,192,0,225,192,127,192,63,0,10,12,24,11,0,0,3, - 128,3,128,1,128,61,128,127,128,227,128,193,128,193,128,193, - 128,227,128,127,192,61,192,10,9,18,11,0,0,30,0,127, - 128,225,192,192,192,255,192,255,192,224,0,127,192,31,192,9, - 12,24,11,1,0,31,128,63,128,48,0,255,0,255,0,48, - 0,48,0,48,0,48,0,48,0,255,0,255,0,10,13,26, - 11,0,252,61,192,127,192,227,128,193,128,193,128,193,128,227, - 128,127,128,61,128,1,128,3,128,63,0,62,0,10,12,24, - 11,0,0,224,0,224,0,96,0,111,0,127,128,113,128,97, - 128,97,128,97,128,97,128,243,192,243,192,8,12,12,11,1, - 0,24,24,0,248,248,24,24,24,24,24,255,255,7,16,16, - 11,1,252,12,12,0,254,254,6,6,6,6,6,6,6,6, - 14,252,248,10,12,24,11,0,0,224,0,224,0,96,0,103, - 128,103,128,110,0,124,0,124,0,110,0,103,0,227,192,227, - 192,8,12,12,11,1,0,248,248,24,24,24,24,24,24,24, - 24,255,255,12,9,18,11,255,0,237,192,255,224,119,96,102, - 96,102,96,102,96,102,96,247,112,247,112,10,9,18,11,0, - 0,239,0,255,128,113,128,97,128,97,128,97,128,97,128,243, - 192,243,192,10,9,18,11,0,0,30,0,127,128,225,192,192, - 192,192,192,192,192,225,192,127,128,30,0,10,13,26,11,0, - 252,239,0,255,128,113,192,96,192,96,192,96,192,113,192,127, - 128,111,0,96,0,96,0,248,0,248,0,10,13,26,11,0, - 252,61,192,127,192,227,128,193,128,193,128,193,128,227,128,127, - 128,61,128,1,128,1,128,7,192,7,192,10,9,18,11,0, - 0,243,128,255,192,60,192,56,0,48,0,48,0,48,0,255, - 0,255,0,8,9,9,11,1,0,127,255,195,240,126,31,195, - 255,254,10,12,24,11,0,0,48,0,48,0,48,0,255,0, - 255,0,48,0,48,0,48,0,48,0,48,192,63,192,31,0, - 10,9,18,11,0,0,231,128,231,128,97,128,97,128,97,128, - 97,128,99,128,127,192,61,192,10,9,18,11,0,0,243,192, - 243,192,97,128,97,128,51,0,51,0,30,0,30,0,12,0, - 11,9,18,11,0,0,241,224,241,224,100,192,110,192,110,192, - 123,192,59,128,49,128,49,128,11,9,18,11,0,0,251,224, - 251,224,49,128,27,0,14,0,27,0,49,128,251,224,251,224, - 10,13,26,11,0,252,243,192,243,192,97,128,97,128,51,0, - 51,0,30,0,30,0,12,0,24,0,56,0,252,0,252,0, - 8,9,9,11,1,0,255,255,198,12,24,48,99,255,255,4, - 15,15,11,3,253,48,96,96,96,96,96,192,96,96,96,96, - 96,96,96,48,2,14,14,11,4,253,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,4,15,15,11,3,253,192,96, - 96,96,96,96,48,96,96,96,96,96,96,96,192,8,3,3, - 11,1,4,115,255,222,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=13 dx=15 dy= 0 ascent=21 len=42 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18[6429] U8G_FONT_SECTION("u8g_font_courB18") = { - 0,22,35,252,247,15,3,223,8,17,32,255,251,21,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,15,0,1,4, - 16,16,15,4,251,96,96,96,0,96,96,96,96,96,240,240, - 240,240,240,240,96,9,16,32,15,2,0,12,0,12,0,12, - 0,61,128,127,128,227,128,193,128,192,0,192,0,192,0,225, - 128,127,128,63,0,12,0,12,0,12,0,12,15,30,15,1, - 0,15,128,31,192,56,192,48,0,48,0,48,0,48,0,255, - 0,255,0,24,0,24,0,56,0,112,48,255,240,255,224,10, - 11,22,15,2,2,192,192,255,192,127,128,225,192,192,192,192, - 192,192,192,225,192,127,128,255,192,192,192,12,15,30,15,1, - 0,249,240,249,240,112,224,48,192,57,192,25,128,15,0,15, - 0,63,192,6,0,63,192,6,0,6,0,63,192,63,192,2, - 18,18,15,6,254,192,192,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,192,192,12,18,36,15,1,254,15,224,31, - 224,56,96,48,96,56,0,126,0,207,128,195,224,240,240,124, - 48,31,48,7,240,1,224,0,192,96,192,97,192,127,128,127, - 0,7,3,3,15,3,12,198,198,198,14,14,28,15,0,1, - 7,128,31,224,56,112,103,152,111,216,220,204,216,12,216,12, - 220,204,111,216,103,152,56,112,31,224,7,128,8,11,11,15, - 3,4,60,102,6,126,198,198,207,123,0,255,255,13,9,18, - 15,1,1,14,56,28,112,56,224,113,192,227,128,113,192,56, - 224,28,112,14,56,12,6,12,15,1,4,255,240,255,240,0, - 48,0,48,0,48,0,48,11,2,4,15,2,6,255,224,255, - 224,14,14,28,15,0,1,7,128,31,224,56,112,111,152,111, - 216,204,204,204,204,207,140,205,140,108,216,108,216,56,112,31, - 224,7,128,7,2,2,15,3,13,254,254,8,7,7,15,3, - 9,60,102,195,195,195,102,60,12,14,28,15,1,0,6,0, - 6,0,6,0,6,0,255,240,255,240,6,0,6,0,6,0, - 6,0,0,0,0,0,255,240,255,240,7,9,9,15,4,7, - 124,198,198,12,24,48,96,198,254,7,9,9,15,4,7,124, - 198,198,12,60,6,198,198,124,6,4,4,15,4,12,28,56, - 112,224,14,16,32,15,0,251,240,240,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,63,252,63,188,48,0, - 48,0,48,0,48,0,48,0,12,18,36,15,1,254,31,240, - 127,240,230,192,230,192,230,192,230,192,230,192,126,192,30,192, - 6,192,6,192,6,192,6,192,6,192,6,192,6,192,62,240, - 62,240,3,3,3,15,5,6,224,224,224,5,6,6,15,4, - 251,48,48,120,24,248,112,8,9,9,15,3,7,24,248,24, - 24,24,24,24,24,255,8,11,11,15,3,4,60,126,195,195, - 195,195,126,60,0,255,255,13,9,18,15,1,1,227,128,113, - 192,56,224,28,112,14,56,28,112,56,224,113,192,227,128,16, - 16,32,15,255,0,24,0,248,1,24,3,24,6,24,12,24, - 24,24,48,24,100,255,204,1,156,3,44,6,76,12,140,24, - 254,48,12,32,30,16,16,32,15,255,0,24,0,248,1,24, - 3,24,6,24,12,24,24,24,48,24,126,255,243,1,163,3, - 6,6,12,12,24,24,48,48,99,32,127,15,16,32,15,0, - 0,124,0,198,2,198,6,12,12,60,24,6,48,198,96,198, - 200,125,152,3,56,6,88,12,152,25,24,49,252,96,24,64, - 60,9,15,30,15,2,252,12,0,12,0,12,0,0,0,12, - 0,12,0,28,0,120,0,224,0,192,0,193,128,193,128,225, - 128,127,128,63,0,14,20,40,15,0,0,56,0,28,0,14, - 0,7,0,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,14,20,40,15,0,0,0,224,1,192,3,128,7, - 0,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,21,42,15,0,0,6,0,15,0,31,128,57,192,112, - 224,0,0,63,0,63,0,7,128,7,128,12,192,12,192,28, - 224,24,96,24,96,63,240,63,240,112,56,96,24,252,252,252, - 252,14,19,38,15,0,0,14,96,31,192,51,128,0,0,63, - 0,63,0,7,128,7,128,12,192,12,192,28,224,24,96,24, - 96,63,240,63,240,112,56,96,24,252,252,252,252,14,19,38, - 15,0,0,24,192,24,192,24,192,0,0,63,0,63,0,7, - 128,7,128,12,192,12,192,28,224,24,96,24,96,63,240,63, - 240,112,56,96,24,252,252,252,252,14,20,40,15,0,0,7, - 0,13,128,8,128,13,128,7,0,63,0,63,0,7,128,7, - 128,12,192,12,192,28,224,24,96,24,96,63,240,63,240,112, - 56,96,24,252,252,252,252,15,15,30,15,0,0,15,254,15, - 254,3,134,7,134,7,128,13,152,9,248,25,248,31,152,63, - 128,49,128,97,134,97,134,247,254,247,254,12,20,40,15,1, - 251,15,176,63,240,112,112,96,48,224,48,192,0,192,0,192, - 0,192,0,192,0,224,0,96,16,112,48,63,224,15,192,6, - 0,15,0,3,0,31,0,14,0,13,20,40,15,1,0,56, - 0,28,0,14,0,7,0,0,0,255,240,255,240,48,48,48, - 48,49,176,49,128,63,128,63,128,49,128,49,128,48,24,48, - 24,48,24,255,248,255,248,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,255,240,255,240,48,48,48,48,49, - 176,49,128,63,128,63,128,49,128,49,128,48,24,48,24,48, - 24,255,248,255,248,13,19,38,15,1,0,24,192,24,192,24, - 192,0,0,255,240,255,240,48,48,48,48,49,176,49,128,63, - 128,63,128,49,128,49,128,48,24,48,24,48,24,255,248,255, - 248,10,20,40,15,2,0,112,0,56,0,28,0,14,0,0, - 0,255,192,255,192,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 20,40,15,2,0,3,128,7,0,14,0,28,0,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,21,42, - 15,2,0,12,0,30,0,63,0,115,128,225,192,0,0,255, - 192,255,192,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,255,192,255,192,10,19,38, - 15,2,0,51,0,51,0,51,0,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,14,15,30,15,0,0,255, - 192,255,240,48,56,48,24,48,28,48,12,254,12,254,12,48, - 12,48,12,48,12,48,24,48,56,255,240,255,224,13,19,38, - 15,1,0,14,96,31,192,51,128,0,0,240,248,240,248,120, - 48,120,48,108,48,108,48,102,48,102,48,99,48,99,48,97, - 176,97,176,96,240,248,240,248,112,13,20,40,15,1,0,28, - 0,14,0,7,0,3,128,0,0,15,128,63,224,112,112,96, - 48,224,56,192,24,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,13,20,40,15,1,0,0,224,1, - 192,3,128,7,0,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,21,42,15,1,0,3,0,7,128,15, - 192,28,224,56,112,0,0,15,128,63,224,112,112,96,48,224, - 56,192,24,192,24,192,24,192,24,192,24,224,56,96,48,112, - 112,63,224,15,128,13,19,38,15,1,0,14,96,31,192,51, - 128,0,0,15,128,63,224,112,112,96,48,224,56,192,24,192, - 24,192,24,192,24,192,24,224,56,96,48,112,112,63,224,15, - 128,13,19,38,15,1,0,24,192,24,192,24,192,0,0,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,192,24,224,56,96,48,112,112,63,224,15,128,12,12,24, - 15,1,1,64,32,224,112,112,224,57,192,31,128,15,0,15, - 0,31,128,57,192,112,224,224,112,64,32,13,18,36,15,1, - 255,0,24,0,48,15,224,63,224,112,112,96,240,225,184,193, - 24,195,24,198,24,196,24,204,24,232,56,120,48,112,112,63, - 224,111,128,192,0,13,20,40,15,1,0,56,0,28,0,14, - 0,7,0,0,0,248,248,248,248,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,48,96,63, - 224,31,192,13,20,40,15,1,0,0,224,1,192,3,128,7, - 0,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,21,42,15,1,0,3,0,7,128,15,192,28,224,56, - 112,0,0,248,248,248,248,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,96,48,48,96,63,224,31, - 192,13,19,38,15,1,0,24,192,24,192,24,192,0,0,248, - 248,248,248,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,96,48,48,96,63,224,31,192,14,20,40, - 15,0,0,0,224,1,192,3,128,7,0,0,0,252,252,252, - 252,112,56,56,112,24,96,12,192,15,192,7,128,3,0,3, - 0,3,0,3,0,3,0,31,224,31,224,13,15,30,15,1, - 0,252,0,252,0,48,0,63,192,63,240,48,56,48,24,48, - 24,48,24,48,56,63,240,63,192,48,0,252,0,252,0,12, - 16,32,15,1,0,15,0,31,128,57,192,48,192,48,192,49, - 192,55,128,55,192,48,224,48,112,48,48,48,48,48,48,51, - 112,251,224,249,192,12,16,32,15,1,0,112,0,56,0,28, - 0,14,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,16,32,15,1, - 0,1,192,3,128,7,0,14,0,0,0,63,0,127,128,97, - 192,0,192,31,192,127,192,224,192,192,192,193,192,255,240,126, - 240,12,16,32,15,1,0,14,0,31,0,59,128,113,192,0, - 0,63,0,127,128,97,192,0,192,31,192,127,192,224,192,192, - 192,193,192,255,240,126,240,12,15,30,15,1,0,28,192,63, - 128,103,0,0,0,63,0,127,128,97,192,0,192,31,192,127, - 192,224,192,192,192,193,192,255,240,126,240,12,15,30,15,1, - 0,49,128,49,128,49,128,0,0,63,0,127,128,97,192,0, - 192,31,192,127,192,224,192,192,192,193,192,255,240,126,240,12, - 16,32,15,1,0,14,0,27,0,17,0,27,0,14,0,63, - 0,127,128,97,192,0,192,31,192,127,192,224,192,192,192,193, - 192,255,240,126,240,14,11,22,15,0,0,60,240,127,248,103, - 156,3,12,31,12,127,252,227,252,195,0,199,140,255,252,124, - 240,11,16,32,15,1,251,31,96,127,224,112,224,224,96,192, - 96,192,0,192,0,224,0,112,96,127,224,31,192,6,0,15, - 0,3,0,31,0,14,0,12,16,32,15,1,0,56,0,28, - 0,14,0,7,0,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,12,16,32, - 15,1,0,1,192,3,128,7,0,14,0,0,0,31,128,127, - 224,112,224,224,112,192,48,255,240,255,240,224,0,112,112,127, - 240,31,192,12,16,32,15,1,0,7,0,15,128,29,192,56, - 224,0,0,31,128,127,224,112,224,224,112,192,48,255,240,255, - 240,224,0,112,112,127,240,31,192,12,15,30,15,1,0,49, - 128,49,128,49,128,0,0,31,128,127,224,112,224,224,112,192, - 48,255,240,255,240,224,0,112,112,127,240,31,192,10,16,32, - 15,2,0,224,0,112,0,56,0,28,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,10,16,32,15,2,0,3,128,7,0,14,0,28, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,10,16,32,15,2,0,28, - 0,62,0,119,0,227,128,0,0,124,0,124,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,192,255,192,10, - 15,30,15,2,0,99,0,99,0,99,0,0,0,124,0,124, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,17,34,15,0,0,240,0,252,112,15,240,31, - 128,125,192,112,224,15,240,63,240,56,120,112,56,96,24,96, - 24,96,24,112,56,56,112,63,240,15,192,14,15,30,15,0, - 0,14,96,31,192,51,128,0,0,243,192,247,224,60,112,56, - 48,48,48,48,48,48,48,48,48,48,48,252,252,252,252,12, - 16,32,15,1,0,56,0,28,0,14,0,7,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,16,32,15,1,0,1,192,3,128,7, - 0,14,0,0,0,31,128,127,224,112,224,224,112,192,48,192, - 48,192,48,224,112,112,224,127,224,31,128,12,16,32,15,1, - 0,14,0,31,0,59,128,113,192,0,0,31,128,127,224,112, - 224,224,112,192,48,192,48,192,48,224,112,112,224,127,224,31, - 128,12,15,30,15,1,0,28,192,63,128,103,0,0,0,31, - 128,127,224,112,224,224,112,192,48,192,48,192,48,224,112,112, - 224,127,224,31,128,12,15,30,15,1,0,49,128,49,128,49, - 128,0,0,31,128,127,224,112,224,224,112,192,48,192,48,192, - 48,224,112,112,224,127,224,31,128,13,12,24,15,0,1,7, - 0,7,0,7,0,0,0,0,0,255,248,255,248,0,0,0, - 0,7,0,7,0,7,0,14,14,28,15,0,254,0,12,15, - 216,63,240,56,112,112,216,97,152,99,24,102,24,108,56,56, - 112,63,240,63,192,96,0,192,0,14,16,32,15,0,0,56, - 0,28,0,14,0,7,0,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,14, - 16,32,15,0,0,1,192,3,128,7,0,14,0,0,0,240, - 240,240,240,48,48,48,48,48,48,48,48,48,48,48,48,56, - 112,31,252,15,188,14,16,32,15,0,0,7,0,15,128,29, - 192,56,224,0,0,240,240,240,240,48,48,48,48,48,48,48, - 48,48,48,48,48,56,112,31,252,15,188,14,15,30,15,0, - 0,24,192,24,192,24,192,0,0,240,240,240,240,48,48,48, - 48,48,48,48,48,48,48,48,48,56,112,31,252,15,188,12, - 21,42,15,1,251,0,224,1,192,3,128,7,0,0,0,249, - 240,249,240,96,96,112,224,48,192,57,192,25,128,27,128,15, - 0,15,0,6,0,14,0,12,0,28,0,254,0,254,0,13, - 21,42,15,1,251,240,0,240,0,48,0,48,0,48,0,55, - 192,63,240,60,112,56,56,48,24,48,24,48,24,56,56,60, - 112,63,240,55,192,48,0,48,0,48,0,254,0,254,0,12, - 20,40,15,1,251,49,128,49,128,49,128,0,0,249,240,249, - 240,96,96,112,224,48,192,57,192,25,128,27,128,15,0,15, - 0,6,0,14,0,12,0,28,0,254,0,254,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=21 x= 6 y=11 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=22 h=35 x=-4 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =15 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB18r[3001] U8G_FONT_SECTION("u8g_font_courB18r") = { - 0,22,35,252,247,15,3,223,8,17,32,127,251,17,251,16, - 251,0,0,0,15,0,1,4,16,16,15,5,0,96,240,240, - 240,240,240,240,96,96,96,96,96,0,96,96,96,7,7,7, - 15,3,9,238,238,238,238,68,68,68,12,19,38,15,1,254, - 12,192,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,51,0,10,20,40,15,2,253,12,0,12,0, - 61,128,127,128,195,128,193,128,192,0,224,0,126,0,31,128, - 1,192,0,192,192,192,225,192,255,128,223,0,12,0,12,0, - 12,0,12,0,11,15,30,15,2,0,60,0,102,0,195,0, - 195,0,102,0,60,0,1,192,15,0,56,0,231,128,12,192, - 24,96,24,96,12,192,7,128,11,14,28,15,2,0,30,0, - 63,0,99,0,96,0,96,0,48,0,56,0,124,192,111,192, - 199,128,195,0,199,128,255,224,124,224,3,7,7,15,5,8, - 224,224,224,224,224,64,64,5,20,20,15,6,252,24,56,48, - 96,96,96,192,192,192,192,192,192,192,192,96,96,96,48,56, - 24,5,20,20,15,3,252,192,224,96,48,48,48,24,24,24, - 24,24,24,24,24,48,48,48,96,224,192,10,11,22,15,2, - 5,12,0,12,0,12,0,204,192,255,192,63,0,12,0,63, - 0,51,0,115,128,97,128,12,12,24,15,1,1,6,0,6, - 0,6,0,6,0,6,0,255,240,255,240,6,0,6,0,6, - 0,6,0,6,0,5,6,6,15,4,253,56,56,112,96,192, - 128,11,2,4,15,2,6,255,224,255,224,3,3,3,15,5, - 0,224,224,224,11,20,40,15,2,253,0,96,0,96,0,192, - 0,192,1,128,1,128,3,0,3,0,6,0,6,0,12,0, - 12,0,24,0,24,0,48,0,48,0,96,0,96,0,192,0, - 192,0,10,16,32,15,2,0,30,0,127,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,127,128,30,0,10,16,32,15,2,0,28,0, - 252,0,252,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,11,16, - 32,15,1,0,31,128,63,192,112,224,96,96,96,96,0,96, - 0,224,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,224,255,224,11,16,32,15,1,0,31,128,63,192,112,224, - 96,96,0,96,0,224,1,192,15,128,15,192,0,224,0,96, - 0,96,192,96,224,224,127,192,63,128,11,16,32,15,1,0, - 3,128,7,128,15,128,13,128,25,128,25,128,49,128,49,128, - 97,128,97,128,255,224,255,224,1,128,1,128,15,224,15,224, - 11,16,32,15,2,0,127,192,127,192,96,0,96,0,96,0, - 111,0,127,192,113,192,0,224,0,96,0,96,0,96,192,224, - 225,192,127,192,63,0,10,16,32,15,2,0,7,192,31,192, - 60,0,112,0,96,0,224,0,223,0,255,128,225,192,192,192, - 192,192,192,192,224,192,113,192,127,128,31,0,10,16,32,15, - 2,0,255,192,255,192,192,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,10,16,32,15,2,0,30,0,127,128,225,192,192,192, - 192,192,192,192,97,128,63,0,127,128,225,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,15,3,0,30,0, - 127,128,97,128,192,192,192,192,192,192,192,192,193,192,227,192, - 126,192,60,192,0,192,1,128,3,128,255,0,252,0,3,11, - 11,15,5,0,224,224,224,0,0,0,0,0,224,224,224,5, - 14,14,15,3,253,56,56,56,0,0,0,0,0,56,56,112, - 96,192,128,13,12,24,15,1,1,0,56,0,240,3,192,15, - 0,60,0,240,0,240,0,60,0,15,0,3,192,0,240,0, - 56,12,6,12,15,1,4,255,240,255,240,0,0,0,0,255, - 240,255,240,13,12,24,15,1,1,224,0,120,0,30,0,7, - 128,1,224,0,120,0,120,1,224,7,128,30,0,120,0,224, - 0,9,15,30,15,3,0,126,0,255,0,195,128,193,128,193, - 128,1,128,3,128,15,0,28,0,24,0,24,0,0,0,24, - 0,24,0,24,0,10,18,36,15,2,254,28,0,127,0,99, - 0,193,128,193,128,199,128,207,128,221,128,217,128,217,128,221, - 128,207,192,199,192,192,0,192,0,97,128,127,128,30,0,14, - 15,30,15,0,0,63,0,63,0,7,128,7,128,12,192,12, - 192,28,224,24,96,24,96,63,240,63,240,112,56,96,24,252, - 252,252,252,13,15,30,15,1,0,255,192,255,224,48,112,48, - 48,48,48,48,112,63,224,63,240,48,56,48,24,48,24,48, - 24,48,56,255,240,255,224,12,15,30,15,1,0,15,176,63, - 240,112,112,96,48,224,48,192,0,192,0,192,0,192,0,192, - 0,224,0,96,0,112,48,63,240,15,192,14,15,30,15,0, - 0,255,192,255,240,48,56,48,24,48,28,48,12,48,12,48, - 12,48,12,48,12,48,12,48,24,48,56,255,240,255,224,13, - 15,30,15,1,0,255,240,255,240,48,48,48,48,49,176,49, - 128,63,128,63,128,49,128,49,128,48,24,48,24,48,24,255, - 248,255,248,13,15,30,15,1,0,255,248,255,248,48,24,48, - 24,49,152,49,128,63,128,63,128,49,128,49,128,48,0,48, - 0,48,0,255,0,255,0,13,15,30,15,1,0,15,216,63, - 248,112,56,96,24,224,24,192,0,192,0,192,0,193,248,193, - 248,224,24,96,24,112,56,63,240,15,192,14,15,30,15,0, - 0,252,252,252,252,48,48,48,48,48,48,48,48,63,240,63, - 240,48,48,48,48,48,48,48,48,48,48,252,252,252,252,10, - 15,30,15,2,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,255, - 192,255,192,13,15,30,15,1,0,31,248,31,248,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,192,192,192,192,192, - 192,225,192,127,128,63,0,14,15,30,15,0,0,252,248,252, - 248,48,224,49,192,51,128,55,0,62,0,63,0,59,128,49, - 192,48,224,48,96,48,112,252,60,252,60,12,15,30,15,1, - 0,255,0,255,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,48,24,48,24,48,255,240,255,240,14, - 15,30,15,0,0,240,60,240,60,120,120,120,120,108,216,108, - 216,108,216,103,152,99,24,99,24,96,24,96,24,96,24,248, - 124,248,124,13,15,30,15,1,0,240,248,240,248,120,48,120, - 48,108,48,108,48,102,48,102,48,99,48,99,48,97,176,97, - 176,96,240,248,240,248,112,13,15,30,15,1,0,15,128,63, - 224,112,112,96,48,224,56,192,24,192,24,192,24,192,24,192, - 24,224,56,96,48,112,112,63,224,15,128,13,15,30,15,1, - 0,255,192,255,240,48,56,48,24,48,24,48,24,48,24,48, - 56,63,240,63,192,48,0,48,0,48,0,255,0,255,0,13, - 18,36,15,1,253,15,128,63,224,112,112,96,48,224,56,192, - 24,192,24,192,24,192,24,192,24,224,56,96,48,112,112,63, - 224,15,128,14,24,63,248,57,224,14,15,30,15,0,0,255, - 128,255,224,48,112,48,48,48,48,48,48,48,112,63,224,63, - 128,49,192,48,224,48,96,48,112,252,60,252,60,12,15,30, - 15,1,0,31,176,63,240,112,112,96,48,96,48,112,0,62, - 0,31,192,3,224,0,112,192,48,192,48,224,112,255,224,223, - 192,12,15,30,15,1,0,255,240,255,240,198,48,198,48,198, - 48,198,48,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,63,192,63,192,13,15,30,15,1,0,248,248,248,248,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,48,48,96,63,224,31,192,14,15,30,15,0,0,248, - 124,248,124,96,24,96,24,48,48,48,48,48,48,24,96,24, - 96,24,96,12,192,12,192,7,128,7,128,7,128,14,15,30, - 15,0,0,248,124,248,124,96,24,99,24,99,24,103,152,103, - 152,111,216,108,216,108,216,60,240,56,112,56,112,56,112,56, - 112,14,15,30,15,0,0,252,252,252,252,112,56,56,112,28, - 224,15,192,7,128,3,0,7,128,12,192,28,224,56,112,112, - 56,252,252,252,252,14,15,30,15,0,0,252,252,252,252,112, - 56,56,112,24,96,12,192,15,192,7,128,3,0,3,0,3, - 0,3,0,3,0,31,224,31,224,11,15,30,15,2,0,255, - 224,255,224,192,224,193,192,195,128,3,0,7,0,14,0,28, - 0,24,0,56,96,112,96,224,96,255,224,255,224,5,20,20, - 15,6,252,248,248,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,248,248,11,20,40,15,2,253,192,0,192, - 0,96,0,96,0,48,0,48,0,24,0,24,0,12,0,12, - 0,6,0,6,0,3,0,3,0,1,128,1,128,0,192,0, - 192,0,96,0,96,5,20,20,15,3,252,248,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,248,248,8, - 8,8,15,3,8,24,24,60,60,102,102,195,195,15,2,4, - 15,0,252,255,254,255,254,5,4,4,15,4,11,192,96,48, - 24,12,11,22,15,1,0,63,0,127,128,97,192,0,192,31, - 192,127,192,224,192,192,192,193,192,255,240,126,240,13,16,32, - 15,1,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 240,60,112,56,56,48,24,48,24,48,24,56,56,60,112,255, - 240,247,192,12,11,22,15,1,0,31,176,127,240,112,240,224, - 112,192,48,192,0,192,0,224,0,112,112,127,240,31,192,13, - 16,32,15,1,0,1,224,1,224,0,96,0,96,0,96,31, - 96,127,224,113,224,224,224,192,96,192,96,192,96,224,224,113, - 224,127,248,31,120,12,11,22,15,1,0,31,128,127,224,112, - 224,224,112,192,48,255,240,255,240,224,0,112,112,127,240,31, - 192,11,16,32,15,2,0,7,224,15,224,28,0,24,0,24, - 0,255,192,255,192,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,192,255,192,13,16,32,15,1,251,31,120,127, - 248,113,224,224,224,192,96,192,96,192,96,224,224,113,224,127, - 224,31,96,0,96,0,96,0,224,63,192,63,128,14,16,32, - 15,0,0,240,0,240,0,48,0,48,0,48,0,55,192,63, - 224,60,112,56,48,48,48,48,48,48,48,48,48,48,48,252, - 252,252,252,10,16,32,15,2,0,28,0,28,0,28,0,0, - 0,0,0,124,0,124,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,255,192,255,192,8,21,21,15,2,251,14, - 14,14,0,0,255,255,3,3,3,3,3,3,3,3,3,3, - 3,7,254,252,13,16,32,15,1,0,240,0,240,0,48,0, - 48,0,48,0,49,224,49,224,51,128,55,0,62,0,62,0, - 55,0,51,128,49,192,241,248,241,248,10,16,32,15,2,0, - 124,0,124,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,255,192,255,192, - 16,11,22,15,0,0,239,120,255,252,57,204,49,140,49,140, - 49,140,49,140,49,140,49,140,249,239,249,239,14,11,22,15, - 0,0,243,192,247,224,60,112,56,48,48,48,48,48,48,48, - 48,48,48,48,252,252,252,252,12,11,22,15,1,0,31,128, - 127,224,112,224,224,112,192,48,192,48,192,48,224,112,112,224, - 127,224,31,128,13,16,32,15,0,251,247,192,255,240,60,112, - 56,56,48,24,48,24,48,24,56,56,60,112,63,240,55,192, - 48,0,48,0,48,0,254,0,254,0,13,16,32,15,1,251, - 31,120,127,248,113,224,224,224,192,96,192,96,192,96,224,224, - 113,224,127,224,31,96,0,96,0,96,0,96,3,248,3,248, - 12,11,22,15,1,0,121,224,127,240,30,48,28,0,24,0, - 24,0,24,0,24,0,24,0,255,192,255,192,11,11,22,15, - 2,0,62,192,127,192,225,192,224,192,124,0,31,0,7,192, - 192,224,224,224,255,192,223,128,11,15,30,15,1,0,48,0, - 48,0,48,0,48,0,255,192,255,192,48,0,48,0,48,0, - 48,0,48,0,48,0,56,224,31,224,15,128,14,11,22,15, - 0,0,240,240,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,252,15,188,14,11,22,15,0,0,252,252, - 252,252,48,48,48,48,24,96,24,96,12,192,12,192,7,128, - 7,128,3,0,14,11,22,15,0,0,248,124,248,124,99,24, - 99,24,51,48,55,176,55,176,60,240,28,224,24,96,24,96, - 12,11,22,15,1,0,249,240,249,240,48,192,25,128,15,0, - 6,0,15,0,25,128,48,192,249,240,249,240,12,16,32,15, - 1,251,249,240,249,240,96,96,112,224,48,192,57,192,25,128, - 27,128,15,0,15,0,6,0,14,0,12,0,28,0,254,0, - 254,0,10,11,22,15,2,0,255,192,255,192,195,128,199,0, - 14,0,28,0,56,0,112,192,224,192,255,192,255,192,7,20, - 20,15,4,252,14,24,48,48,48,48,48,48,112,224,112,48, - 48,48,48,48,48,48,24,14,2,18,18,15,6,254,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,20,20,15,3,252,224,48,24,24,24,24,24,24,28,14, - 28,24,24,24,24,24,24,24,48,224,12,4,8,15,1,5, - 60,48,126,112,231,224,195,192,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=29 x= 8 y=17 dx=20 dy= 0 ascent=26 len=87 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24[10502] U8G_FONT_SECTION("u8g_font_courB24") = { - 0,30,44,249,245,20,5,57,12,115,32,255,249,26,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,21,21, - 20,7,249,112,248,248,112,0,0,112,112,112,112,112,112,112, - 112,248,248,248,248,248,112,32,13,23,46,20,3,255,7,0, - 7,0,7,0,7,0,7,0,15,216,63,248,127,248,120,120, - 240,56,224,56,224,0,224,0,224,0,240,56,120,120,127,248, - 63,240,15,192,7,0,7,0,7,0,7,0,16,20,40,20, - 1,0,3,224,7,240,15,248,30,56,28,56,28,0,28,0, - 28,0,14,0,255,224,255,224,255,224,14,0,14,0,14,0, - 14,2,30,7,127,255,127,255,127,254,15,15,30,20,2,2, - 224,14,247,222,255,254,127,252,60,120,120,60,112,28,112,28, - 112,28,120,60,60,120,127,252,255,254,247,222,224,14,17,20, - 60,20,1,0,254,63,128,254,63,128,254,63,128,56,14,0, - 28,28,0,30,60,0,14,56,0,15,120,0,7,112,0,3, - 224,0,31,252,0,31,252,0,1,192,0,31,252,0,31,252, - 0,1,192,0,1,192,0,31,252,0,31,252,0,31,252,0, - 3,26,26,20,8,251,224,224,224,224,224,224,224,224,224,224, - 224,224,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 16,24,48,20,2,253,1,254,7,254,15,254,28,6,24,6, - 24,6,60,0,127,0,231,128,193,224,96,240,112,60,60,14, - 15,6,7,131,1,231,0,254,0,60,48,24,48,24,48,56, - 63,240,63,224,63,128,11,4,8,20,4,17,96,192,241,224, - 241,224,96,192,21,20,60,20,255,0,0,252,0,3,255,0, - 15,255,192,30,3,224,56,96,224,113,246,112,115,254,112,231, - 158,56,231,14,56,206,14,56,206,0,56,206,0,56,206,6, - 56,231,15,120,231,254,112,115,252,240,120,241,224,62,7,192, - 31,255,0,7,252,0,11,14,28,20,4,6,31,0,127,128, - 97,128,1,128,63,128,127,128,225,128,193,128,195,128,255,224, - 125,224,0,0,255,224,255,224,15,14,28,20,1,0,3,6, - 7,14,14,28,28,56,56,112,112,224,225,192,225,192,112,224, - 56,112,28,56,14,28,7,14,3,6,16,8,16,20,2,5, - 255,255,255,255,255,255,0,7,0,7,0,7,0,7,0,7, - 15,3,6,20,2,8,255,254,255,254,255,254,21,20,60,20, - 255,0,1,248,0,7,254,0,31,255,128,60,3,192,59,241, - 224,115,252,224,115,254,240,227,158,112,227,142,120,227,142,56, - 227,254,56,227,252,56,227,184,56,243,188,120,115,158,112,123, - 143,240,60,3,224,31,255,192,15,255,0,3,252,0,10,2, - 4,20,5,17,255,192,255,192,9,9,18,20,5,11,28,0, - 119,0,193,128,128,128,128,128,128,128,193,128,119,0,28,0, - 17,18,54,20,1,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,8,14,14,20, - 5,7,60,126,231,195,3,7,14,12,24,56,112,225,255,255, - 9,14,28,20,5,7,62,0,127,0,99,0,3,0,7,0, - 30,0,31,0,3,128,1,128,1,128,193,128,227,0,127,0, - 60,0,8,6,6,20,6,15,6,15,62,120,224,64,18,22, - 66,20,1,249,252,63,0,252,63,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,15,0,30,31,0,31,255,192,31,247,192,29,231, - 192,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,15,24,48,20,2,253,15,254,63,254, - 123,24,243,24,227,24,227,24,227,24,227,24,227,24,115,24, - 63,24,31,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,31,62,31,62,31,62,5,4,4,20, - 7,8,112,248,248,112,5,7,7,20,6,250,48,48,48,24, - 248,248,112,8,13,13,20,6,7,56,248,216,24,24,24,24, - 24,24,24,24,255,255,11,14,28,20,4,6,14,0,63,128, - 113,192,224,224,192,96,192,96,192,96,224,224,113,192,63,128, - 14,0,0,0,255,224,255,224,15,14,28,20,2,0,193,128, - 225,192,112,224,56,112,28,56,14,28,7,14,7,14,14,28, - 28,56,56,112,112,224,225,192,193,128,19,20,60,20,0,0, - 56,0,0,248,0,0,216,0,128,24,1,192,24,1,128,24, - 3,0,24,6,0,24,12,0,24,28,192,24,25,192,255,51, - 192,255,114,192,0,102,192,0,206,192,1,140,192,3,159,224, - 7,31,224,2,0,192,0,1,224,0,1,224,19,20,60,20, - 0,0,56,0,0,248,0,0,216,2,0,24,7,0,24,14, - 0,24,12,0,24,24,0,24,56,0,24,112,0,24,103,128, - 254,239,192,255,220,224,1,152,96,3,0,224,7,1,192,14, - 7,128,4,14,0,0,28,96,0,31,224,0,31,224,19,21, - 63,20,0,0,62,0,0,127,0,0,99,0,0,3,1,0, - 3,3,128,30,7,0,31,6,0,3,142,0,1,156,0,195, - 152,192,227,49,192,127,115,192,28,98,192,0,198,192,1,206, - 192,3,140,192,7,31,224,2,31,224,0,0,192,0,3,224, - 0,3,224,13,21,42,20,3,250,7,0,15,128,15,128,7, - 0,0,0,0,0,0,0,7,0,7,0,7,0,31,0,63, - 0,124,0,240,0,224,0,224,56,224,56,240,56,127,248,63, - 248,31,224,21,26,78,20,255,0,3,0,0,7,128,0,1, - 224,0,0,240,0,0,48,0,0,0,0,31,240,0,31,248, - 0,31,248,0,1,252,0,1,220,0,1,220,0,3,222,0, - 3,142,0,3,142,0,7,7,0,7,7,0,7,7,0,15, - 255,128,15,255,128,31,255,192,28,1,192,28,1,192,255,143, - 248,255,143,248,255,143,248,21,26,78,20,255,0,0,3,0, - 0,15,0,0,30,0,0,120,0,0,96,0,0,0,0,31, - 240,0,31,248,0,31,248,0,1,252,0,1,220,0,1,220, - 0,3,222,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,21,26,78,20,255, - 0,0,64,0,0,224,0,3,184,0,7,28,0,14,14,0, - 0,0,0,31,240,0,31,248,0,31,248,0,1,252,0,1, - 220,0,1,220,0,3,222,0,3,142,0,3,142,0,7,7, - 0,7,7,0,7,7,0,15,255,128,15,255,128,31,255,192, - 28,1,192,28,1,192,255,143,248,255,143,248,255,143,248,21, - 25,75,20,255,0,3,134,0,7,230,0,6,118,0,6,28, - 0,0,0,0,31,240,0,31,248,0,31,248,0,1,252,0, - 1,220,0,1,220,0,3,222,0,3,142,0,3,142,0,7, - 7,0,7,7,0,7,7,0,15,255,128,15,255,128,31,255, - 192,28,1,192,28,1,192,255,143,248,255,143,248,255,143,248, - 21,25,75,20,255,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,31,240,0,31,248,0,31,248,0,1,252, - 0,1,220,0,1,220,0,3,222,0,3,142,0,3,142,0, - 7,7,0,7,7,0,7,7,0,15,255,128,15,255,128,31, - 255,192,28,1,192,28,1,192,255,143,248,255,143,248,255,143, - 248,21,26,78,20,255,0,0,240,0,1,152,0,1,8,0, - 1,152,0,0,240,0,0,0,0,31,240,0,31,248,0,31, - 248,0,1,252,0,1,220,0,1,220,0,3,222,0,3,142, - 0,3,142,0,7,7,0,7,7,0,7,7,0,15,255,128, - 15,255,128,31,255,192,28,1,192,28,1,192,255,143,248,255, - 143,248,255,143,248,20,20,60,20,0,0,31,255,224,31,255, - 224,31,255,224,7,112,224,7,112,224,6,112,224,14,112,224, - 14,115,0,14,115,0,14,127,0,28,127,0,28,115,0,31, - 243,0,31,243,0,56,112,112,56,112,112,56,112,112,255,255, - 240,255,255,240,255,255,240,17,26,78,20,1,250,3,227,0, - 15,255,0,31,255,0,62,31,0,120,15,0,112,7,0,240, - 7,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,240,0,0,112,1,0,120,3,128,62,15,128, - 63,255,0,15,254,0,3,248,0,0,192,0,0,192,0,0, - 224,0,4,112,0,7,240,0,3,224,0,17,26,78,20,1, - 0,3,0,0,7,128,0,1,224,0,0,240,0,0,48,0, - 0,0,0,255,255,0,255,255,0,255,255,0,28,7,0,28, - 7,0,28,7,0,28,119,0,28,112,0,31,240,0,31,240, - 0,31,240,0,28,112,0,28,112,0,28,3,128,28,3,128, - 28,3,128,28,3,128,255,255,128,255,255,128,255,255,128,17, - 26,78,20,1,0,0,12,0,0,60,0,0,120,0,1,224, - 0,1,128,0,0,0,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,26,78,20,1,0,0,128,0,1,192,0,7, - 112,0,14,56,0,28,28,0,0,0,0,255,255,0,255,255, - 0,255,255,0,28,7,0,28,7,0,28,7,0,28,119,0, - 28,112,0,31,240,0,31,240,0,31,240,0,28,112,0,28, - 112,0,28,3,128,28,3,128,28,3,128,28,3,128,255,255, - 128,255,255,128,255,255,128,17,25,75,20,1,0,6,12,0, - 15,30,0,15,30,0,6,12,0,0,0,0,255,255,0,255, - 255,0,255,255,0,28,7,0,28,7,0,28,7,0,28,119, - 0,28,112,0,31,240,0,31,240,0,31,240,0,28,112,0, - 28,112,0,28,3,128,28,3,128,28,3,128,28,3,128,255, - 255,128,255,255,128,255,255,128,13,26,52,20,3,0,24,0, - 60,0,15,0,7,128,1,128,0,0,255,248,255,248,255,248, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,26,52,20,3,0,0,48,0,240,1,224,7,128, - 6,0,0,0,255,248,255,248,255,248,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,13,26,52,20, - 3,0,2,0,7,0,29,192,56,224,112,112,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 255,248,255,248,255,248,13,25,50,20,3,0,48,96,120,240, - 120,240,48,96,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,17,20, - 60,20,2,0,255,224,0,255,248,0,255,252,0,56,62,0, - 56,15,0,56,7,0,56,7,0,56,3,128,255,131,128,255, - 131,128,255,131,128,56,3,128,56,3,128,56,3,128,56,7, - 0,56,7,0,56,30,0,255,254,0,255,252,0,255,240,0, - 20,25,75,20,255,0,3,134,0,7,230,0,6,118,0,6, - 28,0,0,0,0,252,31,240,254,31,240,255,31,240,31,1, - 192,31,129,192,31,129,192,29,193,192,29,225,192,28,225,192, - 28,241,192,28,121,192,28,57,192,28,61,192,28,29,192,28, - 15,192,28,15,192,28,7,192,127,199,192,127,195,192,127,193, - 192,17,26,78,20,1,0,6,0,0,15,0,0,3,192,0, - 1,224,0,0,96,0,0,0,0,7,240,0,15,252,0,31, - 252,0,60,30,0,120,15,0,112,7,0,112,7,0,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 112,7,0,120,7,0,56,14,0,62,62,0,31,252,0,15, - 248,0,3,224,0,17,26,78,20,1,0,0,24,0,0,120, - 0,0,240,0,3,192,0,3,0,0,0,0,0,7,240,0, - 15,252,0,31,252,0,60,30,0,120,15,0,112,7,0,112, - 7,0,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,112,7,0,120,7,0,56,14,0,62,62,0, - 31,252,0,15,248,0,3,224,0,17,26,78,20,1,0,0, - 128,0,1,192,0,7,112,0,14,56,0,28,28,0,0,0, - 0,7,240,0,15,252,0,31,252,0,60,30,0,120,15,0, - 112,7,0,112,7,0,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,112,7,0,120,7,0,56,14, - 0,62,62,0,31,252,0,15,248,0,3,224,0,17,25,75, - 20,1,0,7,12,0,15,204,0,12,236,0,12,56,0,0, - 0,0,7,240,0,15,252,0,31,252,0,60,30,0,120,15, - 0,112,7,0,112,7,0,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,112,7,0,120,7,0,56, - 14,0,62,62,0,31,252,0,15,248,0,3,224,0,17,25, - 75,20,1,0,12,24,0,30,60,0,30,60,0,12,24,0, - 0,0,0,7,240,0,15,252,0,31,252,0,60,30,0,120, - 15,0,112,7,0,112,7,0,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,112,7,0,120,7,0, - 56,14,0,62,62,0,31,252,0,15,248,0,3,224,0,15, - 16,32,20,2,0,224,14,240,30,248,62,120,60,60,120,30, - 240,15,224,7,192,7,192,15,224,30,240,60,120,120,60,248, - 62,240,30,224,14,17,23,69,20,1,254,0,3,128,3,227, - 128,15,255,128,31,255,0,62,62,0,56,30,0,120,63,0, - 112,127,0,224,123,128,224,243,128,225,227,128,225,195,128,227, - 195,128,231,131,128,255,7,128,126,7,0,126,15,0,60,30, - 0,127,252,0,127,248,0,247,240,0,224,0,0,224,0,0, - 19,26,78,20,0,0,3,0,0,7,128,0,1,224,0,0, - 240,0,0,48,0,0,0,0,255,31,224,255,31,224,255,31, - 224,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,28,7,128,31,31,0,15,254,0,7,252, - 0,1,248,0,19,26,78,20,0,0,0,28,0,0,60,0, - 0,240,0,1,224,0,1,128,0,0,0,0,255,31,224,255, - 31,224,255,31,224,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,28,7,128,31,31,0,15, - 254,0,7,252,0,1,248,0,19,26,78,20,0,0,0,64, - 0,0,224,0,3,184,0,7,28,0,14,14,0,0,0,0, - 255,31,224,255,31,224,255,31,224,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,56,3,128,56,3,128,56,3,128,56,3,128,28,7,128, - 31,31,0,15,254,0,7,252,0,1,248,0,19,26,78,20, - 0,0,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,255,191,224,255,191,224,255,191,224,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,56,3,128,56,3, - 128,28,7,128,31,31,0,15,254,0,7,252,0,1,248,0, - 17,26,78,20,1,0,0,24,0,0,120,0,0,240,0,3, - 192,0,3,0,0,0,0,0,254,63,128,254,63,128,254,63, - 128,60,30,0,28,28,0,30,60,0,14,56,0,15,120,0, - 7,240,0,3,224,0,3,224,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,31,252,0,31,252, - 0,31,252,0,18,20,60,20,1,0,255,128,0,255,128,0, - 255,128,0,28,0,0,31,248,0,31,254,0,31,255,0,28, - 15,128,28,3,128,28,3,192,28,3,192,28,3,128,28,15, - 128,31,255,0,31,254,0,31,248,0,28,0,0,255,128,0, - 255,128,0,255,128,0,17,22,66,20,0,255,3,224,0,7, - 240,0,15,248,0,30,60,0,28,28,0,28,28,0,28,28, - 0,28,60,0,29,248,0,29,248,0,29,254,0,28,31,0, - 28,15,0,28,7,128,28,3,128,28,3,128,29,195,128,29, - 195,128,255,255,0,254,255,0,254,126,0,0,24,0,17,22, - 66,20,2,0,24,0,0,60,0,0,15,0,0,7,128,0, - 1,128,0,0,0,0,0,0,0,15,224,0,63,240,0,63, - 248,0,56,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,124,0,255,255,128, - 127,255,128,63,159,128,17,22,66,20,2,0,0,32,0,0, - 112,0,0,240,0,3,192,0,7,128,0,6,0,0,0,0, - 0,15,224,0,63,240,0,63,248,0,56,60,0,0,28,0, - 0,28,0,15,252,0,63,252,0,127,252,0,120,28,0,224, - 60,0,224,124,0,255,255,128,127,223,128,63,159,128,17,22, - 66,20,1,0,0,128,0,1,192,0,7,112,0,14,56,0, - 28,28,0,0,0,0,0,0,0,7,224,0,63,240,0,63, - 248,0,60,60,0,0,28,0,0,28,0,15,252,0,63,252, - 0,127,252,0,120,28,0,240,28,0,224,60,0,255,255,128, - 127,255,128,63,159,128,17,21,63,20,1,0,14,24,0,31, - 152,0,25,248,0,24,112,0,0,0,0,0,0,0,15,224, - 0,63,240,0,63,248,0,56,60,0,0,28,0,0,28,0, - 15,252,0,63,252,0,127,252,0,120,28,0,240,28,0,224, - 124,0,255,255,128,127,223,128,63,159,128,17,21,63,20,2, - 0,12,24,0,30,60,0,30,60,0,12,24,0,0,0,0, - 0,0,0,15,224,0,63,240,0,63,248,0,56,60,0,0, - 28,0,0,28,0,15,252,0,63,252,0,127,252,0,120,28, - 0,240,28,0,224,124,0,255,255,128,127,223,128,63,159,128, - 17,21,63,20,1,0,3,192,0,6,96,0,4,32,0,6, - 96,0,3,192,0,0,0,0,15,224,0,63,240,0,63,248, - 0,56,60,0,0,28,0,0,28,0,15,252,0,63,252,0, - 127,252,0,120,28,0,240,28,0,224,124,0,255,255,128,127, - 223,128,63,159,128,20,15,45,20,255,0,15,135,0,63,255, - 192,63,255,192,56,253,224,0,112,112,3,240,112,31,255,240, - 127,255,240,255,255,240,240,112,0,224,120,0,241,248,112,127, - 255,240,63,255,240,31,39,128,16,21,42,20,2,250,7,230, - 31,254,63,254,124,62,112,14,240,14,224,14,224,0,224,0, - 224,0,240,6,124,15,63,254,31,252,7,240,1,128,1,128, - 1,192,8,224,15,192,3,128,16,21,42,20,1,0,6,0, - 15,0,3,192,1,224,0,96,0,0,7,224,31,248,63,252, - 124,62,112,14,240,15,255,255,255,255,255,255,224,0,112,0, - 124,15,63,255,31,254,7,240,16,22,44,20,1,0,0,16, - 0,56,0,120,1,224,3,192,3,0,0,0,7,224,31,248, - 63,252,124,62,112,14,240,15,255,255,255,255,255,255,224,0, - 112,0,124,14,63,255,31,254,7,240,16,22,44,20,1,0, - 0,128,1,192,7,112,14,56,28,28,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,16,21,42,20, - 1,0,12,24,30,60,30,60,12,24,0,0,0,0,7,224, - 31,248,63,252,124,62,112,14,240,15,255,255,255,255,255,255, - 224,0,112,0,124,31,63,255,31,255,7,240,15,22,44,20, - 2,0,24,0,60,0,15,0,7,128,1,128,0,0,0,0, - 127,128,127,128,127,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,254,255,254,255,254,15,23, - 46,20,2,0,0,128,1,192,3,192,15,0,30,0,24,0, - 0,0,0,0,127,128,127,128,127,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,15,22,44,20,2,0,2,0,7,0,29,192,56,224, - 112,112,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,15,21,42,20,2,0,48,96,120,240,120,240, - 48,96,0,0,0,0,127,128,127,128,127,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,255,254, - 255,254,255,254,16,21,42,20,2,0,126,14,255,191,255,252, - 3,240,15,240,127,248,124,56,112,60,7,220,31,254,127,254, - 120,30,240,15,224,7,224,7,224,15,240,15,248,62,127,252, - 63,248,31,224,17,21,63,20,1,0,14,24,0,31,152,0, - 25,248,0,24,112,0,0,0,0,0,0,0,249,240,0,251, - 252,0,255,254,0,60,30,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,254,63,128,254,63,128,17,21,63,20,1,0,6, - 0,0,15,0,0,3,192,0,1,224,0,0,96,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,22, - 66,20,1,0,0,16,0,0,56,0,0,120,0,1,224,0, - 3,192,0,3,0,0,0,0,0,7,240,0,15,248,0,63, - 254,0,60,30,0,120,15,0,240,7,128,224,3,128,224,3, - 128,224,3,128,240,7,128,120,15,0,124,31,0,63,254,0, - 31,252,0,7,240,0,17,22,66,20,1,0,0,128,0,1, - 192,0,7,112,0,14,56,0,28,28,0,0,0,0,0,0, - 0,7,240,0,15,248,0,63,254,0,60,30,0,120,15,0, - 240,7,128,224,3,128,224,3,128,224,3,128,240,7,128,120, - 15,0,124,31,0,63,254,0,31,252,0,7,240,0,17,21, - 63,20,1,0,7,12,0,15,204,0,12,252,0,12,56,0, - 0,0,0,0,0,0,7,240,0,15,248,0,63,254,0,60, - 30,0,120,15,0,240,7,128,224,3,128,224,3,128,224,3, - 128,240,7,128,120,15,0,124,31,0,63,254,0,31,252,0, - 7,240,0,17,21,63,20,1,0,12,24,0,30,60,0,30, - 60,0,12,24,0,0,0,0,0,0,0,7,240,0,15,248, - 0,63,254,0,60,30,0,120,15,0,240,7,128,224,3,128, - 224,3,128,224,3,128,240,7,128,120,15,0,124,31,0,63, - 254,0,31,252,0,7,240,0,15,15,30,20,2,2,3,128, - 7,192,7,192,3,128,0,0,0,0,255,254,255,254,255,254, - 0,0,0,0,3,128,7,192,7,192,3,128,17,18,54,20, - 1,254,0,3,128,3,227,128,15,255,128,63,255,0,62,62, - 0,120,63,0,112,127,0,224,243,128,225,227,128,227,195,128, - 231,131,128,127,7,0,126,31,0,63,254,0,127,252,0,247, - 240,0,224,0,0,224,0,0,18,22,66,20,0,0,3,0, - 0,7,128,0,1,224,0,0,240,0,0,48,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,22,66,20,0,0,0,8,0,0,28,0,0,60,0,0, - 240,0,1,224,0,1,128,0,0,0,0,252,63,0,252,63, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,15,0,28,31,0,31, - 255,192,15,247,192,7,231,192,18,22,66,20,0,0,0,128, - 0,1,192,0,7,112,0,14,56,0,28,28,0,0,0,0, - 0,0,0,252,63,0,252,63,0,252,63,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,15,0,28,31,0,31,255,192,15,247,192,7,231,192, - 18,21,63,20,0,0,12,24,0,30,60,0,30,60,0,12, - 24,0,0,0,0,0,0,0,252,63,0,252,63,0,252,63, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,15,0,28,31,0,31,255,192,15, - 247,192,7,231,192,17,29,87,20,1,249,0,16,0,0,56, - 0,0,120,0,1,224,0,3,192,0,3,0,0,0,0,0, - 254,63,128,254,63,128,254,63,128,120,15,0,56,14,0,60, - 30,0,28,28,0,30,60,0,14,56,0,15,120,0,7,112, - 0,7,240,0,3,224,0,3,224,0,1,192,0,1,192,0, - 3,128,0,3,128,0,7,0,0,255,224,0,255,224,0,255, - 224,0,19,28,84,20,0,249,252,0,0,252,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,252,0,31,255,0, - 31,255,128,31,135,192,31,3,192,30,1,224,28,0,224,28, - 0,224,28,0,224,30,1,224,30,1,192,31,135,192,31,255, - 128,31,255,0,28,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,255,192,0,255,192,0,255,192,0,17,28,84,20, - 1,249,6,12,0,15,30,0,15,30,0,6,12,0,0,0, - 0,0,0,0,254,63,128,254,63,128,254,63,128,120,15,0, - 56,14,0,60,30,0,28,28,0,30,60,0,14,56,0,15, - 120,0,7,112,0,7,240,0,3,224,0,3,224,0,1,192, - 0,1,192,0,3,128,0,3,128,0,7,0,0,255,224,0, - 255,224,0,255,224,0}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 20, '1' Height: 21 - Calculated Max Values w=21 h=28 x= 8 y=16 dx=20 dy= 0 ascent=23 len=75 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24r[4775] U8G_FONT_SECTION("u8g_font_courB24r") = { - 0,30,44,249,245,20,5,57,12,115,32,127,249,23,249,21, - 249,0,0,0,20,0,1,5,21,21,20,7,0,112,248,248, - 248,248,248,112,112,112,112,112,112,112,112,112,32,0,0,112, - 248,112,9,10,20,20,5,10,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,65,0,15,26,52,20, - 2,253,14,56,14,56,14,56,14,56,14,56,14,56,14,56, - 14,56,127,254,127,254,127,254,28,112,28,112,28,112,28,112, - 255,252,255,252,255,252,56,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,224,14,27,54,20,3,252,7,0,7,0, - 7,0,15,216,63,248,127,248,240,120,224,56,224,56,240,0, - 254,0,127,192,63,240,7,248,0,252,0,60,224,28,224,28, - 240,60,255,248,255,240,231,128,7,0,7,0,7,0,7,0, - 7,0,15,21,42,20,2,0,31,0,63,128,49,128,96,192, - 96,192,96,192,113,194,63,142,31,62,0,248,3,224,31,0, - 252,248,241,252,195,142,3,6,3,6,3,6,1,140,1,252, - 0,248,14,18,36,20,2,0,7,160,31,224,63,224,60,96, - 56,0,56,0,60,0,28,0,30,0,127,60,127,188,243,188, - 225,240,224,240,224,240,255,252,127,188,63,60,4,11,11,20, - 8,10,112,112,112,112,112,224,224,224,224,224,224,7,26,26, - 20,8,251,14,14,30,60,56,56,120,112,112,240,240,240,224, - 224,240,240,240,112,112,120,56,60,28,30,14,14,7,26,26, - 20,4,251,224,224,240,120,56,56,60,28,28,30,30,30,14, - 14,30,30,30,28,28,60,56,120,112,240,224,224,15,14,28, - 20,3,7,3,128,3,128,3,128,3,128,99,140,251,190,127, - 252,31,240,15,224,15,224,30,240,60,120,120,60,48,24,17, - 17,51,20,1,1,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,255,255,128,255,255,128, - 255,255,128,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,7,10,10,20,5,251,30,30, - 60,60,56,112,112,224,224,192,15,3,6,20,2,8,255,254, - 255,254,255,254,5,4,4,20,7,0,112,248,248,112,13,27, - 54,20,3,252,0,56,0,56,0,120,0,112,0,112,0,224, - 0,224,1,224,1,192,1,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,28,0,60,0,56,0,56,0, - 112,0,112,0,240,0,224,0,224,0,13,21,42,20,3,0, - 15,128,63,224,127,240,112,112,240,120,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,112,112,127,240,63,224,15,128,13,21,42,20,4,0, - 3,0,15,0,127,0,255,0,255,0,103,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,255,248,255,248,255,248,14,21,42,20,2,0, - 7,192,31,240,63,248,120,60,112,28,112,28,112,28,0,28, - 0,56,0,120,0,240,1,224,3,192,7,128,15,0,30,0, - 60,0,120,0,255,252,255,252,255,252,15,21,42,20,2,0, - 7,224,31,240,127,248,120,60,112,28,0,28,0,28,0,60, - 7,248,7,240,7,248,0,124,0,28,0,14,0,14,0,14, - 0,30,224,60,255,252,255,248,63,224,14,21,42,20,2,0, - 0,240,1,240,1,240,3,240,7,240,7,112,15,112,14,112, - 30,112,28,112,56,112,120,112,112,112,255,252,255,252,255,252, - 0,112,0,112,3,252,3,252,3,252,15,21,42,20,2,0, - 63,252,63,252,63,252,56,0,56,0,56,0,56,0,63,224, - 63,248,63,252,56,124,0,30,0,14,0,14,0,14,0,14, - 64,30,240,60,255,248,127,248,31,224,14,21,42,20,3,0, - 1,248,7,248,15,248,31,0,60,0,120,0,112,0,112,0, - 227,192,239,240,255,240,248,120,240,60,224,28,224,28,240,28, - 112,60,120,120,127,248,63,240,15,192,14,21,42,20,2,0, - 255,252,255,252,255,252,224,60,224,56,224,56,0,56,0,120, - 0,112,0,112,0,240,0,224,0,224,1,224,1,192,1,192, - 3,192,3,128,7,128,7,0,7,0,14,21,42,20,3,0, - 15,128,63,224,127,240,112,112,224,56,224,56,224,56,112,112, - 127,240,63,224,63,240,124,248,240,60,224,28,224,28,224,28, - 224,28,248,124,127,248,63,240,15,192,14,21,42,20,3,0, - 15,128,63,224,127,240,120,240,240,120,224,56,224,60,224,60, - 224,60,240,124,120,252,63,220,63,156,15,60,0,56,0,120, - 0,112,97,240,255,224,255,128,126,0,5,15,15,20,7,0, - 112,248,248,112,0,0,0,0,0,0,0,112,248,248,112,8, - 19,19,20,5,252,14,31,31,14,0,0,0,0,0,0,30, - 30,60,56,120,112,224,224,192,18,19,57,20,0,0,0,1, - 192,0,3,192,0,15,192,0,63,128,0,254,0,1,248,0, - 7,224,0,31,128,0,127,0,0,252,0,0,127,0,0,31, - 128,0,7,224,0,1,248,0,0,254,0,0,63,128,0,15, - 192,0,3,192,0,1,192,17,9,27,20,1,5,255,255,128, - 255,255,128,255,255,128,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,255,255,128,18,19,57,20,1,0,224,0, - 0,240,0,0,252,0,0,127,0,0,31,192,0,7,224,0, - 1,248,0,0,126,0,0,63,128,0,15,192,0,63,128,0, - 126,0,1,248,0,7,224,0,31,192,0,127,0,0,252,0, - 0,240,0,0,224,0,0,13,20,40,20,3,0,31,192,127, - 224,255,240,224,248,224,56,224,56,0,56,0,120,0,240,3, - 240,7,192,7,128,7,0,7,0,0,0,0,0,0,0,7, - 0,15,128,7,0,14,23,46,20,3,254,15,192,31,224,56, - 112,112,48,96,48,224,48,192,48,193,240,199,240,198,48,204, - 48,204,48,204,48,206,48,199,252,195,188,192,0,224,0,96, - 0,112,48,56,112,31,224,15,192,21,20,60,20,255,0,31, - 240,0,31,248,0,31,248,0,1,220,0,1,220,0,1,220, - 0,3,142,0,3,142,0,3,142,0,7,7,0,7,7,0, - 7,7,0,15,255,128,15,255,128,31,255,192,28,1,192,28, - 1,192,255,143,248,255,143,248,255,143,248,18,20,60,20,1, - 0,255,248,0,255,254,0,255,255,0,28,7,128,28,3,128, - 28,3,128,28,3,128,28,7,128,31,255,0,31,252,0,31, - 254,0,28,15,128,28,3,192,28,1,192,28,1,192,28,1, - 192,28,3,192,255,255,128,255,255,0,255,252,0,18,20,60, - 20,1,0,3,249,128,15,255,128,31,255,128,62,15,128,120, - 7,128,112,3,128,240,3,128,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,240,0,0, - 120,3,128,124,7,192,63,255,128,31,255,0,7,252,0,17, - 20,60,20,1,0,255,224,0,255,248,0,255,252,0,56,62, - 0,56,15,0,56,7,0,56,7,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 7,128,56,7,0,56,31,0,255,254,0,255,252,0,255,240, - 0,17,20,60,20,1,0,255,255,0,255,255,0,255,255,0, - 28,7,0,28,7,0,28,7,0,28,119,0,28,112,0,31, - 240,0,31,240,0,31,240,0,28,112,0,28,112,0,28,3, - 128,28,3,128,28,3,128,28,3,128,255,255,128,255,255,128, - 255,255,128,17,20,60,20,1,0,255,255,128,255,255,128,255, - 255,128,28,3,128,28,3,128,28,3,128,28,115,128,28,112, - 0,31,240,0,31,240,0,31,240,0,28,112,0,28,112,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,17,20,60,20,2,0,3,243,0,15,255, - 0,31,255,0,60,15,0,120,7,0,112,7,0,240,7,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,255,128,224, - 255,128,224,255,128,240,7,0,112,7,0,124,15,0,63,255, - 0,31,254,0,7,248,0,17,20,60,20,1,0,255,127,128, - 255,127,128,255,127,128,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,63,254,0,63,254,0,63,254,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 255,127,128,255,127,128,255,127,128,13,20,40,20,3,0,255, - 248,255,248,255,248,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,255,248,255,248,255,248,17,20,60,20,2,0,7,255,128, - 7,255,128,7,255,128,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,224,56,0,224,56, - 0,224,56,0,224,56,0,224,56,0,224,120,0,240,240,0, - 255,240,0,127,224,0,31,128,0,19,20,60,20,1,0,255, - 159,192,255,159,192,255,159,192,28,15,0,28,30,0,28,60, - 0,28,120,0,28,240,0,31,224,0,31,240,0,31,248,0, - 30,124,0,28,60,0,28,30,0,28,14,0,28,15,0,28, - 7,0,255,135,224,255,135,224,255,135,224,17,20,60,20,1, - 0,255,224,0,255,224,0,255,224,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,3,128,14,3,128,14,3,128,14,3,128,14,3, - 128,14,3,128,255,255,128,255,255,128,255,255,128,21,20,60, - 20,255,0,252,1,248,252,1,248,254,3,248,62,3,224,63, - 7,224,63,7,224,59,142,224,59,142,224,59,222,224,57,220, - 224,57,220,224,56,248,224,56,248,224,56,248,224,56,112,224, - 56,112,224,56,0,224,255,7,248,255,7,248,255,7,248,19, - 20,60,20,0,0,248,31,224,252,31,224,254,31,224,62,3, - 128,63,3,128,63,3,128,59,131,128,59,195,128,57,195,128, - 57,227,128,56,243,128,56,115,128,56,123,128,56,59,128,56, - 31,128,56,31,128,56,15,128,255,7,128,255,7,128,255,3, - 128,18,20,60,20,1,0,3,240,0,15,252,0,31,254,0, - 60,15,0,120,7,128,112,3,128,240,3,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,240,3, - 192,112,3,128,120,7,128,60,15,0,31,254,0,15,252,0, - 3,240,0,17,20,60,20,1,0,255,248,0,255,254,0,255, - 255,0,28,15,0,28,3,128,28,3,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,240,0, - 28,0,0,28,0,0,28,0,0,28,0,0,255,224,0,255, - 224,0,255,224,0,18,25,75,20,1,251,3,240,0,15,248, - 0,31,254,0,60,15,0,120,7,128,112,3,128,240,3,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,112,3,128,120,7,128,60,15,0,31,254, - 0,15,252,0,7,240,0,14,0,0,31,225,192,63,255,192, - 63,255,192,56,63,0,20,20,60,20,1,0,255,248,0,255, - 254,0,255,255,0,28,15,0,28,7,128,28,3,128,28,3, - 128,28,7,128,28,15,0,31,254,0,31,252,0,31,248,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,255, - 131,240,255,129,240,255,129,240,15,20,40,20,2,0,15,204, - 63,252,127,252,240,124,224,28,224,28,240,28,248,0,127,0, - 63,224,15,248,1,252,0,62,224,30,224,14,224,14,240,30, - 255,252,255,248,231,224,17,20,60,20,1,0,255,255,128,255, - 255,128,255,255,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,63, - 254,0,63,254,0,63,254,0,19,20,60,20,0,0,255,31, - 224,255,31,224,255,31,224,56,3,128,56,3,128,56,3,128, - 56,3,128,56,3,128,56,3,128,56,3,128,56,3,128,56, - 3,128,56,3,128,56,3,128,56,3,128,28,7,0,31,31, - 0,15,254,0,7,252,0,1,240,0,21,20,60,20,255,0, - 255,143,248,255,143,248,255,143,248,28,1,192,28,1,192,30, - 3,192,14,3,128,14,3,128,7,7,0,7,7,0,7,143, - 0,3,142,0,3,142,0,3,222,0,1,220,0,1,220,0, - 0,248,0,0,248,0,0,248,0,0,112,0,19,20,60,20, - 0,0,255,31,224,255,31,224,255,31,224,112,1,192,112,1, - 192,112,225,192,112,225,192,113,241,192,57,243,128,57,243,128, - 59,187,128,59,187,128,59,187,128,63,31,128,63,31,128,30, - 15,0,30,15,0,30,15,0,28,7,0,28,7,0,19,20, - 60,20,0,0,255,31,224,255,31,224,255,31,224,60,7,128, - 30,15,0,15,30,0,7,188,0,3,248,0,1,240,0,0, - 224,0,1,240,0,3,248,0,7,188,0,15,30,0,14,14, - 0,30,15,0,60,7,128,255,31,224,255,31,224,255,31,224, - 19,20,60,20,0,0,255,31,224,255,31,224,255,31,224,60, - 7,128,14,14,0,15,30,0,7,28,0,7,188,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,15,254,0,15,254,0,15, - 254,0,15,20,40,20,2,0,127,252,127,252,127,252,112,60, - 112,56,112,120,112,240,113,224,1,192,3,192,7,128,15,0, - 14,14,30,14,60,14,120,14,112,14,255,254,255,254,255,254, - 7,26,26,20,8,251,254,254,254,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,254,254,254, - 13,27,54,20,3,252,224,0,224,0,240,0,112,0,112,0, - 56,0,56,0,60,0,28,0,28,0,14,0,14,0,15,0, - 7,0,7,128,3,128,3,128,1,192,1,192,1,224,0,224, - 0,224,0,112,0,112,0,120,0,56,0,56,7,26,26,20, - 4,251,254,254,254,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,254,254,254,13,11,22,20, - 3,11,2,0,7,0,7,0,15,128,31,192,61,224,56,224, - 120,240,240,120,224,56,224,56,20,3,9,20,0,249,255,255, - 240,255,255,240,255,255,240,6,6,6,20,6,16,192,224,112, - 56,28,12,16,15,30,20,2,0,31,224,127,248,127,252,112, - 60,0,28,0,28,15,252,127,252,127,252,240,28,224,28,224, - 124,255,255,127,223,63,159,19,21,63,20,0,0,252,0,0, - 252,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 124,0,29,255,0,31,255,128,31,135,192,30,1,192,30,1, - 224,28,0,224,28,0,224,28,0,224,28,0,224,30,1,192, - 31,3,192,255,255,128,255,255,0,252,254,0,16,15,30,20, - 2,0,7,230,31,254,63,254,124,62,112,14,224,14,224,14, - 224,0,224,0,224,0,240,6,120,15,127,254,63,252,15,240, - 19,21,63,20,1,0,0,63,0,0,63,0,0,63,0,0, - 7,0,0,7,0,0,7,0,7,231,0,31,255,0,63,255, - 0,124,63,0,112,15,0,240,15,0,224,7,0,224,7,0, - 224,7,0,224,7,0,112,15,0,124,63,0,63,255,224,31, - 247,224,7,231,224,18,15,45,20,1,0,3,240,0,15,252, - 0,31,254,0,62,31,0,120,7,128,112,3,128,255,255,128, - 255,255,128,255,255,128,240,0,0,120,0,0,126,3,128,63, - 255,192,31,255,128,7,254,0,16,21,42,20,3,0,1,255, - 7,255,7,255,15,0,14,0,14,0,255,252,255,252,255,252, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,252,255,252,255,252,18,22,66,20,1,249,7,207, - 192,31,255,192,63,255,192,124,126,0,112,30,0,240,30,0, - 224,14,0,224,14,0,224,14,0,240,30,0,112,30,0,120, - 126,0,63,254,0,31,238,0,15,206,0,0,14,0,0,14, - 0,0,30,0,0,60,0,31,252,0,31,248,0,31,224,0, - 18,21,63,20,1,0,252,0,0,252,0,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,248,0,29,252,0,31,254, - 0,31,15,0,30,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,127,31,192,127, - 31,192,127,31,192,15,21,42,20,3,0,7,128,7,128,7, - 128,7,128,0,0,0,0,127,128,127,128,127,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,255, - 254,255,254,255,254,12,28,56,20,3,249,3,192,3,192,3, - 192,3,192,0,0,0,0,255,240,255,240,255,240,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,240,255,224,255, - 192,255,128,17,21,63,20,1,0,252,0,0,252,0,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,255,0,28,255, - 0,28,255,0,28,120,0,28,240,0,29,224,0,31,192,0, - 31,192,0,31,224,0,29,240,0,28,248,0,28,124,0,252, - 63,128,252,63,128,252,63,128,15,21,42,20,3,0,127,128, - 127,128,127,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,255,254,255,254,255,254,20,15,45,20,1,0,243,143, - 0,255,255,128,255,255,192,120,241,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,112,225,192,112,225,192,112, - 225,192,252,249,240,252,249,240,252,249,240,17,15,45,20,2, - 0,249,240,0,251,248,0,255,252,0,62,30,0,60,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,254,63,128,254,63,128,254,63,128,17,15, - 45,20,2,0,7,240,0,31,252,0,63,254,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,240, - 7,128,112,7,0,120,15,0,63,254,0,31,252,0,7,240, - 0,19,22,66,20,0,249,252,124,0,253,255,0,255,255,128, - 31,3,192,30,1,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,1,224,30,1,192,31,7,192,31,255,128,29,254, - 0,28,120,0,28,0,0,28,0,0,28,0,0,28,0,0, - 255,192,0,255,192,0,255,192,0,19,22,66,20,1,249,7, - 231,224,31,255,224,63,255,224,124,63,0,112,15,0,240,15, - 0,224,7,0,224,7,0,224,7,0,240,15,0,112,15,0, - 124,63,0,63,255,0,31,247,0,7,199,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,127,224,0,127,224,0,127, - 224,17,15,45,20,2,0,126,62,0,126,255,0,127,255,128, - 15,199,0,15,2,0,15,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,255,252,0,255,252, - 0,255,252,0,15,15,30,20,3,0,15,236,63,252,63,252, - 120,60,112,28,120,0,127,192,63,248,15,252,224,62,224,14, - 248,30,255,252,255,248,231,224,16,20,40,20,2,0,28,0, - 28,0,28,0,28,0,28,0,255,252,255,252,255,252,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,6,30,31, - 31,255,15,254,3,240,18,15,45,20,1,0,252,63,0,252, - 63,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,30,31,0, - 31,255,192,15,255,192,7,247,192,19,15,45,20,0,0,255, - 31,224,255,31,224,255,31,224,60,7,0,28,7,0,30,14, - 0,14,14,0,15,28,0,7,28,0,7,184,0,3,184,0, - 3,240,0,1,240,0,1,224,0,0,224,0,19,15,45,20, - 0,0,254,15,224,254,15,224,254,15,224,56,227,128,56,227, - 128,57,243,128,61,247,128,29,247,0,31,191,0,31,31,0, - 31,31,0,15,30,0,14,14,0,14,14,0,14,14,0,17, - 15,45,20,1,0,254,63,128,254,63,128,254,63,128,60,28, - 0,30,56,0,15,112,0,7,224,0,3,224,0,3,240,0, - 7,120,0,14,60,0,28,30,0,254,63,128,254,63,128,254, - 63,128,19,22,66,20,1,249,255,31,224,255,31,224,255,31, - 224,60,3,128,28,7,0,30,7,0,14,14,0,15,14,0, - 7,28,0,7,156,0,3,184,0,3,248,0,1,240,0,1, - 240,0,0,224,0,0,224,0,1,192,0,1,192,0,3,128, - 0,127,240,0,127,240,0,127,240,0,13,15,30,20,4,0, - 255,248,255,248,255,248,224,240,225,224,227,192,7,128,15,0, - 30,0,60,0,120,56,240,56,255,248,255,248,255,248,9,26, - 52,20,5,251,7,128,15,128,15,128,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,60,0,248,0,248,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,31,128,15,128,7,128,3,26,26,20,8,251,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,9,26,52,20,5,251,240,0, - 248,0,248,0,60,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,30,0,15,128,15,128,31,128,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,252,0,248,0, - 240,0,15,7,14,20,2,6,12,0,63,14,127,142,247,222, - 227,252,225,248,0,96,255}; -/* - Fontname: -Adobe-Courier-Bold-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=17 h=27 x= 7 y= 8 dx=20 dy= 0 ascent=23 len=54 - Font Bounding box w=30 h=44 x=-7 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =23 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courB24n[707] U8G_FONT_SECTION("u8g_font_courB24n") = { - 0,30,44,249,245,21,0,0,0,0,42,58,0,23,251,21, - 0,15,14,28,20,3,7,3,128,3,128,3,128,3,128,99, - 140,251,190,127,252,31,240,15,224,15,224,30,240,60,120,120, - 60,48,24,17,17,51,20,1,1,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,255,255, - 128,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,7,10,10,20, - 5,251,30,30,60,60,56,112,112,224,224,192,15,3,6,20, - 2,8,255,254,255,254,255,254,5,4,4,20,7,0,112,248, - 248,112,13,27,54,20,3,252,0,56,0,56,0,120,0,112, - 0,112,0,224,0,224,1,224,1,192,1,192,3,128,3,128, - 7,128,7,0,15,0,14,0,14,0,28,0,28,0,60,0, - 56,0,56,0,112,0,112,0,240,0,224,0,224,0,13,21, - 42,20,3,0,15,128,63,224,127,240,112,112,240,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,240,120,112,112,127,240,63,224,15,128,13,21, - 42,20,4,0,3,0,15,0,127,0,255,0,255,0,103,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,14,21, - 42,20,2,0,7,192,31,240,63,248,120,60,112,28,112,28, - 112,28,0,28,0,56,0,120,0,240,1,224,3,192,7,128, - 15,0,30,0,60,0,120,0,255,252,255,252,255,252,15,21, - 42,20,2,0,7,224,31,240,127,248,120,60,112,28,0,28, - 0,28,0,60,7,248,7,240,7,248,0,124,0,28,0,14, - 0,14,0,14,0,30,224,60,255,252,255,248,63,224,14,21, - 42,20,2,0,0,240,1,240,1,240,3,240,7,240,7,112, - 15,112,14,112,30,112,28,112,56,112,120,112,112,112,255,252, - 255,252,255,252,0,112,0,112,3,252,3,252,3,252,15,21, - 42,20,2,0,63,252,63,252,63,252,56,0,56,0,56,0, - 56,0,63,224,63,248,63,252,56,124,0,30,0,14,0,14, - 0,14,0,14,64,30,240,60,255,248,127,248,31,224,14,21, - 42,20,3,0,1,248,7,248,15,248,31,0,60,0,120,0, - 112,0,112,0,227,192,239,240,255,240,248,120,240,60,224,28, - 224,28,240,28,112,60,120,120,127,248,63,240,15,192,14,21, - 42,20,2,0,255,252,255,252,255,252,224,60,224,56,224,56, - 0,56,0,120,0,112,0,112,0,240,0,224,0,224,1,224, - 1,192,1,192,3,192,3,128,7,128,7,0,7,0,14,21, - 42,20,3,0,15,128,63,224,127,240,112,112,224,56,224,56, - 224,56,112,112,127,240,63,224,63,240,124,248,240,60,224,28, - 224,28,224,28,224,28,248,124,127,248,63,240,15,192,14,21, - 42,20,3,0,15,128,63,224,127,240,120,240,240,120,224,56, - 224,60,224,60,224,60,240,124,120,252,63,220,63,156,15,60, - 0,56,0,120,0,112,97,240,255,224,255,128,126,0,5,15, - 15,20,7,0,112,248,248,112,0,0,0,0,0,0,0,112, - 248,248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h=10 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=10 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08[2433] U8G_FONT_SECTION("u8g_font_courR08") = { - 0,10,16,254,252,6,1,151,3,21,32,255,254,9,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,1,7,7,6,2, - 254,128,0,128,128,128,128,128,4,8,8,6,1,255,32,32, - 112,128,128,112,32,32,6,7,7,6,0,0,56,64,248,32, - 32,68,252,5,5,5,6,0,1,136,112,80,112,136,5,7, - 7,6,0,0,136,80,248,32,248,32,112,1,9,9,6,2, - 254,128,128,128,0,0,128,128,128,128,4,8,8,6,1,255, - 112,128,96,144,144,96,16,224,3,1,1,6,2,5,160,6, - 7,7,6,0,0,48,72,180,164,180,72,48,4,5,5,6, - 1,1,224,16,208,0,240,6,3,3,6,0,1,108,216,108, - 5,3,3,6,0,2,248,8,8,4,1,1,6,1,3,240, - 6,7,7,6,0,0,48,72,188,180,172,72,48,4,1,1, - 6,1,5,240,4,3,3,6,1,4,96,144,96,5,6,6, - 6,0,0,32,32,248,32,0,248,3,4,4,6,2,3,96, - 160,64,224,3,4,4,6,2,3,224,64,32,192,2,2,2, - 6,2,5,64,128,6,7,7,6,0,254,216,72,72,72,116, - 64,64,6,8,8,6,0,255,124,168,168,104,40,40,40,108, - 1,2,2,6,2,2,128,128,3,3,3,6,1,254,64,32, - 192,3,4,4,6,2,3,192,64,64,224,4,5,5,6,1, - 1,96,144,96,0,240,6,3,3,6,1,1,216,108,216,6, - 7,7,6,0,0,192,68,72,244,44,92,132,6,7,7,6, - 0,0,192,68,72,252,52,72,156,6,7,7,6,0,0,224, - 68,40,212,44,92,132,4,7,7,6,0,254,32,0,32,32, - 64,144,96,6,9,9,6,0,0,32,16,0,112,40,72,120, - 72,204,6,9,9,6,0,0,16,32,0,112,40,72,120,72, - 204,6,9,9,6,0,0,32,80,0,112,40,72,120,72,204, - 6,9,9,6,0,0,40,80,0,112,40,72,120,72,204,6, - 8,8,6,0,0,80,0,112,40,72,120,72,204,6,9,9, - 6,0,0,16,40,16,112,40,72,120,72,204,6,6,6,6, - 0,0,124,48,92,112,144,156,4,8,8,6,1,254,96,144, - 128,128,144,96,32,192,5,9,9,6,0,0,32,16,0,248, - 72,112,64,72,248,5,9,9,6,0,0,16,32,0,248,72, - 112,64,72,248,5,9,9,6,0,0,32,80,0,248,72,112, - 64,72,248,5,8,8,6,0,0,80,0,248,72,112,64,72, - 248,5,9,9,6,0,0,64,32,0,248,32,32,32,32,248, - 5,9,9,6,0,0,16,32,0,248,32,32,32,32,248,5, - 9,9,6,0,0,32,80,0,248,32,32,32,32,248,5,8, - 8,6,0,0,80,0,248,32,32,32,32,248,5,6,6,6, - 0,0,240,72,232,72,72,240,6,9,9,6,0,0,40,80, - 0,220,72,104,88,72,200,4,9,9,6,1,0,64,32,0, - 96,144,144,144,144,96,4,9,9,6,1,0,32,64,0,96, - 144,144,144,144,96,4,9,9,6,1,0,32,80,0,96,144, - 144,144,144,96,4,9,9,6,1,0,80,160,0,96,144,144, - 144,144,96,4,8,8,6,1,0,160,0,96,144,144,144,144, - 96,5,5,5,6,0,1,136,80,32,80,136,6,6,6,6, - 0,0,52,72,88,104,72,176,6,9,9,6,0,0,32,16, - 0,204,72,72,72,72,48,6,9,9,6,0,0,16,32,0, - 204,72,72,72,72,48,6,9,9,6,0,0,16,40,0,204, - 72,72,72,72,48,6,8,8,6,0,0,80,0,204,72,72, - 72,72,48,5,9,9,6,0,0,16,32,0,216,136,80,32, - 32,112,5,6,6,6,0,0,192,112,72,112,64,224,6,6, - 6,6,0,0,48,72,88,68,84,200,5,8,8,6,0,0, - 64,32,0,96,16,112,144,104,5,8,8,6,0,0,16,32, - 0,96,16,112,144,104,5,8,8,6,0,0,32,80,0,96, - 16,112,144,104,5,8,8,6,0,0,80,160,0,96,16,112, - 144,104,5,7,7,6,0,0,80,0,96,16,112,144,104,5, - 9,9,6,0,0,32,80,32,0,96,16,112,144,104,6,5, - 5,6,0,0,108,148,124,144,236,4,7,7,6,1,254,96, - 144,128,144,96,32,192,4,8,8,6,1,0,64,32,0,96, - 144,240,128,112,4,8,8,6,1,0,32,64,0,96,144,240, - 128,112,4,8,8,6,1,0,64,160,0,96,144,240,128,112, - 4,7,7,6,1,0,160,0,96,144,240,128,112,5,8,8, - 6,0,0,64,32,0,96,32,32,32,248,5,8,8,6,0, - 0,16,32,0,96,32,32,32,248,5,8,8,6,0,0,32, - 80,0,96,32,32,32,248,5,7,7,6,0,0,80,0,96, - 32,32,32,248,4,8,8,6,1,0,208,96,160,112,144,144, - 144,96,6,8,8,6,0,0,40,80,0,176,72,72,72,236, - 4,8,8,6,1,0,64,32,0,96,144,144,144,96,4,8, - 8,6,1,0,16,32,0,96,144,144,144,96,4,8,8,6, - 1,0,64,160,0,96,144,144,144,96,4,8,8,6,1,0, - 80,160,0,96,144,144,144,96,4,7,7,6,1,0,160,0, - 96,144,144,144,96,5,5,5,6,0,1,32,0,248,0,32, - 6,6,6,6,0,0,4,56,88,104,72,176,6,8,8,6, - 0,0,32,16,0,216,72,72,72,52,6,8,8,6,0,0, - 16,32,0,216,72,72,72,52,6,8,8,6,0,0,32,80, - 0,216,72,72,72,52,6,7,7,6,0,0,80,0,216,72, - 72,72,52,5,10,10,6,0,254,16,32,0,216,72,72,72, - 48,32,192,5,9,9,6,0,254,192,64,112,72,72,72,112, - 64,224,5,9,9,6,0,254,80,0,216,72,72,72,48,32, - 192}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--11-80-100-100-M-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 6, '1' Height: 7 - Calculated Max Values w= 6 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 8 len= 9 - Font Bounding box w=10 h=16 x=-2 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR08r[1157] U8G_FONT_SECTION("u8g_font_courR08r") = { - 0,10,16,254,252,6,1,151,3,21,32,127,254,8,254,7, - 254,0,0,0,6,0,1,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,4,160,160,160,5,8,8, - 6,1,255,80,80,248,80,80,248,80,80,4,8,8,6,1, - 255,32,112,128,96,16,144,96,32,6,7,7,6,0,0,224, - 164,200,48,92,148,24,6,6,6,6,0,0,48,64,96,148, - 136,116,1,3,3,6,2,4,128,128,128,3,9,9,6,2, - 254,32,64,64,128,128,128,64,64,32,3,9,9,6,1,254, - 128,64,64,32,32,32,64,64,128,5,4,4,6,0,3,32, - 216,32,80,5,5,5,6,0,1,32,32,248,32,32,2,3, - 3,6,1,254,64,64,128,4,1,1,6,1,3,240,1,2, - 2,6,2,0,128,128,6,9,9,6,0,255,4,8,16,16, - 32,32,64,64,128,4,7,7,6,1,0,96,144,144,144,144, - 144,96,4,7,7,6,1,0,32,224,32,32,32,32,240,4, - 7,7,6,1,0,96,144,16,32,64,128,240,4,7,7,6, - 1,0,96,144,16,96,16,144,96,5,7,7,6,0,0,16, - 48,80,144,248,16,16,4,7,7,6,1,0,240,128,128,224, - 16,16,224,4,7,7,6,1,0,112,128,128,224,144,144,96, - 4,7,7,6,1,0,240,144,16,32,32,64,64,4,7,7, - 6,1,0,96,144,144,96,144,144,96,4,7,7,6,1,0, - 96,144,144,112,16,16,224,1,5,5,6,2,0,128,128,0, - 128,128,2,6,6,6,1,254,64,64,0,64,64,128,3,5, - 5,6,1,1,32,64,128,64,32,4,3,3,6,1,2,240, - 0,240,3,5,5,6,2,1,128,64,32,64,128,4,6,6, - 6,1,0,96,144,32,64,0,64,6,8,8,6,0,255,56, - 68,156,168,168,156,64,56,6,6,6,6,0,0,112,40,72, - 120,72,204,5,6,6,6,0,0,240,72,112,72,72,240,4, - 6,6,6,1,0,96,144,128,128,144,96,5,6,6,6,0, - 0,240,72,72,72,72,240,5,6,6,6,0,0,248,72,112, - 64,72,248,5,6,6,6,0,0,248,72,112,80,64,224,4, - 6,6,6,1,0,96,144,128,176,144,96,6,6,6,6,0, - 0,204,72,120,72,72,204,5,6,6,6,1,0,248,32,32, - 32,32,248,5,6,6,6,1,0,120,16,16,144,144,96,6, - 6,6,6,0,0,216,80,96,80,72,228,5,6,6,6,1, - 0,224,64,64,64,72,248,5,6,6,6,1,0,136,216,168, - 168,136,216,6,6,6,6,0,0,220,72,104,88,72,200,4, - 6,6,6,1,0,96,144,144,144,144,96,5,6,6,6,1, - 0,240,72,72,112,64,224,4,7,7,6,1,255,96,144,144, - 144,144,96,112,6,6,6,6,0,0,240,72,72,112,72,228, - 4,6,6,6,1,0,112,128,96,16,144,224,5,6,6,6, - 0,0,248,168,32,32,32,112,6,6,6,6,0,0,204,72, - 72,72,72,48,6,6,6,6,0,0,220,136,80,80,80,32, - 6,6,6,6,0,0,220,136,168,168,80,80,5,6,6,6, - 1,0,216,80,32,32,80,216,5,6,6,6,1,0,216,136, - 80,32,32,112,4,6,6,6,1,0,240,144,32,64,144,240, - 2,9,9,6,2,254,192,128,128,128,128,128,128,128,192,5, - 9,9,6,1,255,128,128,64,64,32,32,16,16,8,2,9, - 9,6,2,254,192,64,64,64,64,64,64,64,192,5,3,3, - 6,1,4,32,80,136,6,1,1,6,0,254,252,2,2,2, - 6,1,6,128,64,5,5,5,6,0,0,96,16,112,144,104, - 5,7,7,6,0,0,192,64,112,72,72,72,240,4,5,5, - 6,1,0,96,144,128,144,96,5,7,7,6,1,0,48,16, - 112,144,144,144,104,4,5,5,6,1,0,96,144,224,144,96, - 4,7,7,6,1,0,48,64,240,64,64,64,240,5,7,7, - 6,1,254,104,144,144,144,112,16,224,6,7,7,6,0,0, - 192,64,112,72,72,72,236,5,7,7,6,1,0,32,0,96, - 32,32,32,248,3,9,9,6,1,254,32,0,224,32,32,32, - 32,32,192,5,7,7,6,0,0,192,64,88,80,96,80,216, - 5,7,7,6,1,0,96,32,32,32,32,32,248,6,5,5, - 6,0,0,208,168,168,168,172,6,5,5,6,0,0,176,72, - 72,72,236,4,5,5,6,1,0,96,144,144,144,96,5,7, - 7,6,0,254,176,72,72,72,112,64,240,5,7,7,6,1, - 254,104,144,144,144,112,16,56,5,5,5,6,1,0,184,64, - 64,64,240,4,5,5,6,1,0,112,128,96,16,224,5,7, - 7,6,1,0,64,64,240,64,64,72,48,6,5,5,6,0, - 0,216,72,72,72,52,6,5,5,6,0,0,204,68,40,40, - 16,6,5,5,6,0,0,172,168,168,80,80,5,5,5,6, - 0,0,216,80,32,80,216,5,7,7,6,0,254,216,72,72, - 72,48,32,192,4,5,5,6,1,0,240,32,64,144,240,3, - 9,9,6,2,254,32,64,64,64,128,64,64,64,32,1,9, - 9,6,2,254,128,128,128,128,128,128,128,128,128,3,9,9, - 6,2,254,128,64,64,64,32,64,64,64,128,4,2,2,6, - 1,3,80,160,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx= 9 dy= 0 ascent=12 len=24 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10[3052] U8G_FONT_SECTION("u8g_font_courR10") = { - 0,14,20,253,251,9,1,224,3,220,32,255,253,12,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,9,0,1,1,9,9,9,4,254,128, - 128,0,128,128,128,128,128,128,5,9,9,9,2,0,32,32, - 120,136,128,136,112,32,32,7,9,9,9,1,0,24,36,32, - 32,120,32,32,66,252,6,6,6,9,1,1,180,72,132,132, - 72,180,7,9,9,9,1,0,238,68,68,40,124,16,124,16, - 56,1,11,11,9,3,254,128,128,128,128,0,0,128,128,128, - 128,128,6,10,10,9,1,255,60,68,64,240,136,68,60,8, - 136,240,5,1,1,9,2,8,216,8,9,9,9,0,0,60, - 66,153,165,161,165,153,66,60,4,6,6,9,2,3,192,32, - 224,176,0,240,8,7,7,9,0,0,17,34,68,204,68,34, - 17,7,3,3,9,1,3,254,2,2,6,1,1,9,1,4, - 252,8,9,9,9,0,0,60,66,185,165,185,169,165,66,60, - 4,1,1,9,2,8,240,4,4,4,9,2,6,96,144,144, - 96,7,7,7,9,1,1,16,16,254,16,16,0,254,4,6, - 6,9,2,4,96,144,16,32,64,240,4,6,6,9,2,4, - 96,144,96,16,144,96,4,2,2,9,2,8,48,192,8,10, - 10,9,0,253,198,66,66,66,66,70,123,64,64,64,7,10, - 10,9,1,255,126,148,148,148,116,20,20,20,20,62,2,2, - 2,9,3,3,192,192,3,3,3,9,2,253,64,32,224,3, - 6,6,9,3,4,64,192,64,64,64,224,4,6,6,9,2, - 3,96,144,144,96,0,240,8,7,7,9,0,0,136,68,34, - 51,34,68,136,10,10,20,9,255,0,64,0,193,0,66,0, - 68,0,68,128,233,128,18,128,20,128,39,192,64,128,10,10, - 20,9,255,0,64,0,193,0,66,0,68,0,69,128,234,64, - 16,64,16,128,33,0,67,192,10,10,20,9,255,0,96,0, - 145,0,98,0,20,0,148,128,105,128,18,128,20,128,39,192, - 64,128,5,9,9,9,2,254,32,32,0,32,96,128,128,136, - 112,9,12,24,9,0,0,48,0,12,0,0,0,56,0,8, - 0,20,0,20,0,34,0,62,0,65,0,65,0,247,128,9, - 12,24,9,0,0,12,0,48,0,0,0,56,0,8,0,20, - 0,20,0,34,0,62,0,65,0,65,0,247,128,9,12,24, - 9,0,0,8,0,20,0,0,0,56,0,8,0,20,0,20, - 0,34,0,62,0,65,0,65,0,247,128,9,12,24,9,0, - 0,26,0,44,0,0,0,56,0,8,0,20,0,20,0,34, - 0,62,0,65,0,65,0,247,128,9,11,22,9,0,0,54, - 0,0,0,56,0,8,0,20,0,20,0,34,0,62,0,65, - 0,65,0,247,128,9,12,24,9,0,0,24,0,36,0,24, - 0,56,0,8,0,20,0,20,0,34,0,62,0,65,0,65, - 0,247,128,9,9,18,9,255,0,31,128,12,128,20,0,20, - 128,39,128,60,128,68,0,68,128,239,128,7,12,12,9,1, - 253,58,70,130,128,128,128,128,66,60,16,8,56,7,12,12, - 9,1,0,96,24,0,254,66,66,72,120,72,66,66,254,7, - 12,12,9,1,0,12,48,0,254,66,66,72,120,72,66,66, - 254,7,12,12,9,1,0,16,40,0,254,66,66,72,120,72, - 66,66,254,7,11,11,9,1,0,108,0,254,66,66,72,120, - 72,66,66,254,5,12,12,9,2,0,192,48,0,248,32,32, - 32,32,32,32,32,248,5,12,12,9,2,0,24,96,0,248, - 32,32,32,32,32,32,32,248,5,12,12,9,2,0,32,80, - 0,248,32,32,32,32,32,32,32,248,5,11,11,9,2,0, - 216,0,248,32,32,32,32,32,32,32,248,8,9,9,9,0, - 0,252,66,65,65,241,65,65,66,252,8,12,12,9,0,0, - 26,44,0,231,98,82,82,74,74,70,70,226,8,12,12,9, - 0,0,48,12,0,60,66,129,129,129,129,129,66,60,8,12, - 12,9,0,0,12,48,0,60,66,129,129,129,129,129,66,60, - 8,12,12,9,0,0,16,40,0,60,66,129,129,129,129,129, - 66,60,8,12,12,9,0,0,26,44,0,60,66,129,129,129, - 129,129,66,60,8,11,11,9,0,0,102,0,60,66,129,129, - 129,129,129,66,60,7,7,7,9,1,1,130,68,40,16,40, - 68,130,9,9,18,9,255,0,30,128,33,0,66,128,68,128, - 72,128,80,128,32,128,97,0,158,0,8,12,12,9,0,0, - 48,12,0,231,66,66,66,66,66,66,66,60,8,12,12,9, - 0,0,12,48,0,231,66,66,66,66,66,66,66,60,8,12, - 12,9,0,0,16,40,0,231,66,66,66,66,66,66,66,60, - 8,11,11,9,0,0,102,0,231,66,66,66,66,66,66,66, - 60,7,12,12,9,1,0,12,48,0,238,68,68,40,40,16, - 16,16,124,7,9,9,9,0,0,224,64,124,66,66,66,124, - 64,224,7,9,9,9,0,0,56,68,68,88,68,66,66,82, - 204,7,10,10,9,1,0,96,24,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,24,96,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,16,40,0,120,132,4,124,132,140, - 118,7,10,10,9,1,0,52,88,0,120,132,4,124,132,140, - 118,7,9,9,9,1,0,108,0,120,132,4,124,132,140,118, - 7,10,10,9,1,0,48,72,48,120,132,4,124,132,140,118, - 8,7,7,9,0,0,118,137,9,127,136,137,118,7,10,10, - 9,1,253,58,70,130,128,128,66,60,16,8,56,7,10,10, - 9,1,0,96,24,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,12,48,0,56,68,130,254,128,66,60,7,10,10, - 9,1,0,16,40,0,56,68,130,254,128,66,60,7,9,9, - 9,1,0,108,0,56,68,130,254,128,66,60,5,10,10,9, - 2,0,192,48,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,48,192,0,224,32,32,32,32,32,248,5,10,10,9, - 2,0,32,80,0,224,32,32,32,32,32,248,5,9,9,9, - 2,0,216,0,224,32,32,32,32,32,248,8,12,12,9,0, - 0,2,228,24,40,68,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,220,98,66,66,66,66,231,8,10,10, - 9,0,0,48,12,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,12,48,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,16,40,0,60,66,129,129,129,66,60,8,10,10, - 9,0,0,26,44,0,60,66,129,129,129,66,60,8,9,9, - 9,0,0,108,0,60,66,129,129,129,66,60,8,7,7,9, - 0,1,24,24,0,255,0,24,24,8,7,7,9,0,0,61, - 70,137,145,161,66,188,8,10,10,9,0,0,48,12,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,12,48,0,198, - 66,66,66,66,70,59,8,10,10,9,0,0,16,40,0,198, - 66,66,66,66,70,59,8,9,9,9,0,0,108,0,198,66, - 66,66,66,70,59,8,13,13,9,0,253,6,24,0,231,66, - 66,36,36,24,8,16,16,120,8,12,12,9,0,253,192,64, - 92,98,65,65,65,98,92,64,64,240,8,12,12,9,0,253, - 54,0,231,66,66,36,36,24,8,16,16,120}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--14-100-100-100-M-90-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 9, '1' Height: 10 - Calculated Max Values w= 9 h=13 x= 3 y= 8 dx= 9 dy= 0 ascent=11 len=18 - Font Bounding box w=14 h=20 x=-3 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR10r[1443] U8G_FONT_SECTION("u8g_font_courR10r") = { - 0,14,20,253,251,9,1,224,3,220,32,127,253,11,253,10, - 253,0,0,0,9,0,1,1,9,9,9,3,0,128,128,128, - 128,128,128,0,128,128,4,4,4,9,2,6,144,144,144,144, - 5,10,10,9,2,255,80,80,80,248,80,80,248,80,80,80, - 5,13,13,9,2,254,32,32,120,136,128,192,48,8,136,240, - 32,32,32,8,10,10,9,0,0,96,144,144,115,12,48,204, - 18,18,12,6,8,8,9,1,0,56,64,64,64,168,144,152, - 100,1,4,4,9,3,5,128,128,128,128,3,12,12,9,3, - 254,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 9,2,254,128,64,64,32,32,32,32,32,32,64,64,128,5, - 6,6,9,1,3,32,32,248,32,80,136,7,7,7,9,1, - 1,16,16,16,254,16,16,16,3,4,4,9,2,254,96,96, - 192,128,6,1,1,9,1,4,252,2,2,2,9,3,0,192, - 192,6,11,11,9,1,255,4,8,8,16,16,32,32,64,64, - 128,128,6,10,10,9,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,9,1,0,32,96,160,32,32,32,32,32, - 32,248,5,10,10,9,1,0,112,136,136,8,16,32,64,128, - 136,248,6,10,10,9,1,0,56,68,4,4,24,4,4,4, - 132,120,6,10,10,9,1,0,24,40,40,72,72,136,136,252, - 8,28,6,10,10,9,1,0,124,64,64,64,120,4,4,4, - 132,120,6,10,10,9,1,0,56,64,128,128,184,196,132,132, - 68,56,6,10,10,9,1,0,252,132,4,8,8,8,16,16, - 16,16,5,10,10,9,2,0,112,136,136,136,112,136,136,136, - 136,112,6,10,10,9,1,0,112,136,132,132,140,116,4,4, - 8,112,2,7,7,9,3,0,192,192,0,0,0,192,192,3, - 9,9,9,2,254,96,96,0,0,0,96,96,192,128,7,7, - 7,9,0,1,6,24,96,128,96,24,6,7,3,3,9,1, - 3,254,0,254,7,7,7,9,1,1,192,48,12,2,12,48, - 192,5,9,9,9,1,0,112,136,8,8,48,32,0,32,32, - 7,10,10,9,1,255,56,68,132,156,164,164,158,128,64,56, - 9,9,18,9,255,0,56,0,8,0,20,0,20,0,34,0, - 62,0,65,0,65,0,247,128,7,9,9,9,0,0,252,66, - 66,66,124,66,66,66,252,7,9,9,9,1,0,58,70,130, - 128,128,128,128,66,60,8,9,9,9,0,0,252,66,65,65, - 65,65,65,66,252,7,9,9,9,1,0,254,66,66,72,120, - 72,66,66,254,7,9,9,9,1,0,254,66,66,72,120,72, - 64,64,240,8,9,9,9,0,0,58,70,130,128,128,143,130, - 66,60,8,9,9,9,0,0,231,66,66,66,126,66,66,66, - 231,5,9,9,9,2,0,248,32,32,32,32,32,32,32,248, - 7,9,9,9,1,0,62,8,8,8,8,136,136,136,112,8, - 9,9,9,0,0,238,68,72,80,112,72,68,68,227,8,9, - 9,9,0,0,248,32,32,32,32,33,33,33,255,9,9,18, - 9,0,0,227,128,99,0,85,0,85,0,73,0,73,0,65, - 0,65,0,227,128,8,9,9,9,0,0,231,98,82,82,74, - 74,70,70,226,8,9,9,9,0,0,60,66,129,129,129,129, - 129,66,60,7,9,9,9,1,0,252,66,66,66,66,124,64, - 64,240,8,11,11,9,0,254,60,66,129,129,129,129,129,66, - 60,49,94,8,9,9,9,0,0,252,66,66,66,68,120,68, - 66,225,6,9,9,9,1,0,116,140,132,128,120,4,132,196, - 184,7,9,9,9,1,0,254,146,146,16,16,16,16,16,124, - 8,9,9,9,0,0,231,66,66,66,66,66,66,66,60,9, - 9,18,9,0,0,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,9,9,18,9,0,0,227,128,65, - 0,73,0,73,0,85,0,85,0,34,0,34,0,34,0,8, - 9,9,9,0,0,231,66,36,36,24,36,36,66,231,7,9, - 9,9,0,0,238,68,68,40,40,16,16,16,124,6,9,9, - 9,1,0,252,132,136,16,32,32,68,132,252,3,12,12,9, - 3,254,224,128,128,128,128,128,128,128,128,128,128,224,6,11, - 11,9,1,255,128,64,64,32,32,16,16,8,8,4,4,3, - 12,12,9,2,254,224,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,9,2,4,32,80,80,136,136,9,1,2,9, - 0,253,255,128,4,2,2,9,2,8,192,48,7,7,7,9, - 1,0,120,132,4,124,132,132,122,8,10,10,9,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,9,1,0,58, - 70,130,128,128,66,60,8,10,10,9,0,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,9,1,0,56,68,130,254, - 128,66,60,7,10,10,9,1,0,30,32,32,252,32,32,32, - 32,32,248,8,10,10,9,0,253,59,70,130,130,130,70,58, - 2,4,120,8,10,10,9,0,0,192,64,64,92,98,66,66, - 66,66,231,5,10,10,9,2,0,32,32,0,224,32,32,32, - 32,32,248,5,13,13,9,1,253,8,8,0,248,8,8,8, - 8,8,8,8,16,224,7,10,10,9,1,0,192,64,64,78, - 72,80,96,80,72,206,5,10,10,9,2,0,224,32,32,32, - 32,32,32,32,32,248,9,7,14,9,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,9,0,0, - 220,98,66,66,66,66,231,8,7,7,9,0,0,60,66,129, - 129,129,66,60,8,10,10,9,0,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,9,0,253,59,70,130,130,130,70, - 58,2,2,15,7,7,7,9,1,0,204,82,96,64,64,64, - 248,6,7,7,9,1,0,124,132,128,120,4,132,248,7,9, - 9,9,0,0,32,32,252,32,32,32,32,34,28,8,7,7, - 9,0,0,198,66,66,66,66,70,59,8,7,7,9,0,0, - 231,66,66,36,36,24,24,9,7,14,9,0,0,227,128,65, - 0,73,0,73,0,42,0,54,0,34,0,7,7,7,9,0, - 0,238,68,40,16,40,68,238,8,10,10,9,0,253,231,66, - 66,36,36,24,8,16,16,120,5,7,7,9,2,0,248,136, - 16,32,64,136,248,3,12,12,9,2,254,32,64,64,64,64, - 128,64,64,64,64,64,32,1,11,11,9,3,254,128,128,128, - 128,128,128,128,128,128,128,128,3,12,12,9,2,254,128,64, - 64,64,64,32,64,64,64,64,64,128,6,2,2,9,1,3, - 100,152,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=14 x= 4 y= 8 dx=10 dy= 0 ascent=14 len=28 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12[3471] U8G_FONT_SECTION("u8g_font_courR12") = { - 0,15,24,253,250,10,2,12,4,92,32,255,253,14,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,10,0,1,1,10, - 10,10,4,253,128,128,0,128,128,128,128,128,128,128,5,10, - 10,10,2,0,32,32,120,136,128,128,136,112,32,32,8,10, - 10,10,1,0,28,34,32,32,248,32,32,32,65,255,7,7, - 7,10,1,1,130,124,68,68,68,124,130,9,10,20,10,0, - 0,227,128,65,0,34,0,34,0,20,0,62,0,8,0,62, - 0,8,0,62,0,1,12,12,10,4,254,128,128,128,128,128, - 0,0,128,128,128,128,128,9,12,24,10,0,255,31,0,33, - 0,33,0,112,0,140,0,131,0,96,128,24,128,7,0,66, - 0,66,0,124,0,4,2,2,10,3,8,144,144,10,10,20, - 10,0,0,30,0,33,0,64,128,142,64,144,64,144,64,142, - 64,64,128,33,0,30,0,5,7,7,10,2,3,112,8,120, - 136,120,0,248,7,7,7,10,1,0,18,36,72,144,72,36, - 18,7,4,4,10,1,2,254,2,2,2,7,1,1,10,1, - 4,254,10,10,20,10,0,0,30,0,33,0,64,128,156,64, - 146,64,156,64,146,64,64,128,33,0,30,0,5,1,1,10, - 2,8,248,5,5,5,10,2,6,112,136,136,136,112,7,9, - 9,10,1,0,16,16,16,254,16,16,16,0,254,4,6,6, - 10,2,5,96,144,32,64,144,240,4,6,6,10,3,5,96, - 144,32,16,144,96,3,3,3,10,4,8,32,64,128,8,10, - 10,10,1,253,198,66,66,66,66,70,123,64,64,64,7,12, - 12,10,1,255,62,84,148,148,148,84,52,20,20,20,20,62, - 2,2,2,10,4,4,192,192,3,4,4,10,3,253,64,64, - 32,224,5,6,6,10,2,5,32,224,32,32,32,248,5,7, - 7,10,2,3,112,136,136,136,112,0,248,7,7,7,10,1, - 0,144,72,36,18,36,72,144,10,11,22,10,0,0,32,0, - 224,64,32,128,33,0,34,0,252,128,9,128,18,128,36,128, - 71,192,0,128,10,11,22,10,0,0,32,0,224,64,32,128, - 33,0,34,0,253,128,10,64,16,128,33,0,66,64,3,192, - 10,11,22,10,0,0,96,0,144,64,32,128,17,0,146,0, - 100,128,9,128,18,128,36,128,71,192,0,128,6,10,10,10, - 1,253,16,16,0,16,16,96,128,132,132,120,9,14,28,10, - 0,0,32,0,16,0,8,0,0,0,120,0,20,0,20,0, - 34,0,34,0,34,0,62,0,65,0,65,0,227,128,9,14, - 28,10,0,0,4,0,8,0,16,0,0,0,120,0,20,0, - 20,0,34,0,34,0,34,0,62,0,65,0,65,0,227,128, - 9,14,28,10,0,0,8,0,20,0,34,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,50,0,76,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,13,26,10,0,0,36,0,36,0,0,0,120,0, - 20,0,20,0,34,0,34,0,34,0,62,0,65,0,65,0, - 227,128,9,14,28,10,0,0,24,0,36,0,36,0,24,0, - 120,0,20,0,20,0,34,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,10,20,10,0,0,127,128,40,128,40,128, - 74,0,78,0,122,0,72,128,136,128,136,128,223,128,8,13, - 13,10,1,253,29,99,65,128,128,128,128,65,99,28,16,8, - 56,7,14,14,10,1,0,32,16,8,0,254,66,66,72,120, - 72,64,66,66,254,7,14,14,10,1,0,4,8,16,0,254, - 66,66,72,120,72,64,66,66,254,7,14,14,10,1,0,16, - 40,68,0,254,66,66,72,120,72,64,66,66,254,7,13,13, - 10,1,0,36,36,0,254,66,66,72,120,72,64,66,66,254, - 7,14,14,10,1,0,32,16,8,0,254,16,16,16,16,16, - 16,16,16,254,7,14,14,10,1,0,8,16,32,0,254,16, - 16,16,16,16,16,16,16,254,7,14,14,10,1,0,16,40, - 68,0,254,16,16,16,16,16,16,16,16,254,7,13,13,10, - 1,0,68,68,0,254,16,16,16,16,16,16,16,16,254,8, - 10,10,10,1,0,248,70,66,65,241,65,65,66,70,248,9, - 13,26,10,0,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,243,0,8, - 14,14,10,1,0,32,16,8,0,60,66,66,129,129,129,129, - 66,66,60,8,14,14,10,1,0,4,8,16,0,60,66,66, - 129,129,129,129,66,66,60,8,14,14,10,1,0,8,20,34, - 0,60,66,66,129,129,129,129,66,66,60,8,13,13,10,1, - 0,50,76,0,60,66,66,129,129,129,129,66,66,60,8,13, - 13,10,1,0,36,36,0,60,66,66,129,129,129,129,66,66, - 60,7,7,7,10,1,1,130,68,40,16,40,68,130,8,10, - 10,10,1,0,61,66,66,133,137,145,161,66,66,188,9,14, - 28,10,0,0,16,0,8,0,4,0,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,14,28,10,0,0,2,0,4,0,8,0,0,0,247,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 28,0,9,14,28,10,0,0,8,0,20,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,13,26,10,0,0,34,0,34,0,0,0, - 247,128,65,0,65,0,65,0,65,0,65,0,65,0,65,0, - 34,0,28,0,9,14,28,10,0,0,2,0,4,0,8,0, - 0,0,227,128,65,0,34,0,34,0,20,0,8,0,8,0, - 8,0,8,0,62,0,8,10,10,10,1,0,224,64,124,66, - 65,66,124,64,64,224,7,11,11,10,1,0,56,68,68,72, - 88,68,66,66,66,82,204,7,11,11,10,1,0,32,16,8, - 0,56,68,4,124,132,132,122,7,11,11,10,1,0,4,8, - 16,0,56,68,4,124,132,132,122,7,11,11,10,1,0,16, - 40,68,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 50,76,0,56,68,4,124,132,132,122,7,10,10,10,1,0, - 36,36,0,56,68,4,124,132,132,122,7,12,12,10,1,0, - 24,36,36,24,0,56,68,4,124,132,132,122,9,7,14,10, - 0,0,55,0,72,128,8,128,127,128,136,0,136,128,119,0, - 7,10,10,10,1,253,58,70,130,128,128,66,60,16,8,56, - 7,11,11,10,1,0,32,16,8,0,56,68,130,254,128,66, - 60,7,11,11,10,1,0,4,8,16,0,56,68,130,254,128, - 66,60,7,11,11,10,1,0,16,40,68,0,56,68,130,254, - 128,66,60,7,10,10,10,1,0,36,36,0,56,68,130,254, - 128,66,60,7,11,11,10,1,0,32,16,8,0,112,16,16, - 16,16,16,254,7,11,11,10,1,0,8,16,32,0,112,16, - 16,16,16,16,254,7,11,11,10,1,0,16,40,68,0,112, - 16,16,16,16,16,254,7,10,10,10,1,0,72,72,0,112, - 16,16,16,16,16,254,7,11,11,10,1,0,230,24,104,4, - 60,66,130,130,130,68,56,8,10,10,10,1,0,50,76,0, - 220,98,66,66,66,66,231,7,11,11,10,1,0,32,16,8, - 0,56,68,130,130,130,68,56,7,11,11,10,1,0,8,16, - 32,0,56,68,130,130,130,68,56,7,11,11,10,1,0,16, - 40,68,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 50,76,0,56,68,130,130,130,68,56,7,10,10,10,1,0, - 68,68,0,56,68,130,130,130,68,56,8,7,7,10,1,1, - 24,24,0,255,0,24,24,7,9,9,10,1,255,2,58,68, - 138,146,162,68,184,128,8,11,11,10,1,0,32,16,8,0, - 198,66,66,66,66,70,59,8,11,11,10,1,0,4,8,16, - 0,198,66,66,66,66,70,59,8,11,11,10,1,0,16,40, - 68,0,198,66,66,66,66,70,59,8,10,10,10,1,0,36, - 36,0,198,66,66,66,66,70,59,9,14,28,10,0,253,2, - 0,4,0,8,0,0,0,227,128,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,120,0,8,14,14,10,1, - 253,192,64,64,64,92,98,65,65,65,98,92,64,64,240,9, - 13,26,10,0,253,18,0,18,0,0,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,16,0,120,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--17-120-100-100-M-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 11 - Calculated Max Values w=10 h=13 x= 4 y= 8 dx=10 dy= 0 ascent=12 len=24 - Font Bounding box w=15 h=24 x=-3 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR12r[1592] U8G_FONT_SECTION("u8g_font_courR12r") = { - 0,15,24,253,250,10,2,12,4,92,32,127,253,12,253,11, - 253,0,0,0,10,0,1,1,11,11,10,4,0,128,128,128, - 128,128,128,128,128,0,128,128,4,5,5,10,3,6,144,144, - 144,144,144,7,12,12,10,1,255,40,40,40,40,254,40,40, - 254,40,40,40,40,5,13,13,10,2,255,32,32,120,136,128, - 128,112,8,8,136,240,32,32,7,11,11,10,1,0,112,136, - 136,112,6,56,192,28,34,34,28,6,9,9,10,1,0,48, - 72,64,32,100,148,136,136,116,1,5,5,10,4,6,128,128, - 128,128,128,3,13,13,10,4,254,32,64,64,64,128,128,128, - 128,128,64,64,64,32,3,13,13,10,2,254,128,64,64,64, - 32,32,32,32,32,64,64,64,128,7,6,6,10,1,5,16, - 16,254,56,40,68,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,3,4,4,10,2,254,96,96,64,128,7,1, - 1,10,1,4,254,2,2,2,10,3,0,192,192,6,13,13, - 10,2,254,4,4,8,8,16,16,16,32,32,64,64,128,128, - 7,11,11,10,1,0,56,68,68,130,130,130,130,130,68,68, - 56,7,11,11,10,1,0,16,48,208,16,16,16,16,16,16, - 16,254,7,11,11,10,1,0,56,68,130,2,2,4,8,16, - 32,66,254,7,11,11,10,1,0,56,68,130,4,24,4,2, - 2,130,68,56,7,11,11,10,1,0,12,12,20,36,36,68, - 132,254,4,4,30,7,11,11,10,1,0,126,64,64,64,120, - 68,2,2,130,68,56,7,11,11,10,2,0,28,96,64,128, - 184,196,130,130,130,68,56,6,11,11,10,1,0,252,132,4, - 8,8,8,16,16,16,32,32,6,11,11,10,2,0,48,72, - 132,132,120,72,132,132,132,72,48,7,11,11,10,1,0,56, - 68,130,130,70,58,2,2,4,12,112,2,7,7,10,3,0, - 192,192,0,0,0,192,192,3,9,9,10,2,254,96,96,0, - 0,0,96,96,64,128,8,9,9,10,1,0,1,6,24,96, - 128,96,24,6,1,8,4,4,10,1,3,255,0,0,255,8, - 9,9,10,1,0,128,96,24,6,1,6,24,96,128,6,10, - 10,10,2,0,120,132,132,4,24,32,32,0,32,32,9,12, - 24,10,0,255,62,0,65,0,65,0,128,128,156,128,164,128, - 164,128,164,128,159,0,64,0,65,0,62,0,9,10,20,10, - 0,0,120,0,20,0,20,0,34,0,34,0,34,0,62,0, - 65,0,65,0,227,128,8,10,10,10,1,0,252,66,65,66, - 124,66,65,65,66,252,8,10,10,10,1,0,29,99,65,128, - 128,128,128,65,99,28,8,10,10,10,1,0,248,70,66,65, - 65,65,65,66,70,248,7,10,10,10,1,0,254,66,66,72, - 120,72,64,66,66,254,7,10,10,10,1,0,254,66,66,72, - 120,72,64,64,64,240,9,10,20,10,1,0,29,0,99,0, - 65,0,128,0,128,0,135,128,129,0,65,0,97,0,30,0, - 8,10,10,10,1,0,231,66,66,66,126,66,66,66,66,231, - 7,10,10,10,1,0,254,16,16,16,16,16,16,16,16,254, - 8,10,10,10,1,0,63,4,4,4,4,4,132,132,132,120, - 8,10,10,10,1,0,247,66,68,72,80,120,68,68,66,243, - 8,10,10,10,1,0,248,32,32,32,32,32,33,33,33,255, - 9,10,20,10,0,0,193,128,99,0,99,0,85,0,85,0, - 73,0,73,0,65,0,65,0,227,128,9,10,20,10,0,0, - 231,128,97,0,81,0,81,0,73,0,73,0,69,0,69,0, - 67,0,243,0,8,10,10,10,1,0,60,66,66,129,129,129, - 129,66,66,60,8,10,10,10,1,0,252,66,65,65,66,124, - 64,64,64,248,8,12,12,10,1,254,60,66,66,129,129,129, - 129,66,66,60,17,46,8,10,10,10,1,0,248,68,66,66, - 68,120,68,66,66,243,7,10,10,10,1,0,58,70,130,128, - 112,12,2,130,196,184,7,10,10,10,1,0,254,146,146,146, - 16,16,16,16,16,124,9,10,20,10,0,0,247,128,65,0, - 65,0,65,0,65,0,65,0,65,0,65,0,34,0,28,0, - 9,10,20,10,0,0,227,128,65,0,65,0,34,0,34,0, - 34,0,20,0,20,0,8,0,8,0,9,10,20,10,0,0, - 247,128,65,0,73,0,73,0,85,0,85,0,85,0,34,0, - 34,0,34,0,9,10,20,10,0,0,227,128,65,0,34,0, - 20,0,8,0,8,0,20,0,34,0,65,0,227,128,9,10, - 20,10,0,0,227,128,65,0,34,0,34,0,20,0,8,0, - 8,0,8,0,8,0,62,0,7,10,10,10,1,0,254,130, - 132,8,16,16,32,66,130,254,3,13,13,10,4,254,224,128, - 128,128,128,128,128,128,128,128,128,128,224,6,13,13,10,2, - 254,128,128,64,64,32,32,32,16,16,8,8,4,4,3,13, - 13,10,2,254,224,32,32,32,32,32,32,32,32,32,32,32, - 224,7,4,4,10,1,7,16,40,68,130,10,1,2,10,0, - 253,255,192,3,3,3,10,2,8,128,64,32,7,7,7,10, - 1,0,56,68,4,124,132,132,122,8,10,10,10,0,0,192, - 64,64,92,98,65,65,65,98,220,7,7,7,10,1,0,58, - 70,130,128,128,66,60,8,10,10,10,1,0,6,2,2,58, - 70,130,130,130,70,59,7,7,7,10,1,0,56,68,130,254, - 128,66,60,7,10,10,10,2,0,28,34,32,252,32,32,32, - 32,32,252,8,10,10,10,1,253,59,70,130,130,130,70,58, - 2,2,60,8,10,10,10,1,0,192,64,64,92,98,66,66, - 66,66,231,7,10,10,10,1,0,16,16,0,112,16,16,16, - 16,16,254,5,13,13,10,2,253,16,16,0,248,8,8,8, - 8,8,8,8,8,240,8,10,10,10,1,0,192,64,64,79, - 68,72,112,72,68,207,7,10,10,10,1,0,112,16,16,16, - 16,16,16,16,16,254,9,7,14,10,0,0,219,0,109,0, - 73,0,73,0,73,0,73,0,237,128,8,7,7,10,1,0, - 220,98,66,66,66,66,231,7,7,7,10,1,0,56,68,130, - 130,130,68,56,8,10,10,10,1,253,220,98,65,65,65,98, - 92,64,64,240,8,10,10,10,1,253,59,70,130,130,130,70, - 58,2,2,15,8,7,7,10,1,0,238,49,32,32,32,32, - 252,6,7,7,10,2,0,124,132,128,120,4,132,248,8,9, - 9,10,0,0,32,32,254,32,32,32,32,33,30,8,7,7, - 10,1,0,198,66,66,66,66,70,59,9,7,14,10,0,0, - 247,128,65,0,34,0,34,0,20,0,20,0,8,0,9,7, - 14,10,0,0,227,128,65,0,73,0,42,0,42,0,54,0, - 34,0,7,7,7,10,1,0,238,68,40,16,40,68,238,9, - 10,20,10,0,253,227,128,65,0,34,0,34,0,20,0,20, - 0,8,0,8,0,16,0,120,0,6,7,7,10,2,0,252, - 136,16,32,64,132,252,3,13,13,10,3,254,32,64,64,64, - 64,64,128,64,64,64,64,64,32,1,12,12,10,4,254,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,10,3, - 254,128,64,64,64,64,64,32,64,64,64,64,64,128,7,3, - 3,10,1,3,96,146,12,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y=10 dx=11 dy= 0 ascent=15 len=32 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14[4276] U8G_FONT_SECTION("u8g_font_courR14") = { - 0,16,26,253,249,11,2,74,5,74,32,255,252,15,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,11,0,1,2,12,12,11,4,252, - 192,192,0,0,128,128,192,192,192,192,192,192,6,12,12,11, - 2,0,16,16,16,60,68,132,128,128,68,56,16,16,8,11, - 11,11,2,0,28,34,32,32,16,252,16,32,33,65,126,6, - 7,7,11,2,2,132,120,132,132,132,120,132,9,11,22,11, - 1,0,227,128,65,0,34,0,34,0,20,0,20,0,127,0, - 8,0,127,0,8,0,62,0,1,15,15,11,5,253,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,7,14,14, - 11,2,254,62,66,66,64,112,140,130,98,28,6,130,130,132, - 252,4,2,2,11,3,10,144,144,11,11,22,11,0,0,31, - 0,96,192,79,64,145,32,160,32,160,32,160,32,145,32,78, - 64,96,192,31,0,6,8,8,11,2,3,112,8,120,136,152, - 236,0,252,10,8,16,11,1,0,24,192,49,128,99,0,198, - 0,198,0,99,0,49,128,24,192,9,4,8,11,1,3,255, - 128,0,128,0,128,0,128,8,1,1,11,1,5,255,11,11, - 22,11,0,0,31,0,96,192,94,64,145,32,145,32,158,32, - 148,32,146,32,81,64,96,128,31,0,5,1,1,11,3,10, - 248,5,5,5,11,3,6,112,136,136,136,112,9,9,18,11, - 1,1,8,0,8,0,8,0,255,128,8,0,8,0,8,0, - 0,0,255,128,5,7,7,11,3,5,112,136,8,16,32,64, - 248,5,7,7,11,3,5,112,136,8,48,8,136,112,3,3, - 3,11,4,9,32,64,128,9,12,24,11,1,252,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,125,128,64,0,64, - 0,64,0,64,0,8,14,14,11,1,254,63,74,138,138,138, - 74,58,10,10,10,10,10,10,59,2,2,2,11,4,5,192, - 192,3,3,3,11,4,253,64,32,192,5,7,7,11,3,5, - 32,224,32,32,32,32,248,6,8,8,11,2,3,120,132,132, - 132,132,120,0,252,10,8,16,11,0,0,198,0,99,0,49, - 128,24,192,24,192,49,128,99,0,198,0,11,12,24,11,0, - 0,32,0,224,64,32,128,33,0,33,0,34,64,252,192,9, - 64,10,64,19,224,32,64,0,224,11,12,24,11,0,0,32, - 0,224,64,32,128,33,0,33,0,34,192,253,32,8,32,8, - 64,16,128,33,0,3,224,11,12,24,11,0,0,112,0,136, - 64,8,128,49,0,9,0,138,64,116,192,9,64,10,64,19, - 224,32,64,0,224,6,11,11,11,2,253,24,24,0,16,16, - 112,128,128,132,132,120,11,15,30,11,0,0,16,0,8,0, - 4,0,0,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,15,30,11,0,0, - 1,0,2,0,4,0,0,0,60,0,4,0,10,0,10,0, - 17,0,17,0,32,128,63,128,64,64,64,64,241,224,11,15, - 30,11,0,0,12,0,18,0,33,0,0,0,60,0,4,0, - 10,0,10,0,17,0,17,0,32,128,63,128,64,64,64,64, - 241,224,11,14,28,11,0,0,25,0,38,0,0,0,60,0, - 4,0,10,0,10,0,17,0,17,0,32,128,63,128,64,64, - 64,64,241,224,11,14,28,11,0,0,18,0,18,0,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,11,15,30,11,0,0,12,0,18,0, - 18,0,12,0,60,0,4,0,10,0,10,0,17,0,17,0, - 32,128,63,128,64,64,64,64,241,224,11,11,22,11,255,0, - 31,224,6,32,10,32,10,0,18,64,19,192,62,64,34,0, - 66,32,66,32,231,224,9,14,28,11,1,253,30,128,97,128, - 64,128,128,0,128,0,128,0,128,0,128,0,64,128,97,0, - 30,0,8,0,4,0,24,0,8,15,15,11,1,0,32,16, - 8,0,255,65,65,65,72,120,72,65,65,65,255,8,15,15, - 11,1,0,4,8,16,0,255,65,65,65,72,120,72,65,65, - 65,255,8,15,15,11,1,0,24,36,66,0,255,65,65,65, - 72,120,72,65,65,65,255,8,14,14,11,1,0,36,36,0, - 255,65,65,65,72,120,72,65,65,65,255,7,15,15,11,2, - 0,32,16,8,0,254,16,16,16,16,16,16,16,16,16,254, - 7,15,15,11,2,0,8,16,32,0,254,16,16,16,16,16, - 16,16,16,16,254,7,15,15,11,2,0,24,36,66,0,254, - 16,16,16,16,16,16,16,16,16,254,7,14,14,11,2,0, - 36,36,0,254,16,16,16,16,16,16,16,16,16,254,8,11, - 11,11,1,0,252,66,65,65,65,241,65,65,65,66,252,9, - 14,28,11,1,0,25,0,38,0,0,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,15,30,11,1,0,16,0,8,0,4,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,9,15,30,11,1,0,4,0,8,0,16, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,11,1,0,12, - 0,18,0,33,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,25,0,38,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,18,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,9,18,11,1,1,128,128,65,0,34,0,20,0,8, - 0,20,0,34,0,65,0,128,128,11,11,22,11,0,0,14, - 32,49,192,32,128,65,64,66,64,68,64,72,64,80,64,32, - 128,113,128,142,0,10,15,30,11,0,0,16,0,8,0,4, - 0,0,0,243,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,10,15,30,11,0,0,2, - 0,4,0,8,0,0,0,243,192,64,128,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,33,0,30,0,10,15,30, - 11,0,0,12,0,18,0,33,0,0,0,243,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,33,0,30, - 0,10,14,28,11,0,0,18,0,18,0,0,0,243,192,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,9,15,30,11,1,0,2,0,4,0,8,0,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,8,0,8, - 0,8,0,8,0,62,0,9,11,22,11,1,0,224,0,64, - 0,126,0,65,0,64,128,64,128,65,0,126,0,64,0,64, - 0,224,0,8,11,11,11,1,0,60,66,66,68,88,70,65, - 65,65,73,230,9,12,24,11,1,0,32,0,16,0,8,0, - 0,0,60,0,66,0,2,0,126,0,130,0,130,0,134,0, - 123,128,9,12,24,11,1,0,4,0,8,0,16,0,0,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,24,0,36,0,66,0,0,0,60,0, - 66,0,2,0,126,0,130,0,130,0,134,0,123,128,9,11, - 22,11,1,0,50,0,76,0,0,0,60,0,66,0,2,0, - 126,0,130,0,130,0,134,0,123,128,9,11,22,11,1,0, - 36,0,36,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,9,13,26,11,1,0,24,0,36,0, - 36,0,24,0,0,0,60,0,66,0,2,0,126,0,130,0, - 130,0,134,0,123,128,11,8,16,11,0,0,113,128,138,64, - 4,32,127,224,132,0,132,0,138,32,113,192,8,11,11,11, - 1,253,61,67,129,128,128,128,67,60,16,8,48,8,12,12, - 11,1,0,32,16,8,0,60,66,129,255,128,128,67,60,8, - 12,12,11,1,0,2,4,8,0,60,66,129,255,128,128,67, - 60,8,12,12,11,1,0,24,36,66,0,60,66,129,255,128, - 128,67,60,8,11,11,11,1,0,36,36,0,60,66,129,255, - 128,128,67,60,7,12,12,11,2,0,32,16,8,0,112,16, - 16,16,16,16,16,254,7,12,12,11,2,0,8,16,32,0, - 112,16,16,16,16,16,16,254,7,12,12,11,2,0,48,72, - 132,0,112,16,16,16,16,16,16,254,7,11,11,11,2,0, - 72,72,0,112,16,16,16,16,16,16,254,8,12,12,11,1, - 0,114,140,52,66,62,67,129,129,129,129,66,60,9,11,22, - 11,1,0,50,0,76,0,0,0,222,0,97,0,65,0,65, - 0,65,0,65,0,65,0,227,128,8,12,12,11,1,0,32, - 16,8,0,60,66,129,129,129,129,66,60,8,12,12,11,1, - 0,4,8,16,0,60,66,129,129,129,129,66,60,8,12,12, - 11,1,0,24,36,66,0,60,66,129,129,129,129,66,60,8, - 11,11,11,1,0,50,76,0,60,66,129,129,129,129,66,60, - 8,11,11,11,1,0,36,36,0,60,66,129,129,129,129,66, - 60,8,9,9,11,1,1,24,24,0,0,255,0,0,24,24, - 8,8,8,11,1,0,61,66,133,137,145,161,66,188,9,12, - 24,11,1,0,32,0,16,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,11, - 1,0,2,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,11,1,0, - 24,0,36,0,66,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,11,1,0,36,0, - 36,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,9,16,32,11,1,252,2,0,4,0,8,0, - 0,0,227,128,65,0,65,0,34,0,34,0,20,0,20,0, - 8,0,8,0,16,0,16,0,248,0,9,16,32,11,1,252, - 192,0,64,0,64,0,64,0,94,0,97,0,64,128,64,128, - 64,128,64,128,97,0,94,0,64,0,64,0,64,0,240,0, - 9,15,30,11,1,252,36,0,36,0,0,0,227,128,65,0, - 65,0,34,0,34,0,20,0,20,0,8,0,8,0,16,0, - 16,0,248,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--20-140-100-100-M-110-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=11 h=16 x= 5 y= 9 dx=11 dy= 0 ascent=13 len=26 - Font Bounding box w=16 h=26 x=-3 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR14r[1988] U8G_FONT_SECTION("u8g_font_courR14r") = { - 0,16,26,253,249,11,2,74,5,74,32,127,252,13,252,12, - 252,0,0,0,11,0,1,2,12,12,11,4,0,192,192,192, - 192,192,192,64,64,0,0,192,192,6,5,5,11,3,7,204, - 204,204,68,68,8,15,15,11,1,254,18,18,18,18,18,127, - 36,36,36,254,36,36,36,36,36,6,15,15,11,2,254,16, - 16,116,140,132,128,96,24,4,132,196,184,16,16,16,9,12, - 24,11,1,0,56,0,68,0,68,0,68,0,57,128,14,0, - 48,0,206,0,17,0,17,0,17,0,14,0,7,10,10,11, - 2,0,56,64,64,64,32,116,136,136,152,102,2,5,5,11, - 4,7,192,192,192,64,64,3,14,14,11,5,254,32,64,64, - 128,128,128,128,128,128,128,128,64,64,32,3,14,14,11,3, - 254,128,64,64,32,32,32,32,32,32,32,32,64,64,128,7, - 8,8,11,2,4,16,16,16,254,16,40,68,68,9,9,18, - 11,1,1,8,0,8,0,8,0,8,0,255,128,8,0,8, - 0,8,0,8,0,4,5,5,11,3,253,48,48,96,64,128, - 8,1,1,11,1,5,255,2,2,2,11,4,0,192,192,8, - 16,16,11,1,253,1,1,2,2,4,4,8,8,16,16,32, - 32,64,64,128,128,7,12,12,11,2,0,56,68,130,130,130, - 130,130,130,130,130,68,56,7,12,12,11,2,0,48,208,16, - 16,16,16,16,16,16,16,16,254,8,12,12,11,1,0,28, - 34,65,65,1,2,4,8,16,33,65,255,7,12,12,11,2, - 0,120,132,2,2,4,56,4,2,2,2,132,120,7,12,12, - 11,2,0,12,20,20,36,36,68,68,132,254,4,4,30,8, - 12,12,11,1,0,126,64,64,64,92,98,1,1,1,1,194, - 60,7,12,12,11,2,0,28,96,64,128,128,184,196,130,130, - 130,68,56,7,12,12,11,2,0,254,130,2,2,4,4,4, - 4,8,8,8,8,7,12,12,11,2,0,56,68,130,130,68, - 56,68,130,130,130,68,56,7,12,12,11,2,0,56,68,130, - 130,130,70,58,2,2,4,12,112,2,8,8,11,4,0,192, - 192,0,0,0,0,192,192,4,11,11,11,2,253,48,48,0, - 0,0,0,48,48,96,64,128,10,9,18,11,0,1,0,192, - 3,0,12,0,48,0,192,0,48,0,12,0,3,0,0,192, - 9,4,8,11,1,3,255,128,0,0,0,0,255,128,10,9, - 18,11,0,1,192,0,48,0,12,0,3,0,0,192,3,0, - 12,0,48,0,192,0,7,11,11,11,2,0,124,130,130,2, - 2,28,16,16,0,24,24,8,13,13,11,2,255,56,68,130, - 130,142,146,146,146,143,128,128,67,60,11,11,22,11,0,0, - 60,0,4,0,10,0,10,0,17,0,17,0,32,128,63,128, - 64,64,64,64,241,224,9,11,22,11,1,0,252,0,66,0, - 65,0,65,0,66,0,126,0,65,0,64,128,64,128,65,0, - 254,0,9,11,22,11,1,0,30,128,97,128,64,128,128,0, - 128,0,128,0,128,0,128,0,64,128,97,0,30,0,9,11, - 22,11,1,0,252,0,67,0,65,0,64,128,64,128,64,128, - 64,128,64,128,65,0,67,0,252,0,8,11,11,11,1,0, - 255,65,65,65,72,120,72,65,65,65,255,8,11,11,11,1, - 0,255,65,65,65,72,120,72,64,64,64,240,10,11,22,11, - 1,0,30,128,97,128,64,128,128,0,128,0,128,0,131,192, - 128,128,64,128,97,0,30,0,9,11,22,11,1,0,227,128, - 65,0,65,0,65,0,65,0,127,0,65,0,65,0,65,0, - 65,0,227,128,7,11,11,11,2,0,254,16,16,16,16,16, - 16,16,16,16,254,9,11,22,11,1,0,31,128,2,0,2, - 0,2,0,2,0,2,0,130,0,130,0,130,0,68,0,56, - 0,10,11,22,11,1,0,243,192,65,0,66,0,68,0,72, - 0,88,0,100,0,66,0,66,0,65,0,241,192,9,11,22, - 11,1,0,248,0,32,0,32,0,32,0,32,0,32,0,32, - 0,32,128,32,128,32,128,255,128,11,11,22,11,0,0,224, - 224,96,192,81,64,81,64,74,64,74,64,68,64,68,64,64, - 64,64,64,241,224,9,11,22,11,1,0,231,128,97,0,81, - 0,81,0,73,0,73,0,69,0,69,0,67,0,67,0,241, - 0,9,11,22,11,1,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,11,22, - 11,1,0,254,0,65,0,64,128,64,128,65,0,126,0,64, - 0,64,0,64,0,64,0,248,0,9,13,26,11,1,254,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,56,128,71,0,10,11,22,11,1,0,254, - 0,65,0,64,128,64,128,65,0,126,0,68,0,66,0,66, - 0,65,0,240,192,8,11,11,11,1,0,61,67,129,128,64, - 60,2,1,129,194,188,9,11,22,11,1,0,255,128,136,128, - 136,128,136,128,8,0,8,0,8,0,8,0,8,0,8,0, - 62,0,10,11,22,11,0,0,243,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,11,11, - 22,11,0,0,241,224,64,64,64,64,32,128,32,128,17,0, - 17,0,10,0,10,0,4,0,4,0,11,11,22,11,0,0, - 241,224,64,64,68,64,68,64,68,64,42,128,42,128,42,128, - 42,128,17,0,17,0,9,11,22,11,1,0,227,128,65,0, - 34,0,34,0,20,0,8,0,20,0,34,0,34,0,65,0, - 227,128,9,11,22,11,1,0,227,128,65,0,34,0,34,0, - 20,0,20,0,8,0,8,0,8,0,8,0,62,0,7,11, - 11,11,2,0,254,130,130,4,8,16,32,64,130,130,254,3, - 15,15,11,5,253,224,128,128,128,128,128,128,128,128,128,128, - 128,128,128,224,8,16,16,11,2,253,128,128,64,64,32,32, - 16,16,8,8,4,4,2,2,1,1,3,15,15,11,3,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,32,224,7, - 4,4,11,2,8,16,40,68,130,11,1,2,11,0,252,255, - 224,3,3,3,11,4,9,128,64,32,9,8,16,11,1,0, - 60,0,66,0,2,0,126,0,130,0,130,0,134,0,123,128, - 9,12,24,11,1,0,192,0,64,0,64,0,64,0,94,0, - 97,0,64,128,64,128,64,128,64,128,97,0,222,0,8,8, - 8,11,1,0,61,67,129,128,128,128,67,60,9,12,24,11, - 1,0,3,0,1,0,1,0,1,0,61,0,67,0,129,0, - 129,0,129,0,129,0,67,0,61,128,8,8,8,11,1,0, - 60,66,129,255,128,128,67,60,8,12,12,11,2,0,15,16, - 32,32,254,32,32,32,32,32,32,254,9,12,24,11,1,252, - 61,128,67,0,129,0,129,0,129,0,129,0,67,0,61,0, - 1,0,1,0,2,0,124,0,9,12,24,11,1,0,192,0, - 64,0,64,0,64,0,94,0,97,0,65,0,65,0,65,0, - 65,0,65,0,227,128,7,11,11,11,2,0,16,16,0,112, - 16,16,16,16,16,16,254,6,15,15,11,2,252,8,8,0, - 252,4,4,4,4,4,4,4,4,4,8,240,9,12,24,11, - 1,0,192,0,64,0,64,0,64,0,79,0,68,0,72,0, - 112,0,72,0,68,0,66,0,199,128,7,12,12,11,2,0, - 240,16,16,16,16,16,16,16,16,16,16,254,11,8,16,11, - 0,0,217,128,102,64,68,64,68,64,68,64,68,64,68,64, - 230,96,9,8,16,11,1,0,222,0,97,0,65,0,65,0, - 65,0,65,0,65,0,227,128,8,8,8,11,1,0,60,66, - 129,129,129,129,66,60,9,12,24,11,1,252,222,0,97,0, - 64,128,64,128,64,128,64,128,97,0,94,0,64,0,64,0, - 64,0,240,0,9,12,24,11,1,252,61,128,67,0,129,0, - 129,0,129,0,129,0,67,0,61,0,1,0,1,0,1,0, - 7,128,8,8,8,11,1,0,238,49,32,32,32,32,32,254, - 7,8,8,11,2,0,122,134,130,112,12,130,194,188,8,11, - 11,11,2,0,32,32,32,254,32,32,32,32,32,33,30,9, - 8,16,11,1,0,195,0,65,0,65,0,65,0,65,0,65, - 0,67,0,61,128,9,8,16,11,1,0,227,128,65,0,34, - 0,34,0,20,0,20,0,8,0,8,0,9,8,16,11,1, - 0,227,128,65,0,73,0,73,0,85,0,85,0,34,0,34, - 0,8,8,8,11,1,0,231,66,36,24,24,36,66,231,9, - 12,24,11,1,252,227,128,65,0,65,0,34,0,34,0,20, - 0,20,0,8,0,8,0,16,0,16,0,248,0,7,8,8, - 11,2,0,254,130,132,8,16,34,66,254,5,15,15,11,3, - 253,24,32,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,15,15,11,5,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,15,15,11,3,253,192,32,32,32,32, - 32,32,24,32,32,32,32,32,32,192,8,3,3,11,1,4, - 96,153,6,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=19 len=42 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18[6152] U8G_FONT_SECTION("u8g_font_courR18") = { - 0,23,32,251,248,14,3,161,7,151,32,255,251,19,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,15,0,1,2,16,16,15,6,251,192,192,0,0,0,128, - 128,128,192,192,192,192,192,192,192,192,8,16,16,15,3,0, - 8,8,8,8,29,99,65,128,128,128,64,99,28,8,8,8, - 10,14,28,15,2,0,14,0,17,128,32,0,32,0,32,0, - 32,0,254,0,16,0,16,0,16,0,16,0,32,64,64,64, - 255,128,10,10,20,15,2,2,128,64,94,128,33,0,64,128, - 64,128,64,128,64,128,33,0,94,128,128,64,11,14,28,15, - 2,0,241,224,64,64,32,128,32,128,17,0,17,0,10,0, - 127,192,4,0,4,0,127,192,4,0,4,0,63,128,1,19, - 19,15,7,253,128,128,128,128,128,128,128,128,0,0,0,128, - 128,128,128,128,128,128,128,10,18,36,15,2,254,15,192,16, - 64,32,64,32,64,32,0,112,0,140,0,130,0,65,0,32, - 128,16,64,12,64,3,128,1,0,129,0,129,0,130,0,252, - 0,7,2,2,15,4,12,198,198,13,13,26,15,1,1,15, - 128,48,96,64,16,70,144,137,136,144,136,144,8,144,8,136, - 136,71,16,64,16,48,96,15,128,7,9,9,15,4,5,120, - 132,60,68,132,140,118,0,254,12,11,22,15,1,0,6,48, - 12,96,24,192,49,128,99,0,198,0,99,0,49,128,24,192, - 12,96,6,48,11,4,8,15,2,5,255,224,0,32,0,32, - 0,32,10,1,2,15,2,7,255,192,13,13,26,15,1,1, - 15,128,48,96,64,16,79,16,136,136,136,136,143,8,137,8, - 136,136,72,144,64,16,48,96,15,128,7,1,1,15,4,12, - 254,7,7,7,15,4,9,56,68,130,130,130,68,56,11,13, - 26,15,2,1,4,0,4,0,4,0,4,0,4,0,255,224, - 4,0,4,0,4,0,4,0,4,0,0,0,255,224,6,9, - 9,15,4,7,56,68,132,4,8,16,32,68,252,6,9,9, - 15,4,7,120,132,4,8,56,4,4,132,120,5,4,4,15, - 5,12,24,48,96,192,12,16,32,15,1,251,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,48,160, - 47,48,32,0,32,0,32,0,32,0,32,0,11,18,36,15, - 2,254,31,224,100,128,196,128,196,128,196,128,196,128,196,128, - 100,128,28,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,128,4,128,60,224,3,3,3,15,6,6,224,224,224,4, - 5,5,15,5,252,32,32,16,144,96,7,9,9,15,4,7, - 48,208,16,16,16,16,16,16,254,7,9,9,15,4,5,56, - 68,130,130,130,68,56,0,254,12,11,22,15,1,0,198,0, - 99,0,49,128,24,192,12,96,6,48,12,96,24,192,49,128, - 99,0,198,0,14,16,32,15,0,0,48,0,208,0,16,8, - 16,16,16,32,16,32,16,64,16,152,255,40,2,72,4,72, - 4,136,9,8,17,252,0,8,0,28,14,16,32,15,0,0, - 48,0,208,0,16,8,16,16,16,32,16,32,16,64,16,184, - 255,68,2,132,4,4,4,8,8,16,16,32,0,68,0,252, - 14,16,32,15,0,0,120,0,132,0,4,8,8,16,56,32, - 4,32,4,64,132,152,121,40,2,72,4,72,4,136,9,8, - 17,252,0,8,0,28,8,14,14,15,3,253,24,24,0,0, - 8,8,48,64,128,128,128,129,65,62,13,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,63,0,5,0,8,128, - 8,128,8,128,16,64,16,64,16,64,63,224,32,32,32,32, - 64,16,64,16,240,120,13,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,13,18, - 36,15,1,0,28,64,54,192,35,128,0,0,63,0,5,0, - 8,128,8,128,8,128,16,64,16,64,16,64,63,224,32,32, - 32,32,64,16,64,16,240,120,13,18,36,15,1,0,24,192, - 24,192,0,0,0,0,63,0,5,0,8,128,8,128,8,128, - 16,64,16,64,16,64,63,224,32,32,32,32,64,16,64,16, - 240,120,13,19,38,15,1,0,7,0,8,128,8,128,8,128, - 7,0,63,0,5,0,8,128,8,128,8,128,16,64,16,64, - 16,64,63,224,32,32,32,32,64,16,64,16,240,120,15,14, - 28,15,255,0,15,254,2,130,4,130,4,130,4,136,8,136, - 8,248,8,136,31,136,16,130,16,130,32,130,32,130,243,254, - 11,18,36,15,2,252,15,32,48,224,96,96,64,32,128,0, - 128,0,128,0,128,0,128,0,128,0,64,32,96,96,48,192, - 15,0,4,0,2,0,18,0,12,0,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,255,224,32,32,32,32, - 32,32,34,0,34,0,62,0,34,0,34,0,32,16,32,16, - 32,16,32,16,255,240,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,255,224,32,32,32,32,32,32,34,0, - 34,0,62,0,34,0,34,0,32,16,32,16,32,16,32,16, - 255,240,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,255,224,32,32,32,32,32,32,34,0,34,0,62,0, - 34,0,34,0,32,16,32,16,32,16,32,16,255,240,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,255,224,32,32, - 32,32,32,32,34,0,34,0,62,0,34,0,34,0,32,16, - 32,16,32,16,32,16,255,240,9,19,38,15,3,0,96,0, - 48,0,24,0,12,0,0,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,255,128,9,19,38,15,3,0,3,0,6,0,12,0, - 24,0,0,0,255,128,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,19,38,15,3,0,24,0,60,0,102,0,195,0,0,0, - 255,128,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,255,128,9,18,36,15, - 3,0,99,0,99,0,0,0,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,13,14,28,15,0,0,127,192,32,48, - 32,16,32,8,32,8,32,8,252,8,32,8,32,8,32,8, - 32,8,32,16,32,48,127,192,14,18,36,15,0,0,14,32, - 27,96,17,192,0,0,240,252,48,16,40,16,36,16,36,16, - 34,16,34,16,33,16,33,16,32,144,32,144,32,80,32,48, - 252,48,13,19,38,15,1,0,24,0,12,0,6,0,3,0, - 0,0,15,128,48,96,96,48,64,16,128,8,128,8,128,8, - 128,8,128,8,128,8,64,16,96,48,48,96,15,128,13,19, - 38,15,1,0,0,96,0,192,1,128,3,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,13,19,38,15,1,0, - 3,0,7,128,12,192,24,96,0,0,15,128,48,96,96,48, - 64,16,128,8,128,8,128,8,128,8,128,8,128,8,64,16, - 96,48,48,96,15,128,13,18,36,15,1,0,14,32,27,96, - 17,192,0,0,15,128,48,96,96,48,64,16,128,8,128,8, - 128,8,128,8,128,8,128,8,64,16,96,48,48,96,15,128, - 13,18,36,15,1,0,24,192,24,192,0,0,0,0,15,128, - 48,96,96,48,64,16,128,8,128,8,128,8,128,8,128,8, - 128,8,64,16,96,48,48,96,15,128,11,11,22,15,2,2, - 128,32,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,128,32,14,15,30,15,0,0,0,4,7,200, - 24,48,48,48,32,72,64,136,64,136,65,8,66,8,68,8, - 72,8,48,16,48,48,88,96,135,128,12,19,38,15,1,0, - 24,0,12,0,6,0,3,0,0,0,249,240,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,32,64,31,128,12,19,38,15,1,0,0,192,1,128, - 3,0,6,0,0,0,249,240,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,32,64, - 31,128,12,19,38,15,1,0,6,0,15,0,25,128,48,192, - 0,0,249,240,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,64,32,64,32,64,32,32,64,31,128,12,18, - 36,15,1,0,25,128,25,128,0,0,0,0,249,240,64,32, - 64,32,64,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,32,32,64,31,128,13,19,38,15,1,0,0,192, - 1,128,3,0,6,0,0,0,240,120,32,32,16,64,16,64, - 8,128,8,128,5,0,2,0,2,0,2,0,2,0,2,0, - 2,0,31,192,11,14,28,15,2,0,248,0,32,0,32,0, - 63,128,32,64,32,32,32,32,32,32,32,32,32,64,63,128, - 32,0,32,0,248,0,11,16,32,15,2,0,14,0,17,0, - 32,128,32,128,32,128,32,128,33,0,39,0,32,192,32,64, - 32,32,32,32,32,32,36,32,36,64,243,128,11,16,32,15, - 2,0,48,0,24,0,12,0,6,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,16,32,15,2,0,1,128,3,0,6,0,12,0, - 0,0,30,0,97,0,0,128,0,128,0,128,63,128,64,128, - 128,128,128,128,129,128,126,224,11,16,32,15,2,0,12,0, - 30,0,51,0,97,128,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,11,15, - 30,15,2,0,56,128,109,128,71,0,0,0,30,0,97,0, - 0,128,0,128,0,128,63,128,64,128,128,128,128,128,129,128, - 126,224,11,15,30,15,2,0,49,128,49,128,0,0,0,0, - 30,0,97,0,0,128,0,128,0,128,63,128,64,128,128,128, - 128,128,129,128,126,224,11,17,34,15,2,0,14,0,17,0, - 17,0,17,0,14,0,0,0,30,0,97,0,0,128,0,128, - 0,128,63,128,64,128,128,128,128,128,129,128,126,224,15,11, - 22,15,0,0,28,112,98,140,65,4,1,2,1,2,63,254, - 65,0,129,0,129,2,130,132,124,120,11,15,30,15,2,252, - 31,64,96,192,64,64,128,64,128,0,128,0,128,0,128,0, - 64,96,96,192,31,0,4,0,2,0,18,0,12,0,11,16, - 32,15,2,0,48,0,24,0,12,0,6,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,11,16,32,15,2,0,1,128,3,0,6,0, - 12,0,0,0,31,0,96,192,64,64,128,32,128,32,255,224, - 128,0,128,0,64,0,96,96,31,128,11,16,32,15,2,0, - 12,0,30,0,51,0,97,128,0,0,31,0,96,192,64,64, - 128,32,128,32,255,224,128,0,128,0,64,0,96,96,31,128, - 11,15,30,15,2,0,49,128,49,128,0,0,0,0,31,0, - 96,192,64,64,128,32,128,32,255,224,128,0,128,0,64,0, - 96,96,31,128,9,16,32,15,3,0,96,0,48,0,24,0, - 12,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,9,16,32,15,3,0, - 3,0,6,0,12,0,24,0,0,0,120,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,255,128, - 9,16,32,15,3,0,24,0,60,0,102,0,195,0,0,0, - 120,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,9,15,30,15,3,0,99,0,99,0, - 0,0,0,0,120,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,255,128,12,16,32,15,1,0, - 124,192,135,0,13,0,48,128,0,64,15,224,48,96,32,48, - 64,16,64,16,64,16,64,16,64,16,32,32,48,96,15,128, - 13,15,30,15,1,0,28,64,54,192,35,128,0,0,231,128, - 40,64,48,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,248,248,11,16,32,15,2,0,24,0,12,0,6,0, - 3,0,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,16,32,15,2,0, - 1,128,3,0,6,0,12,0,0,0,31,0,96,192,64,64, - 128,32,128,32,128,32,128,32,128,32,64,64,96,192,31,0, - 11,16,32,15,2,0,12,0,30,0,51,0,97,128,0,0, - 31,0,96,192,64,64,128,32,128,32,128,32,128,32,128,32, - 64,64,96,192,31,0,11,15,30,15,2,0,28,64,54,192, - 35,128,0,0,31,0,96,192,64,64,128,32,128,32,128,32, - 128,32,128,32,64,64,96,192,31,0,11,15,30,15,2,0, - 49,128,49,128,0,0,0,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,11,9, - 18,15,2,3,14,0,14,0,0,0,0,0,255,224,0,0, - 0,0,14,0,14,0,12,12,24,15,1,0,0,16,15,160, - 48,64,32,160,65,16,66,16,68,16,72,16,80,16,32,32, - 80,96,143,128,12,16,32,15,1,0,24,0,12,0,6,0, - 3,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,16,32,15,1,0, - 0,192,1,128,3,0,6,0,0,0,224,224,32,32,32,32, - 32,32,32,32,32,32,32,32,32,32,32,96,16,160,15,48, - 12,16,32,15,1,0,6,0,15,0,25,128,48,192,0,0, - 224,224,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,96,16,160,15,48,12,15,30,15,1,0,25,128,25,128, - 0,0,0,0,224,224,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,32,96,16,160,15,48,12,21,42,15,1,251, - 0,192,1,128,3,0,6,0,0,0,240,240,64,32,64,32, - 32,64,32,64,32,128,16,128,17,0,9,0,10,0,6,0, - 4,0,4,0,8,0,8,0,254,0,13,21,42,15,1,251, - 224,0,32,0,32,0,32,0,32,0,39,192,56,48,48,16, - 32,8,32,8,32,8,32,8,32,8,48,16,56,48,39,192, - 32,0,32,0,32,0,32,0,252,0,12,20,40,15,1,251, - 25,128,25,128,0,0,0,0,240,240,64,32,64,32,32,64, - 32,64,32,128,16,128,17,0,9,0,10,0,6,0,4,0, - 4,0,8,0,8,0,254,0}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--25-180-100-100-M-150-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 15 - Calculated Max Values w=15 h=21 x= 7 y=12 dx=15 dy= 0 ascent=17 len=40 - Font Bounding box w=23 h=32 x=-5 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =16 descent=-5 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR18r[2862] U8G_FONT_SECTION("u8g_font_courR18r") = { - 0,23,32,251,248,14,3,161,7,151,32,127,251,17,251,16, - 251,0,0,0,15,0,1,2,16,16,15,6,0,192,192,192, - 192,192,192,192,192,128,128,128,0,0,0,192,192,8,7,7, - 15,3,9,231,231,231,231,66,66,66,10,17,34,15,2,255, - 9,0,9,0,9,0,9,0,9,0,9,0,127,192,18,0, - 18,0,18,0,255,128,18,0,18,0,18,0,18,0,18,0, - 18,0,9,20,40,15,3,253,8,0,8,0,8,0,30,128, - 33,128,64,128,64,0,64,0,32,0,30,0,1,0,0,128, - 0,128,128,128,193,0,190,0,8,0,8,0,8,0,8,0, - 12,16,32,15,1,0,28,0,34,0,65,0,65,0,65,0, - 34,0,28,112,3,128,28,0,225,192,2,32,4,16,4,16, - 4,16,2,32,1,192,10,13,26,15,2,0,29,0,38,0, - 32,0,32,0,16,0,48,0,73,128,137,0,134,0,130,0, - 131,0,69,0,56,192,3,7,7,15,6,8,224,224,224,224, - 224,64,64,4,19,19,15,7,253,16,32,32,64,64,64,128, - 128,128,128,128,128,128,64,64,64,32,32,16,4,19,19,15, - 3,253,128,64,64,32,32,32,16,16,16,16,16,16,16,32, - 32,32,64,64,128,9,9,18,15,3,7,8,0,8,0,8, - 0,201,128,127,0,28,0,54,0,99,0,193,128,11,11,22, - 15,2,2,4,0,4,0,4,0,4,0,4,0,255,224,4, - 0,4,0,4,0,4,0,4,0,5,6,6,15,4,253,56, - 56,112,96,192,128,10,1,2,15,2,7,255,192,3,3,3, - 15,6,0,224,224,224,9,18,36,15,3,254,0,128,0,128, - 1,0,1,0,2,0,2,0,4,0,4,0,8,0,8,0, - 16,0,16,0,32,0,32,0,64,0,64,0,128,0,128,0, - 9,15,30,15,3,0,28,0,99,0,65,0,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 99,0,28,0,9,15,30,15,3,0,24,0,232,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,8,0,255,128,10,15,30,15,2,0,30,0, - 97,0,128,128,128,128,0,128,0,128,1,0,2,0,4,0, - 8,0,16,0,32,0,64,0,128,64,255,192,10,15,30,15, - 2,0,62,0,65,128,0,128,0,128,0,128,1,0,30,0, - 1,128,0,64,0,64,0,64,0,64,128,64,97,128,30,0, - 10,15,30,15,2,0,3,0,5,0,9,0,9,0,17,0, - 33,0,33,0,65,0,65,0,129,0,255,192,1,0,1,0, - 1,0,15,192,10,15,30,15,2,0,127,128,64,0,64,0, - 64,0,64,0,94,0,97,128,0,128,0,64,0,64,0,64, - 0,64,0,128,193,128,62,0,9,15,30,15,3,0,15,0, - 48,0,96,0,64,0,128,0,158,0,161,0,192,128,128,128, - 128,128,128,128,128,128,64,128,97,0,30,0,9,15,30,15, - 2,0,255,128,128,128,129,0,1,0,1,0,2,0,2,0, - 2,0,2,0,4,0,4,0,4,0,8,0,8,0,8,0, - 10,15,30,15,2,0,30,0,33,0,64,128,64,128,64,128, - 64,128,33,0,63,0,64,128,128,64,128,64,128,64,64,128, - 97,128,30,0,9,15,30,15,3,0,28,0,99,0,193,128, - 128,128,128,128,128,128,65,128,98,128,28,128,0,128,0,128, - 1,0,1,0,6,0,248,0,3,11,11,15,6,0,224,224, - 224,0,0,0,0,0,224,224,224,5,14,14,15,4,253,56, - 56,56,0,0,0,0,0,56,56,112,96,192,128,11,11,22, - 15,1,2,0,96,1,128,6,0,24,0,96,0,192,0,96, - 0,24,0,6,0,1,128,0,96,12,4,8,15,1,5,255, - 240,0,0,0,0,255,240,11,11,22,15,2,2,192,0,48, - 0,12,0,3,0,0,192,0,96,0,192,3,0,12,0,48, - 0,192,0,8,14,14,15,3,0,124,130,129,1,1,1,2, - 12,16,16,0,0,24,24,10,18,36,15,2,254,30,0,97, - 0,64,128,128,128,128,128,131,128,132,128,136,128,136,128,136, - 128,136,128,132,128,131,192,128,0,128,0,64,0,97,128,31, - 0,13,14,28,15,1,0,63,0,5,0,8,128,8,128,8, - 128,16,64,16,64,16,64,63,224,32,32,32,32,64,16,64, - 16,240,120,12,14,28,15,1,0,255,192,32,32,32,16,32, - 16,32,16,32,32,63,192,32,32,32,16,32,16,32,16,32, - 16,32,32,255,192,11,14,28,15,2,0,15,32,48,160,96, - 96,64,32,128,0,128,0,128,0,128,0,128,0,128,0,64, - 32,96,96,48,192,15,0,12,14,28,15,1,0,255,128,64, - 96,64,32,64,16,64,16,64,16,64,16,64,16,64,16,64, - 16,64,16,64,32,64,96,255,128,12,14,28,15,1,0,255, - 224,32,32,32,32,32,32,34,0,34,0,62,0,34,0,34, - 0,32,16,32,16,32,16,32,16,255,240,11,14,28,15,2, - 0,255,224,32,32,32,32,32,32,34,0,34,0,62,0,34, - 0,34,0,32,0,32,0,32,0,32,0,254,0,12,14,28, - 15,1,0,15,32,48,160,96,96,64,32,128,0,128,0,128, - 0,128,0,131,240,128,32,64,32,96,32,48,64,15,128,13, - 14,28,15,1,0,248,248,32,32,32,32,32,32,32,32,32, - 32,63,224,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,14,28,15,3,0,255,128,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,255,128,12,14,28,15,2,0,31,240,0,128,0,128,0, - 128,0,128,0,128,0,128,0,128,128,128,128,128,128,128,129, - 0,67,0,60,0,13,14,28,15,1,0,248,240,32,64,32, - 128,33,0,34,0,36,0,44,0,50,0,33,0,32,128,32, - 64,32,64,32,32,248,120,12,14,28,15,1,0,254,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16, - 16,16,16,16,16,16,16,255,240,13,14,28,15,1,0,224, - 56,96,48,96,48,80,80,80,80,72,144,72,144,69,16,71, - 16,64,16,64,16,64,16,64,16,240,120,14,14,28,15,0, - 0,240,252,48,16,40,16,36,16,36,16,34,16,34,16,33, - 16,33,16,32,144,32,144,32,80,32,48,252,48,13,14,28, - 15,1,0,15,128,48,96,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,128,8,64,16,96,48,48,96,15,128,11, - 14,28,15,2,0,255,128,32,64,32,32,32,32,32,32,32, - 32,32,64,63,128,32,0,32,0,32,0,32,0,32,0,254, - 0,13,16,32,15,1,254,15,128,48,96,96,48,64,16,128, - 8,128,8,128,8,128,8,128,8,128,8,64,16,96,48,48, - 96,15,128,6,48,27,192,13,14,28,15,1,0,255,128,32, - 64,32,32,32,32,32,32,32,32,32,64,63,128,33,0,32, - 128,32,64,32,64,32,32,248,56,10,14,28,15,2,0,30, - 64,97,64,128,192,128,64,128,0,96,0,30,0,1,128,0, - 64,0,64,128,64,192,64,160,128,159,0,11,14,28,15,2, - 0,255,224,132,32,132,32,132,32,132,32,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,63,128,12,14,28, - 15,1,0,249,240,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,32,64,32,64,32,32,64,31,128,13, - 14,28,15,1,0,248,248,64,16,64,16,32,32,32,32,16, - 64,16,64,16,64,8,128,8,128,8,128,5,0,7,0,2, - 0,13,14,28,15,1,0,248,248,64,16,64,16,66,16,66, - 16,69,16,69,16,37,32,40,160,40,160,40,160,48,96,48, - 96,48,96,13,14,28,15,1,0,248,248,32,32,16,64,16, - 64,8,128,5,0,2,0,5,0,8,128,8,128,16,64,32, - 32,32,32,248,248,13,14,28,15,1,0,240,120,32,32,16, - 64,16,64,8,128,8,128,5,0,2,0,2,0,2,0,2, - 0,2,0,2,0,31,192,10,14,28,15,2,0,255,192,128, - 64,128,128,129,0,130,0,2,0,4,0,8,0,16,0,16, - 64,32,64,64,64,128,64,255,192,3,19,19,15,7,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,224,9,18,36,15,3,254,128,0,128,0,64,0,64,0, - 32,0,32,0,16,0,16,0,8,0,8,0,4,0,4,0, - 2,0,2,0,1,0,1,0,0,128,0,128,3,19,19,15, - 5,253,224,32,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,9,5,10,15,3,11,8,0,28,0,34, - 0,65,0,128,128,15,1,2,15,0,251,255,254,5,4,4, - 15,4,12,192,96,48,24,11,11,22,15,2,0,62,0,65, - 0,0,128,0,128,62,128,65,128,128,128,128,128,128,128,65, - 128,62,224,13,15,30,15,1,0,224,0,32,0,32,0,32, - 0,39,192,40,48,48,16,32,8,32,8,32,8,32,8,32, - 8,48,16,40,48,231,192,11,11,22,15,2,0,31,64,96, - 192,64,64,128,64,128,0,128,0,128,0,128,0,64,96,96, - 192,31,0,13,15,30,15,1,0,0,224,0,32,0,32,0, - 32,31,32,96,160,64,96,128,32,128,32,128,32,128,32,128, - 32,64,96,96,160,31,56,11,11,22,15,2,0,31,0,96, - 192,64,64,128,32,128,32,255,224,128,0,128,0,64,0,96, - 96,31,128,10,15,30,15,3,0,15,128,24,64,16,0,16, - 0,255,128,16,0,16,0,16,0,16,0,16,0,16,0,16, - 0,16,0,16,0,255,128,13,16,32,15,1,251,31,56,96, - 160,64,96,128,32,128,32,128,32,128,32,128,32,64,96,96, - 160,31,32,0,32,0,32,0,64,0,192,63,0,13,15,30, - 15,1,0,224,0,32,0,32,0,32,0,39,128,40,64,48, - 32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,248, - 248,9,16,32,15,3,0,8,0,8,0,8,0,0,0,0, - 0,120,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,128,8,21,21,15,3,251,2,2,2, - 0,0,255,1,1,1,1,1,1,1,1,1,1,1,1,2, - 6,248,11,15,30,15,2,0,224,0,32,0,32,0,32,0, - 35,192,33,0,34,0,36,0,40,0,56,0,36,0,34,0, - 33,0,32,128,225,224,11,15,30,15,2,0,124,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,14,11,22,15,0,0, - 238,112,49,136,33,8,33,8,33,8,33,8,33,8,33,8, - 33,8,33,8,249,140,13,11,22,15,1,0,231,128,40,64, - 48,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32, - 248,248,11,11,22,15,2,0,31,0,96,192,64,64,128,32, - 128,32,128,32,128,32,128,32,64,64,96,192,31,0,13,16, - 32,15,1,251,231,192,40,48,48,16,32,8,32,8,32,8, - 32,8,32,8,48,16,40,48,39,192,32,0,32,0,32,0, - 32,0,252,0,13,16,32,15,1,251,31,56,96,160,64,96, - 128,32,128,32,128,32,128,32,128,32,64,96,96,160,31,32, - 0,32,0,32,0,32,0,32,1,248,11,11,22,15,2,0, - 113,192,22,32,24,0,16,0,16,0,16,0,16,0,16,0, - 16,0,16,0,255,128,9,11,22,15,3,0,62,128,65,128, - 64,128,64,0,56,0,7,0,0,128,0,128,128,128,193,0, - 190,0,10,15,30,15,2,0,32,0,32,0,32,0,32,0, - 255,128,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,16,192,15,0,12,11,22,15,1,0,224,224,32,32, - 32,32,32,32,32,32,32,32,32,32,32,32,32,96,16,160, - 15,48,13,11,22,15,1,0,248,248,32,32,32,32,16,64, - 16,64,16,64,8,128,8,128,5,0,7,0,2,0,13,11, - 22,15,1,0,240,120,64,16,64,16,66,16,34,32,37,32, - 37,32,37,32,21,64,24,192,24,192,11,11,22,15,2,0, - 241,224,64,64,32,128,17,0,10,0,4,0,10,0,17,0, - 32,128,64,64,241,224,12,16,32,15,1,251,240,240,64,32, - 64,32,32,64,32,64,32,128,16,128,17,0,9,0,10,0, - 6,0,4,0,4,0,8,0,8,0,254,0,9,11,22,15, - 3,0,255,128,128,128,129,0,2,0,4,0,8,0,16,0, - 32,0,64,128,128,128,255,128,5,19,19,15,5,253,24,32, - 32,32,32,32,32,32,32,192,32,32,32,32,32,32,32,32, - 24,1,17,17,15,7,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,5,19,19,15,5,253,192,32, - 32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32, - 192,12,3,6,15,1,6,60,48,102,96,195,192,255}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=28 x= 9 y=17 dx=20 dy= 0 ascent=26 len=81 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =26 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24[8729] U8G_FONT_SECTION("u8g_font_courR24") = { - 0,28,42,250,246,19,4,184,10,129,32,255,250,26,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,20,0,1,5,20,20, - 20,7,250,112,248,112,0,0,0,0,32,32,32,32,32,32, - 32,112,112,112,112,112,32,11,20,40,20,4,0,4,0,4, - 0,4,0,4,0,31,128,48,224,96,32,192,32,128,0,128, - 0,128,0,128,0,192,0,96,32,48,224,31,128,4,0,4, - 0,4,0,4,0,14,19,38,20,2,0,3,224,12,48,8, - 24,24,0,16,0,16,0,16,0,24,0,8,0,255,128,8, - 0,8,0,8,0,8,0,8,0,24,0,16,4,48,12,127, - 248,13,13,26,20,3,3,192,24,111,176,56,224,32,32,96, - 48,64,16,64,16,64,16,96,48,32,32,56,224,111,176,192, - 24,15,19,38,20,2,0,248,62,96,12,48,24,16,16,24, - 48,8,32,12,96,6,192,2,128,3,128,63,248,1,0,1, - 0,63,248,1,0,1,0,1,0,1,0,31,240,1,25,25, - 20,9,252,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,128,128,128,128,128,128,128,128,128,128,14,23,46,20, - 3,254,7,248,28,8,16,8,16,8,16,0,24,0,124,0, - 198,0,131,0,129,192,192,96,112,56,24,12,12,4,7,4, - 1,132,0,252,0,96,0,32,64,32,64,32,64,224,127,128, - 10,3,6,20,5,17,97,128,243,192,97,128,19,19,57,20, - 0,0,1,240,0,7,28,0,28,7,0,48,1,128,33,232, - 128,99,24,192,70,8,64,204,8,96,136,0,32,136,0,32, - 136,0,32,140,0,32,198,12,96,67,24,64,97,240,192,48, - 1,128,24,3,0,15,30,0,1,240,0,9,12,24,20,5, - 7,60,0,102,0,2,0,2,0,126,0,198,0,130,0,206, - 0,123,128,0,0,0,0,255,128,16,14,28,20,2,0,1, - 131,3,6,6,12,12,24,24,48,48,96,96,192,225,192,96, - 192,48,96,24,48,12,24,6,12,3,6,14,6,12,20,3, - 6,255,252,0,4,0,4,0,4,0,4,0,4,15,1,2, - 20,2,9,255,254,19,19,57,20,0,0,3,248,0,14,14, - 0,24,3,0,48,1,128,103,224,192,66,48,64,194,24,96, - 130,8,32,130,8,32,130,24,32,130,48,32,131,224,32,194, - 48,96,66,24,64,103,12,192,48,1,128,24,3,0,14,14, - 0,3,248,0,9,2,4,20,5,17,255,128,255,128,9,10, - 20,20,5,11,62,0,99,0,65,0,193,128,128,128,128,128, - 193,128,65,0,99,0,62,0,15,16,32,20,2,1,1,0, - 1,0,1,0,1,0,1,0,1,0,255,254,1,0,1,0, - 1,0,1,0,1,0,1,0,0,0,0,0,255,254,8,14, - 14,20,5,7,60,102,67,193,3,2,6,12,24,16,48,96, - 193,255,8,14,14,20,6,7,60,102,195,1,1,6,28,6, - 3,1,1,195,102,60,6,5,5,20,9,17,12,24,48,96, - 192,16,20,40,20,1,250,240,60,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,24,12,24,28,28, - 52,23,231,16,0,16,0,16,0,16,0,16,0,16,0,15, - 23,46,20,2,254,15,254,57,16,113,16,97,16,225,16,193, - 16,193,16,225,16,97,16,113,16,61,16,15,16,1,16,1, - 16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1, - 16,31,190,5,4,4,20,7,7,112,248,248,112,5,5,5, - 20,7,251,32,32,48,152,240,7,14,14,20,6,7,112,208, - 16,16,16,16,16,16,16,16,16,16,16,254,9,12,24,20, - 5,7,28,0,119,0,65,0,193,128,128,128,193,128,65,0, - 119,0,28,0,0,0,0,0,255,128,16,14,28,20,2,0, - 193,128,96,192,48,96,24,48,12,24,6,12,3,6,3,135, - 3,6,6,12,12,24,24,48,48,96,96,192,18,21,63,20, - 1,0,48,0,192,240,0,128,16,1,128,16,3,0,16,2, - 0,16,6,0,16,12,0,16,8,0,16,24,0,16,48,0, - 16,35,0,16,103,0,254,197,0,0,141,0,1,153,0,3, - 17,0,2,49,0,6,63,128,12,1,0,8,1,0,24,7, - 128,18,21,63,20,1,0,48,0,128,240,1,128,16,3,0, - 16,6,0,16,4,0,16,12,0,16,24,0,16,16,0,16, - 48,0,16,96,0,16,71,128,16,204,192,253,152,64,3,0, - 192,2,0,128,6,1,128,12,7,0,8,12,0,24,24,0, - 48,48,0,96,63,192,19,21,63,20,0,0,60,0,0,102, - 0,96,3,0,192,3,1,128,6,3,0,28,6,0,6,12, - 0,3,8,0,1,24,0,1,48,0,195,33,128,102,99,128, - 60,194,128,1,134,128,1,12,128,3,8,128,6,24,128,12, - 31,192,24,0,128,48,0,128,0,3,192,11,20,40,20,4, - 250,14,0,31,0,14,0,0,0,0,0,0,0,0,0,4, - 0,4,0,12,0,24,0,112,0,64,0,192,0,128,0,128, - 0,192,32,96,32,49,224,31,0,19,26,78,20,0,0,6, - 0,0,3,0,0,1,128,0,0,192,0,0,96,0,0,0, - 0,0,0,0,31,224,0,0,160,0,1,176,0,1,16,0, - 1,16,0,3,24,0,2,8,0,2,8,0,6,12,0,4, - 4,0,4,4,0,12,6,0,15,254,0,8,2,0,24,3, - 0,16,1,0,16,1,0,48,1,128,254,15,224,19,26,78, - 20,0,0,0,12,0,0,24,0,0,48,0,0,96,0,0, - 192,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,64,0,0,224,0,1,176,0, - 3,24,0,6,12,0,0,0,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,19,24,72,20,0,0,3,132,0,6,236, - 0,4,56,0,0,0,0,0,0,0,31,224,0,0,160,0, - 1,176,0,1,16,0,1,16,0,3,24,0,2,8,0,2, - 8,0,6,12,0,4,4,0,4,4,0,12,6,0,15,254, - 0,8,2,0,24,3,0,16,1,0,16,1,0,48,1,128, - 254,15,224,19,24,72,20,0,0,6,12,0,15,30,0,6, - 12,0,0,0,0,0,0,0,31,224,0,0,160,0,1,176, - 0,1,16,0,1,16,0,3,24,0,2,8,0,2,8,0, - 6,12,0,4,4,0,4,4,0,12,6,0,15,254,0,8, - 2,0,24,3,0,16,1,0,16,1,0,48,1,128,254,15, - 224,19,26,78,20,0,0,0,224,0,1,176,0,1,16,0, - 1,16,0,1,176,0,0,224,0,0,0,0,31,224,0,0, - 160,0,1,176,0,1,16,0,1,16,0,3,24,0,2,8, - 0,2,8,0,6,12,0,4,4,0,4,4,0,12,6,0, - 15,254,0,8,2,0,24,3,0,16,1,0,16,1,0,48, - 1,128,254,15,224,18,19,57,20,1,0,31,255,128,2,64, - 128,2,64,128,6,64,128,4,64,128,4,64,128,4,64,0, - 12,68,0,8,68,0,8,124,0,8,68,0,24,68,0,31, - 192,0,16,64,0,48,64,64,32,64,64,32,64,64,32,64, - 64,251,255,192,15,24,48,20,2,251,7,196,28,116,48,12, - 96,12,64,4,192,4,128,0,128,0,128,0,128,0,128,0, - 128,0,128,0,192,0,64,2,96,4,48,28,28,112,7,192, - 1,0,1,0,1,128,4,192,7,128,15,26,52,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,255,252, - 16,4,16,4,16,4,16,4,16,4,16,64,16,64,16,64, - 31,192,16,64,16,64,16,0,16,2,16,2,16,2,16,2, - 16,2,255,254,15,26,52,20,1,0,0,48,0,96,0,192, - 1,128,3,0,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,15,26, - 52,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,255,252,16,4,16,4,16,4,16,4,16,4,16,64, - 16,64,16,64,31,192,16,64,16,64,16,0,16,2,16,2, - 16,2,16,2,16,2,255,254,15,24,48,20,1,0,12,48, - 30,120,12,48,0,0,0,0,255,252,16,4,16,4,16,4, - 16,4,16,4,16,64,16,64,16,64,31,192,16,64,16,64, - 16,0,16,2,16,2,16,2,16,2,16,2,255,254,11,26, - 52,20,4,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,255,224,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,255,224,11,26,52,20,4,0,0,192, - 1,128,3,0,6,0,12,0,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,11,26,52,20,4,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,255,224,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,255,224,11,24,48,20, - 4,0,96,192,241,224,96,192,0,0,0,0,255,224,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 255,224,15,19,38,20,1,0,255,192,32,112,32,24,32,12, - 32,4,32,6,32,2,32,2,32,2,254,2,32,2,32,2, - 32,2,32,6,32,4,32,12,32,24,32,112,255,192,18,24, - 72,20,0,0,3,132,0,6,236,0,4,56,0,0,0,0, - 0,0,0,248,31,192,28,1,0,20,1,0,22,1,0,18, - 1,0,19,1,0,17,129,0,16,129,0,16,193,0,16,65, - 0,16,97,0,16,33,0,16,49,0,16,25,0,16,9,0, - 16,13,0,16,5,0,16,7,0,127,3,0,15,26,52,20, - 2,0,24,0,12,0,6,0,3,0,1,128,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,15,26,52,20,2,0,0,24,0,48, - 0,96,0,192,1,128,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,26,52,20,2,0,1,0,3,128,6,192,12,96,24,48, - 0,0,0,0,7,192,28,112,48,24,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,32,8,48,24,28,112,7,192,15,24,48,20,2,0, - 14,16,27,176,16,224,0,0,0,0,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,192,6,64,4,96,12,32,8,48,24,28,112,7,192, - 15,24,48,20,2,0,48,48,120,120,48,48,0,0,0,0, - 7,192,28,112,48,24,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,32,8, - 48,24,28,112,7,192,13,14,28,20,3,1,128,8,192,24, - 96,48,48,96,24,192,13,128,7,0,7,0,13,128,24,192, - 48,96,96,48,192,24,128,8,16,21,42,20,2,255,0,1, - 7,195,28,118,48,28,32,24,96,60,64,36,192,102,128,194, - 129,130,129,2,131,2,134,2,204,6,72,4,120,12,48,8, - 48,24,124,48,199,224,128,0,17,26,78,20,1,0,6,0, - 0,3,0,0,1,128,0,0,192,0,0,96,0,0,0,0, - 0,0,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,17,26,78,20, - 1,0,0,24,0,0,48,0,0,96,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,48,6,0,16,4,0,24,12,0,14,56,0,3,224,0, - 17,26,78,20,1,0,0,128,0,1,192,0,3,96,0,6, - 48,0,12,24,0,0,0,0,0,0,0,254,63,128,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,32,2,0,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,48,6,0,16,4,0,24,12,0,14,56, - 0,3,224,0,17,24,72,20,1,0,12,24,0,30,60,0, - 12,24,0,0,0,0,0,0,0,254,63,128,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,32,2,0, - 32,2,0,48,6,0,16,4,0,24,12,0,14,56,0,3, - 224,0,15,26,52,20,2,0,0,48,0,96,0,192,1,128, - 3,0,0,0,0,0,248,62,96,12,48,24,16,16,24,48, - 8,32,12,96,6,192,2,128,3,128,1,0,1,0,1,0, - 1,0,1,0,1,0,1,0,1,0,31,240,16,19,38,20, - 1,0,254,0,16,0,16,0,16,0,31,224,16,60,16,6, - 16,2,16,3,16,3,16,2,16,6,16,60,31,224,16,0, - 16,0,16,0,16,0,254,0,15,21,42,20,1,0,7,192, - 12,96,8,32,24,48,16,16,16,16,16,16,16,48,16,96, - 17,192,16,112,16,24,16,4,16,6,16,2,16,2,16,2, - 17,6,17,4,17,140,248,248,15,22,44,20,2,0,24,0, - 12,0,6,0,3,0,1,128,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,22,44,20,2,0, - 0,96,0,192,1,128,3,0,6,0,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,22,44,20, - 2,0,1,0,3,128,6,192,12,96,24,48,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 15,128,56,224,0,32,0,48,0,16,0,16,31,240,112,48, - 192,16,128,16,128,16,128,48,192,240,127,158,15,20,40,20, - 2,0,48,192,121,224,48,192,0,0,0,0,0,0,15,128, - 56,224,0,32,0,48,0,16,0,16,31,240,112,48,192,16, - 128,16,128,16,128,48,192,240,127,158,15,23,46,20,2,0, - 7,0,13,128,8,128,8,128,13,128,7,0,0,0,0,0, - 0,0,15,128,56,224,0,32,0,48,0,16,0,16,31,240, - 112,48,192,16,128,16,128,16,128,48,192,240,127,158,19,14, - 42,20,0,0,31,15,128,113,152,192,0,240,64,0,96,96, - 0,96,32,30,64,32,115,255,224,192,192,0,128,64,0,128, - 96,0,128,224,0,193,80,96,99,88,192,62,79,128,14,19, - 38,20,3,251,15,200,56,104,96,24,64,24,192,8,128,8, - 128,0,128,0,128,0,192,0,64,4,96,28,56,112,15,192, - 2,0,2,0,3,0,9,128,15,0,14,22,44,20,2,0, - 24,0,12,0,6,0,3,0,1,128,0,0,0,0,0,0, - 15,192,56,112,96,24,64,8,192,12,128,4,255,252,128,0, - 128,0,128,0,192,0,96,12,56,56,15,224,14,22,44,20, - 2,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,14,22, - 44,20,2,0,1,0,3,128,6,192,12,96,24,48,0,0, - 0,0,0,0,15,192,56,112,96,24,64,8,192,12,128,4, - 255,252,128,0,128,0,128,0,192,0,96,12,56,56,15,224, - 14,20,40,20,2,0,48,96,120,240,48,96,0,0,0,0, - 0,0,15,192,56,112,96,24,64,8,192,12,128,4,255,252, - 128,0,128,0,128,0,192,0,96,12,56,56,15,224,13,22, - 44,20,3,0,48,0,24,0,12,0,6,0,3,0,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 13,22,44,20,3,0,0,192,1,128,3,0,6,0,12,0, - 0,0,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,21,42,20,3,0,4,0,14,0,27,0,49,128, - 96,192,0,0,0,0,126,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0, - 255,248,13,20,40,20,3,0,97,128,243,192,97,128,0,0, - 0,0,0,0,126,0,2,0,2,0,2,0,2,0,2,0, - 2,0,2,0,2,0,2,0,2,0,2,0,2,0,255,248, - 15,20,40,20,2,0,124,12,79,56,1,224,3,192,14,96, - 56,48,32,24,0,12,15,228,56,54,96,14,192,6,128,2, - 128,2,128,2,192,6,64,4,96,12,24,56,15,224,15,20, - 40,20,2,0,14,16,27,176,16,224,0,0,0,0,0,0, - 227,192,46,112,56,16,48,24,32,8,32,8,32,8,32,8, - 32,8,32,8,32,8,32,8,32,8,248,62,15,22,44,20, - 2,0,12,0,6,0,3,0,1,128,0,192,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,15,22, - 44,20,2,0,0,48,0,96,0,192,1,128,3,0,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,22,44,20,2,0,1,128,3,192,6,96,12,48,24,24, - 0,0,0,0,0,0,15,224,56,56,96,12,64,4,192,6, - 128,2,128,2,128,2,128,2,192,6,64,4,96,12,56,56, - 15,224,15,20,40,20,2,0,14,16,27,176,16,224,0,0, - 0,0,0,0,15,224,56,56,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,192,6,64,4,96,12,56,56,15,224, - 15,20,40,20,2,0,24,96,60,240,24,96,0,0,0,0, - 0,0,15,224,56,56,96,12,64,4,192,6,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,15,224,14,16, - 32,20,2,1,3,0,7,128,3,0,0,0,0,0,0,0, - 0,0,0,0,255,252,0,0,0,0,0,0,0,0,3,0, - 7,128,3,0,15,16,32,20,2,255,0,2,7,230,28,60, - 48,24,64,52,192,102,128,194,129,130,131,2,134,2,204,6, - 88,4,112,24,120,112,207,192,128,0,16,22,44,20,1,0, - 12,0,6,0,3,0,1,128,0,192,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,16,22,44,20, - 1,0,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,21, - 42,20,1,0,0,128,1,192,3,96,6,48,12,24,0,0, - 0,0,240,60,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,4,16,12,24,28,12,52,7,231,16,20, - 40,20,1,0,24,48,60,120,24,48,0,0,0,0,0,0, - 240,60,16,4,16,4,16,4,16,4,16,4,16,4,16,4, - 16,4,16,4,16,12,24,28,12,52,7,231,15,28,56,20, - 2,250,0,48,0,96,0,192,1,128,3,0,0,0,0,0, - 0,0,248,62,64,4,96,12,32,8,48,24,16,16,24,48, - 8,32,12,96,4,64,6,192,2,128,3,128,1,0,3,0, - 2,0,2,0,6,0,4,0,127,128,17,27,81,20,0,250, - 240,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,17,248,0,23,14,0,28,3,0,24,1, - 0,24,1,128,16,0,128,16,0,128,16,0,128,16,0,128, - 24,1,128,24,1,0,28,3,0,23,14,0,17,248,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,255,0, - 0,15,25,50,20,2,250,24,24,60,60,24,24,0,0,0, - 0,248,62,64,4,96,12,32,8,48,24,16,16,24,48,8, - 32,12,96,4,64,6,192,2,128,3,128,1,0,3,0,2, - 0,2,0,6,0,4,0,127,128}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=15 h=25 x= 7 y= 9 dx=20 dy= 0 ascent=22 len=50 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =22 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24n[658] U8G_FONT_SECTION("u8g_font_courR24n") = { - 0,28,42,250,246,20,0,0,0,0,42,58,0,22,252,20, - 0,11,13,26,20,4,8,4,0,4,0,4,0,4,0,132, - 32,245,224,31,0,14,0,10,0,27,0,49,128,32,128,96, - 192,15,17,34,20,2,1,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,255,254,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,6,9,9,20,5,252,60, - 60,120,120,96,224,192,192,128,15,1,2,20,2,9,255,254, - 5,4,4,20,7,0,112,248,248,112,11,25,50,20,4,253, - 0,32,0,96,0,64,0,64,0,192,0,128,1,128,1,0, - 3,0,2,0,2,0,6,0,4,0,12,0,8,0,8,0, - 24,0,16,0,48,0,32,0,96,0,64,0,64,0,192,0, - 128,0,11,20,40,20,4,0,31,0,49,128,96,192,64,64, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,192,96,64,64,64,64,96,192,49,128,31,0, - 11,20,40,20,4,0,12,0,60,0,228,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,255,224,13,20, - 40,20,3,0,15,192,48,96,96,16,64,16,64,16,0,16, - 0,48,0,32,0,96,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,0,192,0,128,8,255,248,13,20,40,20, - 3,0,15,128,56,224,96,48,0,16,0,16,0,16,0,16, - 0,32,0,64,7,128,0,96,0,16,0,8,0,8,0,8, - 0,8,0,24,192,48,112,224,31,128,13,20,40,20,3,0, - 0,192,1,64,1,64,2,64,6,64,4,64,8,64,24,64, - 16,64,32,64,96,64,64,64,128,64,255,248,0,64,0,64, - 0,64,0,64,0,64,3,248,13,20,40,20,3,0,63,240, - 32,0,32,0,32,0,32,0,32,0,32,0,39,128,60,224, - 32,48,0,16,0,24,0,8,0,8,0,8,0,24,192,16, - 96,48,56,224,15,128,12,20,40,20,4,0,7,192,28,32, - 48,0,32,0,96,0,64,0,192,0,143,128,184,224,160,32, - 192,48,192,16,192,16,192,16,192,16,64,16,96,48,32,32, - 56,224,15,128,11,20,40,20,4,0,255,224,128,32,128,32, - 0,96,0,64,0,64,0,192,0,128,0,128,1,128,1,0, - 1,0,3,0,2,0,2,0,2,0,6,0,4,0,4,0, - 4,0,11,20,40,20,4,0,31,0,96,192,64,64,192,96, - 128,32,128,32,192,96,64,64,49,128,31,0,113,192,64,64, - 192,96,128,32,128,32,128,32,192,96,64,64,113,192,31,0, - 12,20,40,20,4,0,31,0,112,192,64,96,192,32,128,48, - 128,48,128,48,128,48,192,80,64,208,115,144,30,16,0,32, - 0,32,0,32,0,64,0,192,1,128,14,0,120,0,5,14, - 14,20,7,0,112,248,248,112,0,0,0,0,0,0,112,248, - 248,112}; -/* - Fontname: -Adobe-Courier-Medium-R-Normal--34-240-100-100-M-200-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 20 - Calculated Max Values w=19 h=26 x= 9 y=17 dx=20 dy= 0 ascent=22 len=60 - Font Bounding box w=28 h=42 x=-6 y=-10 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_courR24r[3991] U8G_FONT_SECTION("u8g_font_courR24r") = { - 0,28,42,250,246,19,4,184,10,129,32,127,250,22,250,21, - 250,0,0,0,20,0,1,5,21,21,20,8,0,32,112,112, - 112,112,112,32,32,32,32,32,32,32,32,0,0,0,0,112, - 248,112,11,10,20,20,4,10,241,224,241,224,241,224,241,224, - 241,224,96,192,96,192,64,128,64,128,64,128,13,23,46,20, - 3,254,4,64,4,64,4,64,4,64,12,192,8,128,8,128, - 8,128,127,248,8,128,8,128,8,128,8,128,8,128,255,240, - 8,128,8,128,8,128,9,128,17,0,17,0,17,0,17,0, - 12,25,50,20,4,253,4,0,4,0,4,0,31,32,113,224, - 64,96,128,32,128,0,192,0,96,0,60,0,7,128,0,224, - 0,48,0,16,0,16,128,48,192,96,241,192,159,0,4,0, - 4,0,4,0,4,0,4,0,15,20,40,20,3,0,30,0, - 51,0,97,128,64,128,64,128,97,128,51,0,30,14,0,112, - 3,128,28,0,224,0,1,224,3,48,6,24,4,8,4,8, - 6,24,3,48,1,224,12,17,34,20,3,0,15,192,25,128, - 48,0,32,0,32,0,48,0,16,0,24,0,60,0,100,48, - 70,96,194,64,131,64,193,192,65,128,99,192,62,112,4,11, - 11,20,8,10,112,112,112,112,112,224,224,224,224,224,224,5, - 25,25,20,9,252,8,24,16,48,32,96,96,64,64,192,192, - 192,192,192,192,192,64,64,96,96,32,48,16,24,8,5,25, - 25,20,5,252,128,192,64,96,32,48,48,16,16,24,24,24, - 24,24,24,24,16,16,48,48,32,96,64,192,128,11,13,26, - 20,4,8,4,0,4,0,4,0,4,0,132,32,245,224,31, - 0,14,0,10,0,27,0,49,128,32,128,96,192,15,17,34, - 20,2,1,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,255,254,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,6,9,9,20,5,252,60,60,120,120,96, - 224,192,192,128,15,1,2,20,2,9,255,254,5,4,4,20, - 7,0,112,248,248,112,11,25,50,20,4,253,0,32,0,96, - 0,64,0,64,0,192,0,128,1,128,1,0,3,0,2,0, - 2,0,6,0,4,0,12,0,8,0,8,0,24,0,16,0, - 48,0,32,0,96,0,64,0,64,0,192,0,128,0,11,20, - 40,20,4,0,31,0,49,128,96,192,64,64,64,64,128,32, - 128,32,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 192,96,64,64,64,64,96,192,49,128,31,0,11,20,40,20, - 4,0,12,0,60,0,228,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0, - 4,0,4,0,4,0,4,0,255,224,13,20,40,20,3,0, - 15,192,48,96,96,16,64,16,64,16,0,16,0,48,0,32, - 0,96,0,192,1,128,3,0,6,0,12,0,24,0,48,0, - 96,0,192,0,128,8,255,248,13,20,40,20,3,0,15,128, - 56,224,96,48,0,16,0,16,0,16,0,16,0,32,0,64, - 7,128,0,96,0,16,0,8,0,8,0,8,0,8,0,24, - 192,48,112,224,31,128,13,20,40,20,3,0,0,192,1,64, - 1,64,2,64,6,64,4,64,8,64,24,64,16,64,32,64, - 96,64,64,64,128,64,255,248,0,64,0,64,0,64,0,64, - 0,64,3,248,13,20,40,20,3,0,63,240,32,0,32,0, - 32,0,32,0,32,0,32,0,39,128,60,224,32,48,0,16, - 0,24,0,8,0,8,0,8,0,24,192,16,96,48,56,224, - 15,128,12,20,40,20,4,0,7,192,28,32,48,0,32,0, - 96,0,64,0,192,0,143,128,184,224,160,32,192,48,192,16, - 192,16,192,16,192,16,64,16,96,48,32,32,56,224,15,128, - 11,20,40,20,4,0,255,224,128,32,128,32,0,96,0,64, - 0,64,0,192,0,128,0,128,1,128,1,0,1,0,3,0, - 2,0,2,0,2,0,6,0,4,0,4,0,4,0,11,20, - 40,20,4,0,31,0,96,192,64,64,192,96,128,32,128,32, - 192,96,64,64,49,128,31,0,113,192,64,64,192,96,128,32, - 128,32,128,32,192,96,64,64,113,192,31,0,12,20,40,20, - 4,0,31,0,112,192,64,96,192,32,128,48,128,48,128,48, - 128,48,192,80,64,208,115,144,30,16,0,32,0,32,0,32, - 0,64,0,192,1,128,14,0,120,0,5,14,14,20,7,0, - 112,248,248,112,0,0,0,0,0,0,112,248,248,112,7,18, - 18,20,5,252,28,62,62,28,0,0,0,0,0,60,60,120, - 112,112,224,192,192,128,15,17,34,20,2,1,0,2,0,14, - 0,56,0,224,3,128,6,0,28,0,112,0,192,0,112,0, - 28,0,6,0,3,128,0,224,0,56,0,14,0,2,15,6, - 12,20,2,6,255,254,0,0,0,0,0,0,0,0,255,254, - 15,17,34,20,2,1,128,0,224,0,56,0,14,0,3,128, - 0,192,0,112,0,28,0,6,0,28,0,112,0,192,3,128, - 14,0,56,0,224,0,128,0,11,19,38,20,4,0,63,0, - 225,192,128,64,128,64,0,96,0,32,0,96,0,64,1,192, - 7,0,4,0,4,0,4,0,0,0,0,0,0,0,14,0, - 31,0,14,0,12,23,46,20,3,254,15,128,24,192,48,64, - 96,96,64,32,192,32,128,32,128,224,131,160,134,32,132,32, - 132,32,132,32,134,32,131,32,129,240,128,0,192,0,64,0, - 96,0,48,0,24,224,15,128,19,19,57,20,0,0,31,224, - 0,0,160,0,0,160,0,1,16,0,1,16,0,1,16,0, - 2,8,0,2,8,0,2,8,0,4,4,0,4,4,0,4, - 4,0,15,254,0,8,2,0,8,2,0,16,1,0,16,1, - 0,48,1,128,254,15,224,16,19,38,20,1,0,255,240,16, - 12,16,4,16,6,16,2,16,2,16,6,16,4,16,12,31, - 248,16,6,16,2,16,3,16,1,16,1,16,3,16,2,16, - 6,255,248,14,19,38,20,2,0,7,196,28,116,32,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 0,128,0,192,0,64,0,96,4,32,28,28,112,7,192,15, - 19,38,20,1,0,255,192,32,112,32,24,32,12,32,4,32, - 6,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 6,32,4,32,12,32,24,32,112,255,192,15,19,38,20,1, - 0,255,252,16,4,16,4,16,4,16,4,16,68,16,64,16, - 64,31,192,16,64,16,64,16,64,16,0,16,2,16,2,16, - 2,16,2,16,2,255,254,15,19,38,20,1,0,255,254,16, - 2,16,2,16,2,16,2,16,66,16,64,16,64,31,192,16, - 64,16,64,16,64,16,0,16,0,16,0,16,0,16,0,16, - 0,255,128,15,19,38,20,2,0,7,196,28,116,48,12,96, - 4,64,4,192,4,128,0,128,0,128,0,128,0,128,0,128, - 254,128,4,192,4,64,4,96,4,48,4,28,28,7,240,15, - 19,38,20,2,0,252,126,32,8,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,63,248,32,8,32,8,32,8,32, - 8,32,8,32,8,32,8,32,8,252,126,11,19,38,20,4, - 0,255,224,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4, - 0,4,0,4,0,255,224,15,19,38,20,3,0,15,254,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,0,32,0, - 32,0,32,128,32,128,32,128,32,128,32,192,96,64,64,97, - 192,31,0,17,19,57,20,1,0,254,31,128,16,4,0,16, - 12,0,16,8,0,16,16,0,16,48,0,16,64,0,16,192, - 0,19,128,0,28,192,0,16,32,0,16,48,0,16,16,0, - 16,24,0,16,8,0,16,8,0,16,12,0,16,4,0,254, - 7,128,15,19,38,20,2,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,2,8,2,8,2,8,2,8,2,8,2,255,254,19,19, - 57,20,0,0,248,3,224,40,2,128,40,2,128,36,4,128, - 36,4,128,34,8,128,34,8,128,33,16,128,33,16,128,33, - 16,128,32,160,128,32,160,128,32,64,128,32,64,128,32,0, - 128,32,0,128,32,0,128,32,0,128,254,7,224,18,19,57, - 20,0,0,248,31,192,28,1,0,20,1,0,18,1,0,18, - 1,0,17,1,0,16,129,0,16,129,0,16,65,0,16,65, - 0,16,33,0,16,33,0,16,17,0,16,17,0,16,9,0, - 16,9,0,16,5,0,16,7,0,127,3,0,15,19,38,20, - 2,0,7,192,24,48,48,24,96,12,64,4,192,6,128,2, - 128,2,128,2,128,2,128,2,128,2,128,2,192,6,64,4, - 96,12,48,24,24,48,7,192,15,19,38,20,1,0,255,224, - 16,56,16,4,16,6,16,2,16,2,16,2,16,6,16,4, - 16,56,31,224,16,0,16,0,16,0,16,0,16,0,16,0, - 16,0,255,192,15,22,44,20,2,253,7,192,28,112,48,24, - 96,12,64,4,192,6,128,2,128,2,128,2,128,2,128,2, - 128,2,128,2,192,6,64,4,96,12,56,56,12,96,7,192, - 2,0,15,198,24,124,18,19,57,20,1,0,255,224,0,16, - 56,0,16,4,0,16,6,0,16,2,0,16,2,0,16,6, - 0,16,4,0,16,24,0,31,224,0,16,96,0,16,48,0, - 16,24,0,16,12,0,16,4,0,16,6,0,16,2,0,16, - 3,0,254,1,192,12,19,38,20,3,0,15,144,56,208,96, - 48,64,48,64,16,64,16,64,0,96,0,56,0,15,0,1, - 192,0,96,0,48,128,16,128,16,192,16,224,48,184,224,143, - 128,15,19,38,20,2,0,255,254,129,2,129,2,129,2,129, - 2,129,2,129,2,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,63,248,17,19,57, - 20,1,0,254,63,128,32,2,0,32,2,0,32,2,0,32, - 2,0,32,2,0,32,2,0,32,2,0,32,2,0,32,2, - 0,32,2,0,32,2,0,32,2,0,32,2,0,48,6,0, - 16,4,0,24,12,0,14,56,0,3,224,0,19,19,57,20, - 0,0,254,15,224,48,1,128,16,1,0,16,1,0,24,3, - 0,8,2,0,8,2,0,12,6,0,4,4,0,4,4,0, - 6,12,0,2,8,0,3,24,0,1,16,0,1,16,0,0, - 160,0,0,160,0,0,224,0,0,64,0,17,19,57,20,1, - 0,252,31,128,64,1,0,64,1,0,64,1,0,64,1,0, - 97,195,0,33,66,0,33,66,0,34,34,0,34,34,0,34, - 34,0,34,34,0,38,50,0,36,18,0,52,22,0,20,20, - 0,20,20,0,24,12,0,24,12,0,17,19,57,20,1,0, - 124,31,0,48,6,0,16,4,0,24,12,0,8,8,0,4, - 16,0,2,32,0,3,96,0,1,192,0,0,128,0,1,192, - 0,2,32,0,4,16,0,12,24,0,8,8,0,16,4,0, - 48,6,0,96,3,0,252,31,128,15,19,38,20,2,0,248, - 62,96,12,48,24,16,16,24,48,8,32,4,64,6,192,2, - 128,3,128,1,0,1,0,1,0,1,0,1,0,1,0,1, - 0,1,0,31,240,13,19,38,20,3,0,127,240,64,16,64, - 48,64,32,64,96,64,192,0,128,1,128,3,0,6,0,4, - 0,12,0,24,8,16,8,48,8,96,8,64,8,192,8,255, - 248,5,24,24,20,9,252,248,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,248,11, - 25,50,20,4,253,128,0,192,0,64,0,64,0,96,0,32, - 0,48,0,16,0,24,0,8,0,8,0,12,0,4,0,6, - 0,2,0,2,0,3,0,1,0,1,128,0,128,0,192,0, - 64,0,64,0,96,0,32,5,24,24,20,5,252,248,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,248,11,9,18,20,4,12,4,0,14,0,27, - 0,17,0,49,128,96,192,64,64,192,96,128,32,19,1,3, - 20,0,250,255,255,224,6,5,5,20,4,17,192,96,48,24, - 12,15,14,28,20,2,0,15,128,56,224,0,32,0,48,0, - 16,0,16,31,240,112,48,192,16,128,16,128,16,128,48,192, - 240,127,158,17,20,60,20,0,0,240,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,17,248,0,23,14, - 0,20,3,0,24,1,0,24,1,128,16,0,128,16,0,128, - 16,0,128,16,0,128,24,1,128,24,1,0,20,3,0,23, - 14,0,241,248,0,14,14,28,20,3,0,15,136,56,248,96, - 24,64,8,192,8,128,0,128,0,128,0,128,0,192,0,64, - 12,96,24,56,224,15,128,17,20,60,20,2,0,0,60,0, - 0,4,0,0,4,0,0,4,0,0,4,0,0,4,0,15, - 196,0,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,199,128,14,14,28,20,2,0,15, - 192,56,112,96,24,64,8,192,12,128,4,255,252,128,0,128, - 0,192,0,64,0,96,12,56,56,15,224,13,20,40,20,3, - 0,3,224,6,24,4,0,12,0,8,0,8,0,255,240,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,255,240,17,20,60,20,2,250,15, - 199,128,56,116,0,96,20,0,64,12,0,192,12,0,128,4, - 0,128,4,0,128,4,0,128,4,0,192,12,0,64,12,0, - 96,20,0,56,116,0,15,196,0,0,4,0,0,4,0,0, - 12,0,0,8,0,0,56,0,15,224,0,16,20,40,20,1, - 0,240,0,16,0,16,0,16,0,16,0,16,0,17,224,23, - 56,20,8,24,12,24,4,16,4,16,4,16,4,16,4,16, - 4,16,4,16,4,16,4,124,31,13,20,40,20,3,0,6, - 0,6,0,6,0,0,0,0,0,0,0,126,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,255,248,10,26,52,20,4,250,1,128,1, - 128,1,128,0,0,0,0,0,0,255,192,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0, - 64,0,64,0,64,0,64,0,64,0,192,0,128,3,128,254, - 0,15,20,40,20,2,0,240,0,16,0,16,0,16,0,16, - 0,16,0,16,252,16,48,16,96,16,192,17,128,19,0,30, - 0,19,0,17,128,16,192,16,96,16,48,16,24,240,62,13, - 20,40,20,3,0,126,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,248,19,14,42, - 20,0,0,231,14,0,41,147,0,48,225,128,48,96,128,32, - 64,128,32,64,128,32,64,128,32,64,128,32,64,128,32,64, - 128,32,64,128,32,64,128,32,64,128,248,112,224,15,14,28, - 20,2,0,227,192,46,112,40,16,48,24,48,8,32,8,32, - 8,32,8,32,8,32,8,32,8,32,8,32,8,248,62,15, - 14,28,20,2,0,15,224,56,56,96,12,64,4,192,6,128, - 2,128,2,128,2,128,2,192,6,64,4,96,12,56,56,15, - 224,17,20,60,20,0,250,1,248,0,247,14,0,20,3,0, - 24,1,0,24,1,128,16,0,128,16,0,128,16,0,128,16, - 0,128,24,1,128,24,1,0,20,3,0,23,14,0,17,248, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 255,0,0,17,20,60,20,2,250,15,192,0,56,119,128,96, - 28,0,64,12,0,192,12,0,128,4,0,128,4,0,128,4, - 0,128,4,0,192,12,0,64,12,0,96,28,0,56,116,0, - 15,196,0,0,4,0,0,4,0,0,4,0,0,4,0,0, - 4,0,0,127,128,15,14,28,20,3,0,120,124,9,198,11, - 0,12,0,12,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,255,240,13,14,28,20,3,0,15,144,56, - 240,96,48,64,16,96,0,56,0,15,128,0,224,0,48,128, - 24,128,24,192,48,248,224,143,128,14,19,38,20,2,0,16, - 0,16,0,16,0,16,0,16,0,255,240,16,0,16,0,16, - 0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,24, - 12,12,56,7,224,16,14,28,20,1,0,240,60,16,4,16, - 4,16,4,16,4,16,4,16,4,16,4,16,4,16,4,16, - 12,24,12,12,52,7,231,17,14,42,20,1,0,252,31,128, - 48,6,0,16,4,0,16,4,0,24,12,0,8,8,0,12, - 24,0,4,16,0,4,16,0,6,48,0,2,32,0,3,96, - 0,1,64,0,1,192,0,17,14,42,20,1,0,248,15,128, - 96,3,0,32,2,0,32,2,0,33,194,0,33,66,0,49, - 70,0,19,100,0,18,36,0,18,36,0,22,52,0,28,28, - 0,8,8,0,8,8,0,15,14,28,20,2,0,248,62,96, - 12,48,24,24,48,12,96,6,192,3,128,3,128,6,192,12, - 96,24,48,48,24,96,12,248,62,15,20,40,20,2,250,248, - 62,64,4,96,12,32,8,48,24,16,16,24,48,8,32,12, - 96,4,64,6,192,2,128,3,128,1,0,3,0,2,0,2, - 0,6,0,4,0,255,128,11,14,28,20,4,0,255,224,128, - 96,128,192,129,128,3,0,6,0,4,0,12,0,24,0,48, - 0,96,32,64,32,192,32,255,224,7,25,25,20,6,252,6, - 12,24,16,16,16,16,16,16,16,16,48,96,224,48,16,16, - 16,16,16,16,16,16,24,14,1,25,25,20,9,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,7,25,25,20,6,252,192,96,48, - 16,16,16,16,16,16,16,16,24,12,14,24,16,16,16,16, - 16,16,16,16,48,224,13,5,10,20,3,7,24,0,124,8, - 199,24,129,176,0,224,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 3, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 7 y= 6 dx=19 dy= 0 ascent=17 len=34 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =17 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_67_75[3981] U8G_FONT_SECTION("u8g_font_cu12_67_75") = { - 0,40,30,247,246,3,2,98,5,14,32,255,1,17,254,12, - 0,11,5,10,12,1,4,2,128,1,64,255,224,1,64,2, - 128,5,11,11,6,1,1,32,32,32,32,32,32,168,112,168, - 112,32,11,5,10,12,1,4,32,96,65,128,255,0,65,128, - 32,96,11,5,10,12,1,4,192,128,48,64,31,224,48,64, - 192,128,11,7,14,12,1,3,0,32,32,32,64,32,255,224, - 64,32,32,32,0,32,7,11,11,8,1,1,16,56,84,16, - 16,16,16,16,16,16,254,11,7,14,12,1,3,128,0,128, - 128,128,64,255,224,128,64,128,128,128,0,7,11,11,8,1, - 1,254,16,16,16,16,16,16,16,84,56,16,7,11,11,8, - 1,1,16,56,84,16,16,16,16,16,84,56,254,11,7,14, - 12,1,4,1,192,0,32,32,32,64,32,255,192,64,0,32, - 0,11,7,14,12,1,4,112,0,128,0,128,128,128,64,127, - 224,0,64,0,128,11,7,14,12,1,4,1,192,2,32,34, - 32,66,32,255,192,66,0,34,0,11,7,14,12,1,4,112, - 0,136,0,136,128,136,64,127,224,8,64,8,128,12,5,10, - 13,1,4,38,64,73,32,233,112,80,160,32,64,12,5,10, - 13,1,4,33,64,66,32,255,240,68,32,40,64,4,11,11, - 5,1,1,16,16,32,64,176,208,32,160,160,192,240,6,11, - 11,7,1,1,32,64,252,68,36,4,4,4,4,4,4,6, - 11,11,7,1,1,16,8,252,136,144,128,128,128,128,128,128, - 6,11,11,7,1,1,4,4,4,4,4,4,36,68,252,64, - 32,6,11,11,7,1,1,128,128,128,128,128,128,144,136,252, - 8,16,8,6,6,9,1,2,252,4,4,21,14,4,6,8, - 8,7,1,1,4,4,4,36,68,252,64,32,11,8,16,11, - 1,1,15,128,16,64,32,32,32,32,32,32,168,32,112,0, - 32,0,11,8,16,11,1,1,62,0,65,0,128,128,128,128, - 128,128,130,160,1,192,0,128,9,11,22,10,1,1,255,128, - 0,0,240,0,192,0,160,0,144,0,8,0,4,0,2,0, - 1,0,0,128,12,13,26,13,1,0,128,0,144,0,160,0, - 255,240,160,0,144,0,128,16,0,144,0,80,255,240,0,80, - 0,144,0,16,10,7,14,11,1,2,3,192,67,0,130,128, - 130,128,128,128,65,0,62,0,10,7,14,11,1,2,240,0, - 48,128,80,64,80,64,64,64,32,128,31,0,11,3,6,12, - 1,6,32,0,64,0,255,224,11,3,6,12,1,6,255,224, - 64,0,32,0,3,11,11,4,1,1,128,192,160,128,128,128, - 128,128,128,128,128,3,11,11,4,1,1,32,96,160,32,32, - 32,32,32,32,32,32,11,3,6,12,1,6,0,128,0,64, - 255,224,11,3,6,12,1,6,255,224,0,64,0,128,3,11, - 11,4,1,1,128,128,128,128,128,128,128,128,160,192,128,3, - 11,11,4,1,1,32,32,32,32,32,32,32,32,160,96,32, - 11,11,22,12,1,1,0,128,0,64,255,224,0,64,0,128, - 0,0,32,0,64,0,255,224,64,0,32,0,11,11,22,12, - 1,1,32,128,112,128,168,128,32,128,32,128,32,128,32,128, - 32,128,34,160,33,192,32,128,11,11,22,12,1,1,32,0, - 64,0,255,224,64,0,32,0,0,0,0,128,0,64,255,224, - 0,64,0,128,11,11,22,12,1,1,32,0,64,0,255,224, - 64,0,32,0,0,0,32,0,64,0,255,224,64,0,32,0, - 11,11,22,12,1,1,32,128,113,192,170,160,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,11,11,22,12, - 1,1,0,128,0,64,255,224,0,64,0,128,0,0,0,128, - 0,64,255,224,0,64,0,128,11,11,22,12,1,1,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,170,160, - 113,192,32,128,11,8,16,12,1,3,32,0,64,0,255,224, - 0,0,0,0,255,224,0,64,0,128,11,8,16,12,1,3, - 0,128,0,64,255,224,0,0,0,0,255,224,64,0,32,0, - 11,7,14,12,1,3,16,128,32,128,127,224,129,0,127,224, - 34,0,18,0,13,7,14,14,1,3,17,64,33,32,127,240, - 130,8,127,240,36,32,20,64,11,7,14,12,1,3,9,0, - 8,128,255,192,16,32,255,192,32,128,33,0,11,7,14,12, - 1,3,16,0,32,0,127,224,128,0,127,224,32,0,16,0, - 7,11,11,8,1,1,16,40,108,170,40,40,40,40,40,40, - 40,11,7,14,12,1,3,1,0,0,128,255,192,0,32,255, - 192,0,128,1,0,7,11,11,8,1,1,40,40,40,40,40, - 40,40,170,108,40,16,12,7,14,12,1,3,16,128,32,64, - 127,224,128,16,127,224,32,64,16,128,7,12,12,8,1,0, - 16,40,108,170,40,40,40,40,170,108,40,16,10,10,20,11, - 1,1,248,0,144,0,136,0,196,0,162,0,17,0,8,128, - 4,64,2,0,1,0,10,10,20,11,1,1,7,192,2,64, - 4,64,8,192,17,64,34,0,68,0,136,0,16,0,32,0, - 10,10,20,11,1,1,32,0,16,0,136,0,68,0,34,0, - 17,64,8,192,4,64,2,64,7,192,10,10,20,11,1,1, - 1,0,2,0,4,64,8,128,17,0,162,0,196,0,136,0, - 144,0,248,0,11,7,14,12,1,3,16,0,63,224,64,0, - 255,224,64,0,63,224,16,0,11,7,14,12,1,3,1,0, - 255,128,0,64,255,224,0,64,255,128,1,0,12,5,10,13, - 1,4,32,0,72,128,245,80,66,32,32,0,12,5,10,13, - 1,4,0,64,17,32,170,240,68,32,0,64,5,11,11,6, - 1,1,32,112,168,32,32,248,32,248,32,32,32,5,11,11, - 6,1,1,32,32,32,248,32,248,32,32,168,112,32,11,5, - 10,12,1,4,32,0,64,0,238,224,64,0,32,0,5,11, - 11,6,1,1,32,112,168,0,32,32,32,0,32,32,32,11, - 5,10,12,1,4,0,128,0,64,238,224,0,64,0,128,5, - 11,11,6,1,1,32,32,32,0,32,32,32,0,168,112,32, - 12,7,14,13,1,3,128,0,144,0,160,0,255,240,160,0, - 144,0,128,0,12,7,14,13,1,3,0,16,0,144,0,80, - 255,240,0,80,0,144,0,16,12,9,18,13,1,2,8,0, - 24,0,47,240,64,16,128,16,64,16,47,240,24,0,8,0, - 9,12,24,10,1,1,8,0,20,0,34,0,65,0,227,128, - 34,0,34,0,34,0,34,0,34,0,34,0,62,0,12,9, - 18,13,1,2,1,0,1,128,255,64,128,32,128,16,128,32, - 255,64,1,128,1,0,9,12,24,10,1,1,62,0,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,9,17,34,10,1,0,8,0,20,0,34,0, - 65,0,227,128,34,0,34,0,34,0,34,0,34,0,34,0, - 62,0,0,0,62,0,34,0,34,0,62,0,9,14,28,10, - 1,0,8,0,20,0,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,9,14, - 28,10,1,0,8,0,20,0,62,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,128,128,255,128, - 9,14,28,10,1,0,8,0,28,0,42,0,73,0,235,128, - 42,0,42,0,42,0,42,0,42,0,42,0,235,128,136,128, - 255,128,9,15,30,10,1,2,8,0,20,0,34,0,73,0, - 213,128,34,0,65,0,227,128,34,0,34,0,34,0,34,0, - 34,0,34,0,62,0,9,17,34,10,1,0,8,0,20,0, - 34,0,73,0,213,128,34,0,65,0,227,128,34,0,34,0, - 34,0,34,0,34,0,34,0,227,128,128,128,255,128,14,9, - 18,16,2,2,224,64,160,96,191,208,128,24,128,20,128,24, - 191,208,160,96,224,64,11,11,22,12,1,1,255,224,128,0, - 188,0,176,0,168,0,164,0,130,0,129,0,128,128,128,64, - 128,32,11,11,22,12,1,1,128,32,64,32,32,32,16,32, - 8,32,4,160,2,160,1,160,7,160,0,32,255,224,9,16, - 32,10,1,0,8,0,20,0,34,0,65,0,227,128,34,0, - 34,0,34,0,34,0,34,0,34,0,227,128,65,0,34,0, - 20,0,8,0,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 11,11,22,14,2,1,255,224,255,224,255,224,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,11,11,22,14, - 2,1,255,224,128,32,128,32,128,32,128,32,128,32,128,32, - 128,32,128,32,128,32,255,224,11,11,22,14,2,1,63,128, - 64,64,128,32,128,32,128,32,128,32,128,32,128,32,128,32, - 64,64,63,128,11,11,22,14,2,1,255,224,128,32,191,160, - 191,160,191,160,191,160,191,160,191,160,191,160,128,32,255,224, - 11,11,22,14,2,1,255,224,128,32,255,224,128,32,255,224, - 128,32,255,224,128,32,255,224,128,32,255,224,11,11,22,14, - 2,1,255,224,170,160,170,160,170,160,170,160,170,160,170,160, - 170,160,170,160,170,160,255,224,11,11,22,14,2,1,255,224, - 170,160,255,224,170,160,255,224,170,160,255,224,170,160,255,224, - 170,160,255,224,11,11,22,14,2,1,255,224,201,32,164,160, - 146,96,201,32,164,160,146,96,201,32,164,160,146,96,255,224, - 11,11,22,14,2,1,255,224,146,96,164,160,201,32,146,96, - 164,160,201,32,146,96,164,160,201,32,255,224,11,11,22,14, - 2,1,255,224,213,96,170,160,213,96,170,160,213,96,170,160, - 213,96,170,160,213,96,255,224,7,7,7,12,3,3,254,254, - 254,254,254,254,254,7,7,7,12,3,3,254,130,130,130,130, - 130,254,13,6,12,16,2,3,255,248,255,248,255,248,255,248, - 255,248,255,248,13,6,12,16,2,3,255,248,128,8,128,8, - 128,8,128,8,255,248,6,13,13,9,2,254,252,252,252,252, - 252,252,252,252,252,252,252,252,252,6,13,13,9,2,254,252, - 132,132,132,132,132,132,132,132,132,132,132,252,16,6,12,19, - 2,3,31,255,63,254,63,254,127,252,127,252,255,248,16,6, - 12,19,2,3,31,255,32,2,32,2,64,4,64,4,255,248, - 11,12,24,14,2,1,4,0,4,0,14,0,14,0,31,0, - 31,0,63,128,63,128,127,192,127,192,255,224,255,224,11,12, - 24,14,2,1,4,0,4,0,10,0,10,0,17,0,17,0, - 32,128,32,128,64,64,64,64,128,32,255,224,7,8,8,12, - 3,1,16,16,56,56,124,124,254,254,7,8,8,12,3,1, - 16,16,40,40,68,68,130,254,12,11,22,15,2,1,192,0, - 240,0,252,0,255,0,255,192,255,240,255,192,255,0,252,0, - 240,0,192,0,12,11,22,15,2,1,192,0,176,0,140,0, - 131,0,128,192,128,48,128,192,131,0,140,0,176,0,192,0, - 8,7,7,13,3,1,192,240,252,255,252,240,192,8,7,7, - 13,3,1,192,176,140,131,140,176,192,12,7,14,15,2,1, - 192,0,252,0,255,192,255,240,255,192,252,0,192,0,12,7, - 14,15,2,1,192,0,188,0,131,192,128,48,131,192,188,0, - 192,0,11,12,24,14,2,1,255,224,255,224,127,192,127,192, - 63,128,63,128,31,0,31,0,14,0,14,0,4,0,4,0, - 11,12,24,14,2,1,255,224,128,32,64,64,64,64,32,128, - 32,128,17,0,17,0,10,0,10,0,4,0,4,0,7,8, - 8,12,3,1,254,254,124,124,56,56,16,16,7,8,8,12, - 3,1,254,130,68,68,40,40,16,16,12,11,22,15,2,1, - 0,48,0,240,3,240,15,240,63,240,255,240,63,240,15,240, - 3,240,0,240,0,48,12,11,22,15,2,1,0,48,0,208, - 3,16,12,16,48,16,192,16,48,16,12,16,3,16,0,208, - 0,48,8,7,7,13,3,1,3,15,63,255,63,15,3,8, - 7,7,13,3,1,3,13,49,193,49,13,3,12,7,14,15, - 2,1,0,48,3,240,63,240,255,240,63,240,3,240,0,48, - 12,7,14,15,2,1,0,48,3,208,60,16,192,16,60,16, - 3,208,0,48,11,11,22,14,2,1,4,0,14,0,31,0, - 63,128,127,192,255,224,127,192,63,128,31,0,14,0,4,0, - 11,11,22,14,2,1,4,0,10,0,17,0,32,128,64,64, - 128,32,64,64,32,128,17,0,10,0,4,0,11,11,22,14, - 2,1,4,0,10,0,17,0,36,128,78,64,159,32,78,64, - 36,128,17,0,10,0,4,0,11,11,22,14,2,1,31,0, - 96,192,64,64,142,32,159,32,159,32,159,32,142,32,64,64, - 96,192,31,0,7,12,12,8,1,0,16,40,40,68,68,130, - 130,68,68,40,40,16,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,128,32,128,32,64,64,96,192, - 31,0,11,11,22,14,2,1,14,0,32,128,64,64,0,0, - 128,32,128,32,128,32,0,0,64,64,32,128,14,0,11,11, - 22,14,2,1,31,0,106,192,106,192,170,160,170,160,170,160, - 170,160,170,160,106,192,106,192,31,0,11,11,22,14,2,1, - 31,0,96,192,64,64,142,32,145,32,145,32,145,32,142,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,127,192, - 127,192,255,224,255,224,255,224,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,120,192,120,64,248,32, - 248,32,248,32,248,32,248,32,120,64,120,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 131,224,131,224,67,192,99,192,31,0,11,11,22,14,2,1, - 31,0,127,192,127,192,255,224,255,224,128,32,128,32,128,32, - 64,64,96,192,31,0,11,11,22,14,2,1,31,0,96,192, - 64,64,128,32,128,32,128,32,255,224,255,224,127,192,127,192, - 31,0,11,11,22,14,2,1,31,0,103,192,71,192,135,224, - 135,224,135,224,128,32,128,32,64,64,96,192,31,0,11,11, - 22,14,2,1,31,0,99,192,67,192,131,224,131,224,131,224, - 255,224,255,224,127,192,127,192,31,0,6,11,11,8,2,1, - 28,124,124,252,252,252,252,252,124,124,28,6,11,11,9,2, - 1,224,248,248,252,252,252,252,252,248,248,224,7,12,12,10, - 2,1,254,254,254,254,254,198,130,130,130,198,254,254,13,13, - 26,16,2,0,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,191,232,191,232,223,216,207,152,240,120,255,248,13,7, - 14,16,2,6,255,248,240,120,207,152,223,216,191,232,191,232, - 191,232,13,7,14,16,2,0,191,232,191,232,191,232,223,216, - 207,152,240,120,255,248,6,6,6,8,2,6,28,96,64,128, - 128,128,6,6,6,13,7,6,224,24,8,4,4,4,6,6, - 6,13,7,1,4,4,4,8,24,224,6,6,6,8,2,1, - 128,128,128,64,96,28,11,6,12,14,2,6,31,0,96,192, - 64,64,128,32,128,32,128,32,11,6,12,14,2,1,128,32, - 128,32,128,32,64,64,96,192,31,0,12,12,24,15,2,1, - 0,16,0,48,0,112,0,240,1,240,3,240,7,240,15,240, - 31,240,63,240,127,240,255,240,12,12,24,15,2,1,128,0, - 192,0,224,0,240,0,248,0,252,0,254,0,255,0,255,128, - 255,192,255,224,255,240,12,12,24,15,2,1,255,240,255,224, - 255,192,255,128,255,0,254,0,252,0,248,0,240,0,224,0, - 192,0,128,0,12,12,24,15,2,1,255,240,127,240,63,240, - 31,240,15,240,7,240,3,240,1,240,0,240,0,112,0,48, - 0,16,7,7,7,8,1,2,56,68,130,130,130,68,56,11, - 11,22,14,2,1,255,224,248,32,248,32,248,32,248,32,248, - 32,248,32,248,32,248,32,248,32,255,224,11,11,22,14,2, - 1,255,224,131,224,131,224,131,224,131,224,131,224,131,224,131, - 224,131,224,131,224,255,224,11,11,22,14,2,1,255,224,255, - 224,255,160,255,32,254,32,252,32,248,32,240,32,224,32,192, - 32,255,224,11,11,22,14,2,1,255,224,128,96,128,224,129, - 224,131,224,135,224,143,224,159,224,191,224,255,224,255,224,11, - 11,22,14,2,1,255,224,132,32,132,32,132,32,132,32,132, - 32,132,32,132,32,132,32,132,32,255,224,11,12,24,14,2, - 1,4,0,4,0,10,0,10,0,17,0,17,0,32,128,36, - 128,78,64,68,64,128,32,255,224,11,12,24,14,2,1,4, - 0,4,0,14,0,14,0,29,0,29,0,60,128,60,128,124, - 64,124,64,252,32,255,224,11,12,24,14,2,1,4,0,4, - 0,14,0,14,0,23,0,23,0,39,128,39,128,71,192,71, - 192,135,224,255,224,13,13,26,16,2,0,31,192,32,32,64, - 16,128,8,128,8,128,8,128,8,128,8,128,8,128,8,64, - 16,32,32,31,192,11,11,22,14,2,1,255,224,132,32,132, - 32,132,32,132,32,252,32,128,32,128,32,128,32,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,128,32,128,32,128, - 32,252,32,132,32,132,32,132,32,132,32,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,135,224,132, - 32,132,32,132,32,132,32,255,224,11,11,22,14,2,1,255, - 224,132,32,132,32,132,32,132,32,135,224,128,32,128,32,128, - 32,128,32,255,224,11,11,22,14,2,1,31,0,100,192,68, - 64,132,32,132,32,252,32,128,32,128,32,64,64,96,192,31, - 0,11,11,22,14,2,1,31,0,96,192,64,64,128,32,128, - 32,252,32,132,32,132,32,68,64,100,192,31,0,11,11,22, - 14,2,1,31,0,96,192,64,64,128,32,128,32,135,224,132, - 32,132,32,68,64,100,192,31,0,11,11,22,14,2,1,31, - 0,100,192,68,64,132,32,132,32,135,224,128,32,128,32,64, - 64,96,192,31,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 6 - Calculated Max Values w=16 h=13 x= 3 y= 3 dx=19 dy= 0 ascent=13 len=24 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12_75r[1123] U8G_FONT_SECTION("u8g_font_cu12_75r") = { - 0,40,30,247,246,11,2,247,0,0,32,79,0,13,254,12, - 0,11,11,22,14,2,1,255,224,255,224,255,224,255,224,255, - 224,255,224,255,224,255,224,255,224,255,224,255,224,11,11,22, - 14,2,1,255,224,128,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,32,255,224,11,11,22,14,2,1,63, - 128,64,64,128,32,128,32,128,32,128,32,128,32,128,32,128, - 32,64,64,63,128,11,11,22,14,2,1,255,224,128,32,191, - 160,191,160,191,160,191,160,191,160,191,160,191,160,128,32,255, - 224,11,11,22,14,2,1,255,224,128,32,255,224,128,32,255, - 224,128,32,255,224,128,32,255,224,128,32,255,224,11,11,22, - 14,2,1,255,224,170,160,170,160,170,160,170,160,170,160,170, - 160,170,160,170,160,170,160,255,224,11,11,22,14,2,1,255, - 224,170,160,255,224,170,160,255,224,170,160,255,224,170,160,255, - 224,170,160,255,224,11,11,22,14,2,1,255,224,201,32,164, - 160,146,96,201,32,164,160,146,96,201,32,164,160,146,96,255, - 224,11,11,22,14,2,1,255,224,146,96,164,160,201,32,146, - 96,164,160,201,32,146,96,164,160,201,32,255,224,11,11,22, - 14,2,1,255,224,213,96,170,160,213,96,170,160,213,96,170, - 160,213,96,170,160,213,96,255,224,7,7,7,12,3,3,254, - 254,254,254,254,254,254,7,7,7,12,3,3,254,130,130,130, - 130,130,254,13,6,12,16,2,3,255,248,255,248,255,248,255, - 248,255,248,255,248,13,6,12,16,2,3,255,248,128,8,128, - 8,128,8,128,8,255,248,6,13,13,9,2,254,252,252,252, - 252,252,252,252,252,252,252,252,252,252,6,13,13,9,2,254, - 252,132,132,132,132,132,132,132,132,132,132,132,252,16,6,12, - 19,2,3,31,255,63,254,63,254,127,252,127,252,255,248,16, - 6,12,19,2,3,31,255,32,2,32,2,64,4,64,4,255, - 248,11,12,24,14,2,1,4,0,4,0,14,0,14,0,31, - 0,31,0,63,128,63,128,127,192,127,192,255,224,255,224,11, - 12,24,14,2,1,4,0,4,0,10,0,10,0,17,0,17, - 0,32,128,32,128,64,64,64,64,128,32,255,224,7,8,8, - 12,3,1,16,16,56,56,124,124,254,254,7,8,8,12,3, - 1,16,16,40,40,68,68,130,254,12,11,22,15,2,1,192, - 0,240,0,252,0,255,0,255,192,255,240,255,192,255,0,252, - 0,240,0,192,0,12,11,22,15,2,1,192,0,176,0,140, - 0,131,0,128,192,128,48,128,192,131,0,140,0,176,0,192, - 0,8,7,7,13,3,1,192,240,252,255,252,240,192,8,7, - 7,13,3,1,192,176,140,131,140,176,192,12,7,14,15,2, - 1,192,0,252,0,255,192,255,240,255,192,252,0,192,0,12, - 7,14,15,2,1,192,0,188,0,131,192,128,48,131,192,188, - 0,192,0,11,12,24,14,2,1,255,224,255,224,127,192,127, - 192,63,128,63,128,31,0,31,0,14,0,14,0,4,0,4, - 0,11,12,24,14,2,1,255,224,128,32,64,64,64,64,32, - 128,32,128,17,0,17,0,10,0,10,0,4,0,4,0,7, - 8,8,12,3,1,254,254,124,124,56,56,16,16,7,8,8, - 12,3,1,254,130,68,68,40,40,16,16,12,11,22,15,2, - 1,0,48,0,240,3,240,15,240,63,240,255,240,63,240,15, - 240,3,240,0,240,0,48,12,11,22,15,2,1,0,48,0, - 208,3,16,12,16,48,16,192,16,48,16,12,16,3,16,0, - 208,0,48,8,7,7,13,3,1,3,15,63,255,63,15,3, - 8,7,7,13,3,1,3,13,49,193,49,13,3,12,7,14, - 15,2,1,0,48,3,240,63,240,255,240,63,240,3,240,0, - 48,12,7,14,15,2,1,0,48,3,208,60,16,192,16,60, - 16,3,208,0,48,11,11,22,14,2,1,4,0,14,0,31, - 0,63,128,127,192,255,224,127,192,63,128,31,0,14,0,4, - 0,11,11,22,14,2,1,4,0,10,0,17,0,32,128,64, - 64,128,32,64,64,32,128,17,0,10,0,4,0,11,11,22, - 14,2,1,4,0,10,0,17,0,36,128,78,64,159,32,78, - 64,36,128,17,0,10,0,4,0,11,11,22,14,2,1,31, - 0,96,192,64,64,142,32,159,32,159,32,159,32,142,32,64, - 64,96,192,31,0,7,12,12,8,1,0,16,40,40,68,68, - 130,130,68,68,40,40,16,11,11,22,14,2,1,31,0,96, - 192,64,64,128,32,128,32,128,32,128,32,128,32,64,64,96, - 192,31,0,11,11,22,14,2,1,14,0,32,128,64,64,0, - 0,128,32,128,32,128,32,0,0,64,64,32,128,14,0,11, - 11,22,14,2,1,31,0,106,192,106,192,170,160,170,160,170, - 160,170,160,170,160,106,192,106,192,31,0,11,11,22,14,2, - 1,31,0,96,192,64,64,142,32,145,32,145,32,145,32,142, - 32,64,64,96,192,31,0,11,11,22,14,2,1,31,0,127, - 192,127,192,255,224,255,224,255,224,255,224,255,224,127,192,127, - 192,31,0}; -/* - Fontname: -MUTT-ClearlyU-Medium-R-Normal--17-120-100-100-P-123-ISO10646-1 - Copyright: 2001 Computing Research Lab, New Mexico State University. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 3 y=11 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=40 h=30 x=-9 y=-10 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cu12[3993] U8G_FONT_SECTION("u8g_font_cu12") = { - 0,40,30,247,246,11,2,90,5,94,32,255,252,16,252,12, - 252,0,0,0,5,0,0,2,12,12,5,1,0,192,192,192, - 192,192,192,192,0,0,0,192,192,4,5,5,7,2,7,144, - 144,144,144,144,10,15,30,12,1,253,4,128,4,128,9,0, - 9,0,9,0,255,192,18,0,18,0,18,0,255,192,36,0, - 36,0,36,0,72,0,72,0,5,14,14,8,1,255,32,112, - 168,168,168,160,96,48,40,168,168,168,112,32,11,13,26,14, - 1,255,96,64,152,128,151,128,145,0,146,0,98,0,4,0, - 8,192,9,32,17,32,33,32,33,32,64,192,10,12,24,13, - 1,0,24,0,36,0,36,0,36,0,40,0,51,192,49,0, - 81,0,138,0,138,0,196,64,123,128,1,5,5,4,2,7, - 128,128,128,128,128,4,15,15,6,2,253,16,32,64,64,128, - 128,128,128,128,128,128,64,64,32,16,4,15,15,6,1,253, - 128,64,32,32,16,16,16,16,16,16,16,32,32,64,128,7, - 7,7,7,0,5,16,146,84,56,84,146,16,9,9,18,11, - 2,255,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,5,5,5,1,253,192,192,64,64,128,4, - 1,1,7,2,3,240,2,2,2,5,1,0,192,192,5,16, - 16,8,2,252,8,8,16,16,16,16,32,32,32,32,64,64, - 64,64,128,128,5,11,11,7,1,0,112,80,136,136,136,136, - 136,136,136,80,112,5,11,11,7,1,0,32,224,32,32,32, - 32,32,32,32,32,248,5,11,11,7,1,0,112,136,136,136, - 8,16,16,32,72,72,248,5,11,11,7,1,0,112,136,136, - 8,8,48,8,8,136,136,112,7,11,11,9,1,0,24,24, - 40,40,72,200,254,8,8,8,62,5,11,11,7,1,0,136, - 240,128,128,240,200,8,8,136,144,96,5,11,11,7,1,0, - 48,72,64,128,240,136,136,136,136,80,112,6,12,12,8,1, - 0,128,252,132,136,16,16,16,32,32,32,32,32,5,11,11, - 7,1,0,112,136,136,136,80,112,136,136,136,136,112,5,11, - 11,7,1,0,112,80,136,136,136,136,120,8,16,144,96,2, - 7,7,7,3,0,192,192,0,0,0,192,192,2,10,10,5, - 1,253,192,192,0,0,0,192,192,64,64,128,5,9,9,6, - 1,1,8,16,32,64,128,64,32,16,8,10,5,10,13,2, - 2,255,192,0,0,0,0,0,0,255,192,5,9,9,6,1, - 1,128,64,32,16,8,16,32,64,128,5,12,12,8,1,0, - 112,136,136,16,32,32,96,0,0,0,96,96,10,12,24,12, - 1,0,30,0,33,0,76,128,147,64,161,64,161,64,161,64, - 161,64,147,64,77,128,32,192,31,0,11,11,22,11,0,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,10,11,22,10,0,0,255,0,32,128, - 32,64,32,64,32,128,63,0,32,128,32,64,32,64,32,128, - 255,0,9,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,10,11, - 22,10,0,0,254,0,33,128,32,128,32,64,32,64,32,64, - 32,64,32,64,32,128,33,128,254,0,10,11,22,10,1,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,9,11,22,9,1,0,255,128,32,128, - 32,128,34,128,34,0,62,0,34,0,34,0,32,0,32,0, - 248,0,10,11,22,10,1,0,30,128,33,128,64,128,128,128, - 128,0,128,0,131,192,128,128,64,128,32,128,31,128,11,11, - 22,11,1,0,251,224,32,128,32,128,32,128,32,128,63,128, - 32,128,32,128,32,128,32,128,251,224,5,11,11,5,1,0, - 248,32,32,32,32,32,32,32,32,32,248,6,11,11,6,1, - 0,124,16,16,16,16,16,16,16,16,144,224,11,11,22,11, - 1,0,249,224,32,128,33,0,34,0,36,0,46,0,50,0, - 33,0,33,0,32,128,249,224,8,11,11,8,0,0,248,32, - 32,32,32,32,33,33,33,35,255,14,11,22,14,1,0,240, - 60,48,48,48,48,40,80,40,80,40,144,36,144,36,144,35, - 16,35,16,251,124,11,11,22,11,1,0,227,224,48,128,48, - 128,40,128,40,128,36,128,34,128,34,128,33,128,33,128,248, - 128,10,11,22,10,1,0,30,0,33,0,64,128,128,64,128, - 64,128,64,128,64,128,64,64,128,33,0,30,0,9,11,22, - 9,1,0,255,0,33,128,32,128,32,128,33,128,63,0,32, - 0,32,0,32,0,32,0,248,0,10,14,28,10,1,253,30, - 0,33,0,64,128,128,64,128,64,128,64,128,64,128,64,92, - 128,51,0,30,0,2,0,2,64,1,128,11,11,22,11,1, - 0,254,0,33,0,32,128,32,128,33,0,62,0,35,0,33, - 0,33,0,33,0,248,224,6,11,11,7,1,0,124,132,132, - 128,64,48,8,4,132,132,248,9,11,22,9,1,0,255,128, - 136,128,136,128,136,128,8,0,8,0,8,0,8,0,8,0, - 8,0,62,0,11,11,22,11,1,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,11,22,11,1,0,241,224,32,128,32,128,17,0,17,0, - 17,0,10,0,10,0,10,0,4,0,4,0,16,11,22,16, - 1,0,241,207,33,132,33,132,34,68,18,72,18,72,18,72, - 20,40,12,48,12,48,8,16,11,11,22,11,1,0,243,192, - 17,0,18,0,10,0,12,0,4,0,10,0,26,0,17,0, - 32,128,241,224,11,11,22,11,1,0,241,224,32,128,17,0, - 17,0,10,0,14,0,4,0,4,0,4,0,4,0,31,0, - 7,11,11,7,1,0,254,196,132,136,8,16,34,34,66,70, - 254,3,16,16,5,1,252,224,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,224,5,16,16,8,2,252,128,128,64, - 64,64,64,32,32,32,32,16,16,16,16,8,8,3,16,16, - 5,0,252,224,32,32,32,32,32,32,32,32,32,32,32,32, - 32,32,224,5,3,3,6,1,9,32,112,136,11,1,2,12, - 1,254,255,224,3,4,4,6,3,8,128,192,64,32,6,7, - 7,7,1,0,112,136,8,120,136,136,124,6,12,12,7,1, - 0,192,64,64,64,64,120,68,68,68,68,68,120,5,7,7, - 6,1,0,112,136,128,128,128,136,112,6,12,12,7,1,0, - 24,8,8,8,8,120,136,136,136,136,136,124,5,7,7,6, - 1,0,112,136,248,128,128,136,112,5,12,12,6,1,0,56, - 72,64,64,64,240,64,64,64,64,64,224,7,11,11,8,1, - 252,62,68,68,68,120,64,124,130,130,130,124,7,12,12,8, - 1,0,192,64,64,64,64,120,68,68,68,68,68,238,3,11, - 11,4,1,0,192,192,0,0,192,64,64,64,64,64,224,4, - 14,14,5,0,253,48,48,0,0,48,16,16,16,16,16,16, - 16,144,224,7,12,12,8,1,0,192,64,64,64,64,94,72, - 80,112,88,72,238,3,12,12,4,1,0,192,64,64,64,64, - 64,64,64,64,64,64,224,11,7,14,12,1,0,251,128,68, - 64,68,64,68,64,68,64,68,64,238,224,7,7,7,8,1, - 0,248,68,68,68,68,68,238,5,7,7,6,1,0,112,136, - 136,136,136,136,112,6,10,10,7,1,253,248,68,68,68,68, - 68,120,64,64,224,6,10,10,7,1,253,120,136,136,136,136, - 136,120,8,8,28,5,7,7,6,1,0,208,104,64,64,64, - 64,240,5,7,7,6,1,0,120,136,128,112,8,136,240,6, - 10,10,7,1,0,32,32,32,248,32,32,32,36,36,24,7, - 7,7,8,1,0,204,68,68,68,68,68,62,8,7,7,9, - 1,0,231,36,36,36,24,24,24,11,7,14,11,0,0,238, - 224,36,128,42,128,42,128,42,128,27,0,17,0,8,7,7, - 9,1,0,231,36,24,24,24,36,231,8,10,10,8,1,253, - 231,36,36,36,24,24,24,16,144,224,5,7,7,6,1,0, - 248,144,144,32,72,72,248,5,16,16,6,1,252,24,32,32, - 32,32,32,32,192,32,32,32,32,32,32,32,24,1,16,16, - 3,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,16,16,5,0,252,192,32,32,32,32,32,32, - 24,32,32,32,32,32,32,32,192,5,3,3,8,1,9,72, - 168,144,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,0,2,12,12,5,1,253,192, - 192,0,0,0,192,192,192,192,192,192,192,5,11,11,7,1, - 254,16,16,112,168,160,160,160,200,112,64,64,8,12,12,9, - 1,0,6,9,17,16,16,124,16,16,16,81,178,204,7,7, - 7,9,1,3,130,124,68,68,68,124,130,11,11,22,12,0, - 0,241,224,32,128,17,0,10,0,127,192,14,0,4,0,127, - 192,4,0,4,0,31,0,1,16,16,3,2,252,128,128,128, - 128,128,128,128,0,0,128,128,128,128,128,128,128,4,13,13, - 6,1,0,96,144,128,128,96,144,144,144,96,16,16,144,96, - 5,2,2,6,1,11,216,216,9,10,20,10,1,3,62,0, - 65,0,158,128,162,128,162,128,160,128,162,128,156,128,65,0, - 62,0,4,6,6,5,1,7,96,16,112,144,112,240,7,7, - 7,9,1,0,18,36,108,216,108,36,18,6,4,4,8,1, - 2,252,4,4,4,3,1,1,5,0,3,224,9,10,20,10, - 1,3,62,0,65,0,188,128,146,128,146,128,156,128,146,128, - 186,128,65,0,62,0,5,1,1,7,1,11,248,4,4,4, - 6,2,8,96,144,144,96,7,9,9,9,2,1,16,16,16, - 254,16,16,16,0,254,4,7,7,5,1,6,96,144,16,16, - 32,64,240,4,7,7,5,1,6,96,144,16,32,16,144,96, - 3,4,4,6,3,11,32,96,64,128,7,10,10,8,1,253, - 136,136,136,136,136,218,164,128,128,128,7,15,15,8,1,252, - 62,116,244,244,244,116,52,20,20,20,20,20,20,20,20,2, - 2,2,4,2,5,192,192,3,3,3,7,2,253,64,32,224, - 3,7,7,4,1,6,64,192,64,64,64,64,224,4,6,6, - 5,1,7,96,144,144,144,96,240,7,7,7,8,1,0,144, - 72,108,54,108,72,144,11,11,22,12,1,0,64,0,196,0, - 68,0,68,0,68,64,232,192,9,64,10,64,11,224,16,64, - 16,224,11,11,22,12,1,0,64,0,196,0,68,0,68,0, - 68,0,232,192,9,32,8,32,8,64,16,128,17,224,12,11, - 22,13,1,0,96,0,146,0,18,0,34,0,18,32,148,96, - 100,160,5,32,5,240,8,32,8,112,5,12,12,8,1,253, - 48,48,0,0,0,48,32,32,64,128,136,112,11,16,32,11, - 0,0,8,0,12,0,4,0,2,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,16,32,11,0,0,2,0,6,0,4,0,8,0, - 0,0,4,0,4,0,10,0,10,0,10,0,17,0,17,0, - 31,0,32,128,32,128,241,224,11,15,30,11,0,0,4,0, - 14,0,17,0,0,0,4,0,4,0,10,0,10,0,10,0, - 17,0,17,0,31,0,32,128,32,128,241,224,11,15,30,11, - 0,0,9,0,21,0,18,0,0,0,4,0,4,0,10,0, - 10,0,10,0,17,0,17,0,31,0,32,128,32,128,241,224, - 11,14,28,11,0,0,27,0,27,0,0,0,4,0,4,0, - 10,0,10,0,10,0,17,0,17,0,31,0,32,128,32,128, - 241,224,11,15,30,11,0,0,6,0,9,0,9,0,6,0, - 4,0,4,0,10,0,10,0,10,0,17,0,17,0,31,0, - 32,128,32,128,241,224,14,11,22,15,0,0,15,248,10,24, - 10,8,10,40,18,32,31,224,18,36,18,36,34,8,34,8, - 247,248,9,14,28,10,1,253,30,128,33,128,64,128,128,128, - 128,0,128,0,128,0,128,128,64,128,33,0,30,0,8,0, - 4,0,28,0,10,16,32,11,0,0,16,0,24,0,8,0, - 4,0,0,0,255,128,32,128,32,128,34,128,34,0,62,0, - 34,64,34,64,32,128,32,128,255,128,10,16,32,11,0,0, - 4,0,12,0,8,0,16,0,0,0,255,128,32,128,32,128, - 34,128,34,0,62,0,34,64,34,64,32,128,32,128,255,128, - 10,15,30,11,0,0,8,0,28,0,34,0,0,0,255,128, - 32,128,32,128,34,128,34,0,62,0,34,64,34,64,32,128, - 32,128,255,128,10,14,28,11,0,0,54,0,54,0,0,0, - 255,128,32,128,32,128,34,128,34,0,62,0,34,64,34,64, - 32,128,32,128,255,128,5,16,16,6,1,0,64,96,32,16, - 0,248,32,32,32,32,32,32,32,32,32,248,5,16,16,6, - 1,0,16,48,32,64,0,248,32,32,32,32,32,32,32,32, - 32,248,5,15,15,6,1,0,32,112,136,0,248,32,32,32, - 32,32,32,32,32,32,248,5,14,14,6,1,0,216,216,0, - 248,32,32,32,32,32,32,32,32,32,248,10,11,22,11,0, - 0,254,0,33,128,32,128,32,64,32,64,248,64,32,64,32, - 64,32,128,33,128,254,0,11,15,30,12,0,0,9,0,21, - 0,18,0,0,0,227,224,48,128,48,128,40,128,40,128,36, - 128,34,128,34,128,33,128,33,128,248,128,10,16,32,12,1, - 0,16,0,24,0,8,0,4,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,10,16,32,12,1,0,2,0,6,0,4,0,8,0,0, - 0,30,0,33,0,64,128,128,64,128,64,128,64,128,64,128, - 64,64,128,33,0,30,0,10,15,30,12,1,0,8,0,28, - 0,34,0,0,0,30,0,33,0,64,128,128,64,128,64,128, - 64,128,64,128,64,64,128,33,0,30,0,10,15,30,12,1, - 0,18,0,42,0,36,0,0,0,30,0,33,0,64,128,128, - 64,128,64,128,64,128,64,128,64,64,128,33,0,30,0,10, - 14,28,12,1,0,54,0,54,0,0,0,30,0,33,0,64, - 128,128,64,128,64,128,64,128,64,128,64,64,128,33,0,30, - 0,7,7,7,9,1,0,130,68,40,16,40,68,130,10,13, - 26,12,1,255,0,128,31,0,33,0,66,128,130,64,132,64, - 140,64,136,64,144,64,80,128,33,0,62,0,64,0,11,16, - 32,12,1,0,8,0,12,0,4,0,2,0,0,0,251,224, - 32,128,32,128,32,128,32,128,32,128,32,128,32,128,32,128, - 17,0,14,0,11,16,32,12,1,0,2,0,6,0,4,0, - 8,0,0,0,251,224,32,128,32,128,32,128,32,128,32,128, - 32,128,32,128,32,128,17,0,14,0,11,15,30,12,1,0, - 4,0,14,0,17,0,0,0,251,224,32,128,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,17,0,14,0,11,14, - 28,12,1,0,27,0,27,0,0,0,251,224,32,128,32,128, - 32,128,32,128,32,128,32,128,32,128,32,128,17,0,14,0, - 11,16,32,12,0,0,2,0,6,0,4,0,8,0,0,0, - 241,224,32,128,17,0,17,0,10,0,14,0,4,0,4,0, - 4,0,4,0,31,0,9,11,22,10,0,0,248,0,32,0, - 62,0,33,0,32,128,32,128,32,128,33,0,62,0,32,0, - 248,0,6,12,12,7,1,0,48,72,72,72,72,216,72,68, - 68,68,68,216,6,12,12,7,1,0,64,96,32,16,0,112, - 136,8,120,136,136,124,6,12,12,7,1,0,16,48,32,64, - 0,112,136,8,120,136,136,124,6,11,11,7,1,0,32,112, - 136,0,112,136,8,120,136,136,124,6,11,11,7,1,0,72, - 168,144,0,112,136,8,120,136,136,124,6,10,10,7,1,0, - 216,216,0,112,136,8,120,136,136,124,6,11,11,7,1,0, - 48,72,72,48,112,136,8,120,136,136,124,10,7,14,11,1, - 0,115,128,140,64,15,192,120,0,136,0,140,64,115,128,5, - 10,10,6,1,253,112,136,128,128,128,136,112,32,16,112,5, - 12,12,6,1,0,64,96,32,16,0,112,136,248,128,128,136, - 112,5,12,12,6,1,0,16,48,32,64,0,112,136,248,128, - 128,136,112,5,11,11,6,1,0,32,112,136,0,112,136,248, - 128,128,136,112,5,10,10,6,1,0,216,216,0,112,136,248, - 128,128,136,112,4,12,12,4,0,0,128,192,64,32,0,96, - 32,32,32,32,32,112,4,12,12,4,1,0,16,48,32,64, - 0,192,64,64,64,64,64,224,5,11,11,5,0,0,32,112, - 136,0,96,32,32,32,32,32,112,5,10,10,6,0,0,216, - 216,0,96,32,32,32,32,32,112,5,12,12,6,1,0,80, - 112,224,16,16,120,136,136,136,136,136,112,7,11,11,8,1, - 0,72,168,144,0,248,68,68,68,68,68,238,5,12,12,6, - 1,0,64,96,32,16,0,112,136,136,136,136,136,112,5,12, - 12,6,1,0,16,48,32,64,0,112,136,136,136,136,136,112, - 5,11,11,6,1,0,32,112,136,0,112,136,136,136,136,136, - 112,5,11,11,6,1,0,72,168,144,0,112,136,136,136,136, - 136,112,5,10,10,6,1,0,216,216,0,112,136,136,136,136, - 136,112,9,7,14,11,1,0,8,0,8,0,0,0,255,128, - 0,0,8,0,8,0,5,11,11,6,1,254,8,16,112,152, - 168,168,168,200,112,64,128,7,12,12,8,1,0,64,96,32, - 16,0,204,68,68,68,68,68,62,7,12,12,8,1,0,8, - 24,16,32,0,204,68,68,68,68,68,62,7,11,11,8,1, - 0,16,56,68,0,204,68,68,68,68,68,62,7,10,10,8, - 1,0,108,108,0,204,68,68,68,68,68,62,8,15,15,8, - 1,253,4,12,8,16,0,231,36,36,36,24,24,24,16,144, - 224,6,15,15,7,1,253,192,64,64,64,64,120,68,68,68, - 68,68,120,64,64,224,8,13,13,8,1,253,54,54,0,231, - 36,36,36,24,24,24,16,144,224}; -/* - Fontname: cursor - Copyright: These glyphs are unencumbered - Capital A Height: 15, '1' Height: 16 - Calculated Max Values w=16 h=16 x= 1 y= 0 dx=17 dy= 0 ascent=15 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-15 y=-16 dx= 0 dy= 0 - Pure Font ascent =15 descent=-8 - X Font ascent =16 descent=-16 - Max Font ascent =15 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursor[5286] U8G_FONT_SECTION("u8g_font_cursor") = { - 0,31,31,241,240,15,4,101,8,211,32,255,248,15,240,16, - 240,14,14,28,17,250,248,224,28,240,60,248,124,124,248,63, - 240,31,224,15,192,15,192,31,224,63,240,124,248,248,124,240, - 60,224,28,16,16,32,17,249,247,240,15,248,31,252,63,254, - 127,127,254,63,252,31,248,15,240,15,240,31,248,63,252,127, - 254,254,127,252,63,248,31,240,15,14,14,28,17,243,242,0, - 12,0,60,0,248,3,248,15,240,63,240,3,224,7,224,14, - 192,28,192,56,128,112,128,224,0,64,0,16,16,32,17,242, - 241,0,7,0,31,0,127,1,254,7,254,31,252,63,252,63, - 248,7,248,15,240,31,240,62,224,124,224,248,64,112,0,32, - 0,8,10,10,17,253,255,255,0,255,24,24,24,24,90,60, - 24,10,12,24,17,252,254,255,192,255,192,255,192,255,192,255, - 192,30,0,30,0,127,128,127,128,127,128,63,0,30,0,8, - 10,10,17,253,255,24,60,90,24,24,24,24,255,0,255,10, - 12,24,17,252,254,12,0,30,0,127,128,127,128,127,128,30, - 0,30,0,255,192,255,192,255,192,255,192,255,192,16,8,16, - 17,242,251,1,0,7,192,136,96,255,255,0,24,0,32,0, - 64,255,192,16,9,18,17,242,251,7,0,15,192,159,224,255, - 255,255,255,255,255,255,248,255,224,255,192,13,14,28,17,250, - 248,226,56,34,32,34,32,34,32,255,248,162,40,162,40,162, - 40,162,40,255,248,34,32,34,32,34,32,226,56,15,16,32, - 17,249,247,251,190,251,190,251,190,59,184,255,254,255,254,255, - 254,251,190,251,190,255,254,255,254,255,254,59,184,251,190,251, - 190,251,190,14,14,28,17,0,255,192,0,192,0,196,16,196, - 32,196,64,196,128,197,0,198,0,199,240,192,0,192,0,192, - 0,255,252,255,252,16,16,32,17,255,254,240,0,240,0,247, - 12,247,28,247,56,247,112,247,224,247,192,247,252,247,252,247, - 252,240,0,255,255,255,255,255,255,255,255,14,14,28,17,243, - 255,0,12,0,12,32,140,16,140,8,140,4,140,2,140,1, - 140,63,140,0,12,0,12,0,12,255,252,255,252,16,16,32, - 17,242,254,0,15,0,15,48,239,56,239,28,239,14,239,7, - 239,3,239,63,239,63,239,63,239,0,15,255,255,255,255,255, - 255,255,255,13,14,28,17,250,255,2,0,2,0,2,0,2, - 0,2,0,2,0,34,32,18,64,10,128,7,0,2,0,0, - 0,255,248,255,248,15,16,32,17,249,254,3,128,3,128,3, - 128,3,128,3,128,3,128,51,152,59,184,31,240,15,224,7, - 192,3,128,255,254,255,254,255,254,255,254,14,10,20,17,249, - 255,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,16,12,24,17,248,254,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,255,255,255,255,255, - 255,255,255,15,16,32,17,248,248,255,254,128,0,191,254,160, - 2,175,250,168,10,171,234,170,42,170,170,171,170,168,42,175, - 234,160,10,191,250,128,2,255,254,16,16,32,17,248,248,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 14,28,17,252,242,12,0,12,0,30,0,30,0,63,0,63, - 0,127,128,127,128,204,192,140,64,12,0,12,0,12,0,12, - 0,12,16,32,17,251,241,15,0,15,0,31,128,31,128,63, - 192,63,192,127,224,127,224,255,240,255,240,255,240,239,112,15, - 0,15,0,15,0,15,0,14,14,28,17,249,249,7,128,31, - 224,63,240,120,120,112,56,224,28,224,28,224,28,224,28,112, - 56,120,120,63,240,31,224,7,128,16,16,32,17,248,248,7, - 224,31,248,63,252,127,254,127,254,252,63,248,31,248,31,248, - 31,248,31,252,63,127,254,127,254,63,252,31,248,7,224,14, - 16,32,17,250,243,63,240,103,152,200,204,147,36,158,36,136, - 68,199,140,127,248,83,40,83,40,83,40,87,168,211,44,240, - 60,255,252,255,252,15,16,32,17,250,243,127,248,239,156,219, - 238,183,182,191,246,159,102,207,206,255,252,215,172,215,172,215, - 172,223,236,215,174,243,62,255,254,255,254,15,16,32,17,249, - 249,31,240,32,8,96,6,80,26,79,226,192,2,192,2,64, - 2,64,2,89,26,106,170,235,170,218,154,64,2,64,2,63, - 252,16,16,32,17,249,249,31,240,63,248,127,255,127,255,255, - 255,255,255,255,255,255,255,127,255,127,255,255,255,255,255,255, - 255,255,255,127,255,63,252,16,15,30,17,249,248,2,128,2, - 128,2,128,2,128,2,128,2,128,254,255,0,0,254,255,2, - 128,2,128,2,128,2,128,2,128,2,128,16,16,32,17,249, - 247,7,192,7,192,7,192,7,192,7,192,255,255,255,255,255, - 255,255,255,255,255,7,192,7,192,7,192,7,192,7,192,7, - 192,16,15,30,17,249,248,66,132,162,138,82,148,42,168,22, - 208,10,160,253,127,2,128,253,127,10,160,22,208,42,168,82, - 148,162,138,66,132,16,15,30,17,249,248,102,204,182,219,222, - 246,110,236,54,216,250,191,252,127,1,0,252,127,250,191,54, - 216,110,236,222,246,182,219,102,204,16,15,30,17,249,248,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,254,255,1, - 0,1,0,1,0,1,0,1,0,1,0,1,0,16,16,32, - 17,249,247,3,128,3,128,3,128,3,128,3,128,3,128,255, - 255,255,255,255,255,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,15,15,30,17,249,248,2,128,6,192,10,160,18, - 144,34,136,66,132,254,254,0,0,254,254,66,132,34,136,18, - 144,10,160,6,192,2,128,16,16,32,17,249,247,7,192,15, - 224,31,240,59,184,115,156,227,142,255,255,254,255,255,255,227, - 142,115,156,59,184,31,240,15,224,7,192,3,128,10,10,20, - 17,251,251,30,0,127,128,127,128,255,192,255,192,255,192,255, - 192,127,128,127,128,30,0,12,12,24,17,250,250,31,128,127, - 224,127,224,255,240,255,240,255,240,255,240,255,240,255,240,127, - 224,127,224,31,128,12,12,24,17,250,249,255,240,128,16,128, - 16,128,16,128,16,134,16,134,16,128,16,128,16,128,16,128, - 16,255,240,14,14,28,17,249,248,255,252,255,252,255,252,224, - 28,224,28,231,156,231,156,231,156,231,156,224,28,224,28,255, - 252,255,252,255,252,10,14,28,17,251,249,12,0,30,0,63, - 0,109,128,204,192,12,0,12,0,12,0,12,0,204,192,109, - 128,63,0,30,0,12,0,12,16,32,17,250,248,15,0,31, - 128,63,192,127,224,255,240,255,240,255,240,15,0,15,0,255, - 240,255,240,255,240,127,224,63,192,31,128,15,0,15,15,30, - 17,242,241,0,2,0,12,0,60,0,248,3,248,15,240,63, - 240,1,224,2,224,4,192,8,192,16,128,32,128,64,0,128, - 0,15,16,32,17,242,240,0,6,0,30,0,126,1,252,7, - 248,31,248,127,240,127,240,7,224,15,224,29,192,57,192,113, - 128,225,128,192,0,128,0,15,15,30,17,242,241,0,2,0, - 12,0,60,0,248,3,248,0,112,0,176,1,32,2,32,4, - 0,8,0,16,0,32,0,64,0,128,0,15,15,30,17,242, - 241,0,6,0,30,0,124,1,252,7,248,7,248,1,240,3, - 240,7,96,14,64,28,0,56,0,112,0,224,0,192,0,12, - 12,24,17,250,249,255,240,137,16,153,144,176,208,224,112,134, - 16,134,16,224,112,176,208,153,144,137,16,255,240,14,14,28, - 17,249,248,255,252,255,252,207,204,223,236,252,252,251,124,247, - 188,247,188,251,124,252,252,223,236,207,204,255,252,255,252,14, - 14,28,17,250,248,143,192,223,224,248,48,144,16,152,0,252, - 0,0,0,0,0,0,252,0,100,32,36,48,124,31,236,15, - 196,16,16,32,17,249,247,199,224,239,240,255,248,255,252,252, - 28,255,12,255,0,255,0,0,255,0,255,48,127,56,63,63, - 255,31,255,15,247,7,227,14,14,28,17,249,249,3,0,7, - 128,15,192,3,0,35,16,99,24,255,252,255,252,99,24,35, - 16,3,0,15,192,7,128,3,0,16,16,32,17,248,248,3, - 192,3,224,7,224,15,240,23,232,59,220,255,255,255,255,255, - 255,255,255,59,220,23,232,15,240,7,224,3,192,3,192,16, - 15,30,17,242,243,0,120,0,112,128,51,159,176,255,240,254, - 48,252,48,96,56,0,240,31,224,8,0,8,0,8,0,8, - 0,30,0,16,16,32,17,242,243,0,252,0,252,192,255,255, - 255,255,255,255,252,255,252,255,252,255,252,255,252,127,248,31, - 240,28,0,28,0,63,0,63,0,16,16,32,17,254,240,63, - 0,16,128,200,64,234,160,200,32,203,160,248,60,56,63,8, - 39,8,39,9,47,9,39,9,32,17,16,33,8,62,248,16, - 16,32,17,254,240,63,0,223,128,239,192,255,224,239,224,239, - 252,255,254,255,255,63,239,15,239,15,255,15,239,15,231,31, - 240,63,248,62,248,13,16,32,17,244,240,0,24,0,120,1, - 224,3,192,7,128,15,192,31,224,95,192,255,224,191,224,15, - 192,15,128,148,0,196,0,104,0,48,0,13,16,32,17,244, - 240,0,56,0,248,3,240,7,224,15,192,31,224,127,240,255, - 240,255,240,255,240,255,224,255,192,255,128,254,0,252,0,120, - 0,15,14,28,17,0,242,127,128,128,64,126,32,16,16,14, - 16,16,16,14,40,16,68,12,130,3,4,2,72,1,16,0, - 160,0,64,16,16,32,17,0,241,127,128,255,192,255,224,255, - 240,127,248,31,248,63,248,31,252,63,254,31,255,15,254,7, - 252,3,248,1,240,0,224,0,64,15,14,28,17,250,250,62, - 248,99,140,193,6,128,2,128,2,128,2,128,2,192,6,96, - 12,48,24,24,48,12,96,6,192,3,128,15,14,28,17,250, - 250,62,248,127,252,227,142,193,6,192,6,192,6,194,134,225, - 14,112,28,56,56,28,112,15,224,7,192,3,128,16,16,32, - 17,248,248,255,255,213,85,170,171,213,85,160,11,208,5,160, - 11,208,5,160,11,208,5,160,11,208,5,170,171,213,85,170, - 171,255,255,16,16,32,17,248,248,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,14,14,28,17,249,248,127, - 248,63,240,159,228,207,204,231,156,243,60,255,252,255,252,243, - 60,231,156,207,204,159,228,63,240,127,248,16,16,32,17,248, - 247,63,252,127,254,127,254,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,127,254,127,254,63, - 252,8,14,14,17,0,242,128,192,224,240,248,252,254,255,248, - 216,140,12,6,6,10,16,32,17,255,241,192,0,224,0,240, - 0,248,0,252,0,254,0,255,0,255,128,255,192,255,192,254, - 0,239,0,207,0,7,128,7,128,3,0,14,13,26,17,0, - 249,192,0,192,0,193,0,194,0,196,0,200,0,223,252,200, - 0,196,0,194,0,193,0,192,0,192,0,16,15,30,17,255, - 248,240,0,240,0,240,192,241,192,243,128,247,0,255,255,255, - 255,255,255,247,0,243,128,241,192,240,192,240,0,240,0,10, - 14,28,17,0,249,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,12,16,32,17,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,240,0,240,0,240, - 0,240,0,240,0,240,0,16,16,32,17,248,248,128,3,127, - 253,127,253,68,69,69,85,69,85,69,85,69,85,68,69,127, - 253,127,253,127,253,127,253,127,253,127,253,128,3,15,16,32, - 17,248,248,127,252,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,127,252,10,10,20,17,0,255,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,12,12,24, - 17,255,254,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,255,240,255,240,255,240,255,240,10,10,20,17,247, - 255,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,255,192,255,192,12,12,24,17,246,254,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,255,240,255,240,255, - 240,255,240,16,16,32,17,242,245,3,128,30,240,2,128,129, - 0,67,135,36,75,29,112,5,64,4,64,2,128,4,64,9, - 32,18,144,20,80,120,60,248,63,16,16,32,17,242,245,31, - 224,63,240,63,248,195,130,231,199,127,255,63,251,31,240,7, - 224,7,192,15,224,31,240,63,248,126,252,252,127,252,127,16, - 16,32,17,248,248,128,3,127,253,127,253,68,69,84,85,84, - 85,84,85,84,85,68,69,127,253,127,253,127,253,127,253,127, - 253,127,253,128,3,15,16,32,17,248,248,127,252,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,127,252,15,14,28,17,252, - 243,7,0,12,0,6,0,3,0,127,248,128,4,179,54,179, - 54,179,54,128,6,128,6,96,28,24,96,7,128,16,16,32, - 17,252,241,15,128,30,0,15,0,7,0,127,248,255,252,255, - 255,255,255,255,255,255,255,255,255,255,255,63,247,31,224,15, - 192,7,128,11,16,32,17,246,255,112,0,136,0,140,0,74, - 0,122,0,33,0,17,0,16,128,8,128,12,64,4,64,2, - 32,1,224,0,224,0,96,0,32,13,16,32,17,245,255,252, - 0,254,0,255,0,127,0,63,128,63,128,31,192,15,192,15, - 224,7,224,7,240,3,248,1,248,0,248,0,120,0,56,15, - 16,32,17,249,252,7,128,15,192,31,224,51,48,51,48,31, - 224,15,192,7,128,135,132,135,134,67,8,56,112,7,128,31, - 226,240,62,128,4,16,16,32,17,249,252,15,192,31,224,63, - 240,127,248,127,248,63,240,31,224,143,193,143,199,207,207,247, - 156,120,120,7,128,127,227,255,255,240,62,10,10,20,17,252, - 251,12,0,12,0,12,0,12,0,255,192,255,192,12,0,12, - 0,12,0,12,0,12,12,24,17,251,250,15,0,15,0,15, - 0,15,0,255,240,255,240,255,240,255,240,15,0,15,0,15, - 0,15,0,9,15,30,17,252,248,62,0,127,0,227,128,193, - 128,225,128,99,128,7,0,30,0,28,0,20,0,20,0,119, - 0,54,0,28,0,8,0,11,16,32,17,251,248,31,0,63, - 128,127,192,255,224,241,224,249,224,123,224,63,192,31,128,31, - 0,31,0,63,128,127,192,63,128,31,0,14,0,8,14,14, - 17,249,242,1,3,7,15,31,63,127,255,31,27,49,48,96, - 96,10,16,32,17,248,241,0,192,1,192,3,192,7,192,15, - 192,31,192,63,192,127,192,255,192,255,192,31,192,61,192,60, - 192,120,0,120,0,48,0,14,13,26,17,243,249,0,12,0, - 12,2,12,1,12,0,140,0,76,255,236,0,76,0,140,1, - 12,2,12,0,12,0,12,16,15,30,17,242,248,0,15,0, - 15,3,15,3,143,1,207,0,239,255,255,255,255,255,255,0, - 239,1,207,3,143,3,15,0,15,0,15,10,14,28,17,247, - 249,0,192,0,192,0,192,0,192,0,192,0,192,255,192,255, - 192,0,192,0,192,0,192,0,192,0,192,0,192,12,16,32, - 17,246,248,0,240,0,240,0,240,0,240,0,240,0,240,255, - 240,255,240,255,240,255,240,0,240,0,240,0,240,0,240,0, - 240,0,240,16,16,32,17,248,248,128,3,127,253,127,253,68, - 69,85,69,85,69,85,69,85,69,68,69,127,253,127,253,127, - 253,127,253,127,253,127,253,128,3,15,16,32,17,248,248,127, - 252,255,254,255,254,255,254,255,254,255,254,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,255,254,127,252,14, - 14,28,17,250,248,255,252,128,68,128,68,128,68,255,196,136, - 68,136,68,136,68,136,68,143,252,136,4,136,4,136,4,255, - 252,16,16,32,17,249,247,255,255,255,255,255,255,224,119,255, - 247,255,247,255,247,238,119,238,119,239,255,239,255,239,255,238, - 7,255,255,255,255,255,255,12,13,26,17,250,242,1,0,1, - 0,5,128,5,128,13,128,13,192,29,192,29,192,61,224,61, - 224,125,224,125,240,248,224,16,16,32,17,248,240,0,192,0, - 224,1,224,3,240,3,240,7,240,7,248,15,248,15,248,31, - 252,31,252,63,252,63,255,127,255,255,248,127,224,7,15,15, - 17,253,0,40,40,40,40,40,40,40,40,40,40,40,254,124, - 56,16,9,16,32,17,252,255,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,255,128,255,128, - 127,0,62,0,28,0,8,0,15,7,14,17,249,252,16,16, - 48,24,127,252,240,30,127,252,48,24,16,16,15,9,18,17, - 249,251,24,48,56,56,127,252,255,254,255,254,255,254,127,252, - 56,56,24,48,15,7,14,17,1,252,16,0,48,0,127,254, - 240,0,127,254,48,0,16,0,16,9,18,17,0,251,12,0, - 28,0,63,255,127,255,255,255,127,255,63,255,28,0,12,0, - 15,7,14,17,241,252,0,16,0,24,255,252,0,30,255,252, - 0,24,0,16,16,9,18,17,241,251,0,48,0,56,255,252, - 255,254,255,255,255,254,255,252,0,56,0,48,7,15,15,17, - 253,240,16,56,124,254,40,40,40,40,40,40,40,40,40,40, - 40,9,16,32,17,252,240,8,0,28,0,62,0,127,0,255, - 128,255,128,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,7,15,15,17,253,248,16,56,124, - 254,40,40,40,40,40,40,40,254,124,56,16,9,15,30,17, - 252,248,28,0,62,0,127,0,255,128,255,128,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,127,0,62,0,28,0, - 15,16,32,17,246,240,0,32,0,112,0,248,1,222,5,222, - 9,222,17,222,17,222,17,222,17,222,49,222,113,222,253,222, - 24,136,0,120,0,48,16,16,32,17,245,240,0,56,0,124, - 0,254,0,255,6,255,14,255,30,255,30,255,30,255,30,255, - 62,255,126,255,254,255,126,254,12,126,0,60,14,14,28,17, - 249,249,255,0,128,0,128,0,128,0,143,192,136,64,136,68, - 136,68,8,68,15,196,0,36,0,20,0,12,3,252,16,16, - 32,17,248,248,255,192,255,192,255,192,224,0,239,240,239,240, - 239,247,238,119,238,119,239,247,15,247,15,255,0,31,3,255, - 3,255,3,255,16,16,32,17,250,247,32,16,16,32,16,32, - 8,64,8,64,135,135,103,152,31,224,31,224,103,152,135,135, - 8,64,8,64,16,32,16,32,32,16,16,16,32,17,250,247, - 96,24,48,48,16,32,24,96,143,193,207,207,111,220,63,240, - 63,224,111,248,207,207,143,193,24,64,24,96,48,48,96,24, - 11,16,32,17,247,242,0,96,1,0,52,96,121,0,104,96, - 252,0,132,0,228,0,164,0,228,0,164,0,228,0,228,0, - 132,0,132,0,252,0,12,16,32,17,246,242,0,48,24,176, - 62,176,62,176,126,176,255,0,255,0,255,0,255,0,255,0, - 255,0,255,0,255,0,255,0,255,0,255,0,15,16,32,17, - 249,247,1,0,2,128,2,128,2,128,4,64,4,64,4,64, - 57,56,192,6,56,56,9,32,18,144,36,72,40,40,48,24, - 32,8,16,16,32,17,249,247,1,0,3,128,3,128,6,192, - 6,192,12,96,28,120,249,62,192,7,248,62,57,56,51,152, - 102,204,108,108,120,60,112,28,15,13,26,17,249,249,3,128, - 15,224,28,112,48,24,96,12,193,6,194,134,193,6,96,12, - 48,24,28,112,15,224,3,128,16,14,28,17,249,249,7,192, - 15,224,31,240,60,120,112,28,225,14,195,135,198,199,195,135, - 225,14,112,28,60,120,31,240,7,192,13,13,26,16,250,249, - 2,0,2,0,2,0,2,0,2,0,2,0,255,248,2,0, - 2,0,2,0,2,0,2,0,2,0,15,15,30,16,249,248, - 3,128,3,128,3,128,3,128,3,128,3,128,255,254,255,254, - 255,254,3,128,3,128,3,128,3,128,3,128,3,128,14,14, - 28,17,0,242,192,0,240,0,124,0,127,0,63,192,63,240, - 31,0,31,0,12,128,12,64,4,32,4,16,0,8,0,4, - 16,16,32,17,255,241,224,0,248,0,254,0,127,128,127,224, - 63,252,63,252,31,252,31,192,15,224,15,112,7,56,7,28, - 7,14,0,7,0,3,14,14,28,17,0,242,255,252,255,252, - 192,0,192,0,192,0,199,240,198,0,197,0,196,128,196,64, - 196,32,196,16,192,0,192,0,16,16,32,17,255,241,255,255, - 255,255,255,255,255,255,240,0,247,252,247,252,247,252,247,192, - 247,224,247,112,247,56,247,28,247,12,240,0,240,0,14,14, - 28,17,243,242,255,252,255,252,0,12,0,12,0,12,63,140, - 1,140,2,140,4,140,8,140,16,140,32,140,0,12,0,12, - 16,16,32,17,242,241,255,255,255,255,255,255,255,255,0,15, - 63,239,63,239,63,239,3,239,7,239,14,239,28,239,56,239, - 48,239,0,15,0,15,13,14,28,17,250,242,255,248,255,248, - 0,0,2,0,7,0,10,128,18,64,34,32,2,0,2,0, - 2,0,2,0,2,0,2,0,15,16,32,17,249,241,255,254, - 255,254,255,254,255,254,3,128,7,192,15,224,31,240,59,184, - 51,152,3,128,3,128,3,128,3,128,3,128,3,128,14,10, - 20,17,249,246,255,252,255,252,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,16,12,24,17,248,245,255,255, - 255,255,255,255,255,255,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,7,16,16,17,253,240,16,0,56,124, - 254,238,254,124,56,16,186,214,146,130,130,130,9,16,32,17, - 252,240,28,0,28,0,62,0,127,0,255,128,255,128,255,128, - 127,0,62,0,93,0,255,128,255,128,255,128,235,128,235,128, - 227,128,10,10,20,17,0,246,255,192,255,192,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,12,12,24,17, - 255,245,255,240,255,240,255,240,255,240,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,14,14,28,17,249,244, - 17,32,4,80,147,76,79,144,50,96,194,24,2,0,2,0, - 2,0,2,0,2,0,2,128,2,128,1,0,16,16,32,17, - 248,242,23,110,223,251,191,252,127,255,255,252,255,255,243,158, - 3,128,3,128,3,128,3,128,3,224,3,224,3,224,3,224, - 1,192,10,10,20,17,247,246,255,192,255,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,12,12,24,17, - 246,245,255,240,255,240,255,240,255,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,16,16,32,17,241,249, - 31,224,31,224,31,224,63,240,97,24,193,12,129,7,131,135, - 131,135,132,7,200,12,96,24,63,240,31,224,31,224,31,224, - 16,16,32,17,241,249,63,240,63,240,63,240,127,248,255,252, - 255,255,255,255,255,255,255,255,255,255,255,255,255,252,127,248, - 63,240,63,240,63,240,7,14,14,10,253,249,238,56,16,16, - 16,16,16,16,16,16,16,16,56,238,9,16,32,10,252,248, - 247,128,255,128,255,128,62,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,255,128,247,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; -/* - Fontname: cursor - Copyright: These - Capital A Height: 0, '1' Height: 0 - Calculated Max Values w=16 h=16 x= 0 y= 0 dx=17 dy= 0 ascent= 7 len=32 - Font Bounding box w=31 h=31 x=-15 y=-16 - Calculated Min Values x=-14 y=-16 dx= 0 dy= 0 - Pure Font ascent = 0 descent= 0 - X Font ascent = 0 descent= 0 - Max Font ascent = 7 descent=-16 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_cursorr[492] U8G_FONT_SECTION("u8g_font_cursorr") = { - 0,31,31,241,240,0,1,6,0,0,32,80,0,7,240,0, - 0,255,255,14,14,28,17,243,242,0,12,0,60,0,248,3, - 248,15,240,63,240,3,224,7,224,14,192,28,192,56,128,112, - 128,224,0,64,0,16,16,32,17,242,241,0,7,0,31,0, - 127,1,254,7,254,31,252,63,252,63,248,7,248,15,240,31, - 240,62,224,124,224,248,64,112,0,32,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,10,14,28, - 17,252,242,12,0,12,0,30,0,30,0,63,0,63,0,127, - 128,127,128,204,192,140,64,12,0,12,0,12,0,12,0,12, - 16,32,17,251,241,15,0,15,0,31,128,31,128,63,192,63, - 192,127,224,127,224,255,240,255,240,255,240,239,112,15,0,15, - 0,15,0,15,0,255,255,255,255,255,255,16,15,30,17,249, - 248,2,128,2,128,2,128,2,128,2,128,2,128,254,255,0, - 0,254,255,2,128,2,128,2,128,2,128,2,128,2,128,16, - 16,32,17,249,247,7,192,7,192,7,192,7,192,7,192,255, - 255,255,255,255,255,255,255,255,255,7,192,7,192,7,192,7, - 192,7,192,7,192,255,255,16,15,30,17,249,248,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,254,255,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,17,249, - 247,3,128,3,128,3,128,3,128,3,128,3,128,255,255,255, - 255,255,255,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,255,255,255,255,255,255,255,255,15,15,30,17,242,241,0, - 2,0,12,0,60,0,248,3,248,15,240,63,240,1,224,2, - 224,4,192,8,192,16,128,32,128,64,0,128,0,15,16,32, - 17,242,240,0,6,0,30,0,126,1,252,7,248,31,248,127, - 240,127,240,7,224,15,224,29,192,57,192,113,128,225,128,192, - 0,128,0,15,15,30,17,242,241,0,2,0,12,0,60,0, - 248,3,248,0,112,0,176,1,32,2,32,4,0,8,0,16, - 0,32,0,64,0,128,0,15,15,30,17,242,241,0,6,0, - 30,0,124,1,252,7,248,7,248,1,240,3,240,7,96,14, - 64,28,0,56,0,112,0,224,0,192,0,255}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 6 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0[1702] U8G_FONT_SECTION("u8g_font_fixed_v0") = { - 1,7,9,0,254,7,1,46,2,94,32,255,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2, - 87,103,48,0,248,32,32,32,248,2,87,103,32,112,168,160, - 168,112,32,2,87,103,64,64,64,240,64,72,120,3,85,101, - 136,112,80,112,136,2,87,103,136,136,80,248,32,248,32,34, - 23,103,128,128,128,0,128,128,128,2,87,103,120,128,120,136, - 240,8,240,5,81,97,248,2,87,103,112,136,168,200,168,136, - 112,2,87,103,112,8,120,136,120,0,248,4,83,99,72,144, - 72,4,82,98,248,8,255,2,87,103,112,136,248,200,200,136, - 112,8,81,97,248,20,51,99,64,160,64,2,87,103,32,32, - 248,32,32,0,248,255,255,255,255,255,255,255,255,255,4,83, - 99,144,72,144,255,255,255,255,2,87,103,64,32,112,136,248, - 136,136,2,87,103,16,32,112,136,248,136,136,2,87,103,32, - 80,112,136,248,136,136,2,87,103,72,176,112,136,248,136,136, - 2,87,103,80,0,112,136,248,136,136,2,87,103,112,0,112, - 136,248,136,136,2,87,103,120,160,160,240,160,160,184,0,89, - 105,112,136,128,128,128,136,112,32,96,2,87,103,64,32,248, - 128,224,128,248,2,87,103,16,32,248,128,224,128,248,2,87, - 103,32,80,248,128,224,128,248,2,87,103,80,0,248,128,224, - 128,248,2,87,103,64,32,248,32,32,32,248,2,87,103,16, - 32,248,32,32,32,248,2,87,103,32,80,248,32,32,32,248, - 2,87,103,80,0,248,32,32,32,248,2,87,103,240,136,136, - 232,136,136,240,2,87,103,72,176,136,200,168,152,136,2,87, - 103,64,32,112,136,136,136,112,2,87,103,16,32,112,136,136, - 136,112,2,87,103,32,80,112,136,136,136,112,2,87,103,72, - 176,112,136,136,136,112,2,87,103,80,0,112,136,136,136,112, - 20,51,99,160,64,160,2,87,103,112,136,152,168,200,136,112, - 2,87,103,64,32,136,136,136,136,112,2,87,103,16,32,136, - 136,136,136,112,2,87,103,32,80,136,136,136,136,112,2,87, - 103,80,0,136,136,136,136,112,2,87,103,16,32,136,136,80, - 32,32,2,87,103,128,128,240,136,240,128,128,0,89,105,240, - 136,136,176,136,136,176,128,128,2,87,103,64,32,112,8,120, - 136,120,2,87,103,16,32,112,8,120,136,120,2,87,103,32, - 80,112,8,120,136,120,2,87,103,72,176,112,8,120,136,120, - 2,87,103,80,0,112,8,120,136,120,2,87,103,48,0,112, - 8,120,136,120,2,85,101,240,40,120,160,120,0,87,103,112, - 136,128,136,112,32,96,2,87,103,64,32,112,136,248,128,120, - 2,87,103,16,32,112,136,248,128,120,2,87,103,32,80,112, - 136,248,128,120,2,87,103,80,0,112,136,248,128,120,2,87, - 103,64,32,248,32,32,32,248,2,87,103,16,32,248,32,32, - 32,248,2,87,103,32,80,248,32,32,32,248,2,87,103,80, - 0,248,32,32,32,248,2,87,103,8,56,8,120,136,136,120, - 2,87,103,72,176,176,200,136,136,136,2,87,103,64,32,112, - 136,136,136,112,2,87,103,16,32,112,136,136,136,112,2,87, - 103,32,80,112,136,136,136,112,2,87,103,72,176,112,136,136, - 136,112,2,87,103,80,0,112,136,136,136,112,3,85,101,32, - 0,248,0,32,2,85,101,112,152,168,200,112,2,87,103,64, - 32,136,136,136,136,112,2,87,103,16,32,136,136,136,136,112, - 2,87,103,32,80,136,136,136,136,112,2,87,103,80,0,136, - 136,136,136,112,0,89,105,16,32,136,136,136,136,120,8,112, - 2,87,103,128,128,240,136,240,128,128,0,89,105,80,0,136, - 136,136,136,120,8,112}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 5 h= 7 x= 1 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0n[167] U8G_FONT_SECTION("u8g_font_fixed_v0n") = { - 1,7,9,0,254,7,0,0,0,0,42,58,0,7,0,7, - 0,2,87,103,32,168,112,32,112,168,32,3,85,101,32,32, - 248,32,32,18,34,98,64,128,5,81,97,248,18,18,98,128, - 128,2,87,103,8,16,16,32,64,64,128,2,87,103,112,136, - 136,136,136,136,112,2,87,103,32,96,32,32,32,32,248,2, - 87,103,112,136,8,16,32,64,248,2,87,103,240,8,8,48, - 8,8,240,2,87,103,16,144,144,248,16,16,16,2,87,103, - 248,128,128,240,8,8,240,2,87,103,112,128,128,240,136,136, - 112,2,87,103,248,8,8,8,8,8,8,2,87,103,112,136, - 136,112,136,136,112,2,87,103,112,136,136,248,8,8,112,18, - 21,101,128,128,0,128,128}; -/* - Fontname: -FreeType-fixed_v01-Medium-R-Normal--8-80-72-72-P-51-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 9 x= 2 y= 5 dx= 6 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 7 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fixed_v0r[878] U8G_FONT_SECTION("u8g_font_fixed_v0r") = { - 1,7,9,0,254,7,1,46,2,94,32,127,254,7,254,7, - 254,2,0,64,34,23,103,128,128,128,128,0,128,128,23,50, - 98,160,160,3,85,101,80,248,80,248,80,2,87,103,112,168, - 160,112,40,168,112,2,87,103,136,144,16,32,64,72,136,2, - 87,103,104,136,104,144,144,144,104,23,18,98,128,128,2,87, - 103,56,64,128,128,128,64,56,2,87,103,224,16,8,8,8, - 16,224,2,87,103,32,168,112,32,112,168,32,3,85,101,32, - 32,248,32,32,18,34,98,64,128,5,81,97,248,18,18,98, - 128,128,2,87,103,8,16,16,32,64,64,128,2,87,103,112, - 136,136,136,136,136,112,2,87,103,32,96,32,32,32,32,248, - 2,87,103,112,136,8,16,32,64,248,2,87,103,240,8,8, - 48,8,8,240,2,87,103,16,144,144,248,16,16,16,2,87, - 103,248,128,128,240,8,8,240,2,87,103,112,128,128,240,136, - 136,112,2,87,103,248,8,8,8,8,8,8,2,87,103,112, - 136,136,112,136,136,112,2,87,103,112,136,136,248,8,8,112, - 18,21,101,128,128,0,128,128,18,37,101,64,64,0,64,128, - 2,87,103,24,32,64,128,64,32,24,4,83,99,248,0,248, - 2,87,103,192,32,16,8,16,32,192,2,87,103,248,8,8, - 48,0,32,32,2,87,103,112,136,136,168,184,128,112,2,87, - 103,112,136,136,248,136,136,136,2,87,103,240,136,136,240,136, - 136,240,2,87,103,112,136,128,128,128,136,112,2,87,103,240, - 136,136,136,136,136,240,2,87,103,248,128,128,224,128,128,248, - 2,87,103,248,128,128,224,128,128,128,2,87,103,112,136,128, - 184,136,136,112,2,87,103,136,136,136,248,136,136,136,2,87, - 103,248,32,32,32,32,32,248,2,87,103,248,8,8,8,8, - 136,112,2,87,103,136,136,144,224,144,136,136,2,87,103,128, - 128,128,128,128,128,248,2,87,103,136,136,216,168,136,136,136, - 2,87,103,136,136,200,168,152,136,136,2,87,103,112,136,136, - 136,136,136,112,2,87,103,240,136,136,240,128,128,128,2,87, - 103,112,136,136,136,136,168,112,2,87,103,240,136,136,240,160, - 144,136,2,87,103,112,136,128,112,8,136,112,2,87,103,248, - 32,32,32,32,32,32,2,87,103,136,136,136,136,136,136,112, - 2,87,103,136,136,136,136,136,80,32,2,87,103,136,136,136, - 168,168,168,80,2,87,103,136,136,80,32,80,136,136,2,87, - 103,136,136,80,32,32,32,32,2,87,103,248,8,16,32,64, - 128,248,18,55,103,224,128,128,128,128,128,224,2,87,103,128, - 64,64,32,16,16,8,18,55,103,224,32,32,32,32,32,224, - 23,50,98,64,160,2,113,97,254,39,34,98,64,128,2,85, - 101,112,8,120,136,120,2,87,103,128,128,240,136,136,136,240, - 2,85,101,112,136,128,136,112,2,87,103,8,8,120,136,136, - 136,120,2,85,101,112,136,248,128,120,2,87,103,56,64,240, - 64,64,64,64,0,87,103,112,136,136,136,120,8,112,2,87, - 103,128,128,240,136,136,136,136,2,87,103,48,0,248,32,32, - 32,248,0,89,105,48,0,248,8,8,8,8,8,112,2,87, - 103,128,128,136,144,224,144,136,2,87,103,224,32,32,32,32, - 32,248,2,85,101,208,168,168,168,168,2,85,101,176,200,136, - 136,136,2,85,101,112,136,136,136,112,0,87,103,240,136,136, - 136,240,128,128,0,87,103,120,136,136,136,120,8,8,2,85, - 101,184,192,128,128,128,2,85,101,120,128,112,8,240,2,87, - 103,32,32,248,32,32,32,32,2,85,101,136,136,136,136,112, - 2,85,101,136,136,136,80,32,2,85,101,136,168,168,168,80, - 2,85,101,136,80,32,80,136,0,87,103,136,136,136,136,120, - 8,112,2,85,101,248,16,32,64,248,2,87,103,24,32,64, - 192,64,32,24,34,23,103,128,128,128,128,128,128,128,2,87, - 103,192,32,16,24,16,32,192,4,82,98,72,176,255}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO8859-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w= 7 h=10 x= 4 y=10 dx= 8 dy= 0 ascent=12 len=10 - Font Bounding box w= 7 h=12 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =10 descent= 1 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr10r[1042] U8G_FONT_SECTION("u8g_font_freedoomr10r") = { - 0,7,12,0,0,10,1,113,3,88,32,127,1,12,0,12, - 0,0,0,0,7,0,1,0,0,0,7,0,1,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,3,10,10,7,0,2,96,128,128,128,128,128,128,128,128, - 96,3,10,10,7,3,2,192,32,32,32,32,32,32,32,32, - 192,5,5,5,8,1,7,168,112,32,112,168,7,7,7,8, - 0,4,16,16,16,254,16,16,16,2,2,2,7,2,10,64, - 128,7,1,1,8,0,7,254,2,2,2,7,2,2,192,192, - 7,10,10,8,0,2,2,4,4,8,16,16,32,64,64,128, - 6,10,10,7,0,2,252,132,132,132,132,132,132,132,132,252, - 2,10,10,7,4,2,192,64,64,64,64,64,64,64,64,64, - 6,10,10,7,0,2,252,4,4,4,4,252,128,128,128,252, - 6,10,10,7,0,2,252,4,4,4,60,4,4,4,4,252, - 6,10,10,7,0,2,132,132,132,132,132,252,4,4,4,4, - 6,10,10,7,0,2,252,128,128,128,252,4,4,4,4,252, - 6,10,10,7,0,2,252,128,128,128,252,132,132,132,132,252, - 6,10,10,7,0,2,252,4,4,4,4,4,4,4,4,4, - 6,10,10,7,0,2,252,132,132,132,252,132,132,132,132,252, - 6,10,10,7,0,2,252,132,132,132,252,4,4,4,4,252, - 2,7,7,7,2,2,192,192,0,0,0,192,192,0,0,0, - 7,0,1,0,0,0,7,0,1,0,0,0,7,0,1,0, - 0,0,7,0,1,0,0,0,7,0,1,0,0,0,7,0, - 1,7,10,10,8,0,2,254,130,130,130,130,254,130,130,130, - 130,7,10,10,8,0,2,254,130,130,130,252,130,130,130,130, - 254,7,10,10,8,0,2,254,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,252,130,130,130,130,130,130,130,130, - 252,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 254,7,10,10,8,0,2,254,128,128,128,248,128,128,128,128, - 128,7,10,10,8,0,2,254,128,128,128,158,130,130,130,130, - 254,7,10,10,8,0,2,130,130,130,130,254,130,130,130,130, - 130,1,10,10,8,3,2,128,128,128,128,128,128,128,128,128, - 128,7,10,10,8,0,2,30,2,2,2,2,2,130,130,130, - 124,7,10,10,8,0,2,130,132,136,144,224,160,144,136,132, - 130,7,10,10,8,0,2,128,128,128,128,128,128,128,128,128, - 254,7,10,10,8,0,2,130,198,170,146,130,130,130,130,130, - 130,7,10,10,8,0,2,194,194,162,162,146,146,138,138,134, - 134,7,10,10,8,0,2,124,130,130,130,130,130,130,130,130, - 124,7,10,10,8,0,2,254,130,130,130,254,128,128,128,128, - 128,7,10,10,8,0,2,120,132,132,132,132,132,132,132,132, - 126,7,10,10,8,0,2,254,130,130,130,254,160,144,136,132, - 130,7,10,10,8,0,2,254,128,128,128,128,254,2,2,2, - 254,7,9,9,8,0,3,254,16,16,16,16,16,16,16,16, - 7,10,10,8,0,2,130,130,130,130,130,130,130,130,130,254, - 7,10,10,8,0,2,130,130,130,68,68,108,40,40,16,16, - 7,10,10,8,0,2,130,130,130,130,130,146,146,170,170,198, - 7,10,10,8,0,2,130,68,68,40,16,16,40,68,68,130, - 7,10,10,8,0,2,130,130,130,130,254,16,16,16,16,16, - 7,10,10,8,0,2,254,2,6,12,24,48,96,192,128,254, - 4,10,10,7,0,2,240,128,128,128,128,128,128,128,128,240, - 6,10,10,7,0,2,128,64,64,32,32,16,16,8,8,4, - 4,10,10,7,2,2,240,16,16,16,16,16,16,16,16,240, - 5,3,3,7,1,9,32,80,136,6,1,1,7,0,2,252, - 2,2,2,7,2,10,128,64,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1,0,0,0,7,0,1,0,0,0,7,0,1,0,0, - 0,7,0,1,0,0,0,7,0,1,0,0,0,7,0,1, - 0,0,0,7,0,1,0,0,0,7,0,1,0,0,0,7, - 0,1}; -/* - Fontname: -FreeType-FreeDooM-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 7 y=13 dx=19 dy= 0 ascent=26 len=72 - Font Bounding box w=18 h=26 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_freedoomr25n[943] U8G_FONT_SECTION("u8g_font_freedoomr25n") = { - 0,18,26,0,0,24,3,112,3,144,32,127,0,26,0,24, - 0,0,0,0,11,0,0,255,255,255,255,255,255,255,255,255, - 255,17,16,48,19,1,6,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,7,8,8,11,3,2,62,62,62, - 62,62,240,240,240,9,2,4,11,1,13,255,128,255,128,5, - 5,5,11,5,2,248,248,248,248,248,255,17,24,72,19,1, - 2,255,255,128,255,255,128,192,3,128,192,3,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,192,3,128,192,3,128, - 255,255,128,255,255,128,255,255,128,6,24,24,19,7,2,252, - 252,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,17,24,72,19,1,2,255,255,128, - 255,255,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,255,255, - 128,255,255,128,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,255,255,128,255, - 255,128,255,255,128,17,24,72,19,1,2,255,255,128,255,255, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,0,3,128,0,3,128,31,255,128,31, - 255,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,255,255,128,255,255,128, - 255,255,128,17,24,72,19,1,2,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,128,0,3,128,0,3,128,0,3,128,0,3,128,0,3, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,17, - 24,72,19,1,2,255,255,128,255,255,128,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,255,255,128,255,255,128,192,3,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,255,255,128,255,255,128,255,255,128,16,24,48, - 19,2,2,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,17,24,72,19,1,2,255,255,128,255,255,128,192, - 3,128,192,3,128,192,3,128,192,3,128,192,3,128,192,3, - 128,192,3,128,192,3,128,192,3,128,255,255,128,255,255,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,255,255, - 128,17,24,72,19,1,2,255,255,128,255,255,128,192,3,128, - 192,3,128,192,3,128,192,3,128,192,3,128,192,3,128,192, - 3,128,192,3,128,192,3,128,255,255,128,255,255,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,128,0,3,128, - 0,3,128,0,3,128,255,255,128,255,255,128,255,255,128,5, - 16,16,11,5,2,248,248,248,248,248,0,0,0,0,0,0, - 248,248,248,248,248,7,16,16,11,3,2,62,62,62,62,62, - 0,0,0,62,62,62,62,62,240,240,240,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=17 x= 4 y=10 dx=17 dy= 0 ascent=17 len=34 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11[3948] U8G_FONT_SECTION("u8g_font_fub11") = { - 0,24,21,255,252,11,2,82,5,55,32,255,253,17,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,5,0,0,2,11,11,6,2, - 253,192,0,0,192,192,192,192,192,192,192,192,7,12,12,9, - 1,254,4,4,60,110,206,208,208,214,110,60,32,64,8,11, - 11,10,1,0,62,119,96,96,252,96,96,96,96,96,255,9, - 8,16,10,1,2,128,128,93,0,34,0,65,0,65,0,34, - 0,93,0,128,128,9,11,22,11,1,0,195,128,99,0,103, - 0,247,128,62,0,60,0,255,128,24,0,24,0,24,0,24, - 0,1,14,14,5,2,253,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,6,14,14,8,1,253,120,236,192,224,120, - 124,204,204,248,120,28,12,156,248,5,1,1,5,0,10,216, - 12,11,22,14,1,0,31,128,57,192,111,96,217,176,152,16, - 152,16,153,144,143,16,64,32,48,192,31,128,5,8,8,7, - 1,3,112,216,120,216,216,120,0,248,8,6,6,10,1,1, - 103,102,238,206,102,103,9,4,8,10,0,3,255,128,0,128, - 0,128,0,128,255,12,11,22,14,1,0,31,128,57,192,111, - 96,201,176,136,144,143,16,137,144,136,144,72,160,48,192,31, - 128,5,1,1,5,0,10,248,4,4,4,6,1,7,96,208, - 144,240,9,10,20,16,3,0,8,0,8,0,8,0,255,128, - 8,0,8,0,8,0,0,0,0,0,255,128,5,6,6,7, - 1,5,112,216,24,48,192,248,5,7,7,7,1,4,112,216, - 24,112,24,216,112,3,3,3,4,1,9,96,192,128,255,7, - 14,14,9,1,253,126,244,244,244,244,116,20,20,20,20,20, - 20,20,20,2,2,2,4,1,4,192,192,4,4,4,3,0, - 252,64,48,176,224,3,6,6,5,1,5,96,224,96,96,96, - 96,6,8,8,8,1,3,120,252,204,204,204,120,0,252,8, - 6,6,10,1,1,204,102,103,103,102,204,12,11,22,13,1, - 0,224,128,97,128,99,0,99,0,102,0,108,224,12,224,25, - 224,25,96,51,240,96,96,11,11,22,13,1,0,97,0,227, - 0,98,0,102,0,100,0,109,224,27,96,24,96,49,192,35, - 0,99,224,12,11,22,13,1,0,120,192,216,128,113,128,217, - 0,115,0,6,96,4,224,13,224,25,96,25,240,48,96,7, - 11,11,9,1,253,24,0,24,24,56,112,224,192,194,254,60, - 11,16,32,11,0,0,24,0,12,0,4,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,16,32,11,0,0,3,0,2,0, - 4,0,0,0,0,0,14,0,14,0,15,0,27,0,27,128, - 57,128,49,128,63,192,127,192,96,224,224,96,11,16,32,11, - 0,0,6,0,14,0,25,0,0,0,0,0,14,0,14,0, - 15,0,27,0,27,128,57,128,49,128,63,192,127,192,96,224, - 224,96,11,15,30,11,0,0,13,0,23,0,0,0,0,0, - 14,0,14,0,15,0,27,0,27,128,57,128,49,128,63,192, - 127,192,96,224,224,96,11,15,30,11,0,0,27,0,0,0, - 0,0,0,0,14,0,14,0,15,0,27,0,27,0,59,128, - 49,128,63,192,127,192,96,224,224,96,10,17,34,12,1,0, - 12,0,18,0,18,0,30,0,0,0,0,0,12,0,30,0, - 30,0,63,0,51,0,51,0,99,128,127,128,255,192,192,192, - 192,192,15,11,22,16,0,0,3,254,7,128,7,128,13,128, - 29,128,25,254,57,128,63,128,97,128,97,128,193,254,10,15, - 30,12,1,252,31,0,119,128,97,192,192,0,192,0,192,0, - 192,0,193,192,97,192,115,128,62,0,8,0,14,0,2,0, - 28,0,8,16,16,10,1,0,96,48,24,0,0,255,192,192, - 192,192,255,192,192,192,192,255,8,16,16,10,1,0,12,8, - 16,0,0,255,192,192,192,192,255,192,192,192,192,255,8,16, - 16,10,1,0,24,60,36,0,0,255,192,192,192,192,255,192, - 192,192,192,255,8,15,15,10,1,0,102,0,0,0,255,192, - 192,192,192,255,192,192,192,192,255,4,16,16,4,255,0,192, - 96,48,0,0,48,48,48,48,48,48,48,48,48,48,48,4, - 16,16,4,1,0,112,96,192,0,0,192,192,192,192,192,192, - 192,192,192,192,192,4,16,16,4,0,0,96,240,144,0,0, - 96,96,96,96,96,96,96,96,96,96,96,5,15,15,5,0, - 0,216,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 11,11,22,12,0,0,127,0,99,128,96,192,96,224,96,96, - 252,96,96,96,96,224,96,192,99,128,127,0,10,15,30,12, - 1,0,25,0,22,0,0,0,0,0,240,192,240,192,248,192, - 216,192,220,192,204,192,206,192,198,192,199,192,195,192,195,192, - 11,16,32,13,1,0,24,0,8,0,12,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,123,192,31,0,11,16,32,13,1,0,3,0,2,0, - 4,0,0,0,0,0,31,0,123,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,0,11,16,32,13, - 1,0,14,0,27,0,17,0,0,0,0,0,31,0,123,192, - 96,192,192,96,192,96,192,96,192,96,192,96,96,192,123,192, - 31,0,11,15,30,13,1,0,31,0,0,0,0,0,0,0, - 31,0,123,192,96,192,192,96,192,96,192,96,192,96,224,224, - 96,192,127,192,31,0,11,15,30,13,1,0,27,0,0,0, - 0,0,0,0,31,0,123,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,123,192,31,0,8,8,8,16,4,0, - 129,195,102,24,24,36,66,129,11,11,22,13,1,0,31,160, - 59,192,96,192,193,96,194,96,196,96,200,96,208,96,224,192, - 123,128,191,0,10,16,32,12,1,0,48,0,24,0,8,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,62,0,10,16,32,12,1,0, - 3,0,6,0,4,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,62,0, - 10,16,32,12,1,0,28,0,30,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,62,0,10,15,30,12,1,0,51,0,0,0, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,115,128,62,0,10,16,32,10,0,0, - 6,0,6,0,4,0,0,0,0,0,225,192,113,128,51,128, - 59,0,31,0,30,0,12,0,12,0,12,0,12,0,12,0, - 8,11,11,10,1,0,192,192,254,199,195,195,199,254,192,192, - 192,8,11,11,10,1,0,124,238,198,206,220,216,206,199,195, - 219,222,7,12,12,9,1,0,96,48,16,0,60,110,6,126, - 230,198,238,118,7,12,12,9,1,0,12,24,16,0,60,110, - 6,126,230,198,238,118,7,12,12,9,1,0,56,44,68,0, - 60,110,6,126,230,198,238,118,7,11,11,9,1,0,60,0, - 0,60,110,6,126,230,198,238,118,7,11,11,9,1,0,108, - 0,0,60,230,6,126,230,198,238,118,7,13,13,9,1,0, - 24,36,36,60,0,60,102,6,126,230,198,238,126,13,8,16, - 15,1,0,60,224,103,176,7,24,127,248,231,0,199,24,237, - 184,120,240,7,12,12,9,1,252,60,110,198,192,192,198,110, - 60,16,28,4,56,7,13,13,9,1,0,96,32,48,16,0, - 60,110,198,254,192,198,110,60,7,13,13,9,1,0,12,12, - 24,16,0,60,110,198,254,192,198,110,60,7,13,13,9,1, - 0,24,56,44,68,0,60,110,198,254,192,198,110,60,7,12, - 12,9,1,0,108,0,0,0,60,110,198,254,192,206,110,60, - 3,12,12,4,0,0,192,96,32,0,96,96,96,96,96,96, - 96,96,3,12,12,4,1,0,96,192,128,0,192,192,192,192, - 192,192,192,192,5,12,12,4,0,0,96,208,136,0,96,96, - 96,96,96,96,96,96,5,11,11,5,0,0,216,0,0,48, - 48,48,48,48,48,48,48,8,11,11,10,1,0,51,28,102, - 62,103,195,195,195,195,103,60,7,11,11,9,1,0,60,0, - 0,220,238,198,198,198,198,198,198,8,13,13,10,1,0,96, - 48,16,8,0,60,102,195,195,195,195,102,60,8,13,13,10, - 1,0,6,12,8,16,0,60,102,195,195,195,195,102,60,8, - 13,13,10,1,0,24,28,36,34,0,60,102,195,195,195,195, - 102,60,8,11,11,10,1,0,60,0,0,60,102,195,195,195, - 195,102,60,8,12,12,10,1,0,102,0,0,0,60,102,195, - 195,195,195,102,60,10,6,12,16,3,2,12,0,0,0,255, - 192,0,0,0,0,12,0,8,10,10,10,1,255,1,62,102, - 207,203,211,227,118,252,128,7,12,12,9,1,0,96,48,16, - 0,198,198,198,198,198,198,238,118,7,12,12,9,1,0,12, - 24,16,0,198,198,198,198,198,198,238,118,7,12,12,9,1, - 0,56,40,68,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,108,0,0,198,198,198,198,198,198,238,118,9,16, - 32,9,0,253,7,0,6,0,12,0,8,0,0,0,99,128, - 99,0,115,0,54,0,54,0,30,0,28,0,28,0,28,0, - 248,0,112,0,8,14,14,10,1,253,192,192,192,220,230,195, - 195,195,199,230,220,192,192,192,8,14,14,9,1,253,108,0, - 0,199,198,238,108,108,60,56,56,56,48,48}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=16 dy= 0 ascent=11 len=18 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11n[280] U8G_FONT_SECTION("u8g_font_fub11n") = { - 0,24,21,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,120,48,252,48,120,9,9,18,16, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,3,4,4,5,1,254,96,96,192,192,4,2, - 2,6,1,3,240,240,2,2,2,5,2,0,192,192,5,12, - 12,7,1,255,24,24,16,48,48,32,32,96,96,64,192,192, - 8,11,11,9,1,0,60,102,195,195,195,195,195,195,195,102, - 60,4,11,11,9,2,0,48,240,240,48,48,48,48,48,48, - 48,48,8,11,11,9,1,0,62,119,99,3,7,6,30,60, - 112,224,255,8,11,11,9,1,0,124,238,198,6,60,6,3, - 195,199,126,60,8,11,11,9,1,0,14,30,30,54,102,102, - 198,255,255,6,6,8,11,11,9,1,0,254,192,192,192,254, - 231,3,3,199,254,124,8,11,11,9,1,0,60,118,67,192, - 222,231,195,195,195,102,60,8,11,11,9,1,0,255,3,7, - 6,14,12,28,24,56,56,112,8,11,11,9,1,0,126,231, - 195,231,60,102,195,195,195,231,60,8,11,11,9,1,0,60, - 102,195,195,231,127,3,3,198,110,60,2,8,8,5,2,0, - 192,192,0,0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--16-160-72-72-P-81-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=12 len=28 - Font Bounding box w=24 h=21 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub11r[1829] U8G_FONT_SECTION("u8g_font_fub11r") = { - 0,24,21,255,252,11,2,82,5,55,32,127,253,12,252,11, - 253,0,0,0,5,0,0,2,11,11,6,2,0,192,192,192, - 192,192,192,192,192,0,0,192,6,5,5,8,1,6,204,204, - 204,204,204,10,11,22,11,1,0,9,128,25,128,25,0,127, - 192,51,0,50,0,54,0,255,0,100,0,108,0,76,0,8, - 14,14,10,1,254,8,62,126,203,200,248,126,15,11,203,235, - 126,8,8,15,11,22,17,1,0,60,32,238,96,198,64,198, - 192,231,128,125,124,3,238,2,198,6,198,4,238,8,124,11, - 11,22,13,1,0,62,0,119,0,99,0,119,0,60,0,124, - 192,238,192,199,192,195,192,243,192,63,224,2,5,5,7,2, - 6,192,192,192,192,192,3,14,14,6,1,253,96,96,96,224, - 192,192,192,192,192,192,224,96,96,96,3,14,14,7,2,253, - 192,192,192,96,96,96,96,96,96,96,96,224,192,192,6,5, - 5,10,2,5,120,48,252,48,120,9,9,18,16,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,3,4,4,5,1,254,96,96,192,192,4,2,2,6,1, - 3,240,240,2,2,2,5,2,0,192,192,5,12,12,7,1, - 255,24,24,16,48,48,32,32,96,96,64,192,192,8,11,11, - 9,1,0,60,102,195,195,195,195,195,195,195,102,60,4,11, - 11,9,2,0,48,240,240,48,48,48,48,48,48,48,48,8, - 11,11,9,1,0,62,119,99,3,7,6,30,60,112,224,255, - 8,11,11,9,1,0,124,238,198,6,60,6,3,195,199,126, - 60,8,11,11,9,1,0,14,30,30,54,102,102,198,255,255, - 6,6,8,11,11,9,1,0,254,192,192,192,254,231,3,3, - 199,254,124,8,11,11,9,1,0,60,118,67,192,222,231,195, - 195,195,102,60,8,11,11,9,1,0,255,3,7,6,14,12, - 28,24,56,56,112,8,11,11,9,1,0,126,231,195,231,60, - 102,195,195,195,231,60,8,11,11,9,1,0,60,102,195,195, - 231,127,3,3,198,110,60,2,8,8,5,2,0,192,192,0, - 0,0,0,192,192,3,10,10,5,1,254,96,96,0,0,0, - 0,96,96,192,192,10,8,16,16,3,1,0,64,3,128,12, - 0,112,0,128,0,112,0,14,0,1,192,10,4,8,16,3, - 3,255,192,0,0,0,0,255,192,10,8,16,16,3,1,128, - 0,96,0,28,0,3,128,0,192,7,0,24,0,224,0,7, - 11,11,9,1,0,120,238,134,6,12,24,48,48,48,0,48, - 15,14,28,17,1,253,7,224,30,120,48,28,103,236,238,230, - 204,102,204,102,204,102,204,102,239,252,103,184,48,0,28,32, - 7,224,11,11,22,11,0,0,14,0,14,0,15,0,27,0, - 27,128,57,128,49,128,63,192,127,192,96,224,224,96,9,11, - 22,11,1,0,254,0,199,0,195,0,195,0,199,0,252,0, - 195,0,193,128,193,128,195,128,254,0,10,11,22,12,1,0, - 31,0,115,128,97,192,192,0,192,0,192,0,192,0,193,192, - 97,192,115,128,31,0,9,11,22,11,1,0,252,0,207,0, - 195,0,193,128,193,128,193,128,193,128,193,128,195,0,207,0, - 252,0,8,11,11,10,1,0,255,192,192,192,192,255,192,192, - 192,192,255,8,11,11,9,1,0,255,192,192,192,192,254,192, - 192,192,192,192,10,11,22,12,1,0,31,0,59,192,96,192, - 224,0,192,0,195,192,192,192,192,192,96,192,57,192,31,192, - 9,11,22,11,1,0,193,128,193,128,193,128,193,128,193,128, - 255,128,193,128,193,128,193,128,193,128,193,128,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,8,11,11, - 10,1,0,3,3,3,3,3,3,3,195,195,254,124,9,11, - 22,11,1,0,195,0,199,0,206,0,220,0,248,0,248,0, - 220,0,206,0,206,0,199,0,195,128,8,11,11,9,1,0, - 192,192,192,192,192,192,192,192,192,255,255,13,11,22,15,1, - 0,240,120,240,120,248,248,216,216,216,216,221,216,205,152,205, - 152,207,152,199,24,199,24,10,11,22,12,1,0,240,192,240, - 192,248,192,216,192,220,192,204,192,206,192,198,192,199,192,195, - 192,195,192,11,11,22,13,1,0,31,0,123,192,96,192,192, - 96,192,96,192,96,192,96,192,96,96,192,123,192,31,0,8, - 11,11,10,1,0,252,199,195,195,199,254,192,192,192,192,192, - 12,11,22,14,1,0,31,0,123,128,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,123,192,31,240,9,11,22,11, - 1,0,254,0,199,128,193,128,193,128,195,0,254,0,195,0, - 193,128,193,128,193,128,193,128,9,11,22,11,1,0,62,0, - 119,0,193,128,224,0,248,0,127,0,15,128,1,128,193,128, - 119,0,62,0,9,11,22,11,1,0,255,128,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 10,11,22,12,1,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,115,128,62,0,11,11,22,12, - 0,0,224,96,96,96,112,224,48,192,49,192,57,128,25,128, - 31,128,31,0,15,0,14,0,16,11,22,16,0,0,225,135, - 99,198,99,198,99,198,119,206,54,108,54,108,54,108,60,60, - 28,56,28,56,11,11,22,11,0,0,112,192,49,192,59,128, - 31,0,14,0,14,0,31,0,27,0,51,128,113,192,224,224, - 10,11,22,10,0,0,225,192,113,128,51,128,59,0,31,0, - 30,0,12,0,12,0,12,0,12,0,12,0,8,11,11,10, - 1,0,255,7,6,14,28,24,56,112,96,192,255,4,14,14, - 6,1,253,240,192,192,192,192,192,192,192,192,192,192,192,192, - 240,5,12,12,7,1,255,128,192,192,64,96,96,32,48,48, - 16,16,24,4,14,14,7,1,253,240,48,48,48,48,48,48, - 48,48,48,48,48,48,240,8,10,10,16,4,0,16,24,24, - 36,36,36,66,66,129,129,8,1,1,8,0,254,255,3,3, - 3,4,0,9,192,64,32,7,8,8,9,1,0,60,110,6, - 126,230,198,238,118,8,11,11,10,1,0,192,192,192,220,246, - 199,195,195,195,230,220,7,8,8,9,1,0,60,110,198,192, - 192,198,238,60,8,11,11,10,1,0,3,3,3,59,111,227, - 195,195,195,103,59,7,8,8,9,1,0,60,110,198,254,192, - 198,110,60,5,11,11,7,1,0,56,48,48,248,48,48,48, - 48,48,48,48,8,11,11,10,1,253,59,111,227,195,195,195, - 103,59,3,103,60,7,11,11,9,1,0,192,192,192,220,238, - 198,198,198,198,198,198,2,11,11,4,1,0,192,192,0,192, - 192,192,192,192,192,192,192,3,14,14,5,1,253,96,96,0, - 96,96,96,96,96,96,96,96,96,224,224,7,11,11,9,1, - 0,192,192,192,206,220,216,240,216,220,204,198,2,11,11,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,12,8,16, - 14,1,0,220,224,239,112,198,48,198,48,198,48,198,48,198, - 48,198,48,7,8,8,9,1,0,220,238,198,198,198,198,198, - 198,8,8,8,10,1,0,60,102,195,195,195,195,102,60,8, - 11,11,10,1,253,220,230,195,195,195,199,246,220,192,192,192, - 8,11,11,10,1,253,59,103,195,195,195,195,111,59,3,3, - 3,5,8,8,7,1,0,216,240,192,192,192,192,192,192,7, - 8,8,9,1,0,124,238,192,248,30,198,238,124,6,10,10, - 8,1,0,48,48,252,48,48,48,48,48,56,28,7,8,8, - 9,1,0,198,198,198,198,198,198,238,118,8,8,8,9,0, - 0,227,99,103,118,54,60,28,28,13,8,16,14,0,0,231, - 24,103,152,103,152,111,176,61,240,60,240,60,240,56,224,8, - 8,8,9,0,0,99,118,62,28,60,62,103,227,8,11,11, - 9,0,253,227,99,119,54,54,62,28,28,24,24,56,6,8, - 8,8,1,0,252,12,24,56,112,96,192,252,6,15,15,8, - 1,252,28,56,48,48,48,48,112,192,96,48,48,48,48,48, - 28,1,16,16,5,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,15,15,8,1,252,224,112,48, - 48,48,48,24,12,24,48,48,48,48,48,240,8,2,2,9, - 0,3,121,223,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=21 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14[5788] U8G_FONT_SECTION("u8g_font_fub14") = { - 0,31,26,254,251,14,3,116,7,95,32,255,252,21,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,0,3,14, - 14,9,3,252,224,224,0,0,224,224,224,224,224,224,224,224, - 224,224,9,14,28,11,1,254,2,0,2,0,62,0,127,0, - 231,128,231,128,232,0,232,0,235,128,243,128,127,0,62,0, - 32,0,32,0,10,14,28,12,1,0,31,0,63,192,113,192, - 112,0,112,0,254,0,254,0,112,0,112,0,112,0,112,0, - 112,0,255,192,255,192,10,10,20,12,1,3,128,64,94,128, - 33,0,64,128,64,128,64,128,64,128,33,0,94,128,128,64, - 11,14,28,13,1,0,224,224,225,192,113,192,113,128,251,224, - 251,224,31,0,255,224,255,224,14,0,14,0,14,0,14,0, - 14,0,1,18,18,7,3,252,128,128,128,128,128,128,128,128, - 0,0,128,128,128,128,128,128,128,128,8,18,18,10,1,252, - 62,126,224,224,112,60,126,231,231,231,254,124,30,7,7,135, - 254,56,7,2,2,7,0,12,238,238,15,14,28,17,1,0, - 7,192,31,240,55,152,111,204,204,228,156,2,156,2,156,226, - 140,226,207,198,71,132,32,24,28,112,15,192,7,9,9,8, - 1,5,120,204,124,204,204,252,36,0,254,10,8,16,12,1, - 1,57,192,113,128,115,128,231,0,231,0,115,128,113,128,57, - 192,11,5,10,13,1,4,255,224,255,224,0,32,0,32,0, - 32,255,15,14,28,17,1,0,7,192,31,240,63,152,111,236, - 204,100,140,98,143,194,143,194,140,98,204,102,76,100,32,24, - 28,112,15,192,6,2,2,6,0,12,252,252,5,5,5,7, - 1,9,112,136,136,136,112,12,12,24,20,4,0,2,0,2, - 0,2,0,255,240,255,240,2,0,2,0,2,0,0,0,0, - 0,255,240,255,240,6,8,8,8,1,6,120,204,12,24,48, - 224,252,252,6,7,7,8,1,7,120,204,12,48,12,204,120, - 4,4,4,4,1,12,48,96,96,192,255,9,17,34,11,1, - 253,63,128,121,0,249,0,249,0,249,0,249,0,121,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,9, - 0,9,0,3,3,3,6,2,5,224,224,224,5,5,5,5, - 1,251,64,112,24,24,240,4,8,8,6,1,6,48,240,48, - 48,48,48,48,48,7,9,9,9,1,5,56,68,198,198,198, - 68,56,0,254,10,8,16,12,1,1,231,0,99,128,115,128, - 57,192,57,192,115,128,99,128,231,0,14,14,28,16,1,0, - 112,48,240,48,48,96,48,192,48,192,49,128,49,156,51,60, - 6,60,6,108,12,204,24,252,24,12,48,12,15,14,28,17, - 1,0,112,48,240,32,48,96,48,192,48,192,49,128,51,60, - 51,102,6,6,12,14,12,28,24,48,48,126,48,126,14,14, - 28,16,1,0,120,24,204,48,12,48,48,96,12,192,204,192, - 121,156,1,188,3,60,6,108,6,204,12,252,8,12,24,12, - 9,14,28,11,1,252,14,0,14,0,0,0,14,0,14,0, - 14,0,60,0,112,0,224,0,224,0,225,128,225,128,127,128, - 62,0,14,20,40,14,0,0,12,0,14,0,6,0,3,0, - 0,0,0,0,7,128,7,128,7,192,15,192,14,192,28,224, - 28,224,28,96,56,112,63,240,63,248,112,56,112,56,224,28, - 14,20,40,14,0,0,0,192,1,192,1,128,3,0,0,0, - 0,0,7,128,7,128,7,192,15,192,14,192,28,224,28,224, - 28,96,56,112,63,240,63,248,112,56,112,56,224,28,14,20, - 40,14,0,0,3,128,7,128,6,192,12,192,0,0,0,0, - 7,128,7,128,7,192,15,192,14,192,28,224,28,224,28,96, - 56,112,63,240,63,248,112,56,112,56,224,28,14,19,38,14, - 0,0,6,64,15,192,8,128,0,0,0,0,7,128,7,128, - 7,192,15,192,14,192,28,224,28,224,28,96,56,112,63,240, - 63,248,112,56,112,56,224,28,14,19,38,15,0,0,14,224, - 14,224,0,0,0,0,0,0,3,128,7,128,7,192,7,192, - 14,192,14,224,28,224,28,112,28,112,63,248,63,248,112,56, - 112,28,224,28,13,21,42,15,1,0,7,0,8,128,8,128, - 8,128,7,0,0,0,0,0,7,0,15,128,15,128,29,192, - 29,192,29,192,56,224,56,224,48,96,127,240,127,240,224,56, - 224,56,224,56,19,14,42,20,0,0,0,255,224,1,255,224, - 3,240,0,3,112,0,7,112,0,7,112,0,14,127,192,14, - 127,192,28,112,0,31,240,0,63,240,0,112,112,0,112,127, - 224,224,127,224,13,18,36,15,1,252,15,128,63,224,112,240, - 96,112,224,0,224,0,224,0,224,0,224,0,224,120,96,112, - 112,240,63,224,31,128,4,0,7,128,1,128,15,0,10,20, - 40,12,1,0,48,0,56,0,24,0,12,0,0,0,0,0, - 255,192,255,192,224,0,224,0,224,0,224,0,255,128,255,128, - 224,0,224,0,224,0,224,0,255,192,255,192,10,20,40,12, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,255,192, - 255,192,224,0,224,0,224,0,224,0,255,128,255,128,224,0, - 224,0,224,0,224,0,255,192,255,192,10,20,40,12,1,0, - 28,0,30,0,54,0,35,0,0,0,0,0,255,192,255,192, - 224,0,224,0,224,0,224,0,255,128,255,128,224,0,224,0, - 224,0,224,0,255,192,255,192,10,19,38,12,1,0,119,0, - 119,0,0,0,0,0,0,0,255,192,255,192,224,0,224,0, - 224,0,224,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,192,255,192,5,20,20,5,255,0,224,96,48,16,0,0, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,4,20, - 20,5,1,0,48,112,96,192,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,5,20,20,5,0,0,112,112, - 216,136,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,7,19,19,7,0,0,238,238,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,13,14,28,14,0, - 0,127,128,127,224,112,240,112,112,112,56,112,56,254,56,254, - 56,112,56,112,56,112,112,112,240,127,224,127,128,13,19,38, - 15,1,0,12,64,31,128,17,0,0,0,0,0,240,56,248, - 56,248,56,252,56,238,56,238,56,231,56,231,56,227,184,227, - 184,225,248,225,248,224,248,224,248,14,20,40,16,1,0,28, - 0,12,0,6,0,2,0,0,0,0,0,15,192,63,240,112, - 112,96,56,224,24,224,28,224,28,224,28,224,28,224,24,96, - 56,112,112,63,240,15,192,14,20,40,16,1,0,0,224,1, - 192,1,128,3,0,0,0,0,0,15,192,63,240,112,112,96, - 56,224,24,224,28,224,28,224,28,224,28,224,24,96,56,112, - 112,63,240,15,192,14,20,40,16,1,0,7,0,7,128,13, - 192,8,192,0,0,0,0,15,192,63,240,112,112,96,56,224, - 24,224,28,224,28,224,28,224,28,224,24,96,56,112,112,63, - 240,15,192,14,19,38,16,1,0,7,192,15,192,0,0,0, - 0,0,0,15,192,63,240,112,48,96,56,224,24,224,28,224, - 28,224,28,224,28,224,24,112,56,120,240,63,240,15,192,14, - 19,38,16,1,0,29,192,29,192,0,0,0,0,0,0,15, - 192,63,240,112,112,96,56,224,24,224,28,224,28,224,28,224, - 28,224,24,96,56,112,112,63,240,15,192,10,10,20,20,5, - 1,128,64,192,192,97,128,51,0,12,0,12,0,18,0,33, - 0,64,128,128,64,15,16,32,16,0,255,0,2,7,230,31, - 252,56,60,48,60,112,108,112,238,113,206,115,142,119,14,126, - 12,124,28,56,56,63,240,239,224,64,0,12,20,40,14,1, - 0,56,0,24,0,12,0,6,0,0,0,0,0,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,113,224,63,192,31,128,12,20,40,14,1,0,1, - 192,3,128,3,0,6,0,0,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,113,224,63,192,31,128,12,20,40,14,1,0,14,0,15, - 0,27,0,17,128,0,0,0,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,113, - 224,63,192,31,128,12,19,38,14,1,0,29,192,29,192,0, - 0,0,0,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,63,192,31, - 128,12,19,38,13,0,0,1,128,3,0,2,0,0,0,0, - 0,240,112,112,240,56,224,56,224,29,192,29,192,15,128,15, - 0,7,0,7,0,7,0,7,0,7,0,7,0,11,14,28, - 13,1,0,224,0,224,0,255,0,255,192,225,192,224,224,224, - 224,224,224,225,192,255,128,254,0,224,0,224,0,224,0,10, - 14,28,12,1,0,62,0,127,128,227,128,227,128,227,0,231, - 0,238,0,238,0,231,128,227,192,225,192,253,192,255,192,239, - 128,9,16,32,11,1,0,112,0,48,0,24,0,8,0,0, - 0,0,0,62,0,127,128,227,128,31,128,127,128,227,128,227, - 128,227,128,255,128,57,128,9,16,32,11,1,0,7,0,6, - 0,12,0,12,0,0,0,0,0,62,0,127,128,227,128,3, - 128,63,128,251,128,227,128,227,128,255,128,121,128,9,16,32, - 11,1,0,28,0,30,0,54,0,35,0,0,0,0,0,62, - 0,127,128,227,128,31,128,127,128,227,128,227,128,227,128,255, - 128,57,128,9,14,28,11,1,0,63,0,62,0,0,0,0, - 0,62,0,127,128,227,128,31,128,127,128,227,128,227,128,227, - 128,255,128,57,128,9,15,30,11,1,0,119,0,119,0,0, - 0,0,0,0,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,9,17,34,11,1,0,28, - 0,34,0,34,0,34,0,28,0,0,0,0,0,62,0,127, - 128,227,128,31,128,127,128,227,128,227,128,227,128,255,128,57, - 128,16,10,20,18,1,0,62,124,127,254,227,135,31,255,127, - 255,227,128,227,128,227,199,254,254,60,124,9,14,28,11,1, - 252,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,16,0,30,0,6,0,62,0,9,16,32, - 11,1,0,112,0,48,0,24,0,8,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,9,16,32,11,1,0,7,0,6,0,12,0,8, - 0,0,0,0,0,30,0,127,0,227,128,227,128,255,128,255, - 128,224,0,227,128,127,128,62,0,9,16,32,11,1,0,28, - 0,30,0,54,0,35,0,0,0,0,0,30,0,127,0,227, - 128,227,128,255,128,255,128,224,0,227,128,127,128,62,0,9, - 15,30,11,1,0,119,0,119,0,0,0,0,0,0,0,30, - 0,127,0,227,128,227,128,255,128,255,128,224,0,227,128,127, - 128,62,0,4,15,15,5,0,0,192,224,96,48,0,112,112, - 112,112,112,112,112,112,112,112,4,15,15,4,1,0,112,96, - 192,128,0,224,224,224,224,224,224,224,224,224,224,7,15,15, - 5,255,0,56,124,76,198,0,56,56,56,56,56,56,56,56, - 56,56,7,14,14,6,0,0,238,238,0,0,56,56,56,56, - 56,56,56,56,56,56,10,14,28,12,1,0,57,128,15,0, - 31,0,99,0,31,128,127,128,97,192,225,192,225,192,225,192, - 225,192,97,192,127,128,31,0,9,14,28,11,1,0,62,0, - 60,0,0,0,0,0,239,0,255,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,16,32,12,1,0, - 48,0,24,0,24,0,12,0,0,0,0,0,30,0,127,128, - 97,128,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 10,16,32,12,1,0,3,0,6,0,6,0,12,0,0,0, - 0,0,30,0,127,128,97,128,225,192,225,192,225,192,225,192, - 97,128,127,128,30,0,10,16,32,12,1,0,12,0,30,0, - 26,0,51,0,0,0,0,0,30,0,127,128,97,128,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,10,14,28,12, - 1,0,31,0,62,0,0,0,0,0,30,0,127,128,97,128, - 225,192,225,192,225,192,225,192,97,128,127,128,30,0,10,15, - 30,12,1,0,59,128,59,128,0,0,0,0,0,0,30,0, - 127,128,97,128,225,192,225,192,225,192,225,192,97,128,127,128, - 30,0,12,8,16,20,4,2,6,0,14,0,0,0,255,240, - 255,240,0,0,6,0,14,0,10,12,24,12,1,0,0,192, - 31,128,127,128,99,128,231,192,237,192,233,192,241,192,113,128, - 127,128,222,0,128,0,9,16,32,11,1,0,112,0,48,0, - 24,0,8,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,9,16,32,11, - 1,0,7,0,6,0,12,0,8,0,0,0,0,0,227,128, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,255,128, - 123,128,9,16,32,11,1,0,28,0,28,0,54,0,34,0, - 0,0,0,0,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,255,128,123,128,9,15,30,11,1,0,119,0, - 119,0,0,0,0,0,0,0,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,255,128,123,128,11,19,38,11, - 0,252,1,128,3,0,2,0,4,0,0,0,112,224,113,192, - 113,192,57,192,59,128,27,128,31,128,31,0,15,0,14,0, - 14,0,78,0,252,0,120,0,10,18,36,12,1,252,224,0, - 224,0,224,0,224,0,239,0,255,128,225,128,225,192,225,192, - 225,192,225,192,225,192,255,128,255,0,224,0,224,0,224,0, - 224,0,11,18,36,11,0,252,59,128,59,128,0,0,0,0, - 225,224,113,192,113,192,115,128,59,128,59,128,31,0,31,0, - 31,0,14,0,14,0,12,0,28,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=12 h=15 x= 4 y= 7 dx=20 dy= 0 ascent=14 len=28 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14n[452] U8G_FONT_SECTION("u8g_font_fub14n") = { - 0,31,26,254,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,102,60,24,255,24,60,102,12,12, - 24,20,4,0,2,0,2,0,2,0,2,0,2,0,255,240, - 255,240,2,0,2,0,2,0,2,0,2,0,4,5,5,6, - 1,254,112,112,96,224,192,5,3,3,7,1,4,248,248,248, - 3,3,3,6,2,0,224,224,224,6,15,15,9,1,255,12, - 12,12,12,24,24,24,48,48,48,96,96,96,96,192,10,14, - 28,11,1,0,30,0,127,0,97,128,225,192,225,192,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,127,128,30,0, - 6,14,14,11,2,0,28,124,252,220,28,28,28,28,28,28, - 28,28,28,28,10,14,28,11,1,0,31,0,127,128,97,192, - 225,192,1,192,1,192,3,128,7,128,15,0,30,0,56,0, - 112,0,255,192,255,192,10,14,28,11,1,0,62,0,127,0, - 227,128,3,128,3,128,31,0,31,0,3,128,1,192,1,192, - 225,192,243,128,127,0,62,0,11,14,28,11,1,0,7,128, - 15,128,15,128,27,128,59,128,51,128,115,128,99,128,227,128, - 255,224,255,224,3,128,3,128,3,128,10,14,28,11,1,0, - 255,128,255,128,224,0,224,0,224,0,255,0,255,128,225,128, - 1,192,1,192,225,192,227,128,127,0,62,0,10,14,28,11, - 1,0,30,0,63,128,97,128,96,0,224,0,223,0,255,128, - 225,128,225,192,225,192,225,192,97,128,127,128,30,0,10,14, - 28,11,1,0,255,192,255,192,1,192,3,128,3,128,7,128, - 7,0,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 10,14,28,11,1,0,63,0,127,128,225,192,225,192,225,128, - 127,0,63,0,115,128,225,192,225,192,225,192,225,192,127,128, - 63,0,10,14,28,11,1,0,30,0,127,0,225,128,225,128, - 225,192,225,192,243,192,127,192,25,192,1,128,225,128,99,128, - 127,0,62,0,3,10,10,7,3,0,224,224,224,0,0,0, - 0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--20-200-72-72-P-101-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=21 x= 5 y=12 dx=21 dy= 0 ascent=16 len=54 - Font Bounding box w=31 h=26 x=-2 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub14r[2680] U8G_FONT_SECTION("u8g_font_fub14r") = { - 0,31,26,254,251,14,3,116,7,95,32,127,252,16,251,14, - 252,0,0,0,6,0,0,3,14,14,8,3,0,224,224,224, - 224,224,224,224,224,224,224,0,0,224,224,8,6,6,10,1, - 8,231,103,103,103,103,103,12,14,28,14,1,0,6,96,6, - 96,12,96,63,240,63,240,24,192,25,128,25,128,255,224,255, - 224,51,0,51,0,99,0,102,0,10,17,34,12,1,254,4, - 0,31,0,127,128,119,128,229,192,228,0,252,0,126,0,31, - 128,7,192,5,192,229,192,229,192,127,128,63,0,4,0,4, - 0,18,14,42,20,1,0,60,4,0,126,12,0,195,24,0, - 195,16,0,195,48,0,231,96,0,126,103,0,24,205,128,0, - 152,192,1,152,192,3,24,192,3,24,192,6,15,128,12,7, - 0,14,14,28,16,1,0,31,0,127,128,113,192,113,192,115, - 128,63,0,30,0,126,56,247,48,227,176,225,240,224,224,127, - 240,31,188,3,6,6,8,3,8,224,192,192,192,192,192,4, - 17,17,8,2,253,48,112,112,96,224,224,224,224,224,224,224, - 224,224,96,112,112,48,4,17,17,8,2,253,192,192,224,224, - 96,96,112,112,112,112,112,96,96,224,224,192,192,8,7,7, - 12,2,7,102,60,24,255,24,60,102,12,12,24,20,4,0, - 2,0,2,0,2,0,2,0,2,0,255,240,255,240,2,0, - 2,0,2,0,2,0,2,0,4,5,5,6,1,254,112,112, - 96,224,192,5,3,3,7,1,4,248,248,248,3,3,3,6, - 2,0,224,224,224,6,15,15,9,1,255,12,12,12,12,24, - 24,24,48,48,48,96,96,96,96,192,10,14,28,11,1,0, - 30,0,127,0,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,225,192,225,192,97,128,127,128,30,0,6,14,14,11, - 2,0,28,124,252,220,28,28,28,28,28,28,28,28,28,28, - 10,14,28,11,1,0,31,0,127,128,97,192,225,192,1,192, - 1,192,3,128,7,128,15,0,30,0,56,0,112,0,255,192, - 255,192,10,14,28,11,1,0,62,0,127,0,227,128,3,128, - 3,128,31,0,31,0,3,128,1,192,1,192,225,192,243,128, - 127,0,62,0,11,14,28,11,1,0,7,128,15,128,15,128, - 27,128,59,128,51,128,115,128,99,128,227,128,255,224,255,224, - 3,128,3,128,3,128,10,14,28,11,1,0,255,128,255,128, - 224,0,224,0,224,0,255,0,255,128,225,128,1,192,1,192, - 225,192,227,128,127,0,62,0,10,14,28,11,1,0,30,0, - 63,128,97,128,96,0,224,0,223,0,255,128,225,128,225,192, - 225,192,225,192,97,128,127,128,30,0,10,14,28,11,1,0, - 255,192,255,192,1,192,3,128,3,128,7,128,7,0,7,0, - 14,0,14,0,28,0,28,0,60,0,56,0,10,14,28,11, - 1,0,63,0,127,128,225,192,225,192,225,128,127,0,63,0, - 115,128,225,192,225,192,225,192,225,192,127,128,63,0,10,14, - 28,11,1,0,30,0,127,0,225,128,225,128,225,192,225,192, - 243,192,127,192,25,192,1,128,225,128,99,128,127,0,62,0, - 3,10,10,7,3,0,224,224,224,0,0,0,0,224,224,224, - 4,12,12,6,1,254,112,112,112,0,0,0,0,112,96,224, - 192,192,12,10,20,20,4,1,0,16,0,224,3,128,28,0, - 224,0,192,0,56,0,7,0,1,192,0,48,12,5,10,20, - 4,3,255,240,255,240,0,0,255,240,255,240,12,10,20,20, - 4,1,128,0,112,0,28,0,3,128,0,112,0,48,1,192, - 14,0,56,0,192,0,9,14,28,11,1,0,62,0,127,0, - 195,128,67,128,3,128,7,0,6,0,12,0,24,0,24,0, - 24,0,0,0,24,0,24,0,19,18,54,21,1,252,1,248, - 0,15,254,0,30,7,128,56,3,192,113,253,192,115,252,224, - 231,28,224,231,28,224,231,28,224,231,28,224,231,28,224,231, - 60,192,115,255,192,113,231,128,56,0,0,30,4,0,15,252, - 0,3,252,0,14,14,28,14,0,0,7,128,7,128,7,192, - 15,192,14,192,28,224,28,224,28,96,56,112,63,240,63,248, - 112,56,112,56,224,28,11,14,28,13,1,0,255,0,255,128, - 225,192,225,192,225,192,227,128,255,0,255,128,224,192,224,224, - 224,224,224,224,255,192,255,0,13,14,28,15,1,0,15,128, - 63,224,112,112,96,112,224,0,224,0,224,0,224,0,224,0, - 224,120,96,112,112,240,63,224,15,128,12,14,28,14,1,0, - 255,0,255,192,225,224,224,224,224,112,224,112,224,112,224,112, - 224,112,224,112,224,224,225,224,255,192,255,0,10,14,28,12, - 1,0,255,192,255,192,224,0,224,0,224,0,224,0,255,128, - 255,128,224,0,224,0,224,0,224,0,255,192,255,192,9,14, - 28,11,1,0,255,128,255,128,224,0,224,0,224,0,224,0, - 255,128,255,128,224,0,224,0,224,0,224,0,224,0,224,0, - 13,14,28,15,1,0,15,192,31,240,56,56,112,56,224,0, - 224,0,225,248,225,248,224,56,224,56,112,56,120,56,63,248, - 15,240,12,14,28,14,1,0,224,112,224,112,224,112,224,112, - 224,112,224,112,255,240,255,240,224,112,224,112,224,112,224,112, - 224,112,224,112,3,14,14,5,1,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,10,14,28,12,1,0,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 225,192,225,192,243,192,127,128,62,0,11,14,28,13,1,0, - 225,224,227,192,227,128,231,0,238,0,252,0,252,0,254,0, - 238,0,231,0,231,128,227,192,225,192,224,224,10,14,28,11, - 1,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,192,255,192,16,14, - 28,18,1,0,248,31,248,31,252,63,252,63,252,55,236,119, - 238,119,238,103,230,231,231,231,231,199,227,199,227,199,227,135, - 13,14,28,15,1,0,240,56,248,56,248,56,252,56,238,56, - 238,56,231,56,231,56,227,184,227,184,225,248,225,248,224,248, - 224,248,14,14,28,16,1,0,15,192,63,240,112,112,96,56, - 224,24,224,28,224,28,224,28,224,28,224,24,96,56,112,112, - 63,240,15,192,11,14,28,13,1,0,255,0,255,192,225,192, - 224,224,224,224,224,224,225,192,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,15,14,28,17,1,0,15,192,63,224, - 112,112,96,56,224,24,224,28,224,28,224,28,224,28,224,24, - 96,56,112,120,63,254,15,254,11,14,28,13,1,0,255,128, - 255,192,224,224,224,224,224,224,224,224,255,128,255,192,225,192, - 224,224,224,224,224,224,224,224,224,96,12,14,28,14,1,0, - 31,128,63,192,96,224,224,224,224,0,252,0,127,128,31,224, - 3,224,0,112,224,112,224,96,127,192,31,128,12,14,28,14, - 1,0,255,240,255,240,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,12,14, - 28,14,1,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,112,224,63,192,31,128, - 14,14,28,15,0,0,240,28,112,28,112,60,56,56,56,56, - 56,112,28,112,28,112,30,224,14,224,15,192,7,192,7,192, - 7,128,20,14,42,20,0,0,240,240,240,112,240,224,112,240, - 224,113,248,224,113,248,224,57,153,192,57,153,192,59,157,192, - 59,157,192,27,13,128,31,15,128,31,15,128,31,15,128,14, - 7,0,12,14,28,14,1,0,224,112,112,224,120,224,57,192, - 31,128,31,0,15,0,15,0,31,128,59,192,57,192,112,224, - 224,240,224,112,12,14,28,13,0,0,240,112,112,240,56,224, - 56,224,29,192,29,192,15,128,15,0,7,0,7,0,7,0, - 7,0,7,0,7,0,11,14,28,13,1,0,127,224,127,224, - 1,224,3,192,3,128,7,128,15,0,30,0,30,0,60,0, - 120,0,248,0,255,224,255,224,5,18,18,8,2,252,248,248, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,248,248, - 6,15,15,9,1,255,192,192,96,96,96,48,48,48,16,24, - 24,24,12,12,12,5,18,18,8,2,252,248,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,248,248,10,12,24, - 20,5,0,12,0,12,0,12,0,18,0,18,0,51,0,33, - 0,33,0,64,128,64,128,192,192,128,64,10,2,4,10,0, - 253,255,192,255,192,5,4,4,5,255,12,224,112,48,24,9, - 10,20,11,1,0,62,0,127,128,227,128,31,128,127,128,227, - 128,227,128,227,128,255,128,57,128,10,14,28,12,1,0,224, - 0,224,0,224,0,224,0,239,0,255,128,225,192,225,192,225, - 192,225,192,225,192,225,128,255,128,239,0,9,10,20,11,1, - 0,62,0,127,0,227,128,227,128,224,0,224,0,227,128,227, - 128,127,0,62,0,10,14,28,12,1,0,1,192,1,192,1, - 192,1,192,61,192,127,192,225,192,225,192,225,192,225,192,225, - 192,225,192,127,192,61,192,9,10,20,11,1,0,30,0,127, - 0,227,128,227,128,255,128,255,128,224,0,227,128,127,128,62, - 0,7,14,14,8,1,0,30,62,56,56,254,254,56,56,56, - 56,56,56,56,56,10,14,28,12,1,252,61,192,127,192,113, - 192,225,192,225,192,225,192,225,192,225,192,127,192,61,192,1, - 192,97,192,127,128,63,0,9,14,28,11,1,0,224,0,224, - 0,224,0,224,0,239,0,255,128,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,3,14,14,5,1,0,224, - 224,224,0,224,224,224,224,224,224,224,224,224,224,4,18,18, - 7,2,252,112,112,112,0,112,112,112,112,112,112,112,112,112, - 112,112,112,240,224,9,14,28,11,1,0,224,0,224,0,224, - 0,224,0,231,128,231,0,238,0,252,0,252,0,252,0,238, - 0,231,0,231,0,227,128,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,15,10,20,18,1, - 0,239,60,255,254,227,206,227,134,227,134,227,134,227,134,227, - 134,227,134,227,134,9,10,20,11,1,0,239,0,255,128,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,227,128,10, - 10,20,12,1,0,30,0,127,128,97,128,225,192,225,192,225, - 192,225,192,97,128,127,128,30,0,10,14,28,12,1,252,239, - 0,255,128,225,128,225,192,225,192,225,192,225,192,225,192,255, - 128,239,0,224,0,224,0,224,0,224,0,10,14,28,12,1, - 252,61,192,127,192,225,192,225,192,225,192,225,192,225,192,225, - 192,127,192,61,192,1,192,1,192,1,192,1,192,6,10,10, - 8,1,0,236,252,240,224,224,224,224,224,224,224,9,10,20, - 11,1,0,62,0,255,0,227,128,224,0,126,0,31,0,3, - 128,227,128,255,0,62,0,7,13,13,9,1,0,8,56,56, - 254,254,56,56,56,56,56,56,62,30,9,10,20,11,1,0, - 227,128,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 255,128,123,128,11,10,20,11,0,0,224,224,113,192,113,192, - 49,128,59,128,59,128,27,0,31,0,31,0,14,0,17,10, - 30,17,0,0,225,195,128,97,227,0,115,231,0,115,103,0, - 51,119,0,63,118,0,63,62,0,62,62,0,30,60,0,30, - 28,0,9,10,20,11,1,0,227,128,115,0,119,0,62,0, - 28,0,62,0,62,0,119,0,227,128,227,128,11,14,28,11, - 0,252,224,224,113,192,113,192,57,128,59,128,59,128,31,0, - 31,0,15,0,14,0,14,0,14,0,28,0,28,0,8,10, - 10,10,1,0,255,255,7,14,28,56,112,224,255,255,7,19, - 19,10,2,251,14,62,56,56,56,56,56,48,240,192,240,112, - 56,56,56,56,56,62,14,1,21,21,7,3,251,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,7,19,19,10,2,251,224,240,56,56,56,56,56,56, - 28,6,28,56,56,56,56,56,56,240,224,11,3,6,11,0, - 4,48,96,127,192,199,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=15 dx=24 dy= 0 ascent=25 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17[6938] U8G_FONT_SECTION("u8g_font_fub17") = { - 0,34,31,254,250,17,4,8,8,209,32,255,251,25,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,7,0,0,3,17,17,9, - 3,251,224,224,224,0,0,224,224,224,224,224,224,224,224,224, - 224,224,224,10,18,36,13,1,253,1,0,1,0,3,0,31, - 0,127,128,115,192,231,192,228,0,228,0,236,0,233,192,233, - 192,123,192,127,128,31,0,16,0,48,0,32,0,11,17,34, - 13,1,0,15,128,31,224,56,224,56,224,56,0,56,0,255, - 0,255,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,255,224,255,224,11,12,24,13,1,4,128,32,95,64,113, - 128,96,128,64,64,64,64,64,64,64,64,96,192,49,128,95, - 64,128,32,13,17,34,15,1,0,224,120,240,120,112,112,120, - 240,56,224,253,248,253,248,31,192,15,128,255,248,255,248,7, - 0,7,0,7,0,7,0,7,0,7,0,1,22,22,8,4, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,128,128, - 128,128,128,128,128,128,128,9,21,42,11,1,252,63,0,127, - 0,241,0,224,0,224,0,120,0,62,0,63,0,119,128,227, - 128,227,128,231,128,255,0,126,0,31,0,7,128,3,128,3, - 128,135,128,255,0,124,0,8,3,3,8,0,15,231,231,231, - 17,17,51,19,1,0,3,224,0,15,248,0,60,30,0,51, - 230,0,103,243,0,103,59,0,206,57,128,206,1,128,206,1, - 128,206,1,128,206,57,128,78,57,0,103,243,0,51,230,0, - 56,14,0,15,248,0,3,224,0,8,11,11,10,1,6,60, - 102,6,126,230,198,198,126,0,0,255,11,9,18,14,1,1, - 60,224,56,224,121,224,113,192,243,192,113,192,121,224,56,224, - 60,224,12,5,10,14,1,5,255,240,0,16,0,16,0,16, - 0,16,255,17,17,51,19,1,0,3,224,0,15,248,0,60, - 30,0,55,246,0,103,251,0,102,27,0,198,25,128,199,241, - 128,199,241,128,198,57,128,198,25,128,70,25,0,102,27,0, - 48,6,0,56,14,0,15,248,0,3,224,0,7,2,2,7, - 0,15,254,254,5,5,5,7,1,12,112,136,136,136,112,14, - 14,28,24,5,0,2,0,2,0,2,0,2,0,255,252,255, - 252,2,0,2,0,2,0,2,0,0,0,0,0,255,252,255, - 252,7,9,9,9,1,8,124,230,6,14,28,56,224,254,254, - 7,9,9,9,1,8,124,206,6,14,56,14,6,206,124,5, - 4,4,5,1,14,56,112,96,192,255,11,20,40,14,2,253, - 63,224,125,128,253,128,253,128,253,128,253,128,253,128,125,128, - 13,128,13,128,13,128,13,128,13,128,13,128,13,128,13,128, - 13,128,13,128,13,128,13,128,3,3,3,7,2,6,224,224, - 224,6,5,5,6,1,251,32,56,12,12,248,4,9,9,6, - 1,8,48,240,176,48,48,48,48,48,48,8,11,11,10,1, - 6,60,102,195,195,195,195,231,126,60,0,255,12,9,18,14, - 1,1,227,128,113,192,121,224,56,224,60,240,56,224,121,224, - 113,192,227,128,16,17,34,18,1,0,48,24,240,24,176,48, - 48,112,48,96,48,224,48,192,49,128,49,142,3,14,3,30, - 6,54,14,54,12,102,24,127,24,6,48,6,16,17,34,18, - 1,0,48,24,240,48,176,48,48,96,48,224,48,192,49,192, - 49,128,51,62,3,119,6,3,6,7,12,14,28,28,24,112, - 48,127,48,127,17,17,51,19,1,0,124,6,0,198,12,0, - 6,12,0,56,24,0,14,56,0,6,48,0,206,112,0,124, - 96,0,0,199,0,1,199,0,1,143,0,3,155,0,3,27, - 0,7,51,0,6,63,128,12,3,0,28,3,0,10,17,34, - 12,1,251,14,0,14,0,0,0,0,0,14,0,14,0,14, - 0,28,0,56,0,112,0,240,0,224,0,224,128,224,192,115, - 192,127,128,31,0,16,24,48,16,0,0,14,0,7,0,3, - 0,3,128,1,128,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,24,48,16,0, - 0,0,112,0,96,0,224,0,192,1,128,0,0,0,0,3, - 192,3,192,3,224,7,224,7,240,15,112,14,112,14,120,30, - 56,28,56,28,60,63,252,63,252,127,254,120,14,112,15,240, - 7,16,24,48,16,0,0,1,192,3,192,3,224,6,96,4, - 48,0,0,0,0,3,192,3,192,3,224,7,224,7,240,15, - 112,14,112,14,120,30,56,28,56,28,60,63,252,63,252,127, - 254,120,14,112,15,240,7,16,23,46,16,0,0,0,16,7, - 240,7,224,0,0,0,0,0,0,3,192,3,192,3,224,7, - 224,7,240,15,112,14,112,14,120,30,56,28,56,28,60,63, - 252,63,252,127,254,120,14,112,15,240,7,16,23,46,17,0, - 0,14,112,14,112,14,112,0,0,0,0,0,0,3,192,3, - 192,7,224,7,224,7,224,15,112,14,112,30,120,30,56,28, - 56,60,60,63,252,127,254,127,254,112,14,240,15,224,7,15, - 25,50,16,1,0,3,128,6,192,4,64,4,64,4,192,3, - 128,0,0,0,0,3,128,7,192,7,192,15,192,14,224,14, - 224,30,224,28,112,28,112,60,112,56,120,63,248,127,252,127, - 252,112,28,240,30,224,14,21,17,51,23,1,0,0,255,248, - 0,255,248,1,248,0,1,248,0,3,184,0,3,184,0,7, - 56,0,7,63,248,14,63,248,14,56,0,30,56,0,31,248, - 0,63,248,0,120,56,0,112,56,0,240,63,248,224,63,248, - 14,22,44,16,1,251,15,192,31,240,63,248,120,56,112,60, - 240,28,224,0,224,0,224,0,224,0,224,0,224,0,112,28, - 112,60,56,120,31,240,15,192,3,0,3,192,0,96,0,96, - 7,192,11,24,48,15,2,0,56,0,24,0,28,0,12,0, - 6,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,11,24,48,15,2,0,3,128, - 3,0,7,0,6,0,12,0,0,0,0,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,11,24, - 48,15,2,0,14,0,31,0,27,0,59,128,49,128,0,0, - 0,0,255,224,255,224,255,224,224,0,224,0,224,0,224,0, - 255,224,255,224,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,255,224,11,23,46,15,2,0,59,128,59,128,59,128, - 0,0,0,0,0,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,255,224,255,224,255,224,5,24,24,7,0,0,224,224, - 96,48,16,0,0,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,5,24,24,5,1,0,56,48,112,96, - 192,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,7,24,24,7,0,0,56,56,108,108,198,0, - 0,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,8,23,23,8,0,0,231,231,231,0,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,15, - 17,34,16,0,0,63,192,63,240,63,248,56,60,56,28,56, - 30,56,14,56,14,255,14,255,14,56,14,56,30,56,28,56, - 60,63,248,63,240,63,192,14,23,46,18,2,0,0,32,15, - 192,15,192,0,0,0,0,0,0,248,28,248,28,252,28,252, - 28,238,28,238,28,231,28,231,28,231,156,227,156,227,220,225, - 220,225,220,224,252,224,252,224,124,224,124,15,24,48,17,1, - 0,28,0,14,0,6,0,3,0,1,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,240,14,112,28,120,60,63,248,31,240,7, - 224,15,24,48,17,1,0,0,112,0,224,0,192,1,128,1, - 0,0,0,0,0,7,192,31,240,63,248,120,60,112,28,240, - 30,224,14,224,14,224,14,224,14,224,14,240,14,112,28,120, - 60,63,248,31,240,7,224,15,24,48,17,1,0,3,128,7, - 192,6,192,12,96,8,32,0,0,0,0,7,192,31,240,63, - 248,120,60,112,28,240,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,60,63,248,31,240,7,224,15,23,46, - 17,1,0,7,32,15,224,8,192,0,0,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,120,60,63,248,31,240,7, - 224,15,23,46,17,1,0,14,112,14,112,14,112,0,0,0, - 0,0,0,7,192,31,240,63,248,120,60,112,28,240,30,224, - 14,224,14,224,14,224,14,224,14,240,14,112,28,120,60,63, - 248,31,240,7,224,13,12,24,23,5,1,192,24,96,48,48, - 96,24,192,13,128,7,0,7,0,13,128,24,192,48,96,96, - 48,192,24,17,19,57,17,0,255,0,1,0,3,241,128,15, - 251,0,31,254,0,60,30,0,56,30,0,120,63,0,112,119, - 0,112,231,0,113,199,0,115,135,0,119,7,0,126,7,0, - 60,14,0,60,30,0,63,252,0,111,248,0,227,224,0,64, - 0,0,14,24,48,18,2,0,28,0,12,0,14,0,6,0, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,56,127,248,63,240,15,192,14,24,48,18,2,0,0,224, - 0,192,1,192,1,128,3,0,0,0,0,0,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,240,60,112,56,127,248,63,240,15,192,14,24, - 48,18,2,0,7,128,7,128,15,192,12,192,24,96,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,240,60,112,56,127,248, - 63,240,15,192,14,23,46,16,1,0,28,224,28,224,28,224, - 0,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 120,120,127,248,63,240,15,192,13,23,46,15,1,0,1,192, - 1,128,3,0,2,0,0,0,0,0,224,56,240,120,112,112, - 120,240,56,224,61,224,29,192,31,192,15,128,15,128,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,12,17,34,15, - 1,0,224,0,224,0,224,0,255,128,255,224,255,224,224,240, - 224,112,224,112,224,240,255,224,255,224,255,128,224,0,224,0, - 224,0,224,0,12,17,34,14,1,0,63,0,127,128,241,192, - 225,192,225,192,227,128,231,0,238,0,238,0,239,128,231,192, - 225,224,224,112,238,112,238,112,239,224,231,192,10,19,38,13, - 1,0,112,0,56,0,24,0,12,0,4,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,19,38,13,1,0,3,128, - 3,0,6,0,6,0,12,0,0,0,0,0,31,0,127,128, - 113,192,1,192,31,192,127,192,241,192,225,192,225,192,243,192, - 127,192,60,192,10,19,38,13,1,0,14,0,30,0,27,0, - 51,0,33,128,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 10,17,34,13,1,0,31,128,63,0,0,0,0,0,0,0, - 31,0,127,128,113,192,1,192,31,192,127,192,241,192,225,192, - 225,192,243,192,127,192,60,192,10,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,63,0,127,128,241,192, - 1,192,31,192,127,192,241,192,225,192,225,192,243,192,127,192, - 60,192,10,20,40,13,1,0,14,0,27,0,17,0,19,0, - 31,0,14,0,0,0,0,0,31,0,127,128,113,192,1,192, - 31,192,127,192,241,192,225,192,225,192,243,192,127,192,60,192, - 18,12,36,20,1,0,31,31,0,127,191,128,113,243,128,0, - 225,192,31,255,192,127,255,192,240,224,0,224,224,0,224,225, - 192,241,243,192,127,63,128,62,31,0,10,17,34,12,1,251, - 31,0,127,128,115,192,225,192,224,0,224,0,224,0,224,0, - 225,192,115,192,127,128,63,0,8,0,14,0,3,0,3,0, - 30,0,11,19,38,13,1,0,112,0,56,0,24,0,12,0, - 4,0,0,0,0,0,31,0,63,128,113,192,225,224,255,224, - 255,224,224,0,224,0,225,192,113,192,127,192,31,0,11,19, - 38,13,1,0,3,128,3,0,7,0,6,0,12,0,0,0, - 0,0,31,0,63,128,113,192,225,224,255,224,255,224,224,0, - 224,0,225,192,113,192,127,192,31,0,11,19,38,13,1,0, - 14,0,31,0,27,0,49,128,33,128,0,0,0,0,31,0, - 63,128,113,192,225,224,255,224,255,224,224,0,224,0,225,192, - 113,192,127,192,31,0,11,18,36,13,1,0,115,128,115,128, - 115,128,0,0,0,0,0,0,31,0,63,128,115,192,225,192, - 255,224,255,224,224,0,224,0,225,192,115,192,127,128,31,0, - 5,18,18,6,255,0,224,112,48,24,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,4,18,18,5,1,0,112,96, - 224,192,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 7,18,18,6,255,0,56,124,108,198,0,0,56,56,56,56, - 56,56,56,56,56,56,56,56,8,18,18,7,255,0,231,231, - 231,0,0,0,56,56,56,56,56,56,56,56,56,56,56,56, - 12,17,34,14,1,0,28,96,15,192,15,128,59,128,33,192, - 31,224,63,224,112,224,240,240,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,11,17,34,13,1,0,31,128, - 63,0,0,0,0,0,0,0,239,128,255,192,241,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 12,19,38,14,1,0,56,0,28,0,12,0,6,0,6,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,19,38,14, - 1,0,1,192,3,128,3,0,6,0,4,0,0,0,0,0, - 31,128,63,192,112,224,240,224,224,112,224,112,224,112,224,112, - 240,240,112,224,63,192,31,128,12,19,38,14,1,0,15,0, - 15,0,31,128,25,128,48,192,0,0,0,0,31,128,63,192, - 112,224,240,224,224,112,224,112,224,112,224,112,240,240,112,224, - 63,192,31,128,12,17,34,14,1,0,31,192,63,128,0,0, - 0,0,0,0,31,128,63,192,112,224,240,224,224,112,224,112, - 224,112,224,112,240,240,112,224,63,192,31,128,12,18,36,14, - 1,0,57,192,57,192,57,192,0,0,0,0,0,0,31,128, - 63,192,112,224,240,224,224,112,224,112,224,112,224,112,240,240, - 112,224,63,192,31,128,14,10,20,24,5,2,7,0,7,0, - 6,0,0,0,255,252,255,252,0,0,2,0,7,0,7,0, - 12,15,30,14,1,254,0,32,0,48,31,224,63,192,113,224, - 241,240,227,112,230,112,236,112,248,112,248,240,112,224,127,192, - 223,128,192,0,11,19,38,13,1,0,112,0,56,0,28,0, - 12,0,6,0,0,0,0,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,241,224,127,224,62,224, - 11,19,38,13,1,0,3,128,3,128,7,0,6,0,12,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,241,224,127,224,62,224,11,19,38,13, - 1,0,14,0,31,0,27,0,49,128,32,128,0,0,0,0, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,241,224,127,224,62,224,11,18,36,13,1,0,115,128, - 115,128,115,128,0,0,0,0,0,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,241,224,127,224, - 62,224,11,23,46,13,1,251,1,128,3,128,3,0,6,0, - 0,0,0,0,224,224,224,224,241,224,113,192,121,192,59,192, - 59,128,63,128,31,128,31,0,31,0,15,0,14,0,14,0, - 254,0,252,0,120,0,12,22,44,15,2,251,224,0,224,0, - 224,0,224,0,224,0,239,128,255,192,248,224,240,240,224,112, - 224,112,224,112,224,112,240,240,241,224,255,192,239,128,224,0, - 224,0,224,0,224,0,224,0,12,22,44,14,1,251,57,192, - 57,192,57,192,0,0,0,0,240,112,240,240,112,240,120,224, - 121,224,57,192,61,192,31,192,31,128,31,128,15,128,15,0, - 15,0,15,0,14,0,30,0,28,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17n[530] U8G_FONT_SECTION("u8g_font_fub17n") = { - 0,34,31,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,54,0,54,0,54,0,156,128,255, - 128,156,128,54,0,54,0,54,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,255,252,2, - 0,2,0,2,0,2,0,2,0,2,0,5,6,6,7,1, - 253,56,112,112,96,96,224,6,3,3,8,1,4,252,252,252, - 3,3,3,7,2,0,224,224,224,8,18,18,10,1,255,7, - 6,6,14,12,12,12,28,24,24,56,48,48,48,112,96,96, - 224,11,17,34,13,1,0,31,0,63,128,113,192,112,192,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,112,192,113,192,63,128,31,0,7,17,17,13,2,0,14, - 62,254,254,206,14,14,14,14,14,14,14,14,14,14,14,14, - 12,17,34,13,1,0,15,128,63,224,120,224,112,112,0,112, - 0,112,0,240,1,224,3,224,7,192,15,128,30,0,60,0, - 248,0,255,240,255,240,255,240,11,17,34,13,1,0,31,0, - 127,192,241,224,224,224,0,224,0,224,1,192,15,128,15,128, - 1,192,0,224,0,224,224,224,241,224,255,192,127,128,31,0, - 12,17,34,13,1,0,3,192,7,192,7,192,15,192,29,192, - 29,192,57,192,113,192,113,192,225,192,255,240,255,240,255,240, - 1,192,1,192,1,192,1,192,11,17,34,13,1,0,255,192, - 255,192,255,192,224,0,224,0,224,0,239,128,255,192,241,224, - 224,224,0,224,0,224,224,224,225,224,255,192,127,128,63,0, - 11,17,34,13,1,0,15,0,63,192,57,224,112,224,96,0, - 224,0,239,128,255,192,241,224,224,224,224,224,224,224,224,224, - 96,224,113,192,63,128,31,0,11,17,34,13,1,0,255,224, - 255,224,255,224,0,224,1,224,1,192,3,192,3,128,7,128, - 7,128,7,0,15,0,14,0,30,0,28,0,60,0,60,0, - 11,17,34,13,1,0,31,0,127,192,241,224,224,224,224,224, - 224,224,113,192,63,128,63,128,113,192,224,224,224,224,224,224, - 224,224,241,224,127,192,31,0,11,17,34,13,1,0,31,0, - 63,128,113,192,224,192,224,224,224,224,224,224,241,224,127,224, - 62,224,0,224,0,224,224,224,225,192,113,192,127,128,30,0, - 3,12,12,7,3,0,224,224,224,0,0,0,0,0,0,224, - 224,224}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--23-230-72-72-P-115-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=34 h=31 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub17r[3222] U8G_FONT_SECTION("u8g_font_fub17r") = { - 0,34,31,254,250,17,4,8,8,209,32,127,251,19,250,17, - 251,0,0,0,7,0,0,3,17,17,9,3,0,224,224,224, - 224,224,224,224,224,224,224,224,224,0,0,224,224,224,8,7, - 7,12,2,10,231,231,231,231,231,231,231,14,17,34,16,1, - 0,3,24,7,24,6,56,6,48,63,252,63,252,12,96,12, - 96,28,96,24,224,255,248,255,240,57,192,49,128,49,128,113, - 128,99,128,12,21,42,14,1,253,2,0,15,128,63,192,127, - 224,242,224,226,224,226,0,250,0,126,0,63,192,15,224,3, - 240,2,240,226,112,226,112,242,240,127,224,63,192,15,0,2, - 0,2,0,21,17,51,23,1,0,62,3,0,127,7,0,99, - 6,0,193,142,0,193,140,0,193,152,0,193,184,0,99,48, - 128,127,119,224,62,102,48,0,236,24,0,204,24,1,204,24, - 1,140,24,3,14,56,7,7,240,6,3,224,16,17,34,18, - 1,0,31,128,63,192,121,224,112,224,113,224,57,192,63,128, - 31,0,63,30,119,156,243,220,225,252,224,252,224,120,120,124, - 127,254,31,207,3,7,7,9,3,10,224,224,224,224,224,224, - 96,5,20,20,9,2,253,56,56,112,112,112,240,224,224,224, - 224,224,224,224,224,240,112,112,112,48,56,5,20,20,9,2, - 253,224,96,112,112,112,56,56,56,56,56,56,56,56,56,56, - 112,112,112,96,224,9,9,18,15,3,8,54,0,54,0,54, - 0,156,128,255,128,156,128,54,0,54,0,54,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,255,252,2,0,2,0,2,0,2,0,2,0,2,0,5, - 6,6,7,1,253,56,112,112,96,96,224,6,3,3,8,1, - 4,252,252,252,3,3,3,7,2,0,224,224,224,8,18,18, - 10,1,255,7,6,6,14,12,12,12,28,24,24,56,48,48, - 48,112,96,96,224,11,17,34,13,1,0,31,0,63,128,113, - 192,112,192,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,112,192,113,192,63,128,31,0,7,17,17, - 13,2,0,14,62,254,254,206,14,14,14,14,14,14,14,14, - 14,14,14,14,12,17,34,13,1,0,15,128,63,224,120,224, - 112,112,0,112,0,112,0,240,1,224,3,224,7,192,15,128, - 30,0,60,0,248,0,255,240,255,240,255,240,11,17,34,13, - 1,0,31,0,127,192,241,224,224,224,0,224,0,224,1,192, - 15,128,15,128,1,192,0,224,0,224,224,224,241,224,255,192, - 127,128,31,0,12,17,34,13,1,0,3,192,7,192,7,192, - 15,192,29,192,29,192,57,192,113,192,113,192,225,192,255,240, - 255,240,255,240,1,192,1,192,1,192,1,192,11,17,34,13, - 1,0,255,192,255,192,255,192,224,0,224,0,224,0,239,128, - 255,192,241,224,224,224,0,224,0,224,224,224,225,224,255,192, - 127,128,63,0,11,17,34,13,1,0,15,0,63,192,57,224, - 112,224,96,0,224,0,239,128,255,192,241,224,224,224,224,224, - 224,224,224,224,96,224,113,192,63,128,31,0,11,17,34,13, - 1,0,255,224,255,224,255,224,0,224,1,224,1,192,3,192, - 3,128,7,128,7,128,7,0,15,0,14,0,30,0,28,0, - 60,0,60,0,11,17,34,13,1,0,31,0,127,192,241,224, - 224,224,224,224,224,224,113,192,63,128,63,128,113,192,224,224, - 224,224,224,224,224,224,241,224,127,192,31,0,11,17,34,13, - 1,0,31,0,63,128,113,192,224,192,224,224,224,224,224,224, - 241,224,127,224,62,224,0,224,0,224,224,224,225,192,113,192, - 127,128,30,0,3,12,12,7,3,0,224,224,224,0,0,0, - 0,0,0,224,224,224,5,14,14,8,1,254,56,56,56,0, - 0,0,0,0,56,56,112,112,96,224,14,12,24,24,5,1, - 0,12,0,60,1,224,7,0,60,0,224,0,224,0,60,0, - 7,0,1,224,0,60,0,12,14,6,12,24,5,4,255,252, - 255,252,0,0,0,0,255,252,255,252,14,12,24,24,5,1, - 192,0,240,0,30,0,3,128,0,240,0,28,0,28,0,240, - 3,128,30,0,240,0,192,0,10,17,34,12,1,0,62,0, - 127,128,227,128,193,192,1,192,1,192,3,128,7,128,14,0, - 28,0,24,0,24,0,24,0,0,0,0,0,24,0,24,0, - 22,22,66,24,1,251,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,240,120,247,120,121,255,56,113,207,60,243,135, - 28,227,135,28,227,135,28,227,135,28,227,135,28,227,207,56, - 241,255,248,113,251,240,120,113,224,60,0,0,31,0,0,15, - 255,0,7,255,0,0,255,0,16,17,34,16,0,0,3,192, - 3,192,3,224,7,224,7,240,15,112,14,112,14,120,30,56, - 28,56,28,60,63,252,63,252,127,254,120,14,112,15,240,7, - 12,17,34,15,2,0,255,192,255,224,255,240,224,240,224,112, - 224,112,224,224,255,192,255,192,224,224,224,112,224,112,224,112, - 224,240,255,240,255,224,255,128,14,17,34,16,1,0,15,192, - 31,240,63,248,120,120,112,60,240,60,224,0,224,0,224,0, - 224,0,224,0,224,0,112,60,112,60,56,120,31,240,15,192, - 14,17,34,17,2,0,255,0,255,224,255,240,224,248,224,56, - 224,60,224,28,224,28,224,28,224,28,224,28,224,60,224,56, - 224,248,255,240,255,224,255,128,11,17,34,15,2,0,255,224, - 255,224,255,224,224,0,224,0,224,0,224,0,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 11,17,34,14,2,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,255,192,255,192,255,192,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,15,17,34,18,1,0,7,224, - 31,248,63,252,124,30,112,14,240,14,224,0,224,0,224,254, - 224,254,224,254,240,14,112,14,124,14,63,254,31,254,3,248, - 13,17,34,17,2,0,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,255,248,255,248,255,248,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,3,17,17,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 17,34,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,224,224,224,224,240, - 224,255,192,127,192,63,0,13,17,34,16,2,0,224,240,224, - 224,225,224,227,192,231,128,239,0,239,0,254,0,254,0,239, - 0,231,128,231,128,227,192,225,224,225,240,224,240,224,120,11, - 17,34,14,2,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,224,255,224,255,224,18,17,51,22,2,0,252,7,192, - 252,15,192,252,15,192,252,15,192,238,31,192,238,29,192,238, - 29,192,231,61,192,231,57,192,231,57,192,231,185,192,227,241, - 192,227,241,192,227,241,192,225,241,192,225,225,192,225,225,192, - 14,17,34,18,2,0,248,28,248,28,252,28,252,28,238,28, - 238,28,231,28,231,28,231,156,227,156,227,220,225,220,225,220, - 224,252,224,252,224,124,224,124,15,17,34,17,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,240,14,112,28,120,60,63,248,31,240,7,224, - 12,17,34,15,2,0,255,128,255,192,255,224,224,240,224,112, - 224,112,224,112,224,240,255,224,255,192,255,0,224,0,224,0, - 224,0,224,0,224,0,224,0,17,17,51,19,1,0,7,192, - 0,31,240,0,63,248,0,120,60,0,112,28,0,240,30,0, - 224,14,0,224,14,0,224,14,0,224,14,0,224,14,0,240, - 14,0,112,28,0,120,60,0,63,255,128,31,255,128,7,255, - 128,13,17,34,16,2,0,255,192,255,240,255,248,224,120,224, - 56,224,56,224,112,255,224,255,192,255,240,224,240,224,112,224, - 120,224,56,224,56,224,56,224,56,13,17,34,15,1,0,15, - 192,63,224,56,240,112,112,112,0,120,0,126,0,63,192,31, - 240,3,240,0,120,224,56,224,56,240,120,127,240,63,224,15, - 128,13,17,34,15,1,0,255,248,255,248,255,248,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,17,34,18,2,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,240,60,120,120,127,248,63,240,15, - 192,17,17,51,17,0,0,240,7,128,112,7,0,120,15,0, - 120,14,0,56,30,0,60,30,0,28,28,0,30,60,0,30, - 60,0,14,56,0,15,120,0,15,112,0,7,112,0,7,240, - 0,7,224,0,3,224,0,3,224,0,23,17,51,23,0,0, - 240,56,30,112,124,28,112,124,28,120,124,60,120,108,60,56, - 238,56,56,238,56,56,238,56,60,198,120,29,199,112,29,199, - 112,29,199,112,29,131,112,15,131,224,15,131,224,15,131,224, - 15,1,224,14,17,34,16,1,0,240,60,120,56,120,120,60, - 112,28,224,31,224,15,192,7,128,7,128,15,192,31,192,29, - 224,56,240,120,112,112,120,240,60,224,60,13,17,34,15,1, - 0,224,56,240,120,112,112,120,240,56,224,61,224,29,192,31, - 192,15,128,15,128,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,12,17,34,14,1,0,255,240,255,240,255,240,1, - 240,1,224,3,192,7,128,7,128,15,0,30,0,60,0,60, - 0,120,0,240,0,255,240,255,240,255,240,5,22,22,9,2, - 251,248,248,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,7,18,18,10,1,255,192,224,96, - 96,112,48,48,56,24,24,24,28,12,12,14,6,6,6,5, - 22,22,9,2,251,248,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,248,248,11,14,28,23,6, - 0,4,0,14,0,10,0,27,0,17,0,17,0,49,128,32, - 128,32,128,96,192,64,64,192,96,128,32,128,32,12,2,4, - 12,0,253,255,240,255,240,4,4,4,6,0,14,224,96,48, - 48,10,12,24,13,1,0,31,0,127,128,113,192,1,192,31, - 192,127,192,241,192,225,192,225,192,243,192,127,192,60,192,12, - 17,34,14,1,0,224,0,224,0,224,0,224,0,224,0,239, - 128,255,192,241,224,240,240,224,112,224,112,224,112,224,112,240, - 240,248,224,255,192,231,128,10,12,24,12,1,0,31,0,127, - 128,115,192,225,192,224,0,224,0,224,0,225,192,225,192,115, - 192,127,128,31,0,12,17,34,14,1,0,0,112,0,112,0, - 112,0,112,0,112,31,112,63,240,120,240,240,240,224,112,224, - 112,224,112,224,112,240,240,113,240,63,240,30,112,11,12,24, - 13,1,0,31,0,63,128,113,192,225,224,255,224,255,224,224, - 0,224,0,225,192,113,192,127,192,31,0,8,17,17,9,1, - 0,31,63,56,56,56,255,255,56,56,56,56,56,56,56,56, - 56,56,12,17,34,14,1,251,31,112,63,240,120,240,240,240, - 224,112,224,112,224,112,224,112,240,240,112,240,127,240,30,112, - 0,112,112,112,120,224,63,224,31,128,11,17,34,13,1,0, - 224,0,224,0,224,0,224,0,224,0,239,128,255,192,241,224, - 240,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,3,17,17,5,1,0,224,224,224,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,4,22,22,7,2,251,112, - 112,112,0,0,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,240,240,224,11,17,34,12,1,0,224,0,224,0,224, - 0,224,0,224,0,227,192,227,128,231,0,239,0,254,0,254, - 0,238,0,239,0,231,128,231,128,227,192,225,224,3,17,17, - 6,1,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,19,12,36,21,1,0,231,143,128,239,223,192, - 249,241,224,240,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,11,12, - 24,13,1,0,239,128,255,192,241,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,12,12,24,14, - 1,0,31,128,63,192,112,224,240,224,224,112,224,112,224,112, - 224,112,240,240,112,224,63,192,31,128,12,17,34,14,1,251, - 231,128,255,192,248,224,240,240,224,112,224,112,224,112,224,112, - 240,240,241,224,255,192,239,128,224,0,224,0,224,0,224,0, - 224,0,12,17,34,14,1,251,30,112,63,240,113,240,240,240, - 224,112,224,112,224,112,224,112,240,240,120,240,63,240,31,112, - 0,112,0,112,0,112,0,112,0,112,7,12,12,9,1,0, - 238,238,254,240,240,224,224,224,224,224,224,224,10,12,24,12, - 1,0,63,0,127,128,241,192,225,192,248,0,127,0,31,128, - 3,192,225,192,227,192,127,128,63,0,8,15,15,10,1,0, - 24,56,56,255,255,56,56,56,56,56,56,56,60,63,15,11, - 12,24,13,1,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,241,224,127,224,62,224,12,12,24, - 13,0,0,240,112,112,240,112,224,120,224,56,224,57,192,29, - 192,29,192,31,128,15,128,15,128,15,0,19,12,36,20,0, - 0,240,240,224,112,240,224,113,240,224,113,249,192,57,249,192, - 59,185,192,59,159,192,63,159,128,31,31,128,31,15,128,31, - 15,0,15,15,0,11,12,24,13,1,0,241,224,113,192,123, - 128,63,128,31,0,30,0,31,0,63,128,123,128,115,192,241, - 192,225,224,12,17,34,12,0,251,240,112,112,240,120,224,56, - 224,57,224,61,192,29,192,29,192,31,128,15,128,15,128,7, - 0,7,0,15,0,14,0,14,0,30,0,10,12,24,12,1, - 0,255,128,255,128,7,128,7,0,14,0,30,0,60,0,56, - 0,112,0,224,0,255,192,255,192,9,23,46,12,2,250,7, - 128,15,128,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,60,0,248,0,224,0,248,0,60,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,15,128,7,128,2,25,25, - 8,3,250,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,23,23,12, - 2,250,224,240,56,56,56,56,56,56,56,28,31,7,31,28, - 56,56,56,56,56,56,56,248,224,12,3,6,12,0,5,60, - 48,127,240,227,192,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=18 dx=28 dy= 0 ascent=29 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =29 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20[8916] U8G_FONT_SECTION("u8g_font_fub20") = { - 0,40,36,254,249,20,4,242,11,37,32,255,251,29,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,8,0,0,4,19,19,10, - 3,251,240,240,240,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,12,20,40,16,2,253,0,192,0,192,0, - 128,15,128,63,224,125,224,115,240,243,240,242,0,242,0,246, - 0,244,0,244,240,124,240,121,224,63,224,31,128,24,0,16, - 0,48,0,14,20,40,15,1,0,7,224,31,248,62,120,60, - 60,60,60,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,255,252,255, - 252,15,14,28,17,1,5,192,6,99,204,55,248,28,48,24, - 24,48,12,48,12,48,12,48,12,24,24,28,48,63,248,99, - 204,192,6,15,20,40,17,1,0,240,30,240,62,120,60,120, - 124,56,120,60,120,252,254,254,254,31,224,15,224,15,192,255, - 254,255,254,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,1,25,25,9,4,251,128,128,128,128,128,128,128,128,128, - 128,128,0,0,0,128,128,128,128,128,128,128,128,128,128,128, - 11,24,48,13,1,252,31,128,63,192,121,192,240,64,240,0, - 248,0,124,0,63,0,63,128,127,192,243,224,225,224,225,192, - 243,192,255,128,126,0,31,128,7,192,3,224,1,224,1,192, - 195,192,255,128,127,0,9,3,6,9,0,17,227,128,227,128, - 227,128,20,20,60,24,2,0,1,248,0,7,254,0,31,15, - 128,60,3,192,49,252,192,99,254,224,103,158,96,199,15,48, - 207,0,48,207,0,48,207,0,48,207,15,48,199,14,48,103, - 158,96,99,252,96,49,248,192,56,1,192,30,7,128,7,254, - 0,1,248,0,9,13,26,11,1,7,62,0,127,128,99,128, - 3,128,63,128,115,128,227,128,227,128,255,128,125,128,0,0, - 0,0,255,128,14,11,22,16,1,2,30,60,28,56,60,120, - 120,240,120,240,241,224,120,240,56,240,60,120,28,56,30,60, - 15,6,12,17,1,6,255,254,255,254,0,6,0,6,0,6, - 0,6,255,20,20,60,24,2,0,1,248,0,7,254,0,31, - 15,128,60,3,192,51,252,192,99,254,224,99,14,96,195,6, - 48,195,28,48,195,248,48,195,252,48,195,12,48,195,14,48, - 99,6,96,99,6,96,51,6,192,56,1,192,30,7,128,7, - 254,0,1,248,0,9,2,4,9,0,18,255,128,255,128,6, - 6,6,8,1,14,120,204,132,132,204,120,16,16,32,26,5, - 0,1,128,1,128,1,128,1,128,255,255,255,255,1,128,1, - 128,1,128,1,128,1,128,0,0,0,0,0,0,255,255,255, - 255,9,11,22,11,1,9,62,0,127,0,227,128,3,128,7, - 0,15,0,30,0,56,0,112,0,255,0,255,0,8,11,11, - 10,1,9,60,254,231,7,30,30,7,7,231,254,124,6,5, - 5,6,1,16,60,56,112,96,192,255,13,24,48,15,1,252, - 31,248,62,96,126,96,254,96,254,96,254,96,254,96,126,96, - 126,96,30,96,6,96,6,96,6,96,6,96,6,96,6,96, - 6,96,6,96,6,96,6,96,6,96,6,96,6,96,6,96, - 4,4,4,8,2,8,240,240,240,240,7,6,6,7,1,249, - 32,60,14,6,254,252,5,11,11,8,2,9,56,248,248,56, - 56,56,56,56,56,56,56,10,13,26,12,1,7,30,0,127, - 128,115,128,225,192,225,192,225,192,225,192,99,128,127,128,30, - 0,0,0,0,0,255,192,13,11,22,16,2,2,225,192,241, - 224,112,224,120,240,120,240,60,120,120,240,120,240,113,224,241, - 224,225,192,19,20,60,22,2,0,56,7,0,248,14,0,184, - 14,0,56,28,0,56,28,0,56,56,0,56,48,0,56,112, - 0,56,224,0,56,227,192,57,195,192,1,199,192,3,143,192, - 3,13,192,7,29,192,14,57,192,14,63,224,28,63,224,28, - 1,192,56,1,192,19,20,60,21,1,0,56,6,0,248,14, - 0,184,12,0,56,28,0,56,24,0,56,48,0,56,112,0, - 56,96,0,56,224,0,56,199,128,57,207,224,3,156,224,3, - 0,224,7,1,224,6,1,192,14,3,128,28,7,0,28,30, - 0,56,31,224,48,31,224,20,20,60,22,1,0,124,1,192, - 230,3,128,231,3,0,7,7,0,30,14,0,30,14,0,7, - 28,0,231,24,0,231,56,0,126,49,224,24,115,224,0,227, - 224,0,199,224,1,198,224,1,140,224,3,156,224,3,31,240, - 7,31,240,14,0,224,12,0,224,12,19,38,15,1,251,7, - 128,7,128,7,128,0,0,0,0,7,0,7,0,7,0,14, - 0,28,0,56,0,112,0,240,0,240,0,240,112,240,112,127, - 240,63,224,15,128,19,28,84,19,0,0,7,0,0,3,128, - 0,1,128,0,1,192,0,0,192,0,0,96,0,0,0,0, - 0,0,0,1,240,0,1,240,0,1,248,0,3,248,0,3, - 248,0,3,188,0,7,188,0,7,156,0,15,30,0,15,30, - 0,15,30,0,30,15,0,30,15,0,31,255,128,63,255,128, - 63,255,128,56,3,192,120,3,192,120,3,192,240,1,224,19, - 28,84,19,0,0,0,28,0,0,56,0,0,56,0,0,112, - 0,0,96,0,0,192,0,0,0,0,0,0,0,1,240,0, - 1,240,0,1,248,0,3,248,0,3,248,0,3,188,0,7, - 188,0,7,156,0,15,30,0,15,30,0,15,30,0,30,15, - 0,30,15,0,31,255,128,63,255,128,63,255,128,56,3,192, - 120,3,192,120,3,192,240,1,224,19,28,84,19,0,0,0, - 224,0,1,240,0,1,240,0,3,184,0,3,24,0,6,12, - 0,0,0,0,0,0,0,1,240,0,1,240,0,1,248,0, - 3,248,0,3,248,0,3,188,0,7,188,0,7,156,0,15, - 30,0,15,30,0,15,30,0,30,15,0,30,15,0,31,255, - 128,63,255,128,63,255,128,56,3,192,120,3,192,120,3,192, - 240,1,224,19,26,78,19,0,0,1,204,0,3,248,0,6, - 120,0,0,0,0,0,0,0,0,0,0,1,240,0,1,240, - 0,1,248,0,3,248,0,3,248,0,3,188,0,7,188,0, - 7,156,0,15,30,0,15,30,0,15,30,0,30,15,0,30, - 15,0,31,255,128,63,255,128,63,255,128,56,3,192,120,3, - 192,120,3,192,240,1,224,19,26,78,19,0,0,7,28,0, - 7,28,0,7,28,0,0,0,0,0,0,0,0,0,0,1, - 240,0,1,240,0,3,248,0,3,248,0,3,248,0,7,188, - 0,7,188,0,7,60,0,15,30,0,15,30,0,30,31,0, - 30,15,0,30,15,0,63,255,128,63,255,128,63,255,128,120, - 3,192,120,3,192,112,3,192,240,1,224,19,29,87,19,0, - 0,0,224,0,1,240,0,3,24,0,3,24,0,3,24,0, - 1,240,0,0,224,0,0,0,0,0,0,0,1,240,0,1, - 240,0,3,240,0,3,248,0,3,248,0,7,188,0,7,188, - 0,7,60,0,15,30,0,15,30,0,30,30,0,30,15,0, - 30,15,0,63,255,128,63,255,128,63,255,128,120,3,192,120, - 3,192,240,3,192,240,1,224,25,20,80,26,0,0,0,63, - 255,128,0,63,255,128,0,127,0,0,0,127,0,0,0,255, - 0,0,1,239,0,0,1,239,0,0,3,207,0,0,3,207, - 255,128,7,143,255,128,7,143,255,128,15,15,0,0,15,255, - 0,0,31,255,0,0,31,255,0,0,60,15,0,0,56,15, - 0,0,120,15,255,128,112,15,255,128,240,15,255,128,17,27, - 81,19,1,249,7,240,0,15,252,0,63,254,0,60,31,0, - 120,31,0,112,15,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,15,128,112,15, - 0,120,31,0,60,63,0,63,254,0,15,252,0,3,240,0, - 0,128,0,0,224,0,0,240,0,0,48,0,0,48,0,3, - 240,0,0,128,0,13,28,56,17,2,0,60,0,28,0,14, - 0,6,0,7,0,3,0,0,0,0,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,240,0,240,0,240,0,240,0,240,0,240,0,255,248,255, - 248,255,248,13,28,56,17,2,0,1,224,1,192,3,128,3, - 0,6,0,6,0,0,0,0,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,240, - 0,240,0,240,0,240,0,240,0,240,0,255,248,255,248,255, - 248,13,28,56,17,2,0,15,0,15,128,13,128,29,192,24, - 192,48,96,0,0,0,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,255,248,255,248,255,248,240,0,240, - 0,240,0,240,0,240,0,240,0,255,248,255,248,255,248,13, - 26,52,17,2,0,56,224,56,224,56,224,0,0,0,0,0, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,255,248,255,248,255,248,240,0,240,0,240,0,240,0,240, - 0,240,0,255,248,255,248,255,248,7,28,28,8,255,0,240, - 112,56,24,28,12,0,0,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,6,28,28,7,2, - 0,28,56,48,112,96,192,0,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,8,28,28, - 8,0,0,60,60,126,102,198,195,0,0,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,9, - 26,52,9,0,0,227,128,227,128,227,128,0,0,0,0,0, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,18,20,60,19,0,0,63, - 224,0,63,252,0,63,254,0,60,31,0,60,15,128,60,7, - 128,60,3,192,60,3,192,60,3,192,255,195,192,255,195,192, - 60,3,192,60,3,192,60,3,192,60,7,128,60,15,128,60, - 31,0,63,254,0,63,252,0,63,224,0,17,26,78,21,2, - 0,7,152,0,7,248,0,12,240,0,0,0,0,0,0,0, - 0,0,0,252,7,128,252,7,128,254,7,128,254,7,128,255, - 7,128,255,7,128,247,135,128,247,135,128,243,199,128,243,199, - 128,241,231,128,241,231,128,240,247,128,240,247,128,240,127,128, - 240,127,128,240,63,128,240,63,128,240,31,128,240,31,128,18, - 28,84,20,1,0,14,0,0,7,0,0,3,128,0,1,128, - 0,0,192,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,31,254,0,62,31,0,120,7,128,120,7,128,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,120,7,128,120,7,128,62,31,0, - 31,254,0,15,252,0,3,240,0,18,28,84,20,1,0,0, - 60,0,0,56,0,0,112,0,0,96,0,0,192,0,0,0, - 0,0,0,0,0,0,0,3,240,0,15,252,0,31,254,0, - 62,31,0,120,7,128,120,7,128,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,120,7,128,120,7,128,62,31,0,31,254,0,15,252,0, - 3,240,0,18,28,84,20,1,0,1,224,0,3,240,0,3, - 240,0,7,56,0,6,24,0,0,0,0,0,0,0,0,0, - 0,3,240,0,15,252,0,31,254,0,62,31,0,120,7,128, - 120,7,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,120,7,128,120,7, - 128,62,31,0,31,254,0,15,252,0,3,240,0,18,27,81, - 20,1,0,0,8,0,7,248,0,7,248,0,4,0,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,31,254, - 0,62,31,0,120,7,128,120,7,128,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,120,7,128,120,7,128,62,31,0,31,254,0,15,252, - 0,3,240,0,18,27,81,20,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 240,0,15,252,0,31,254,0,62,31,0,120,7,128,120,7, - 128,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,120,7,128,120,7,128,62, - 31,0,31,254,0,15,252,0,3,240,0,15,14,28,27,6, - 2,192,6,96,12,48,24,24,48,12,96,6,192,3,128,3, - 128,6,192,12,96,24,48,48,24,96,12,64,4,20,22,66, - 20,0,255,0,0,32,1,252,112,7,255,224,15,255,192,31, - 15,128,60,3,192,60,7,192,120,15,224,120,29,224,120,57, - 224,120,113,224,120,225,224,121,193,224,123,129,224,127,1,224, - 62,3,192,60,3,192,31,15,128,63,255,0,127,254,0,227, - 248,0,64,0,0,17,28,84,21,2,0,30,0,0,14,0, - 0,7,0,0,3,128,0,1,128,0,0,0,0,0,0,0, - 0,0,0,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,0,240,15,0, - 120,15,0,124,30,0,63,254,0,31,248,0,7,224,0,17, - 28,84,21,2,0,0,60,0,0,120,0,0,112,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,0,240,15,0,120,15,0,124,30,0, - 63,254,0,31,248,0,7,224,0,17,28,84,21,2,0,3, - 192,0,3,224,0,7,224,0,14,112,0,12,56,0,0,0, - 0,0,0,0,0,0,0,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 0,240,15,0,120,15,0,124,30,0,63,254,0,31,248,0, - 7,224,0,17,27,81,20,2,0,14,56,0,14,56,0,14, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,0,240,15,0,120,15,0,124,30, - 0,63,254,0,31,248,0,7,224,0,16,27,54,17,1,0, - 0,112,0,224,0,192,1,128,0,0,0,0,0,0,240,31, - 248,30,120,30,124,60,60,60,60,120,30,120,30,240,15,240, - 15,224,7,224,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,14,20,40,17,1,0,240,0,240,0, - 240,0,240,0,255,192,255,240,255,248,240,124,240,60,240,60, - 240,60,240,124,255,248,255,240,255,192,240,0,240,0,240,0, - 240,0,240,0,14,20,40,16,1,0,31,128,127,224,121,240, - 240,240,240,240,240,240,241,224,243,192,247,128,247,128,247,128, - 243,224,241,240,240,248,240,60,240,60,255,60,255,188,247,248, - 243,240,12,22,44,15,1,0,120,0,56,0,28,0,12,0, - 6,0,2,0,0,0,0,0,31,128,63,224,121,240,112,240, - 0,240,63,240,127,240,248,240,240,240,240,240,240,240,251,240, - 127,112,62,112,12,22,44,15,1,0,1,224,1,192,3,128, - 3,0,7,0,6,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,31,240,127,240,120,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,22,44,15,1,0,15,0,15,128, - 31,128,25,192,56,192,48,96,0,0,0,0,31,128,63,224, - 121,240,112,240,0,240,63,240,127,240,248,240,240,240,240,240, - 240,240,251,240,127,112,62,112,12,20,40,15,1,0,31,192, - 63,192,48,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,21,42,15,1,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,31,128,63,224,121,240, - 112,240,0,240,63,240,127,240,248,240,240,240,240,240,240,240, - 251,240,127,112,62,112,12,23,46,15,1,0,7,0,31,128, - 24,192,24,192,31,128,15,0,0,0,0,0,0,0,31,128, - 63,224,121,240,112,240,0,240,63,240,127,240,248,240,240,240, - 240,240,240,240,251,240,127,112,62,112,22,14,42,24,1,0, - 15,135,192,63,207,240,124,252,248,112,120,56,0,120,56,31, - 255,252,127,255,252,120,120,0,240,120,0,240,120,0,240,252, - 56,249,222,248,127,143,240,30,7,224,12,21,42,14,1,249, - 31,128,63,224,121,224,112,224,240,240,240,0,240,0,240,0, - 240,0,240,240,240,224,121,224,63,192,31,128,4,0,7,0, - 7,128,0,192,0,192,31,128,4,0,13,22,44,15,1,0, - 56,0,56,0,28,0,12,0,6,0,2,0,0,0,0,0, - 15,128,63,224,121,240,112,240,240,240,255,240,255,248,240,0, - 240,0,240,240,112,240,121,240,63,224,31,128,13,22,44,15, - 1,0,1,224,1,192,3,128,3,0,6,0,6,0,0,0, - 0,0,15,128,63,224,121,240,112,240,240,240,255,240,255,248, - 240,0,240,0,240,240,112,240,121,240,63,224,31,128,13,22, - 44,15,1,0,15,0,15,0,31,128,25,128,56,192,48,192, - 0,0,0,0,15,128,63,224,121,240,112,240,240,240,255,240, - 255,248,240,0,240,0,240,240,112,240,121,240,63,224,31,128, - 13,21,42,15,1,0,56,224,56,224,56,224,0,0,0,0, - 0,0,0,0,15,128,63,224,121,240,112,112,240,112,255,240, - 255,248,240,0,240,0,240,112,112,112,125,240,63,224,31,128, - 6,22,22,7,0,0,224,240,112,56,24,12,0,0,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,6,22,22,6, - 2,0,60,56,112,96,192,192,0,0,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,9,22,44,7,255,0,30,0, - 62,0,63,0,115,0,99,128,193,128,0,0,0,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,9,20,40,7,255,0, - 227,128,227,128,227,128,0,0,0,0,0,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,14,20,40,16,1,0,14,24, - 15,240,3,192,15,192,60,224,48,240,15,240,63,248,124,248, - 120,60,240,60,240,60,240,60,240,60,240,60,240,60,120,56, - 124,248,63,240,15,192,13,20,40,16,2,0,30,96,63,192, - 55,128,0,0,0,0,0,0,247,192,255,240,253,240,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,14,22,44,16,1,0,60,0,28,0,14,0, - 6,0,3,0,3,0,0,0,0,0,15,192,63,224,124,240, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,120,120, - 124,248,63,240,15,192,14,22,44,16,1,0,0,240,0,224, - 1,192,1,128,3,0,3,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,22,44,16,1,0,7,128, - 7,128,15,192,12,192,24,96,24,96,0,0,0,0,15,192, - 63,224,124,240,120,120,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,124,248,63,240,15,192,14,20,40,16,1,0, - 15,224,31,224,24,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,14,21,42,16,1,0,28,224, - 28,224,28,224,0,0,0,0,0,0,0,0,15,192,63,224, - 124,240,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,124,248,63,240,15,192,16,12,24,26,5,2,1,192, - 3,192,1,192,0,0,0,0,255,255,255,255,0,0,0,0, - 1,192,3,192,1,192,14,18,36,16,1,254,0,8,0,28, - 15,248,63,240,124,240,120,248,241,252,241,188,243,60,246,60, - 254,60,252,60,120,120,60,248,127,240,239,192,192,0,128,0, - 13,22,44,16,2,0,56,0,60,0,28,0,14,0,6,0, - 3,0,0,0,0,0,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,248,249,248,127,248, - 62,120,13,22,44,16,2,0,1,224,1,192,3,128,3,0, - 7,0,6,0,0,0,0,0,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,248,249,248, - 127,248,62,120,13,22,44,16,2,0,15,0,15,128,31,128, - 29,192,56,192,48,96,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,13,21,42,16,2,0,56,224,56,224, - 56,224,0,0,0,0,0,0,0,0,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,248, - 249,248,127,248,62,120,14,27,54,15,0,251,0,112,0,240, - 0,224,0,192,1,128,0,0,0,0,0,0,120,28,120,60, - 60,60,60,56,60,120,30,120,30,112,14,240,15,240,15,224, - 7,224,7,224,3,192,3,192,3,128,39,128,255,128,127,0, - 62,0,14,25,50,17,2,251,240,0,240,0,240,0,240,0, - 240,0,240,0,247,192,255,240,253,240,248,120,240,56,240,60, - 240,60,240,60,240,60,240,120,240,120,253,240,255,240,247,192, - 240,0,240,0,240,0,240,0,240,0,15,26,52,15,0,251, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,248,30, - 120,60,120,60,60,56,60,120,60,120,30,112,30,240,15,240, - 15,224,15,224,7,224,7,192,3,192,7,128,7,128,7,128, - 15,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=16 h=21 x= 5 y= 9 dx=26 dy= 0 ascent=20 len=40 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20n[603] U8G_FONT_SECTION("u8g_font_fub20n") = { - 0,40,36,254,249,20,0,0,0,0,42,58,0,20,252,20, - 0,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--27-270-72-72-P-136-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=27 h=29 x= 7 y=16 dx=28 dy= 0 ascent=22 len=100 - Font Bounding box w=40 h=36 x=-2 y=-7 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub20r[4022] U8G_FONT_SECTION("u8g_font_fub20r") = { - 0,40,36,254,249,20,4,242,11,37,32,127,251,22,249,20, - 251,0,0,0,8,0,0,4,20,20,11,4,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,0,0,0,240,240, - 240,10,8,16,14,2,12,243,192,243,192,243,192,243,192,243, - 192,225,192,225,192,97,128,17,20,60,19,1,0,1,199,0, - 1,134,0,3,142,0,3,142,0,3,142,0,31,255,128,63, - 255,128,7,28,0,6,24,0,14,56,0,14,56,0,14,48, - 0,127,254,0,255,254,0,28,112,0,24,96,0,56,224,0, - 56,224,0,56,224,0,49,192,0,14,24,48,16,1,253,1, - 0,7,192,31,240,63,248,125,120,113,60,241,60,241,0,253, - 0,127,0,63,224,31,240,3,248,1,124,1,60,241,60,241, - 60,249,60,127,248,63,240,31,224,1,0,1,0,1,0,25, - 20,80,27,1,0,31,0,96,0,63,128,224,0,123,192,192, - 0,225,193,192,0,224,227,128,0,224,227,0,0,224,231,0, - 0,224,230,0,0,113,206,0,0,127,204,124,0,63,28,254, - 0,0,57,199,0,0,59,131,0,0,115,131,128,0,99,131, - 128,0,227,131,128,1,195,135,128,1,193,239,0,3,128,254, - 0,3,128,124,0,19,20,60,21,1,0,15,192,0,31,240, - 0,60,240,0,120,120,0,120,120,0,120,112,0,60,240,0, - 63,224,0,31,192,0,31,128,0,63,135,128,123,199,128,249, - 231,128,240,247,0,240,127,0,240,63,0,240,30,0,124,127, - 0,63,255,128,15,227,224,4,8,8,11,4,12,240,224,224, - 224,224,224,224,224,6,24,24,10,2,252,28,56,56,120,120, - 112,112,240,240,240,240,240,240,240,240,240,240,112,112,120,120, - 56,56,28,6,24,24,11,3,252,224,240,112,112,120,120,120, - 56,56,60,60,60,60,60,60,56,56,120,120,120,112,112,240, - 224,11,11,22,17,3,9,17,0,59,128,59,128,27,0,238, - 224,255,224,206,96,27,0,59,128,59,128,17,0,16,16,32, - 26,5,0,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,255,255,255,255,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,6,7,7,8,1,252,60,56,56,112,112,112,224, - 7,4,4,9,1,5,254,254,254,254,4,4,4,9,3,0, - 240,240,240,240,8,21,21,12,2,255,7,7,7,6,14,14, - 12,28,28,24,56,56,56,48,112,112,96,224,224,224,192,14, - 20,40,15,1,0,15,128,31,224,60,240,120,112,112,56,240, - 56,240,56,240,60,240,60,240,60,240,60,240,60,240,60,240, - 56,240,56,112,56,120,120,60,240,31,224,15,128,8,20,20, - 15,3,0,15,63,127,255,239,207,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,14,20,40,15,1,0,7,192,31, - 240,63,248,124,120,120,60,120,60,0,60,0,120,0,120,0, - 240,1,240,3,224,7,192,15,128,31,0,124,0,248,0,255, - 252,255,252,255,252,13,20,40,15,1,0,15,128,63,224,127, - 240,248,240,240,120,0,120,0,120,0,240,15,224,15,128,15, - 224,0,240,0,120,0,120,240,120,240,120,248,240,127,240,63, - 224,31,128,14,20,40,15,1,0,1,240,3,240,3,240,7, - 240,7,240,14,240,30,240,28,240,60,240,56,240,120,240,112, - 240,240,240,255,252,255,252,255,252,0,240,0,240,0,240,0, - 240,13,20,40,15,1,0,255,240,255,240,255,240,240,0,240, - 0,240,0,240,0,247,192,255,224,253,240,240,120,240,120,0, - 120,0,120,0,120,240,120,240,240,127,240,63,224,31,128,13, - 20,40,15,1,0,15,192,31,224,63,240,120,120,120,120,112, - 0,240,0,247,192,239,224,253,240,248,120,240,120,240,120,240, - 120,240,120,112,120,120,240,63,240,63,224,15,128,13,20,40, - 15,1,0,255,248,255,248,255,248,0,120,0,120,0,240,0, - 240,1,224,1,224,1,224,3,192,3,192,7,128,7,128,15, - 128,15,0,31,0,30,0,30,0,62,0,14,20,40,15,1, - 0,31,192,63,240,127,240,120,248,240,120,240,120,240,120,120, - 240,63,224,31,192,63,240,120,120,240,56,240,60,240,60,240, - 60,248,120,127,248,63,240,31,192,13,20,40,15,1,0,15, - 128,63,192,127,224,120,240,240,112,240,120,240,120,240,120,240, - 120,120,248,127,184,63,56,0,120,0,120,0,112,240,240,120, - 240,127,224,63,192,15,128,4,14,14,9,4,0,240,240,240, - 240,0,0,0,0,0,0,240,240,240,240,6,17,17,8,1, - 253,60,60,60,60,0,0,0,0,0,0,60,56,120,112,112, - 224,224,16,14,28,26,5,1,0,3,0,31,0,120,3,192, - 15,0,120,0,224,0,224,0,60,0,7,128,1,224,0,60, - 0,15,0,1,16,7,14,26,5,5,255,255,255,255,0,0, - 0,0,0,0,255,255,255,255,16,14,28,26,5,1,192,0, - 248,0,30,0,3,192,0,240,0,30,0,7,0,7,0,60, - 1,224,7,128,60,0,240,0,128,0,13,20,40,15,1,0, - 31,128,63,224,121,240,240,112,32,120,0,120,0,112,0,240, - 1,224,3,192,7,128,14,0,14,0,14,0,14,0,0,0, - 0,0,15,0,15,0,15,0,26,25,100,28,1,251,0,63, - 128,0,1,255,240,0,7,255,252,0,15,224,254,0,31,0, - 31,0,62,0,15,0,60,61,231,128,120,255,231,128,121,247, - 227,192,241,225,227,192,241,193,227,192,243,193,227,192,243,193, - 227,192,243,193,227,192,243,193,227,192,241,193,227,128,113,227, - 231,128,120,255,255,0,124,254,255,0,60,60,60,0,31,0, - 0,0,15,192,32,0,7,255,224,0,1,255,224,0,0,127, - 224,0,19,20,60,19,0,0,1,240,0,1,240,0,1,248, - 0,3,248,0,3,248,0,3,188,0,7,188,0,7,156,0, - 15,30,0,15,30,0,15,30,0,30,15,0,30,15,0,31, - 255,128,63,255,128,63,255,128,56,3,192,120,3,192,120,3, - 192,240,1,224,15,20,40,18,2,0,255,224,255,240,255,248, - 240,124,240,60,240,60,240,56,240,120,255,240,255,192,255,248, - 240,60,240,28,240,30,240,30,240,30,240,60,255,252,255,248, - 255,224,17,20,60,19,1,0,7,240,0,15,252,0,63,254, - 0,60,31,0,120,15,0,112,15,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 15,128,112,15,0,120,31,0,60,62,0,63,254,0,31,248, - 0,7,224,0,16,20,40,19,2,0,255,128,255,240,255,248, - 240,124,240,62,240,30,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,240,30,240,62,240,124,255,248,255,240, - 255,128,13,20,40,17,2,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,255,248,255,248,255,248,240,0, - 240,0,240,0,240,0,240,0,240,0,255,248,255,248,255,248, - 13,20,40,16,2,0,255,248,255,248,255,248,240,0,240,0, - 240,0,240,0,240,0,255,240,255,240,255,240,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,18,20, - 60,20,1,0,1,248,0,15,254,0,31,255,0,62,15,128, - 124,3,128,120,3,192,112,0,0,240,0,0,240,0,0,240, - 63,192,240,63,192,240,63,192,240,3,192,240,3,192,120,3, - 192,124,3,192,63,3,192,31,255,192,15,255,192,1,254,0, - 16,20,40,20,2,0,240,15,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,255,255,255,255,255,255,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,4,20, - 20,8,2,0,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,14,20,40,17,1,0,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,240,60,240,56,248,120, - 127,240,127,224,31,192,15,20,40,18,2,0,240,60,240,124, - 240,248,241,240,241,224,243,224,247,192,255,128,255,0,255,0, - 255,128,247,192,247,192,243,224,241,240,240,240,240,248,240,124, - 240,62,240,62,13,20,40,16,2,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,255,248,255,248, - 255,248,21,20,60,25,2,0,252,1,248,254,3,248,254,3, - 248,254,3,248,255,7,248,255,7,248,247,7,120,247,15,120, - 247,143,120,247,143,120,243,142,120,243,222,120,243,222,120,241, - 220,120,241,252,120,241,252,120,240,248,120,240,248,120,240,248, - 120,240,248,120,17,20,60,21,2,0,252,7,128,252,7,128, - 254,7,128,254,7,128,255,7,128,255,7,128,247,135,128,247, - 135,128,243,199,128,243,199,128,241,231,128,241,231,128,240,247, - 128,240,247,128,240,127,128,240,127,128,240,63,128,240,63,128, - 240,31,128,240,31,128,18,20,60,20,1,0,3,240,0,15, - 252,0,31,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 254,0,15,252,0,3,240,0,14,20,40,17,2,0,255,192, - 255,240,255,248,240,124,240,60,240,60,240,60,240,60,240,124, - 255,248,255,240,255,192,240,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,20,20,60,22,1,0,3,240,0,15, - 252,0,63,254,0,62,31,0,120,7,128,120,7,128,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,120,7,128,120,7,128,62,31,0,31, - 255,240,15,255,240,3,255,240,15,20,40,18,2,0,255,224, - 255,248,255,252,240,62,240,30,240,30,240,30,240,30,240,124, - 255,248,255,240,255,252,240,60,240,60,240,28,240,30,240,30, - 240,30,240,30,240,14,16,20,40,18,1,0,7,224,31,248, - 63,252,60,60,120,30,120,30,120,0,124,0,63,128,31,240, - 15,252,0,254,0,30,0,15,240,15,240,14,120,62,127,252, - 63,248,7,224,16,20,40,18,1,0,255,255,255,255,255,255, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,17,20,60,21,2,0,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 240,7,128,240,7,128,240,7,128,240,7,128,240,7,128,240, - 7,0,240,15,0,120,15,0,124,30,0,63,254,0,31,248, - 0,7,224,0,19,20,60,20,0,0,248,1,224,120,1,224, - 120,3,224,60,3,192,60,3,192,62,7,192,30,7,128,30, - 7,128,31,15,128,15,15,0,15,15,0,15,158,0,7,158, - 0,7,158,0,7,252,0,3,252,0,3,252,0,1,248,0, - 1,248,0,1,240,0,27,20,80,27,0,0,248,31,3,224, - 120,31,3,192,120,31,3,192,120,63,131,192,120,63,131,192, - 60,59,135,128,60,59,135,128,60,123,199,128,60,123,199,128, - 28,113,199,0,30,113,207,0,30,241,239,0,30,241,239,0, - 14,224,238,0,14,224,238,0,15,224,254,0,15,224,254,0, - 7,192,124,0,7,192,124,0,7,192,124,0,17,20,60,19, - 1,0,248,15,128,120,15,0,124,30,0,62,30,0,30,60, - 0,31,120,0,15,120,0,7,240,0,7,224,0,3,224,0, - 7,224,0,7,240,0,15,240,0,30,120,0,30,124,0,60, - 60,0,60,30,0,120,31,0,240,15,0,240,7,128,16,20, - 40,17,1,0,240,31,248,30,120,30,124,60,60,60,60,120, - 30,120,30,240,15,240,15,224,7,224,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,20,40,17, - 1,0,127,254,127,254,127,254,0,62,0,124,0,248,0,248, - 1,240,3,224,7,224,7,192,15,128,31,0,63,0,62,0, - 124,0,248,0,255,254,255,254,255,254,6,25,25,10,2,251, - 252,252,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,252,252,9,21,42,12,1,255,224, - 0,96,0,112,0,112,0,48,0,56,0,56,0,56,0,24, - 0,28,0,28,0,12,0,14,0,14,0,6,0,6,0,7, - 0,7,0,3,0,3,128,3,128,7,25,25,11,2,251,254, - 254,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,254,254,13,17,34,27,7,0,2,0, - 7,0,5,0,5,0,13,128,8,128,24,192,24,192,16,64, - 48,96,48,96,32,32,96,48,64,16,192,24,192,24,128,8, - 14,2,4,14,0,252,255,252,255,252,5,5,5,7,0,16, - 224,112,112,56,24,12,14,28,15,1,0,31,128,63,224,121, - 240,112,240,0,240,63,240,127,240,248,240,240,240,240,240,240, - 240,251,240,127,112,62,112,14,20,40,17,2,0,240,0,240, - 0,240,0,240,0,240,0,240,0,247,192,255,240,253,240,248, - 120,240,120,240,60,240,60,240,60,240,60,240,56,248,120,252, - 240,255,240,243,192,12,14,28,14,1,0,31,128,63,224,121, - 224,112,224,240,240,240,0,240,0,240,0,240,0,240,240,240, - 224,121,224,63,192,31,128,14,20,40,16,1,0,0,60,0, - 60,0,60,0,60,0,60,0,60,31,188,63,252,124,252,120, - 124,240,60,240,60,240,60,240,60,240,60,240,60,120,124,125, - 252,63,188,15,60,13,14,28,15,1,0,15,128,63,224,121, - 240,112,240,240,240,255,240,255,248,240,0,240,0,240,240,112, - 240,121,240,63,224,31,128,10,20,40,11,1,0,15,192,31, - 192,62,64,60,0,60,0,60,0,255,128,255,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,14,19,38,16,1,251,31,188,63,252,124, - 252,120,124,240,60,240,60,240,60,240,60,240,60,240,60,112, - 124,124,252,63,188,15,60,0,60,120,56,124,248,63,240,15, - 192,13,20,40,16,2,0,240,0,240,0,240,0,240,0,240, - 0,240,0,247,192,255,240,253,240,248,120,240,120,240,120,240, - 120,240,120,240,120,240,120,240,120,240,120,240,120,240,120,4, - 20,20,6,1,0,240,240,240,240,0,0,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,5,25,25,9,3,251,120, - 120,120,120,0,0,120,120,120,120,120,120,120,120,120,120,120, - 120,120,120,120,120,248,248,240,12,20,40,15,2,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,240,241,224,243,192, - 247,128,255,128,255,0,255,0,255,0,247,128,247,192,243,192, - 241,224,241,240,240,240,4,20,20,7,2,0,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 22,14,42,25,2,0,243,227,224,255,247,248,253,254,248,240, - 120,120,240,120,60,240,120,60,240,120,60,240,120,60,240,120, - 60,240,120,60,240,120,60,240,120,60,240,120,60,240,120,60, - 13,14,28,16,2,0,247,192,255,240,253,240,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,14,14,28,16,1,0,15,192,63,224,124,240,120,120, - 240,60,240,60,240,60,240,60,240,60,240,60,120,120,124,248, - 63,240,15,192,14,19,38,17,2,251,243,192,255,240,253,240, - 248,120,240,56,240,60,240,60,240,60,240,60,240,120,240,120, - 253,248,255,240,247,192,240,0,240,0,240,0,240,0,240,0, - 14,19,38,16,1,251,15,60,63,252,125,252,120,124,240,60, - 240,60,240,60,240,60,240,60,240,60,120,124,124,252,63,252, - 31,188,0,60,0,60,0,60,0,60,0,60,9,14,28,11, - 2,0,247,128,255,128,255,128,252,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,12,14, - 28,14,1,0,31,128,127,192,123,224,241,224,240,0,126,0, - 127,192,31,224,1,240,240,240,240,240,249,224,127,192,31,128, - 10,18,36,12,1,0,2,0,14,0,30,0,30,0,255,192, - 255,192,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,0,15,192,7,192,13,14,28,16,2,0, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,248,249,248,127,248,62,120,14,14,28,15, - 0,0,240,60,120,60,120,60,56,120,60,120,60,112,28,240, - 30,240,30,224,15,224,15,224,15,192,7,192,7,192,23,14, - 42,23,0,0,240,124,30,112,124,28,120,124,60,120,254,60, - 56,238,60,60,238,56,61,239,120,61,231,120,29,199,112,31, - 199,240,31,199,240,15,131,224,15,131,224,15,131,224,13,14, - 28,15,1,0,240,120,120,240,124,224,61,224,31,192,31,128, - 15,128,31,128,31,192,63,224,57,224,120,240,240,248,240,120, - 14,19,38,15,0,251,248,60,120,60,120,60,60,120,60,120, - 60,112,30,240,30,240,14,224,15,224,15,224,7,192,7,192, - 3,192,7,128,7,128,7,128,15,0,15,0,11,14,28,13, - 1,0,255,224,255,224,1,224,3,224,7,192,7,128,15,0, - 30,0,60,0,124,0,248,0,240,0,255,224,255,224,10,27, - 54,13,2,249,3,192,15,192,31,128,30,0,30,0,30,0, - 30,0,30,0,30,0,28,0,28,0,60,0,248,0,224,0, - 248,0,124,0,60,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,31,128,15,192,7,192,2,29,29,10,4,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,10,27,54, - 14,2,249,240,0,252,0,124,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,15,0,7,192,3,192,7, - 192,15,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,124,0,252,0,240,0,14,3,6,14,0,5,63, - 156,127,248,225,240,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=22 dx=35 dy= 0 ascent=37 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =37 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25[12908] U8G_FONT_SECTION("u8g_font_fub25") = { - 0,50,46,254,247,25,7,111,16,148,32,255,249,37,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,10,0,0,5,25,25,13,4,249,248,248,248,248, - 0,0,0,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,15,26,52,19,2,252,0,48,0,48,0, - 48,0,32,7,224,31,248,63,252,124,252,120,254,248,254,249, - 128,249,128,249,128,249,0,251,0,251,62,251,62,126,62,126, - 124,63,252,31,248,15,224,12,0,24,0,24,0,24,0,17, - 25,75,20,2,1,7,254,0,15,255,0,31,255,0,31,15, - 128,62,15,128,62,0,0,62,0,0,62,0,0,62,0,0, - 255,240,0,255,240,0,255,240,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,255,128,255,255,128,255,255,128, - 18,19,57,20,1,6,64,0,128,224,1,192,115,227,128,63, - 255,0,30,30,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 30,30,0,63,255,0,115,243,128,224,1,192,64,0,128,19, - 25,75,21,1,0,248,3,224,248,7,224,124,7,192,124,7, - 192,62,15,128,62,15,128,31,31,0,255,31,224,255,191,224, - 15,190,0,7,252,0,7,252,0,3,248,0,255,255,224,255, - 255,224,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,14,31,62,16,1,251,31,240,63, - 248,127,248,124,24,248,0,248,0,124,0,126,0,63,128,31, - 192,31,240,63,248,124,248,248,124,240,60,240,120,240,120,253, - 240,127,224,63,192,31,224,7,240,1,248,0,252,0,124,0, - 124,128,248,225,248,255,240,255,224,63,128,11,4,8,11,0, - 22,241,224,241,224,241,224,241,224,25,25,100,29,2,1,0, - 255,192,0,3,255,224,0,15,0,120,0,30,0,60,0,24, - 63,14,0,56,127,134,0,112,255,199,0,97,227,195,0,225, - 193,227,128,195,193,225,128,195,192,1,128,195,192,1,128,195, - 192,1,128,195,192,1,128,195,193,225,128,227,193,227,128,97, - 227,195,0,113,255,195,0,48,255,135,0,56,62,14,0,28, - 0,28,0,15,0,120,0,7,193,240,0,1,255,224,0,0, - 127,0,0,12,17,34,14,1,8,15,128,63,192,56,224,112, - 224,0,224,15,224,63,224,120,224,112,224,112,224,121,224,63, - 224,30,96,0,0,0,0,255,240,255,240,17,14,42,21,2, - 2,31,15,128,30,31,0,62,31,0,60,62,0,124,62,0, - 124,124,0,248,124,0,248,124,0,124,124,0,124,62,0,60, - 62,0,62,31,0,30,15,0,31,15,128,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,25,25,100,29,2,1, - 0,255,192,0,3,255,224,0,15,0,120,0,30,0,60,0, - 25,255,142,0,57,255,198,0,113,255,231,0,97,193,227,0, - 225,192,227,128,193,193,225,128,193,255,129,128,193,255,129,128, - 193,255,193,128,193,193,193,128,193,193,193,128,225,192,227,128, - 97,192,227,0,113,192,227,0,49,192,231,0,56,0,14,0, - 28,0,28,0,15,0,120,0,7,193,240,0,1,255,224,0, - 0,127,0,0,11,3,6,11,0,22,255,224,255,224,255,224, - 7,7,7,11,2,18,56,196,130,130,130,196,120,20,21,63, - 34,7,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,255,255,240,255,255,240,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,240,255, - 255,240,11,13,26,13,1,13,63,128,127,192,241,224,1,224, - 1,224,3,192,7,192,15,128,30,0,124,0,240,0,255,192, - 255,192,11,14,28,13,1,12,127,128,255,128,227,192,3,192, - 7,192,31,128,31,128,3,192,1,224,1,224,225,224,243,192, - 127,128,63,0,7,7,7,8,2,21,62,60,56,120,112,224, - 192,255,16,31,62,19,2,250,15,255,63,255,127,24,255,24, - 255,24,255,24,255,24,255,24,255,24,255,24,127,24,63,24, - 31,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,3,24,3,24,3,24,3,24,3,24, - 3,24,3,24,3,24,5,5,5,10,3,10,248,248,248,248, - 248,9,8,16,9,1,247,48,0,48,0,63,0,7,128,3, - 128,3,128,255,0,254,0,6,14,14,9,1,12,28,124,252, - 220,28,28,28,28,28,28,28,28,28,28,12,17,34,14,1, - 8,31,128,63,192,121,224,112,224,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,31,128,0,0,0,0,255, - 240,255,240,16,14,28,21,2,2,240,120,248,124,124,60,124, - 62,62,30,62,31,31,31,31,31,62,31,62,30,124,62,124, - 60,248,124,240,120,25,26,104,27,1,0,28,0,120,0,124, - 0,112,0,252,0,240,0,156,0,224,0,28,1,192,0,28, - 1,192,0,28,3,128,0,28,7,128,0,28,7,0,0,28, - 14,0,0,28,14,0,0,28,28,0,0,28,28,30,0,28, - 56,30,0,0,120,62,0,0,112,126,0,0,224,126,0,0, - 224,238,0,1,193,206,0,1,193,206,0,3,131,142,0,7, - 3,255,128,7,3,255,128,14,0,14,0,14,0,14,0,28, - 0,14,0,25,26,104,27,1,0,28,0,112,0,124,0,224, - 0,252,0,224,0,220,1,192,0,28,3,192,0,28,3,128, - 0,28,7,0,0,28,7,0,0,28,14,0,0,28,14,0, - 0,28,28,0,0,28,56,0,0,28,56,124,0,28,113,255, - 0,0,115,199,128,0,227,199,128,0,192,7,128,1,192,15, - 128,3,128,15,0,3,128,30,0,7,0,60,0,6,0,248, - 0,14,1,240,0,12,3,192,0,28,3,255,0,24,3,255, - 0,25,25,100,27,1,1,127,128,60,0,255,192,56,0,227, - 192,112,0,3,192,112,0,31,128,224,0,31,129,224,0,3, - 193,192,0,1,227,192,0,225,227,128,0,227,231,128,0,127, - 207,0,0,63,14,30,0,0,30,62,0,0,28,62,0,0, - 60,126,0,0,56,110,0,0,120,238,0,0,241,206,0,0, - 241,206,0,1,227,142,0,1,227,255,128,3,195,255,128,3, - 128,14,0,7,128,14,0,15,0,14,0,16,25,50,18,1, - 249,3,224,3,224,3,224,3,224,0,0,0,0,0,0,1, - 192,1,192,1,192,3,192,7,128,15,0,30,0,60,0,124, - 0,248,0,248,0,248,0,248,14,248,31,124,62,63,254,31, - 248,7,224,23,35,105,24,1,0,3,192,0,3,192,0,1, - 224,0,0,224,0,0,112,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,124,0,0,252,0,0,254,0, - 0,254,0,1,254,0,1,255,0,3,255,0,3,207,0,3, - 207,128,7,207,128,7,135,192,7,135,192,15,135,192,15,3, - 224,31,3,224,31,3,240,31,255,240,63,255,240,63,255,248, - 127,255,248,124,0,248,124,0,252,248,0,124,248,0,126,240, - 0,62,23,35,105,24,1,0,0,15,0,0,15,0,0,30, - 0,0,28,0,0,56,0,0,48,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,124,0,0,252,0,0,254,0,0, - 254,0,1,254,0,1,255,0,3,255,0,3,207,0,3,207, - 128,7,207,128,7,135,192,7,135,192,15,135,192,15,3,224, - 31,3,224,31,3,240,31,255,240,63,255,240,63,255,248,127, - 255,248,124,0,248,124,0,252,248,0,124,248,0,126,240,0, - 62,23,35,105,24,1,0,0,252,0,0,252,0,0,254,0, - 1,206,0,1,199,0,3,135,0,3,3,128,0,0,0,0, - 0,0,0,0,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 23,34,102,24,1,0,0,1,128,1,255,0,3,255,0,3, - 254,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,124,0,0,252,0,0,254,0,0,254,0,1,254,0, - 1,255,0,3,255,0,3,207,0,3,207,128,7,207,128,7, - 135,192,7,135,192,15,135,192,15,3,224,31,3,224,31,3, - 240,31,255,240,63,255,240,63,255,248,127,255,248,124,0,248, - 124,0,252,248,0,124,248,0,126,240,0,62,23,34,102,25, - 1,0,3,199,128,3,199,128,3,199,128,3,199,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0, - 0,124,0,0,254,0,0,254,0,1,255,0,1,255,0,1, - 239,0,3,239,128,3,239,128,3,199,128,7,199,192,7,199, - 192,15,131,224,15,131,224,15,131,224,31,1,240,31,255,240, - 31,255,240,63,255,248,63,255,248,124,0,252,124,0,124,124, - 0,124,248,0,62,248,0,62,23,37,111,24,1,0,0,120, - 0,0,252,0,1,206,0,1,134,0,1,134,0,1,206,0, - 0,252,0,0,120,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,124,0,0,252,0,0,252,0,0,254,0,1,254, - 0,1,255,0,3,255,0,3,207,0,3,207,128,7,207,128, - 7,135,192,7,135,192,15,135,192,15,3,224,31,3,224,31, - 3,224,31,255,240,63,255,240,63,255,248,127,255,248,124,0, - 248,124,0,252,248,0,124,248,0,126,240,0,62,32,25,100, - 34,1,0,0,7,255,254,0,15,255,254,0,15,255,254,0, - 31,240,0,0,31,240,0,0,63,240,0,0,61,240,0,0, - 121,240,0,0,249,240,0,0,241,240,0,1,241,255,254,1, - 225,255,254,3,225,255,254,3,193,255,254,7,193,240,0,7, - 255,240,0,15,255,240,0,15,255,240,0,31,255,240,0,30, - 1,240,0,62,1,240,0,60,1,255,255,124,1,255,255,248, - 1,255,255,248,1,255,255,21,33,99,25,2,249,3,255,0, - 15,255,192,31,255,224,63,255,240,62,3,240,124,1,240,120, - 1,248,120,0,248,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,248, - 120,1,248,124,1,248,124,3,240,63,7,240,31,255,224,31, - 255,192,7,255,128,1,252,0,0,96,0,0,120,0,0,126, - 0,0,15,0,0,7,0,0,7,0,1,254,0,1,252,0, - 17,35,105,21,2,0,30,0,0,15,0,0,7,0,0,7, - 128,0,3,128,0,1,192,0,0,192,0,0,0,0,0,0, - 0,0,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,128,255,255,128,255,255,128,255,255,128,17, - 35,105,21,2,0,0,120,0,0,240,0,0,224,0,1,192, - 0,1,128,0,3,128,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,0,255,255,0,255,255,0,255,255,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,17,35, - 105,21,2,0,7,224,0,7,224,0,15,240,0,14,112,0, - 14,56,0,28,56,0,24,28,0,0,0,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,255,255,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,128,255,255,128,255,255,128,255,255,128,17,34,102, - 21,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 0,255,255,0,255,255,0,255,255,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,0,255, - 255,0,255,255,0,255,255,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,128, - 255,255,128,255,255,128,255,255,128,8,35,35,9,255,0,240, - 120,56,60,28,12,6,0,0,0,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,7,35,35,8,2,0,30,28,60,56,112,96,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,11,35,70,9,255, - 0,31,0,63,0,63,128,59,128,113,192,97,192,192,224,0, - 0,0,0,0,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,11,34,68,11,0,0,241,224,241, - 224,241,224,241,224,0,0,0,0,0,0,0,0,0,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,23,25,75,24,0,0,63,252,0,63,255,128,63,255,192, - 63,255,224,62,7,240,62,1,248,62,0,248,62,0,124,62, - 0,124,62,0,60,62,0,60,255,240,62,255,240,62,255,240, - 62,62,0,60,62,0,60,62,0,124,62,0,124,62,0,248, - 62,1,248,62,7,240,63,255,224,63,255,192,63,255,128,63, - 252,0,21,34,102,25,2,0,0,3,0,1,255,0,3,254, - 0,7,252,0,6,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,0,248,255,0,248,255,0,248,255,128,248,255, - 128,248,255,192,248,255,192,248,251,224,248,251,224,248,249,224, - 248,249,240,248,248,240,248,248,248,248,248,120,248,248,124,248, - 248,60,248,248,62,248,248,30,248,248,31,248,248,31,248,248, - 15,248,248,15,248,248,7,248,248,7,248,248,3,248,23,36, - 108,27,2,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,56,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,36,108,27,2,0,0,7,192,0,7,128,0,15,0,0, - 14,0,0,28,0,0,24,0,0,48,0,0,0,0,0,0, - 0,0,0,0,0,0,0,3,255,128,7,255,192,31,255,240, - 31,255,240,63,1,248,126,0,252,124,0,124,120,0,60,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,124,0,124,124,0,124, - 62,0,248,63,131,248,31,255,240,15,255,224,7,255,192,0, - 254,0,23,36,108,27,2,0,0,124,0,0,254,0,0,254, - 0,1,239,0,1,199,0,3,131,128,3,1,128,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,128,7,255,192,31, - 255,240,31,255,240,63,1,248,126,0,252,124,0,124,120,0, - 60,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,124,0,124,124, - 0,124,62,0,248,63,131,248,31,255,240,15,255,224,7,255, - 192,0,254,0,23,34,102,27,2,0,0,241,128,1,255,128, - 3,255,0,3,30,0,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,255,128,7,255,192,31,255,240,31,255, - 240,63,1,248,126,0,252,124,0,124,120,0,60,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,124,0,124,124,0,124,62,0, - 248,63,131,248,31,255,240,15,255,224,7,255,192,0,254,0, - 23,34,102,27,2,0,3,199,128,3,199,128,3,199,128,3, - 199,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,255,128,7,255,192,31,255,240,31,255,240,63,1,248, - 126,0,252,124,0,124,120,0,60,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,62,0,248,63,131,248, - 31,255,240,15,255,224,7,255,192,0,254,0,18,19,57,34, - 8,1,64,0,0,224,0,192,112,1,128,56,3,0,28,6, - 0,14,12,0,6,24,0,3,48,0,1,224,0,0,192,0, - 1,224,0,3,48,0,6,24,0,12,12,0,24,6,0,48, - 3,0,112,1,128,224,1,192,64,0,128,25,28,112,27,1, - 255,0,0,1,0,0,0,3,128,1,255,195,128,3,255,247, - 0,15,255,254,0,15,255,252,0,31,128,252,0,63,0,126, - 0,62,0,254,0,60,1,254,0,124,3,223,0,124,7,159, - 0,124,15,31,0,124,30,31,0,124,60,31,0,124,120,31, - 0,124,240,31,0,125,224,31,0,127,192,31,0,63,128,62, - 0,63,0,62,0,63,0,124,0,31,193,252,0,63,255,248, - 0,127,255,240,0,243,255,224,0,224,127,0,0,64,0,0, - 0,21,36,108,25,2,0,15,0,0,7,128,0,3,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,120,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,36,108,25,2,0,0,15,128,0,15,0,0, - 30,0,0,60,0,0,56,0,0,112,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,240,248,0,240, - 120,1,240,124,3,240,127,7,224,63,255,192,31,255,128,15, - 255,0,3,252,0,21,36,108,25,2,0,0,248,0,1,248, - 0,1,252,0,3,220,0,7,142,0,7,14,0,14,7,0, - 0,0,0,0,0,0,0,0,0,0,0,0,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,240,248, - 0,240,120,1,240,124,3,240,127,7,224,63,255,192,31,255, - 128,15,255,0,3,252,0,21,34,102,25,2,0,7,143,0, - 7,143,0,7,143,0,7,143,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,240,248,0,240,124,1, - 240,124,3,240,127,7,224,63,255,192,31,255,128,15,255,0, - 3,252,0,21,35,105,22,1,0,0,30,0,0,30,0,0, - 28,0,0,56,0,0,48,0,0,112,0,0,0,0,0,0, - 0,0,0,0,0,0,0,252,1,248,252,1,240,126,3,224, - 126,3,224,63,7,192,31,7,192,31,143,128,15,143,128,15, - 223,0,7,223,0,7,254,0,3,254,0,3,252,0,1,248, - 0,1,248,0,0,240,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,18,25,75,22,2,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,240,0,255,254,0,255,255,0,255,255,128, - 248,15,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,255,255,128,255,255,0,255,254,0,255,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,18,25,75,19,1,1,31,240,0,63,252,0,127, - 252,0,248,62,0,248,62,0,248,62,0,248,62,0,248,124, - 0,248,248,0,248,240,0,249,240,0,251,224,0,251,224,0, - 249,248,0,249,252,0,248,127,0,248,63,128,248,15,128,248, - 7,128,248,7,192,251,199,192,251,199,128,249,255,128,249,255, - 0,248,126,0,15,28,56,19,2,0,60,0,30,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,7,224, - 63,248,127,252,124,62,120,62,0,62,15,254,63,254,127,254, - 124,62,248,62,248,62,248,62,248,62,252,126,127,254,63,222, - 31,30,15,28,56,19,2,0,0,120,0,240,0,240,1,224, - 1,192,1,128,3,0,0,0,0,0,0,0,7,224,63,248, - 127,252,124,62,120,62,0,62,15,254,63,254,127,254,124,62, - 248,62,248,62,248,62,248,62,252,126,127,254,63,222,31,30, - 15,28,56,19,2,0,7,192,7,224,15,224,14,240,28,112, - 24,56,56,24,0,0,0,0,0,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,15,26, - 52,19,2,0,0,24,15,248,31,240,31,224,48,0,0,0, - 0,0,0,0,7,224,63,248,127,252,124,62,120,62,0,62, - 15,254,63,254,127,254,124,62,248,62,248,62,248,62,248,62, - 252,126,127,254,63,222,31,30,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 15,224,63,248,127,252,124,62,120,62,0,62,15,254,63,254, - 127,254,124,62,248,62,248,62,248,62,248,62,252,126,127,254, - 63,222,31,30,15,30,60,19,2,0,3,192,7,224,14,112, - 12,48,12,48,14,112,7,224,3,192,0,0,0,0,0,0, - 0,0,7,224,31,248,63,252,124,62,120,62,0,62,15,254, - 63,254,127,254,124,62,248,62,248,62,248,62,248,62,252,126, - 127,254,63,222,31,30,27,18,72,31,2,0,7,224,124,0, - 31,249,255,0,127,253,255,128,124,63,135,192,120,31,3,192, - 0,31,3,224,7,255,255,224,63,255,255,224,127,255,255,224, - 124,31,0,0,248,31,0,0,248,31,0,0,248,31,131,224, - 248,31,131,192,252,59,199,192,127,241,255,192,63,224,255,128, - 15,128,126,0,15,26,52,18,2,248,7,224,31,248,63,252, - 124,124,120,60,248,62,248,62,248,0,248,0,248,0,248,0, - 248,62,248,62,120,60,124,124,63,252,31,248,15,224,3,0, - 3,128,3,224,0,240,0,112,0,112,15,224,15,192,15,28, - 56,19,2,0,62,0,30,0,15,0,7,0,7,128,3,128, - 1,192,0,0,0,0,0,0,7,224,31,248,63,252,124,60, - 120,62,248,30,248,30,255,254,255,254,255,254,248,0,248,0, - 248,30,120,62,124,62,63,252,31,248,7,224,15,28,56,19, - 2,0,0,120,0,112,0,240,0,224,1,192,1,128,3,0, - 0,0,0,0,0,0,7,224,31,248,63,252,124,60,120,62, - 248,30,248,30,255,254,255,254,255,254,248,0,248,0,248,30, - 120,62,124,62,63,252,31,248,7,224,15,28,56,19,2,0, - 7,224,7,224,15,224,14,112,28,112,28,56,56,24,0,0, - 0,0,0,0,7,224,31,248,63,252,124,60,120,62,248,30, - 248,30,255,254,255,254,255,254,248,0,248,0,248,30,120,62, - 124,62,63,252,31,248,7,224,15,27,54,19,2,0,60,120, - 60,120,60,120,60,120,0,0,0,0,0,0,0,0,0,0, - 7,224,31,248,63,252,124,124,120,62,248,62,248,62,255,254, - 255,254,255,254,248,0,248,0,248,62,120,62,124,126,63,252, - 31,248,7,224,8,28,28,9,255,0,240,120,120,60,28,14, - 6,0,0,0,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,7,28,28,8,2,0,30,60,56,120, - 112,224,192,0,0,0,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,10,28,56,9,255,0,31,0, - 63,0,63,128,123,128,115,192,97,192,224,192,0,0,0,0, - 0,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,11,26,52,9,255,0,241,224,241,224, - 241,224,241,224,0,0,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 18,26,78,21,2,0,0,1,0,15,135,0,3,254,0,1, - 248,0,3,248,0,15,252,0,60,60,0,16,30,0,7,255, - 0,31,255,0,63,255,0,126,31,128,124,15,128,248,15,128, - 248,7,128,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,128,120,15,128,124,15,128,126,31,0,63,255,0,31,252, - 0,3,240,0,16,26,52,20,2,0,0,24,15,248,31,248, - 31,240,48,0,0,0,0,0,0,0,249,248,251,252,255,254, - 252,63,252,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,18,28, - 84,21,2,0,31,0,0,15,0,0,7,128,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,63,254,0,62,31,0,124,15, - 128,120,15,128,248,7,128,248,7,128,248,7,192,248,7,192, - 248,7,192,248,7,128,120,15,128,124,15,128,62,31,0,63, - 254,0,15,252,0,3,240,0,18,28,84,21,2,0,0,60, - 0,0,56,0,0,120,0,0,112,0,0,224,0,0,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,63,254,0,62,31,0,124,15,128,120,15,128,248,7, - 128,248,7,128,248,7,192,248,7,192,248,7,192,248,7,128, - 120,15,128,124,15,128,62,31,0,63,254,0,15,252,0,3, - 240,0,18,28,84,21,2,0,3,224,0,3,240,0,7,240, - 0,7,56,0,14,56,0,14,28,0,28,12,0,0,0,0, - 0,0,0,0,0,0,3,240,0,15,252,0,63,254,0,62, - 31,0,124,15,128,120,15,128,248,7,128,248,7,128,248,7, - 192,248,7,192,248,7,192,248,7,128,120,15,128,124,15,128, - 62,31,0,63,254,0,15,252,0,3,240,0,18,27,81,21, - 2,0,0,4,0,0,12,0,7,252,0,15,248,0,15,240, - 0,24,0,0,0,0,0,0,0,0,0,0,0,3,240,0, - 15,252,0,63,254,0,62,31,0,124,15,128,120,15,128,248, - 7,128,248,7,128,248,7,192,248,7,192,248,7,192,248,7, - 128,120,15,128,124,15,128,62,31,0,63,254,0,15,252,0, - 3,240,0,18,27,81,21,2,0,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,63,254,0,62,31,0, - 124,15,128,120,15,128,248,7,128,248,7,128,248,7,192,248, - 7,192,248,7,192,248,7,128,120,15,128,124,15,128,62,31, - 0,63,254,0,15,252,0,3,240,0,20,15,45,34,7,3, - 0,112,0,0,248,0,0,248,0,0,112,0,0,0,0,0, - 0,0,0,0,0,255,255,240,255,255,240,0,0,0,0,0, - 0,0,112,0,0,248,0,0,248,0,0,112,0,18,23,69, - 21,2,254,0,1,0,0,1,128,0,3,128,3,247,0,15, - 255,0,63,254,0,62,31,0,124,63,128,120,55,128,248,119, - 128,248,231,128,249,199,192,251,135,192,251,135,192,255,7,128, - 126,15,128,124,15,128,62,31,0,63,254,0,127,252,0,227, - 240,0,224,0,0,192,0,0,16,28,56,20,2,0,62,0, - 30,0,15,0,7,0,3,128,3,128,1,192,0,0,0,0, - 0,0,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,252,63, - 127,255,63,223,31,159,16,28,56,20,2,0,0,120,0,240, - 0,240,0,224,1,192,1,128,3,0,0,0,0,0,0,0, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,252,63,127,255, - 63,223,31,159,16,28,56,20,2,0,7,224,7,224,15,240, - 14,112,28,56,28,56,56,28,0,0,0,0,0,0,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,252,63,127,255,63,223, - 31,159,16,27,54,20,2,0,60,120,60,120,60,120,60,120, - 0,0,0,0,0,0,0,0,0,0,248,31,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,248,31,248,31,252,63,127,255,63,223,31,159,17,35, - 105,19,1,249,0,30,0,0,60,0,0,56,0,0,120,0, - 0,112,0,0,224,0,0,192,0,0,0,0,0,0,0,0, - 0,0,248,15,128,248,15,128,252,15,128,124,31,0,126,31, - 0,62,31,0,62,62,0,63,62,0,31,60,0,31,124,0, - 15,252,0,15,248,0,15,248,0,7,248,0,7,240,0,3, - 240,0,3,240,0,3,224,0,3,224,0,3,192,0,103,192, - 0,255,192,0,255,192,0,127,128,0,62,0,0,17,32,96, - 21,2,249,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,249,240,0,255,252,0,255,254, - 0,254,63,0,252,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,254,63,0,255,254,0,255,252,0,251,240,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,17,33,99,19,1,249,30,60,0,30,60,0,30, - 60,0,30,60,0,0,0,0,0,0,0,0,0,0,0,0, - 0,248,15,128,248,15,128,252,15,128,124,31,0,124,31,0, - 126,31,0,62,62,0,63,62,0,31,62,0,31,124,0,31, - 252,0,15,248,0,15,248,0,7,248,0,7,240,0,7,240, - 0,3,240,0,3,224,0,3,224,0,3,224,0,7,192,0, - 7,192,0,7,192,0,15,128,0,15,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=13 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25n[981] U8G_FONT_SECTION("u8g_font_fub25n") = { - 0,50,46,254,247,25,0,0,0,0,42,58,0,26,251,25, - 0,14,13,26,22,4,13,28,224,60,240,28,224,15,192,135, - 132,255,252,255,252,231,156,15,192,30,224,28,224,60,240,8, - 64,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,7,9,9,11,2,251,62,60,60,120, - 120,112,240,240,224,9,5,10,11,1,7,255,128,255,128,255, - 128,255,128,255,128,5,5,5,10,3,0,248,248,248,248,248, - 11,28,56,15,2,254,0,224,0,224,1,192,1,192,1,192, - 3,128,3,128,3,128,3,128,7,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,28,0,56,0,56,0,56,0, - 56,0,112,0,112,0,112,0,224,0,224,0,224,0,17,25, - 75,19,1,1,7,224,0,31,252,0,63,254,0,60,30,0, - 120,15,0,120,15,0,120,15,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,60,30,0,31,252,0,15,248,0,7,224,0,11, - 25,50,19,3,1,3,224,15,224,31,224,127,224,255,224,251, - 224,243,224,195,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,17,25,75,19,1,1,7,248,0, - 31,254,0,31,255,0,63,255,0,126,31,128,124,15,128,124, - 15,128,0,15,128,0,15,128,0,31,0,0,31,0,0,62, - 0,0,126,0,0,252,0,1,248,0,3,240,0,7,224,0, - 15,192,0,63,0,0,126,0,0,252,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,16,25,50,19,2,1,31,240, - 63,252,127,254,255,254,248,62,248,31,0,31,0,30,0,126, - 7,252,7,240,7,248,7,252,0,62,0,31,0,31,0,31, - 248,31,248,31,248,31,252,62,127,254,127,252,31,248,15,224, - 18,25,75,19,1,1,0,126,0,0,254,0,0,254,0,1, - 254,0,3,254,0,3,254,0,7,190,0,15,190,0,15,62, - 0,30,62,0,30,62,0,60,62,0,124,62,0,120,62,0, - 240,62,0,255,255,192,255,255,192,255,255,192,255,255,192,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,17,25,75,19,1,1,255,254,0,255,254,0,255,254,0, - 255,254,0,248,0,0,248,0,0,248,0,0,248,0,0,249, - 240,0,255,252,0,255,254,0,252,63,0,248,31,0,248,15, - 0,0,15,128,0,15,128,0,15,128,0,15,0,248,15,0, - 248,31,0,252,63,0,127,254,0,127,252,0,63,248,0,15, - 224,0,17,25,75,19,1,1,3,240,0,15,252,0,31,254, - 0,63,255,0,62,31,0,126,15,128,124,0,0,124,0,0, - 252,0,0,248,248,0,251,254,0,255,254,0,255,31,0,254, - 15,128,252,15,128,252,15,128,252,15,128,252,15,128,124,15, - 128,126,15,128,127,31,0,63,255,0,31,254,0,15,252,0, - 3,240,0,16,25,50,19,2,1,255,255,255,255,255,255,255, - 255,0,15,0,31,0,30,0,62,0,62,0,124,0,124,0, - 248,0,248,0,240,1,240,1,240,3,224,3,224,7,192,7, - 192,15,128,15,128,15,128,31,0,31,0,17,25,75,19,1, - 1,7,240,0,31,252,0,127,255,0,127,255,0,252,31,128, - 248,15,128,248,15,128,120,15,0,124,31,0,63,254,0,15, - 248,0,31,248,0,63,254,0,124,63,0,248,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,252,31,128, - 127,255,0,127,255,0,31,252,0,7,240,0,17,25,75,19, - 1,1,7,240,0,31,252,0,63,254,0,127,254,0,124,63, - 0,248,31,0,248,31,0,248,31,128,248,31,128,248,31,128, - 248,63,128,124,63,128,127,255,128,63,239,128,15,207,128,0, - 15,128,0,31,0,0,31,0,248,31,0,120,63,0,124,126, - 0,63,254,0,63,252,0,31,248,0,7,224,0,5,18,18, - 11,5,0,248,248,248,248,248,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--34-340-72-72-P-170-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=34 h=37 x= 8 y=21 dx=35 dy= 0 ascent=28 len=160 - Font Bounding box w=50 h=46 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub25r[5936] U8G_FONT_SECTION("u8g_font_fub25r") = { - 0,50,46,254,247,25,7,111,16,148,32,127,249,28,247,25, - 249,0,0,0,10,0,0,5,25,25,14,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 0,0,248,248,248,248,13,10,20,18,2,15,248,248,248,248, - 248,248,120,248,120,120,120,120,120,120,120,120,120,112,120,112, - 21,25,75,24,2,0,0,224,224,0,225,224,0,225,192,1, - 225,192,1,195,192,1,195,128,31,255,248,31,255,240,63,255, - 240,7,135,0,7,135,0,7,15,0,7,14,0,15,14,0, - 14,14,0,255,255,192,255,255,192,255,255,192,28,60,0,28, - 60,0,60,56,0,56,56,0,56,120,0,120,112,0,112,112, - 0,18,31,93,20,1,252,0,192,0,0,192,0,3,248,0, - 15,252,0,31,254,0,63,255,0,126,223,0,120,207,128,248, - 207,128,248,192,0,252,192,0,126,192,0,127,192,0,127,240, - 0,31,252,0,7,255,0,1,255,128,0,255,128,0,207,128, - 0,199,192,248,199,192,248,199,192,248,207,128,126,223,128,127, - 255,0,63,254,0,15,252,0,3,240,0,0,192,0,0,192, - 0,0,192,0,32,26,104,34,1,0,0,0,3,128,15,192, - 7,0,63,240,7,0,124,248,14,0,120,120,14,0,240,60, - 28,0,240,60,24,0,240,60,56,0,240,60,112,0,240,60, - 112,0,120,120,224,0,120,120,224,0,63,241,199,248,15,195, - 143,252,0,3,159,62,0,7,30,30,0,7,60,15,0,14, - 60,15,0,30,60,15,0,28,60,15,0,56,60,15,0,56, - 60,15,0,112,30,30,0,112,15,60,0,224,15,252,1,224, - 3,240,24,25,75,27,2,1,7,252,0,31,254,0,31,255, - 0,62,31,0,62,31,0,62,31,0,62,31,0,30,62,0, - 31,126,0,15,252,0,7,240,0,15,224,0,63,224,124,63, - 240,120,124,248,120,252,124,120,248,62,120,248,31,248,248,15, - 240,248,7,240,252,3,224,126,15,240,63,255,248,31,255,254, - 7,252,63,5,10,10,14,4,15,248,248,120,120,120,120,120, - 120,120,120,7,30,30,13,3,251,30,30,62,60,60,124,124, - 120,120,248,248,248,248,248,248,248,248,248,248,248,248,120,120, - 124,124,60,60,62,30,30,8,30,30,14,3,251,240,120,120, - 124,60,60,60,62,62,30,30,30,30,31,31,31,31,31,30, - 30,30,62,62,62,60,60,124,120,120,240,14,13,26,22,4, - 13,28,224,60,240,28,224,15,192,135,132,255,252,255,252,231, - 156,15,192,30,224,28,224,60,240,8,64,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,255,255,240,255, - 255,240,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 7,9,9,11,2,251,62,60,60,120,120,112,240,240,224,9, - 5,10,11,1,7,255,128,255,128,255,128,255,128,255,128,5, - 5,5,10,3,0,248,248,248,248,248,11,28,56,15,2,254, - 0,224,0,224,1,192,1,192,1,192,3,128,3,128,3,128, - 3,128,7,0,7,0,7,0,14,0,14,0,14,0,28,0, - 28,0,28,0,56,0,56,0,56,0,56,0,112,0,112,0, - 112,0,224,0,224,0,224,0,17,25,75,19,1,1,7,224, - 0,31,252,0,63,254,0,60,30,0,120,15,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,120,15,0,120,15,0,120,15,0,60,30,0, - 31,252,0,15,248,0,7,224,0,11,25,50,19,3,1,3, - 224,15,224,31,224,127,224,255,224,251,224,243,224,195,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,17,25,75,19,1,1,7,248,0,31,254,0,31,255,0, - 63,255,0,126,31,128,124,15,128,124,15,128,0,15,128,0, - 15,128,0,31,0,0,31,0,0,62,0,0,126,0,0,252, - 0,1,248,0,3,240,0,7,224,0,15,192,0,63,0,0, - 126,0,0,252,0,0,255,255,128,255,255,128,255,255,128,255, - 255,128,16,25,50,19,2,1,31,240,63,252,127,254,255,254, - 248,62,248,31,0,31,0,30,0,126,7,252,7,240,7,248, - 7,252,0,62,0,31,0,31,0,31,248,31,248,31,248,31, - 252,62,127,254,127,252,31,248,15,224,18,25,75,19,1,1, - 0,126,0,0,254,0,0,254,0,1,254,0,3,254,0,3, - 254,0,7,190,0,15,190,0,15,62,0,30,62,0,30,62, - 0,60,62,0,124,62,0,120,62,0,240,62,0,255,255,192, - 255,255,192,255,255,192,255,255,192,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,17,25,75,19,1, - 1,255,254,0,255,254,0,255,254,0,255,254,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,252,63,0,248,31,0,248,15,0,0,15,128,0,15, - 128,0,15,128,0,15,0,248,15,0,248,31,0,252,63,0, - 127,254,0,127,252,0,63,248,0,15,224,0,17,25,75,19, - 1,1,3,240,0,15,252,0,31,254,0,63,255,0,62,31, - 0,126,15,128,124,0,0,124,0,0,252,0,0,248,248,0, - 251,254,0,255,254,0,255,31,0,254,15,128,252,15,128,252, - 15,128,252,15,128,252,15,128,124,15,128,126,15,128,127,31, - 0,63,255,0,31,254,0,15,252,0,3,240,0,16,25,50, - 19,2,1,255,255,255,255,255,255,255,255,0,15,0,31,0, - 30,0,62,0,62,0,124,0,124,0,248,0,248,0,240,1, - 240,1,240,3,224,3,224,7,192,7,192,15,128,15,128,15, - 128,31,0,31,0,17,25,75,19,1,1,7,240,0,31,252, - 0,127,255,0,127,255,0,252,31,128,248,15,128,248,15,128, - 120,15,0,124,31,0,63,254,0,15,248,0,31,248,0,63, - 254,0,124,63,0,248,15,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,252,31,128,127,255,0,127,255,0, - 31,252,0,7,240,0,17,25,75,19,1,1,7,240,0,31, - 252,0,63,254,0,127,254,0,124,63,0,248,31,0,248,31, - 0,248,31,128,248,31,128,248,31,128,248,63,128,124,63,128, - 127,255,128,63,239,128,15,207,128,0,15,128,0,31,0,0, - 31,0,248,31,0,120,63,0,124,126,0,63,254,0,63,252, - 0,31,248,0,7,224,0,5,18,18,11,5,0,248,248,248, - 248,248,0,0,0,0,0,0,0,0,248,248,248,248,248,7, - 22,22,11,2,252,62,62,62,62,62,0,0,0,0,0,0, - 0,0,62,60,124,120,120,112,240,224,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,248,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,248,0,0,63,0,0,7,224,0,0,248,0,0,63,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,16,25,50,19,1,1,31,240,63,248,127,252,248,62,112, - 30,48,31,0,31,0,30,0,62,0,60,0,120,0,240,1, - 224,3,192,3,128,3,128,3,128,3,128,3,128,0,0,0, - 0,7,192,7,192,7,192,7,192,33,32,160,35,1,250,0, - 31,254,0,0,0,127,255,128,0,1,255,255,224,0,3,255, - 255,240,0,7,240,3,248,0,15,192,1,252,0,31,128,0, - 124,0,63,7,159,126,0,62,31,255,63,0,124,63,255,31, - 0,124,127,255,31,0,120,126,63,31,0,248,252,31,15,0, - 248,248,31,15,128,248,248,31,15,128,248,248,31,15,128,248, - 248,31,15,0,248,248,31,15,0,248,248,31,15,0,248,248, - 31,31,0,120,124,63,30,0,124,124,127,190,0,124,63,255, - 252,0,62,31,231,248,0,63,7,195,240,0,31,128,0,0, - 0,15,192,0,0,0,7,248,3,0,0,3,255,255,0,0, - 1,255,255,0,0,0,127,255,0,0,0,7,255,0,0,23, - 25,75,24,1,0,0,124,0,0,252,0,0,254,0,0,254, - 0,1,254,0,1,255,0,3,255,0,3,207,0,3,207,128, - 7,207,128,7,135,192,7,135,192,15,135,192,15,3,224,31, - 3,224,31,3,240,31,255,240,63,255,240,63,255,248,127,255, - 248,124,0,248,124,0,252,248,0,124,248,0,126,240,0,62, - 19,25,75,23,2,0,255,248,0,255,254,0,255,255,0,255, - 255,0,248,63,0,248,15,128,248,15,128,248,15,0,248,15, - 0,248,63,0,255,254,0,255,248,0,255,252,0,255,255,0, - 248,15,192,248,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,7,224,255,255,192,255,255,128,255,255,0,255,252, - 0,21,25,75,25,2,1,3,255,0,15,255,192,31,255,224, - 63,255,240,62,3,240,124,1,240,120,1,248,120,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,1,248,120,1,248,124,1,248, - 124,3,240,63,7,240,31,255,224,15,255,192,7,255,0,1, - 252,0,20,25,75,23,2,0,255,224,0,255,252,0,255,254, - 0,255,255,0,248,63,128,248,15,192,248,7,192,248,3,224, - 248,3,224,248,1,224,248,1,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,224,248,3,224,248,3,224,248,7, - 192,248,15,192,248,63,128,255,255,0,255,254,0,255,252,0, - 255,224,0,17,25,75,21,2,0,255,255,0,255,255,0,255, - 255,0,255,255,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,0,255,255,0,255,255,0, - 255,255,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,128,255,255,128,255,255, - 128,255,255,128,16,25,50,19,2,0,255,255,255,255,255,255, - 255,255,248,0,248,0,248,0,248,0,248,0,248,0,255,254, - 255,254,255,254,255,254,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,22,25,75,26, - 2,1,1,255,192,7,255,224,15,255,240,31,255,248,63,0, - 248,62,0,124,124,0,124,124,0,0,248,0,0,248,0,0, - 248,0,0,248,7,252,248,7,252,248,7,252,248,7,252,248, - 0,124,248,0,124,124,0,124,126,0,124,63,0,124,63,192, - 124,31,255,252,15,255,252,3,255,252,0,127,192,20,25,75, - 24,2,0,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,255,255,240,255,255,240,255,255,240,255,255,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,5,25, - 25,9,2,0,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,17,25,75, - 21,2,0,0,15,128,0,15,128,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,248,15,128,248,15,128,248,15,128,252, - 31,0,127,255,0,127,254,0,63,252,0,15,240,0,19,25, - 75,23,2,0,248,7,192,248,15,128,248,31,128,248,63,0, - 248,126,0,248,124,0,248,248,0,249,248,0,251,240,0,251, - 224,0,255,192,0,255,192,0,255,224,0,255,240,0,251,240, - 0,249,248,0,249,252,0,248,252,0,248,126,0,248,63,0, - 248,63,128,248,31,128,248,15,192,248,15,224,248,7,224,16, - 25,50,19,2,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,255, - 255,255,255,255,255,255,255,27,25,100,31,2,0,255,0,31, - 224,255,0,63,224,255,128,63,224,255,128,63,224,255,128,127, - 224,255,192,127,224,255,192,123,224,251,192,123,224,251,224,251, - 224,251,224,243,224,251,224,243,224,249,241,243,224,249,241,243, - 224,249,241,227,224,248,243,227,224,248,251,227,224,248,251,195, - 224,248,127,195,224,248,127,195,224,248,127,131,224,248,127,131, - 224,248,63,131,224,248,63,131,224,248,63,3,224,248,31,3, - 224,21,25,75,25,2,0,254,0,248,255,0,248,255,0,248, - 255,128,248,255,128,248,255,192,248,255,192,248,251,224,248,251, - 224,248,249,224,248,249,240,248,248,240,248,248,248,248,248,120, - 248,248,124,248,248,60,248,248,62,248,248,30,248,248,31,248, - 248,31,248,248,15,248,248,15,248,248,7,248,248,7,248,248, - 3,248,23,25,75,27,2,1,3,255,128,7,255,192,31,255, - 240,31,255,240,63,1,248,126,0,252,124,0,124,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,62,0,248,63,131,248,31,255,240,15,255,224,7,255,192, - 0,254,0,18,25,75,21,2,0,255,240,0,255,252,0,255, - 255,0,255,255,128,248,31,128,248,15,128,248,7,192,248,7, - 192,248,7,192,248,15,128,248,31,128,255,255,128,255,255,0, - 255,252,0,255,240,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,26,25,100,29,2,1,3,255,128,0,7,255, - 192,0,31,255,224,0,31,255,240,0,63,1,248,0,126,0, - 252,0,124,0,124,0,120,0,60,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,248,0,62,0,248,0, - 62,0,248,0,62,0,248,0,62,0,120,0,60,0,124,0, - 124,0,124,0,124,0,62,0,248,0,63,131,240,0,31,255, - 255,192,15,255,255,192,3,255,255,192,0,255,255,192,19,25, - 75,22,2,0,255,252,0,255,255,0,255,255,128,255,255,192, - 248,15,192,248,7,224,248,3,224,248,3,224,248,3,192,248, - 7,192,248,31,128,255,255,0,255,252,0,255,255,0,255,255, - 128,248,15,128,248,7,192,248,7,192,248,7,192,248,3,192, - 248,3,192,248,3,192,248,3,224,248,3,224,248,3,224,20, - 25,75,23,2,1,7,254,0,15,255,0,31,255,128,63,255, - 192,126,7,192,124,3,192,124,3,224,124,0,0,124,0,0, - 127,0,0,63,240,0,31,254,0,7,255,128,1,255,192,0, - 31,224,0,3,224,0,1,240,248,1,240,248,1,240,248,3, - 224,126,7,224,127,255,192,63,255,128,15,255,0,3,248,0, - 20,25,75,22,1,0,255,255,240,255,255,240,255,255,240,255, - 255,240,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,21,25,75,25,2,0,248,0,248,248,0,248,248,0,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,240,248,0,240,120,1,240, - 124,3,240,127,7,224,63,255,192,31,255,128,15,255,0,3, - 252,0,24,25,75,25,1,0,248,0,63,248,0,62,252,0, - 62,124,0,124,124,0,124,126,0,124,62,0,248,63,0,248, - 63,1,240,31,1,240,31,129,240,31,131,224,15,131,224,15, - 195,224,7,199,192,7,199,192,7,231,128,3,239,128,3,255, - 128,3,255,0,1,255,0,1,254,0,1,254,0,0,254,0, - 0,252,0,34,25,125,34,0,0,252,3,240,15,192,252,3, - 240,15,128,124,3,240,15,128,126,7,248,15,128,126,7,248, - 15,128,126,7,248,31,0,62,7,248,31,0,62,15,252,31, - 0,63,15,60,30,0,63,15,60,62,0,31,15,60,62,0, - 31,31,62,62,0,31,30,30,60,0,31,158,30,60,0,15, - 158,30,124,0,15,190,31,124,0,15,188,15,120,0,7,252, - 15,120,0,7,252,15,120,0,7,252,15,248,0,7,248,7, - 240,0,3,248,7,240,0,3,248,7,240,0,3,248,7,240, - 0,3,240,3,224,0,22,25,75,24,1,0,252,0,248,126, - 1,248,62,1,240,63,3,224,31,135,192,15,135,192,15,207, - 128,7,239,0,3,255,0,3,254,0,1,252,0,0,252,0, - 0,252,0,1,254,0,3,254,0,3,255,0,7,223,128,15, - 143,128,15,15,192,31,7,224,62,3,224,62,3,240,124,1, - 248,248,1,248,248,0,252,21,25,75,22,1,0,252,1,248, - 252,1,240,126,3,224,126,3,224,63,7,192,31,7,192,31, - 143,128,15,143,128,15,223,0,7,223,0,7,254,0,3,254, - 0,3,252,0,1,248,0,1,248,0,0,240,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,18,25,75,22,2,0,127,255, - 192,127,255,192,127,255,192,127,255,192,0,15,192,0,31,128, - 0,63,0,0,63,0,0,126,0,0,252,0,1,252,0,1, - 248,0,3,240,0,7,224,0,7,224,0,15,192,0,31,128, - 0,63,128,0,63,0,0,126,0,0,252,0,0,255,255,192, - 255,255,192,255,255,192,255,255,192,8,32,32,13,3,249,255, - 255,255,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,255,255,255,11, - 28,56,15,2,254,224,0,224,0,240,0,240,0,240,0,112, - 0,120,0,120,0,56,0,60,0,60,0,28,0,30,0,30, - 0,30,0,15,0,15,0,15,0,7,0,7,128,7,128,3, - 128,3,192,3,192,1,192,1,224,1,224,1,224,8,32,32, - 13,3,249,255,255,255,31,31,31,31,31,31,31,31,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 255,255,255,18,21,63,34,8,0,0,192,0,0,224,0,1, - 224,0,1,224,0,1,48,0,3,48,0,2,24,0,6,24, - 0,6,24,0,4,12,0,12,12,0,12,14,0,24,6,0, - 24,6,0,24,7,0,48,3,0,48,3,0,112,1,128,96, - 1,128,96,1,192,192,0,192,17,3,9,17,0,251,255,255, - 128,255,255,128,255,255,128,7,7,7,9,255,21,248,120,60, - 60,28,14,6,15,18,36,19,2,0,7,224,63,248,127,252, - 124,62,120,62,0,62,15,254,63,254,127,254,124,62,248,62, - 248,62,248,62,248,62,252,126,127,254,63,222,31,30,17,25, - 75,20,2,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,249,240,0,255,252,0,255, - 254,0,254,63,0,252,31,0,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 252,31,0,254,63,0,255,254,0,251,252,0,249,240,0,15, - 18,36,18,2,0,7,224,31,248,63,252,124,124,120,60,248, - 62,248,0,248,0,248,0,248,0,248,0,248,62,248,62,120, - 60,124,124,63,252,31,248,15,224,17,25,75,21,2,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,7,207,128,31,255,128,63,255,128,126,63,128, - 124,31,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,128,126,63, - 128,63,255,128,31,239,128,7,207,128,15,18,36,19,2,0, - 7,224,31,248,63,252,124,60,120,62,248,30,248,30,255,254, - 255,254,255,254,248,0,248,0,248,30,120,62,124,62,63,252, - 31,248,7,224,12,25,50,13,1,0,7,240,15,240,31,240, - 31,0,31,0,31,0,31,0,255,224,255,224,255,224,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,17,25,75,21, - 2,249,7,207,128,31,255,128,63,255,128,126,63,128,124,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,31,128,126,63,128,63, - 255,128,31,239,128,7,207,128,0,15,128,0,15,128,124,15, - 128,124,31,0,63,254,0,31,252,0,7,240,0,16,25,50, - 20,2,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,249,248,255,252,255,254,254,63,252,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,5,25,25,9,2,0,248,248,248,248,248, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,6,32,32,12,4,249,124,124,124,124,124,0, - 0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,252,252,248,240,16,25,50,19,2,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,62, - 248,124,248,248,249,248,249,240,251,224,255,192,255,192,255,192, - 255,192,251,224,251,240,249,240,248,248,248,252,248,124,248,126, - 248,63,5,25,25,9,2,0,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,27,18,72,31,2,0,249,248,62,0,251,252,127,128,255, - 254,255,192,254,63,199,192,252,63,135,192,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,248, - 31,3,224,248,31,3,224,248,31,3,224,248,31,3,224,16, - 18,36,20,2,0,249,248,251,252,255,254,252,63,252,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,18,18,54,21,2,0,3, - 240,0,15,252,0,63,254,0,62,31,0,124,15,128,120,15, - 128,248,7,128,248,7,128,248,7,192,248,7,192,248,7,192, - 248,7,128,120,15,128,124,15,128,62,31,0,63,254,0,15, - 252,0,3,240,0,17,25,75,20,2,249,249,240,0,251,252, - 0,255,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,252,31,0,254,63,0,255,254,0,255,252,0,249,240, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,21,2,249,7,207,128,31, - 239,128,63,255,128,126,63,128,124,31,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,128,126,63,128,63,255,128,31,255,128,7, - 207,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,11,18,36,13,2,0,249,224,251, - 224,255,224,255,224,255,0,252,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,15,18,36,18,2,0,15,224,63,248,127,248,124,124,248, - 124,248,124,126,0,127,192,63,248,15,252,1,252,0,126,248, - 62,248,62,248,124,127,252,63,248,15,192,13,23,46,14,1, - 0,1,0,7,0,31,0,31,0,31,0,255,240,255,240,255, - 240,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,15,128,15,248,7,248,3,240,16, - 18,36,20,2,0,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,248,31,248,31,248, - 31,252,63,127,255,63,223,31,159,18,18,54,19,0,0,248, - 7,192,124,7,192,124,15,128,124,15,128,62,15,128,62,31, - 0,62,31,0,31,30,0,31,30,0,15,62,0,15,188,0, - 15,188,0,7,252,0,7,248,0,7,248,0,3,240,0,3, - 240,0,1,240,0,29,18,72,29,0,0,248,15,128,248,124, - 31,192,240,124,31,193,240,124,31,193,240,124,31,225,224,62, - 63,225,224,62,61,227,224,62,61,227,224,31,125,243,192,31, - 120,247,192,31,120,247,192,15,248,255,128,15,248,127,128,15, - 240,127,128,15,240,127,128,7,240,127,0,7,224,63,0,7, - 224,63,0,17,18,54,19,1,0,252,31,0,124,31,0,126, - 62,0,63,60,0,31,124,0,15,248,0,15,248,0,7,240, - 0,7,224,0,7,240,0,15,248,0,31,248,0,30,252,0, - 62,126,0,60,62,0,124,63,0,248,31,0,248,15,128,17, - 25,75,18,1,249,248,15,128,248,15,128,248,15,0,124,31, - 0,124,31,0,124,30,0,62,62,0,62,60,0,30,60,0, - 31,124,0,31,120,0,15,248,0,15,248,0,15,240,0,7, - 240,0,7,240,0,3,224,0,3,224,0,3,224,0,3,192, - 0,7,192,0,7,128,0,7,128,0,15,128,0,15,128,0, - 14,18,36,18,2,0,255,252,255,252,255,252,0,124,0,248, - 1,248,3,240,7,224,7,192,15,128,31,128,63,0,126,0, - 124,0,248,0,255,252,255,252,255,252,13,35,70,18,3,248, - 0,248,3,248,7,248,15,192,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,0,15,0,15,0,31,0,126,0, - 252,0,240,0,252,0,126,0,63,0,31,0,15,0,15,0, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,192, - 7,248,3,248,0,248,2,37,37,12,5,247,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,13,35,70,17,2,248,248,0,254,0,255,0,31,0,15, - 0,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,7,128,7,192,3,224,1,248,0,248,1,248,3,224,7, - 192,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,0,31,0,255,0,254,0,248,0,18,4,12, - 18,0,7,31,195,192,63,255,128,127,255,0,240,126,0,255 - }; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=26 dx=42 dy= 0 ascent=43 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30[16953] U8G_FONT_SECTION("u8g_font_fub30") = { - 0,59,54,253,245,30,9,163,21,182,32,255,249,43,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,12,0,0,5,28,28,16, - 5,248,248,248,248,248,248,0,0,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,18,30, - 90,24,3,250,0,6,0,0,14,0,0,12,0,0,12,0, - 0,28,0,7,252,0,31,255,0,63,255,128,63,63,128,124, - 63,192,124,127,192,252,103,192,248,96,0,248,96,0,248,192, - 0,248,192,0,248,192,0,253,192,0,253,143,192,125,143,192, - 127,143,192,127,31,128,63,255,128,31,255,0,7,252,0,6, - 0,0,14,0,0,12,0,0,12,0,0,28,0,0,20,31, - 93,23,2,0,0,16,0,3,255,128,7,255,192,15,255,224, - 15,199,240,31,131,240,31,131,240,31,1,240,31,0,0,31, - 0,0,31,0,0,31,0,0,255,252,0,255,252,0,255,252, - 0,255,252,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,255,255,240,255,255,240,255,255,240,255,255, - 240,21,21,63,25,2,8,192,0,24,224,0,56,113,252,112, - 63,255,224,31,7,192,28,1,192,24,1,192,56,0,224,48, - 0,96,48,0,96,48,0,96,48,0,96,48,0,224,56,0, - 224,28,1,192,30,3,192,31,143,192,63,255,224,113,252,112, - 224,0,56,192,0,24,22,30,90,24,1,0,252,0,252,252, - 0,252,124,1,248,126,1,248,62,3,240,63,3,240,63,7, - 224,31,135,224,255,135,252,255,143,252,255,207,252,7,223,128, - 7,255,0,3,255,0,3,255,0,1,254,0,255,255,252,255, - 255,252,255,255,252,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,2,38,38,14,6,248,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,16,36,72,19,1,251,15,252,31,254,63,254,126,14, - 124,2,124,0,124,0,126,0,127,0,63,192,31,224,15,248, - 31,252,63,254,126,127,124,63,248,31,248,31,248,31,252,62, - 254,252,127,248,63,240,31,248,7,252,1,254,0,127,0,63, - 0,63,0,31,0,63,64,126,127,254,127,252,127,240,31,192, - 13,5,10,13,0,26,240,120,240,120,240,120,240,120,240,120, - 30,30,120,34,2,1,0,63,240,0,0,255,252,0,3,248, - 127,0,7,192,15,128,15,0,3,192,30,0,1,224,60,31, - 240,240,56,63,248,112,120,127,252,120,112,248,124,56,112,248, - 62,56,225,240,62,28,225,240,62,28,225,240,0,28,225,240, - 0,28,225,240,0,28,225,240,0,28,225,240,62,28,225,240, - 62,28,112,248,62,56,112,248,124,56,112,127,252,120,56,63, - 248,112,60,31,224,240,30,0,1,224,15,0,3,192,7,128, - 15,128,3,240,63,0,1,255,252,0,0,63,240,0,14,20, - 40,16,1,10,15,192,63,240,120,240,120,120,0,120,15,248, - 63,248,124,120,240,120,240,120,240,120,240,248,255,248,127,248, - 63,56,0,0,0,0,0,0,255,252,255,252,20,16,48,24, - 2,2,15,193,240,15,131,224,31,135,224,31,7,192,63,15, - 192,126,15,192,126,31,128,252,31,128,252,31,128,126,31,128, - 126,15,192,63,15,192,31,7,192,31,135,224,15,131,224,15, - 193,240,21,9,27,25,2,8,255,255,248,255,255,248,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,255,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,248,127,0,7,192,15,128,15,0,3,192,30,0, - 1,224,60,255,192,240,56,255,240,112,120,255,248,120,112,240, - 124,56,112,240,60,56,224,240,60,28,224,240,60,28,224,240, - 120,28,224,255,240,28,224,255,224,28,224,255,248,28,224,240, - 120,28,224,240,120,28,112,240,56,56,112,240,60,56,112,240, - 60,120,56,240,60,112,60,240,60,240,30,0,1,224,15,0, - 3,192,7,128,15,128,3,240,63,0,1,255,252,0,0,63, - 240,0,13,4,8,13,0,26,255,248,255,248,255,248,255,248, - 9,9,18,13,2,21,62,0,127,0,227,128,193,128,193,128, - 193,128,227,128,127,0,62,0,24,24,72,40,8,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,255,255,255,255,255,255,255,255,255,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 255,255,255,255,255,255,13,16,32,15,1,15,63,224,127,240, - 248,120,240,120,0,120,0,248,1,240,3,224,7,192,15,128, - 31,0,60,0,240,0,255,240,255,240,255,240,12,15,30,14, - 1,16,63,192,127,224,240,240,240,240,0,240,1,224,15,192, - 15,192,1,224,0,240,0,240,240,240,249,240,127,224,63,128, - 8,8,8,9,2,25,31,31,62,60,120,112,240,224,255,18, - 36,108,22,2,250,7,255,192,31,255,192,63,199,0,127,199, - 0,255,199,0,255,199,0,255,199,0,255,199,0,255,199,0, - 255,199,0,255,199,0,255,199,0,127,199,0,63,199,0,15, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,1,199,0,1,199,0,1,199,0,1,199,0,1,199,0, - 1,199,0,1,199,0,1,199,0,1,199,0,1,199,0,1, - 199,0,1,199,0,1,199,0,1,199,0,1,199,0,1,199, - 0,5,5,5,12,3,11,248,248,248,248,248,9,10,20,10, - 2,246,48,0,48,0,60,0,63,0,7,128,3,128,3,128, - 135,128,255,0,252,0,7,16,16,11,2,14,30,62,254,254, - 158,30,30,30,30,30,30,30,30,30,30,30,14,19,38,16, - 1,11,15,192,31,224,60,240,120,120,112,56,240,60,240,60, - 240,60,240,60,240,60,112,56,120,120,60,240,31,224,15,192, - 0,0,0,0,255,252,255,252,20,16,48,24,2,2,252,31, - 0,124,31,0,126,15,128,62,15,192,63,15,192,31,7,224, - 31,135,224,31,131,240,31,131,240,31,135,224,31,7,224,63, - 15,192,62,15,192,126,15,128,124,31,0,252,31,0,28,31, - 124,32,2,255,30,0,15,0,62,0,30,0,254,0,30,0, - 254,0,60,0,158,0,124,0,30,0,120,0,30,0,248,0, - 30,0,240,0,30,1,240,0,30,1,224,0,30,3,192,0, - 30,3,192,0,30,7,128,0,30,15,128,0,30,15,0,0, - 30,31,3,224,0,30,7,224,0,60,15,224,0,60,15,224, - 0,120,31,224,0,120,61,224,0,240,121,224,0,240,121,224, - 1,224,241,224,3,193,225,224,3,193,255,240,7,129,255,240, - 7,128,1,224,15,0,1,224,15,0,1,224,30,0,1,224, - 28,30,120,31,2,0,30,0,30,0,62,0,60,0,254,0, - 56,0,222,0,120,0,158,0,240,0,30,0,240,0,30,1, - 224,0,30,1,224,0,30,3,192,0,30,3,192,0,30,7, - 128,0,30,7,128,0,30,15,0,0,30,30,0,0,30,30, - 31,128,30,60,63,224,0,60,125,224,0,120,240,240,0,120, - 240,240,0,240,0,240,0,240,1,240,1,224,3,224,1,192, - 7,192,3,192,15,128,7,128,31,0,7,128,62,0,15,0, - 124,0,15,0,240,0,30,0,255,240,30,0,255,240,29,30, - 120,31,1,1,63,192,3,192,127,224,7,192,240,240,7,128, - 240,240,15,0,0,240,15,0,1,224,30,0,15,192,30,0, - 15,192,60,0,1,224,124,0,0,240,120,0,0,240,240,0, - 240,240,240,0,249,241,224,0,127,225,224,0,63,131,193,240, - 0,3,195,240,0,7,135,240,0,15,7,240,0,15,15,240, - 0,30,30,240,0,30,60,240,0,60,60,240,0,60,120,240, - 0,120,240,240,0,240,255,248,0,240,255,248,1,224,0,240, - 1,224,0,240,3,192,0,240,3,192,0,240,19,28,84,23, - 2,248,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,0,0,0,0,0,0,0,0,0,240,0,0,240,0, - 0,240,0,0,240,0,1,224,0,7,224,0,15,128,0,31, - 0,0,62,0,0,124,0,0,252,0,0,252,0,0,248,1, - 0,252,3,128,252,7,224,126,15,192,127,255,192,63,255,128, - 15,254,0,3,248,0,27,41,164,28,1,0,1,240,0,0, - 1,240,0,0,0,248,0,0,0,120,0,0,0,60,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,63,128,0, - 0,127,128,0,0,127,128,0,0,127,192,0,0,255,192,0, - 0,255,224,0,0,255,224,0,1,251,224,0,1,243,240,0, - 3,243,240,0,3,241,240,0,3,225,248,0,7,225,248,0, - 7,224,248,0,7,192,252,0,15,192,252,0,15,192,126,0, - 15,128,126,0,31,255,254,0,31,255,255,0,63,255,255,0, - 63,255,255,0,63,255,255,128,126,0,31,128,126,0,31,128, - 126,0,15,192,252,0,15,192,252,0,7,192,248,0,7,224, - 27,41,164,28,1,0,0,3,240,0,0,3,224,0,0,3, - 192,0,0,7,128,0,0,7,0,0,0,15,0,0,0,14, - 0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,127, - 128,0,0,127,192,0,0,255,192,0,0,255,224,0,0,255, - 224,0,1,251,224,0,1,243,240,0,3,243,240,0,3,241, - 240,0,3,225,248,0,7,225,248,0,7,224,248,0,7,192, - 252,0,15,192,252,0,15,192,126,0,15,128,126,0,31,255, - 254,0,31,255,255,0,63,255,255,0,63,255,255,0,63,255, - 255,128,126,0,31,128,126,0,31,128,126,0,15,192,252,0, - 15,192,252,0,7,192,248,0,7,224,27,41,164,28,1,0, - 0,63,0,0,0,63,128,0,0,127,128,0,0,123,192,0, - 0,243,192,0,0,225,224,0,1,192,224,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,63,0,0, - 0,63,128,0,0,127,128,0,0,127,128,0,0,127,192,0, - 0,255,192,0,0,255,224,0,0,255,224,0,1,251,224,0, - 1,243,240,0,3,243,240,0,3,241,240,0,3,225,248,0, - 7,225,248,0,7,224,248,0,7,192,252,0,15,192,252,0, - 15,192,126,0,15,128,126,0,31,255,254,0,31,255,255,0, - 63,255,255,0,63,255,255,0,63,255,255,128,126,0,31,128, - 126,0,31,128,126,0,15,192,252,0,15,192,252,0,7,192, - 248,0,7,224,27,39,156,28,1,0,0,120,112,0,0,255, - 224,0,1,255,224,0,1,255,192,0,1,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,63,128,0,0,127,128,0,0,127,128,0,0,127, - 192,0,0,255,192,0,0,255,224,0,0,255,224,0,1,251, - 224,0,1,243,240,0,3,243,240,0,3,241,240,0,3,225, - 248,0,7,225,248,0,7,224,248,0,7,192,252,0,15,192, - 252,0,15,192,126,0,15,128,126,0,31,255,254,0,31,255, - 255,0,63,255,255,0,63,255,255,0,63,255,255,128,126,0, - 31,128,126,0,31,128,126,0,15,192,252,0,15,192,252,0, - 7,192,248,0,7,224,27,40,160,29,1,0,1,224,240,0, - 1,224,240,0,1,224,240,0,1,224,240,0,1,224,240,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,63,128,0,0,63,128,0,0,127,192,0, - 0,127,192,0,0,127,192,0,0,255,224,0,0,255,224,0, - 1,251,240,0,1,251,240,0,1,251,240,0,3,241,248,0, - 3,241,248,0,3,224,248,0,7,224,252,0,7,224,252,0, - 7,192,124,0,15,192,126,0,15,192,126,0,15,128,62,0, - 31,255,255,0,31,255,255,0,31,255,255,0,63,255,255,128, - 63,255,255,128,126,0,31,128,126,0,15,192,126,0,15,192, - 252,0,7,224,252,0,7,224,252,0,7,224,27,43,172,28, - 0,0,0,31,0,0,0,63,128,0,0,113,192,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,113,192,0,0,63, - 128,0,0,31,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,63,128,0,0,63,128,0,0,63, - 128,0,0,127,192,0,0,127,192,0,0,127,192,0,0,255, - 224,0,0,251,224,0,0,251,240,0,1,251,240,0,1,241, - 240,0,1,241,248,0,3,241,248,0,3,224,248,0,7,224, - 252,0,7,224,252,0,7,192,124,0,15,192,126,0,15,192, - 126,0,15,255,254,0,31,255,255,0,31,255,255,0,31,255, - 255,128,63,255,255,128,63,0,31,128,62,0,15,192,126,0, - 15,192,126,0,15,192,252,0,7,224,252,0,7,224,38,30, - 150,40,0,0,0,1,255,255,248,0,1,255,255,248,0,3, - 255,255,248,0,3,255,255,248,0,7,255,0,0,0,7,223, - 0,0,0,15,223,0,0,0,15,159,0,0,0,31,159,0, - 0,0,31,31,0,0,0,63,31,0,0,0,62,31,0,0, - 0,126,31,255,248,0,124,31,255,248,0,252,31,255,248,0, - 248,31,255,248,1,248,31,255,248,1,240,31,0,0,3,255, - 255,0,0,7,255,255,0,0,7,255,255,0,0,15,255,255, - 0,0,15,255,255,0,0,31,128,63,0,0,31,128,63,0, - 0,63,0,63,255,252,63,0,63,255,252,126,0,63,255,252, - 126,0,63,255,252,252,0,63,255,252,24,40,120,29,2,247, - 1,255,192,3,255,240,15,255,248,15,255,252,31,255,254,63, - 128,254,62,0,127,126,0,127,124,0,63,124,0,63,252,0, - 0,252,0,0,252,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,252,0,0,124,0,63,124, - 0,127,126,0,127,62,0,255,63,0,254,31,255,254,31,255, - 252,15,255,248,7,255,240,1,255,192,0,24,0,0,24,0, - 0,31,0,0,31,128,0,3,192,0,1,192,0,1,192,0, - 195,192,0,255,128,0,254,0,20,41,123,25,3,0,15,128, - 0,15,128,0,7,192,0,3,192,0,1,224,0,0,224,0, - 0,240,0,0,112,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,20,41,123,25,3,0,0, - 63,0,0,62,0,0,124,0,0,120,0,0,240,0,0,224, - 0,1,224,0,1,192,0,0,0,0,0,0,0,0,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,255,255,224,255,255,224,255,255,224, - 255,255,224,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,20,41,123,25,3,0, - 3,248,0,3,248,0,7,252,0,7,188,0,7,30,0,14, - 14,0,14,7,0,28,7,0,0,0,0,0,0,0,0,0, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,255,255,224,255,255,224,255,255, - 224,255,255,224,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,20,40,120,25,3, - 0,15,15,0,15,15,0,15,15,0,15,15,0,15,15,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,255,255,224,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,255,255,224,255,255,224,255,255,224,255, - 255,224,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,240,255,255,240, - 255,255,240,255,255,240,255,255,240,9,41,82,11,255,0,248, - 0,124,0,60,0,30,0,14,0,15,0,7,0,3,0,0, - 0,0,0,0,0,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,8,41,41,10,3,0,15,31,30,60,56,120,112,224,0, - 0,0,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 12,41,82,11,0,0,31,128,63,128,63,128,123,192,121,192, - 112,224,224,224,192,112,0,0,0,0,0,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,13,40,80,13,0,0,240,120, - 240,120,240,120,240,120,240,120,0,0,0,0,0,0,0,0, - 0,0,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,26,30, - 120,29,0,0,31,255,0,0,31,255,224,0,31,255,248,0, - 31,255,252,0,31,255,254,0,31,1,255,0,31,0,127,0, - 31,0,31,128,31,0,31,128,31,0,15,192,31,0,15,192, - 31,0,7,192,31,0,7,192,255,252,7,192,255,252,7,192, - 255,252,7,192,255,252,7,192,31,0,7,192,31,0,7,192, - 31,0,15,192,31,0,15,192,31,0,31,128,31,0,31,128, - 31,0,127,0,31,1,255,0,31,255,254,0,31,255,252,0, - 31,255,248,0,31,255,224,0,31,255,0,0,25,39,156,31, - 3,0,0,248,96,0,1,255,224,0,1,255,192,0,3,255, - 128,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,128,15,128,255,128,15,128,255,128, - 15,128,255,192,15,128,255,192,15,128,255,224,15,128,251,224, - 15,128,251,240,15,128,249,240,15,128,249,248,15,128,248,248, - 15,128,248,252,15,128,248,252,15,128,248,126,15,128,248,126, - 15,128,248,63,15,128,248,63,15,128,248,31,143,128,248,31, - 143,128,248,15,143,128,248,15,207,128,248,7,207,128,248,7, - 239,128,248,3,239,128,248,3,255,128,248,1,255,128,248,1, - 255,128,248,0,255,128,248,0,255,128,248,0,127,128,27,41, - 164,31,2,0,1,240,0,0,1,240,0,0,0,248,0,0, - 0,120,0,0,0,60,0,0,0,28,0,0,0,28,0,0, - 0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,27,41,164,31,2,0,0,1, - 240,0,0,1,224,0,0,3,224,0,0,3,192,0,0,7, - 128,0,0,7,0,0,0,14,0,0,0,14,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,41,164,31,2,0,0,63,0,0,0,63,128,0, - 0,63,128,0,0,123,192,0,0,113,192,0,0,240,224,0, - 0,224,224,0,1,192,112,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,224,0,3,255,248,0,7,255,252,0, - 15,255,254,0,31,255,255,0,63,192,127,128,63,0,31,128, - 127,0,31,192,126,0,15,192,126,0,15,192,252,0,15,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,15,224,126,0,15,192,126,0,15,192,127,0,31,192, - 63,0,31,128,63,192,127,128,31,255,255,0,15,255,254,0, - 7,255,252,0,3,255,248,0,0,255,224,0,27,40,160,31, - 2,0,0,0,48,0,0,124,112,0,0,255,224,0,0,255, - 224,0,1,255,192,0,1,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,224,0,3,255, - 248,0,7,255,252,0,15,255,254,0,31,255,255,0,63,192, - 127,128,63,0,31,128,127,0,31,192,126,0,15,192,126,0, - 15,192,252,0,15,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,15,224,126,0,15,192,126,0, - 15,192,127,0,31,192,63,0,31,128,63,192,127,128,31,255, - 255,0,15,255,254,0,7,255,252,0,3,255,248,0,0,255, - 224,0,27,40,160,31,2,0,0,240,240,0,0,240,240,0, - 0,240,240,0,0,240,240,0,0,240,240,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,224,0,3,255,248,0,7,255,252,0,15,255,254,0, - 31,255,255,0,63,192,127,128,63,0,31,128,127,0,31,192, - 126,0,15,192,126,0,15,192,252,0,15,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,7,224, - 252,0,7,224,252,0,7,224,252,0,7,224,252,0,15,224, - 126,0,15,192,126,0,15,192,127,0,31,192,63,0,31,128, - 63,192,127,128,31,255,255,0,15,255,254,0,7,255,252,0, - 3,255,248,0,0,255,224,0,22,22,66,40,9,1,96,0, - 24,240,0,60,112,0,56,56,0,112,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,96,0,24,64,0,8, - 29,34,136,31,1,254,0,0,0,16,0,0,0,56,0,127, - 240,120,1,255,252,240,3,255,255,240,7,255,255,224,15,255, - 255,192,31,224,63,192,31,128,15,192,63,128,31,224,63,0, - 63,224,63,0,127,224,126,0,251,240,126,1,243,240,126,1, - 227,240,126,3,195,240,126,7,131,240,126,15,3,240,126,30, - 3,240,126,60,3,240,126,124,3,240,126,248,7,240,63,240, - 7,224,63,224,7,224,63,192,15,224,31,128,15,192,31,224, - 63,192,31,255,255,128,63,255,255,0,127,255,254,0,249,255, - 252,0,240,127,240,0,224,0,0,0,64,0,0,0,24,41, - 123,30,3,0,7,192,0,3,224,0,1,224,0,1,240,0, - 0,240,0,0,120,0,0,56,0,0,28,0,0,0,0,0, - 0,0,0,0,0,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,252,0, - 31,252,0,31,252,0,63,124,0,63,126,0,126,127,0,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,30,3,0,0,3,224,0,3,224,0,7,192,0,15, - 128,0,15,0,0,30,0,0,28,0,0,56,0,0,0,0, - 0,0,0,0,0,0,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,252, - 0,31,252,0,31,252,0,63,124,0,63,126,0,126,127,0, - 254,63,255,252,31,255,252,31,255,248,7,255,224,1,255,192, - 24,41,123,30,3,0,0,126,0,0,255,0,0,255,0,1, - 247,128,1,231,128,3,195,192,3,129,192,7,0,224,0,0, - 0,0,0,0,0,0,0,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 252,0,31,252,0,31,252,0,63,124,0,63,126,0,126,127, - 0,254,63,255,252,31,255,252,31,255,248,7,255,224,1,255, - 192,24,40,120,30,3,0,3,193,224,3,193,224,3,193,224, - 3,193,224,3,193,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,252,0,31,252,0,31,252,0,31,252,0,31, - 252,0,31,252,0,31,252,0,31,252,0,31,252,0,31,252, - 0,31,252,0,31,252,0,31,252,0,31,252,0,31,252,0, - 31,252,0,31,254,0,63,126,0,63,127,0,126,127,128,254, - 63,255,252,31,255,252,31,255,248,7,255,224,1,255,192,24, - 41,123,25,1,0,0,7,192,0,15,128,0,15,0,0,14, - 0,0,30,0,0,28,0,0,56,0,0,0,0,0,0,0, - 0,0,0,0,0,0,252,0,127,254,0,126,126,0,254,127, - 0,252,63,1,252,63,1,248,31,131,248,31,131,240,15,195, - 240,15,199,224,7,231,224,7,239,192,3,255,192,3,255,128, - 1,255,128,1,255,0,0,255,0,0,254,0,0,126,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 21,30,90,26,2,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,252,0,255,255,128,255,255,192,255,255, - 224,255,255,240,248,7,240,248,1,248,248,1,248,248,0,248, - 248,0,248,248,1,248,248,1,248,248,7,240,255,255,240,255, - 255,224,255,255,192,255,255,128,255,252,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 21,30,90,24,2,1,15,252,0,63,255,0,127,255,128,126, - 31,192,252,15,192,252,7,192,248,7,192,248,15,192,248,15, - 128,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 248,248,0,248,252,0,248,254,0,248,127,128,248,63,192,248, - 31,224,248,7,240,248,3,240,248,1,248,248,1,248,251,224, - 248,251,225,248,251,241,248,249,255,240,249,255,224,248,255,192, - 19,32,96,22,2,0,31,0,0,31,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,1,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,31,255,0, - 63,255,128,126,15,128,124,15,192,0,7,192,0,127,192,15, - 255,192,63,255,192,127,255,192,127,7,192,252,7,192,252,7, - 192,248,15,192,248,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,227,224,19,32,96,22,2,0,0,31,0,0, - 62,0,0,60,0,0,120,0,0,120,0,0,240,0,0,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,31,255,0,63,255,128,126,15,128,124,15,192,0, - 7,192,0,127,192,15,255,192,63,255,192,127,255,192,127,7, - 192,252,7,192,252,7,192,248,15,192,248,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,227,224,19,32,96,22, - 2,0,3,240,0,3,248,0,7,248,0,7,188,0,15,28, - 0,14,30,0,28,14,0,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,30,90,22,2,0,7,135,0,15,254,0,15,254, - 0,31,252,0,24,16,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,254,0,31,255,0,63,255,128,126, - 15,128,124,15,192,0,7,192,0,127,192,15,255,192,63,255, - 192,127,255,192,127,7,192,252,7,192,252,7,192,248,15,192, - 248,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 227,224,19,31,93,23,2,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,15,254,0,31,255,0,63, - 255,128,126,15,128,124,15,192,0,7,192,0,127,192,15,255, - 192,63,255,192,127,255,192,127,7,192,252,7,192,252,7,192, - 248,15,192,248,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,224,19,34,102,22,2,0,1,240,0,3,248, - 0,7,28,0,6,12,0,6,12,0,6,12,0,7,28,0, - 3,248,0,1,240,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,254,0,31,255,0,63,255,128,126,15, - 128,124,15,192,0,7,192,0,127,192,15,255,192,63,255,192, - 127,255,192,127,7,192,252,7,192,252,7,192,248,15,192,248, - 15,192,252,15,192,254,31,192,127,255,192,63,247,192,31,231, - 224,32,20,80,36,2,1,15,252,31,224,31,254,127,248,63, - 255,127,252,126,15,240,126,124,7,224,62,0,7,224,62,0, - 7,192,31,7,255,255,255,31,255,255,255,63,255,255,255,127, - 255,255,255,252,7,192,0,252,7,224,0,248,7,224,0,248, - 15,224,63,252,15,240,62,254,30,248,126,127,252,127,252,63, - 248,63,248,31,224,31,240,17,30,90,21,2,247,15,252,0, - 31,254,0,63,255,0,126,63,0,124,31,128,124,31,128,252, - 15,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,252,15,128,252,31,128,124,31,128,126,63,0, - 63,255,0,31,254,0,15,252,0,1,128,0,1,128,0,1, - 224,0,1,248,0,0,60,0,0,28,0,0,28,0,6,60, - 0,7,248,0,7,224,0,19,32,96,22,2,0,31,0,0, - 31,0,0,15,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,252,0,31,255,0,63,255,0,62,31,128,124,15,192, - 124,7,192,252,7,192,255,255,192,255,255,192,255,255,224,255, - 255,224,248,0,0,248,0,0,252,0,0,124,7,192,124,15, - 192,126,31,128,63,255,128,31,255,0,7,252,0,19,32,96, - 22,2,0,0,31,0,0,62,0,0,60,0,0,120,0,0, - 120,0,0,240,0,0,224,0,1,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,7,252,0,31,255,0,63,255,0, - 62,31,128,124,15,192,124,7,192,252,7,192,255,255,192,255, - 255,192,255,255,224,255,255,224,248,0,0,248,0,0,252,0, - 0,124,7,192,124,15,192,126,31,128,63,255,128,31,255,0, - 7,252,0,19,32,96,22,2,0,3,240,0,3,248,0,7, - 248,0,7,188,0,15,28,0,14,30,0,28,14,0,28,7, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,252,0, - 31,255,0,63,255,0,62,31,128,124,15,192,124,7,192,252, - 7,192,255,255,192,255,255,192,255,255,224,255,255,224,248,0, - 0,248,0,0,252,0,0,124,7,192,124,15,192,126,31,128, - 63,255,128,31,255,0,7,252,0,19,31,93,22,2,0,30, - 30,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 15,192,252,15,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,15,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,8,32,32,11, - 0,0,248,120,124,60,30,14,7,7,0,0,0,0,31,31, - 31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31, - 31,31,9,32,64,10,2,0,15,128,31,0,30,0,62,0, - 60,0,120,0,112,0,224,0,0,0,0,0,0,0,0,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,13,32,64,11,255,0,15,192, - 31,192,31,224,61,224,56,240,120,112,112,56,224,56,0,0, - 0,0,0,0,0,0,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,13,31, - 62,11,255,0,240,120,240,120,240,120,240,120,240,120,0,0, - 0,0,0,0,0,0,0,0,0,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,20,31,93,24,2,0,0,0,96,7,193,224,3,247, - 224,1,255,128,0,254,0,0,254,0,3,254,0,15,159,0, - 30,15,128,24,15,128,0,7,192,7,255,192,15,255,224,63, - 255,224,63,15,240,126,3,240,124,3,240,252,1,240,252,1, - 240,252,1,240,248,1,240,248,1,240,252,1,240,252,1,240, - 252,1,240,124,3,240,126,3,224,63,15,224,31,255,192,15, - 255,128,7,254,0,18,30,90,24,3,0,7,134,0,15,254, - 0,15,254,0,31,252,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,32,96,24,2,0,15,128,0,7,128, - 0,7,192,0,3,192,0,1,224,0,0,224,0,0,112,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 254,0,15,255,0,31,255,192,63,15,192,126,3,224,124,3, - 240,252,1,240,252,1,240,252,1,240,248,1,240,248,1,240, - 248,1,240,252,1,240,252,1,240,124,3,240,126,3,224,63, - 15,192,31,255,192,15,255,0,3,254,0,20,32,96,24,2, - 0,0,15,128,0,31,0,0,30,0,0,60,0,0,56,0, - 0,120,0,0,112,0,0,224,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,254,0,15,255,0,31,255,192,63,15, - 192,126,3,224,124,3,240,252,1,240,252,1,240,252,1,240, - 248,1,240,248,1,240,248,1,240,252,1,240,252,1,240,124, - 3,240,126,3,224,63,15,192,31,255,192,15,255,0,3,254, - 0,20,32,96,24,2,0,1,248,0,1,252,0,3,252,0, - 3,222,0,7,158,0,7,15,0,14,7,0,14,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,31,93,24,2,0,0,1,128, - 3,195,0,7,255,0,7,255,0,15,254,0,12,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,254, - 0,15,255,0,31,255,192,63,15,192,126,3,224,124,3,240, - 252,1,240,252,1,240,252,1,240,248,1,240,248,1,240,248, - 1,240,252,1,240,252,1,240,124,3,240,126,3,224,63,15, - 192,31,255,192,15,255,0,3,254,0,20,31,93,24,2,0, - 15,7,128,15,7,128,15,7,128,15,7,128,15,7,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,3,254,0,15,255,0,31,255,192,63,15,192,126,3,224, - 124,3,240,252,1,240,252,1,240,252,1,240,248,1,240,248, - 1,240,248,1,240,252,1,240,252,1,240,124,3,240,126,3, - 224,63,15,192,31,255,192,15,255,0,3,254,0,24,19,57, - 40,8,2,0,16,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,56,0, - 0,124,0,0,124,0,0,124,0,0,56,0,21,26,78,24, - 1,254,0,0,56,0,0,120,0,0,112,1,255,224,7,255, - 224,15,255,224,31,135,224,63,7,240,62,15,248,126,14,248, - 126,28,248,126,56,248,124,120,248,124,112,248,126,224,248,127, - 192,248,63,193,248,63,129,248,63,3,240,31,135,224,31,255, - 224,31,255,192,57,255,0,120,0,0,240,0,0,96,0,0, - 18,32,96,24,3,0,31,0,0,15,0,0,15,128,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,224,0,0,0, - 0,0,0,0,0,0,0,0,0,0,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,252,7,192,252,15,192,252,15,192,254,31,192,127,255,192, - 63,247,192,31,231,192,18,32,96,24,3,0,0,62,0,0, - 60,0,0,124,0,0,120,0,0,240,0,0,224,0,1,224, - 0,1,192,0,0,0,0,0,0,0,0,0,0,0,0,0, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,252,7,192,252,15,192,252,15,192, - 254,31,192,127,255,192,63,247,192,31,231,192,18,32,96,24, - 3,0,3,240,0,3,248,0,7,248,0,7,188,0,15,60, - 0,14,30,0,30,14,0,28,6,0,0,0,0,0,0,0, - 0,0,0,0,0,0,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,252,15,192,254,31,192,127,255,192,63,247,192,31, - 231,192,18,31,93,24,3,0,30,30,0,30,30,0,30,30, - 0,30,30,0,30,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 252,7,192,252,15,192,252,15,192,254,31,192,127,255,192,63, - 247,192,31,231,192,21,41,123,22,1,248,0,7,192,0,15, - 128,0,15,0,0,30,0,0,30,0,0,60,0,0,56,0, - 0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,1,248,252,3,240,126,3,240,126,3,224,63,7, - 224,63,7,224,63,7,192,31,143,192,31,143,192,15,143,128, - 15,223,128,15,223,128,7,223,0,7,255,0,3,255,0,3, - 254,0,3,254,0,1,252,0,1,252,0,0,252,0,0,248, - 0,1,248,0,33,248,0,115,240,0,255,240,0,255,224,0, - 127,192,0,31,128,0,20,38,114,25,3,248,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,249,254,0,251,255,128, - 251,255,192,255,15,192,254,7,224,252,3,224,252,3,240,252, - 3,240,252,3,240,248,1,240,248,1,240,252,3,240,252,3, - 240,252,3,240,252,3,224,254,7,224,255,15,192,255,255,192, - 251,255,128,249,254,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,21,39, - 117,21,0,248,15,7,128,15,7,128,15,7,128,15,7,128, - 15,7,128,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,1,248,252,1,248,126,1,240,126,3, - 240,63,3,224,63,3,224,63,7,224,31,135,192,31,143,192, - 15,207,192,15,207,128,15,223,128,7,255,128,7,255,0,3, - 255,0,3,255,0,3,254,0,1,254,0,1,252,0,0,252, - 0,0,252,0,1,248,0,1,248,0,1,248,0,3,240,0, - 3,240,0,7,240,0,7,224,0}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=32 x= 8 y=14 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30n[1205] U8G_FONT_SECTION("u8g_font_fub30n") = { - 0,59,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,16,32,26,5,14,4,32,28,56,30,120,30,120,15, - 240,7,224,227,199,255,255,255,255,243,207,7,224,15,240,30, - 120,30,120,28,56,4,32,24,25,75,40,8,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,255,255, - 255,255,255,255,255,255,255,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,8,10,10,12,2,251,31,31, - 62,62,60,124,120,120,240,240,10,5,10,14,2,8,255,192, - 255,192,255,192,255,192,255,192,5,5,5,12,4,0,248,248, - 248,248,248,13,32,64,17,2,254,0,120,0,120,0,120,0, - 240,0,240,0,240,1,224,1,224,1,224,3,192,3,192,3, - 192,3,192,7,128,7,128,7,128,15,0,15,0,15,0,14, - 0,30,0,30,0,30,0,60,0,60,0,60,0,120,0,120, - 0,120,0,120,0,240,0,240,0,20,30,90,23,1,1,3, - 252,0,15,255,0,31,255,128,63,15,128,62,7,192,124,3, - 192,124,3,224,124,3,224,124,3,224,248,1,240,248,1,240, - 248,1,240,248,1,240,248,1,240,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,124,3, - 224,124,3,224,124,3,224,124,3,224,62,7,192,63,15,128, - 31,255,128,15,255,0,3,252,0,12,30,60,23,4,0,1, - 240,3,240,15,240,63,240,255,240,255,240,253,240,249,240,225, - 240,129,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,20,30,90,23,1, - 1,3,255,0,7,255,128,31,255,192,31,255,224,63,255,240, - 63,3,240,126,1,240,126,1,240,124,1,240,0,1,240,0, - 3,240,0,3,240,0,7,224,0,15,224,0,15,192,0,31, - 128,0,63,0,0,254,0,1,252,0,3,248,0,7,240,0, - 15,224,0,63,128,0,127,0,0,252,0,0,255,255,240,255, - 255,240,255,255,240,255,255,240,255,255,240,19,30,90,23,2, - 1,7,252,0,31,255,0,63,255,128,127,255,128,127,255,192, - 252,15,192,252,7,192,248,7,192,0,7,192,0,7,192,0, - 15,192,0,63,192,3,255,128,3,254,0,3,252,0,3,255, - 0,3,255,128,0,31,192,0,7,224,0,7,224,0,7,224, - 0,3,224,248,7,224,252,7,224,252,7,192,126,15,192,127, - 255,128,63,255,128,31,255,0,15,252,0,21,30,90,23,1, - 0,0,63,128,0,63,128,0,127,128,0,255,128,0,255,128, - 1,255,128,1,255,128,3,239,128,3,207,128,7,207,128,15, - 143,128,15,143,128,31,15,128,31,15,128,62,15,128,62,15, - 128,124,15,128,252,15,128,248,15,128,255,255,248,255,255,248, - 255,255,248,255,255,248,255,255,248,0,15,128,0,15,128,0, - 15,128,0,15,128,0,15,128,0,15,128,19,30,90,23,2, - 0,127,255,192,127,255,192,127,255,192,127,255,192,127,255,192, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,252,0,125,255,0,127,255,128,127,255,192,127,15, - 224,126,7,224,124,3,224,0,3,224,0,3,224,0,3,224, - 0,3,224,0,3,224,248,7,224,252,7,224,252,15,192,127, - 255,128,127,255,128,63,254,0,15,252,0,20,30,90,23,1, - 1,3,254,0,7,255,0,15,255,128,31,255,192,63,255,192, - 63,7,224,126,3,224,126,3,224,124,0,0,124,0,0,252, - 0,0,248,0,0,249,255,0,251,255,128,255,255,192,255,15, - 224,254,7,224,254,3,240,252,3,240,252,3,240,252,1,240, - 252,1,240,124,3,240,124,3,240,126,3,224,63,7,224,63, - 255,192,31,255,128,15,255,0,3,254,0,19,30,90,23,2, - 0,255,255,224,255,255,224,255,255,224,255,255,224,255,255,224, - 0,7,224,0,7,224,0,7,192,0,15,192,0,15,192,0, - 31,128,0,31,128,0,63,0,0,63,0,0,63,0,0,126, - 0,0,126,0,0,252,0,0,252,0,1,252,0,1,248,0, - 1,248,0,3,240,0,3,240,0,7,240,0,7,224,0,15, - 224,0,15,192,0,15,192,0,31,192,0,20,30,90,23,1, - 1,7,254,0,31,255,128,63,255,192,127,255,224,127,255,224, - 126,7,224,124,3,224,124,3,224,124,3,224,124,3,224,126, - 7,224,127,15,192,63,255,128,15,255,0,7,252,0,31,255, - 0,63,255,192,127,15,224,124,7,224,252,3,240,252,3,240, - 248,1,240,248,3,240,252,3,240,252,3,240,254,7,240,127, - 255,224,63,255,192,31,255,128,15,255,0,20,30,90,23,1, - 1,3,252,0,15,255,0,31,255,128,63,255,192,127,255,192, - 126,7,224,252,7,224,252,3,224,252,3,240,248,3,240,248, - 3,240,252,3,240,252,7,240,124,7,240,127,15,240,63,255, - 240,63,253,240,31,249,240,7,225,240,0,3,240,0,3,224, - 0,3,224,0,3,224,124,7,224,124,7,192,126,15,192,63, - 255,128,31,255,0,15,254,0,7,252,0,5,20,20,12,5, - 0,248,248,248,248,248,0,0,0,0,0,0,0,0,0,0, - 248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--40-400-72-72-P-198-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=38 h=43 x=10 y=25 dx=42 dy= 0 ascent=33 len=195 - Font Bounding box w=59 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub30r[7686] U8G_FONT_SECTION("u8g_font_fub30r") = { - 0,59,54,253,245,30,9,163,21,182,32,127,249,33,245,31, - 248,0,0,0,12,0,0,5,30,30,16,5,0,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,0,0,0,248,248,248,248,248,15,12,24,21,3, - 18,252,126,252,126,252,126,252,126,248,126,248,126,248,60,248, - 60,120,60,120,60,120,60,120,60,25,30,120,29,2,0,0, - 60,30,0,0,60,30,0,0,120,60,0,0,120,60,0,0, - 120,60,0,0,120,120,0,0,240,120,0,0,240,120,0,15, - 255,255,128,31,255,255,0,31,255,255,0,31,255,255,0,1, - 224,224,0,3,193,224,0,3,193,224,0,3,193,224,0,7, - 131,192,0,7,131,192,0,127,255,252,0,255,255,248,0,255, - 255,248,0,255,255,248,0,15,7,128,0,30,15,0,0,30, - 15,0,0,30,15,0,0,62,30,0,0,60,30,0,0,60, - 30,0,0,60,30,0,0,21,37,111,23,1,252,0,96,0, - 0,96,0,0,96,0,3,254,0,15,255,128,31,255,192,63, - 255,224,127,111,224,126,99,240,124,99,240,124,97,240,124,96, - 0,124,96,0,126,96,0,127,224,0,127,240,0,63,254,0, - 31,255,128,7,255,224,0,255,240,0,127,240,0,103,248,0, - 97,248,248,97,248,248,96,248,252,97,248,252,97,248,126,99, - 240,127,255,240,63,255,224,31,255,192,15,255,128,3,254,0, - 0,96,0,0,96,0,0,96,0,0,96,0,37,30,150,41, - 2,0,7,224,0,120,0,31,248,0,240,0,63,252,0,240, - 0,124,62,1,224,0,120,30,3,224,0,240,15,3,192,0, - 240,15,7,192,0,240,15,7,128,0,240,15,15,0,0,240, - 15,15,0,0,240,15,30,0,0,240,15,30,0,0,120,30, - 60,0,0,124,62,124,0,0,63,252,120,63,0,31,248,248, - 255,192,7,224,241,255,224,0,1,227,225,240,0,1,227,192, - 240,0,3,199,128,120,0,3,199,128,120,0,7,135,128,120, - 0,7,135,128,120,0,15,7,128,120,0,31,7,128,120,0, - 30,3,192,240,0,62,3,192,240,0,60,1,243,224,0,120, - 1,255,192,0,120,0,127,128,28,30,120,31,2,1,3,255, - 0,0,15,255,128,0,31,255,192,0,63,143,224,0,63,7, - 224,0,62,3,224,0,63,7,224,0,63,7,224,0,31,15, - 192,0,31,159,192,0,15,255,128,0,15,255,0,0,7,252, - 0,0,15,248,0,0,31,248,15,128,63,252,15,128,63,126, - 15,128,126,127,15,128,126,63,143,128,252,31,207,128,252,15, - 255,0,248,7,255,0,248,3,255,0,252,1,254,0,252,0, - 254,0,126,0,254,0,127,131,255,0,63,255,255,128,31,255, - 255,224,7,255,135,240,6,12,12,16,5,18,252,252,252,124, - 124,124,124,124,120,120,120,120,9,36,72,16,4,251,15,128, - 31,0,31,0,31,0,62,0,62,0,62,0,126,0,124,0, - 124,0,124,0,124,0,252,0,252,0,252,0,252,0,248,0, - 248,0,248,0,248,0,248,0,252,0,252,0,252,0,124,0, - 124,0,124,0,124,0,126,0,62,0,62,0,62,0,31,0, - 31,0,31,0,15,128,8,36,36,16,4,251,240,248,120,124, - 124,124,62,62,62,63,63,31,31,31,31,31,31,31,31,31, - 31,31,31,31,63,63,63,62,62,62,124,124,124,248,248,240, - 16,16,32,26,5,14,4,32,28,56,30,120,30,120,15,240, - 7,224,227,199,255,255,255,255,243,207,7,224,15,240,30,120, - 30,120,28,56,4,32,24,25,75,40,8,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,255,255,255, - 255,255,255,255,255,255,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,8,10,10,12,2,251,31,31,62, - 62,60,124,120,120,240,240,10,5,10,14,2,8,255,192,255, - 192,255,192,255,192,255,192,5,5,5,12,4,0,248,248,248, - 248,248,13,32,64,17,2,254,0,120,0,120,0,120,0,240, - 0,240,0,240,1,224,1,224,1,224,3,192,3,192,3,192, - 3,192,7,128,7,128,7,128,15,0,15,0,15,0,14,0, - 30,0,30,0,30,0,60,0,60,0,60,0,120,0,120,0, - 120,0,120,0,240,0,240,0,20,30,90,23,1,1,3,252, - 0,15,255,0,31,255,128,63,15,128,62,7,192,124,3,192, - 124,3,224,124,3,224,124,3,224,248,1,240,248,1,240,248, - 1,240,248,1,240,248,1,240,248,1,240,248,1,240,248,1, - 240,248,1,240,248,1,240,248,1,240,248,1,240,124,3,224, - 124,3,224,124,3,224,124,3,224,62,7,192,63,15,128,31, - 255,128,15,255,0,3,252,0,12,30,60,23,4,0,1,240, - 3,240,15,240,63,240,255,240,255,240,253,240,249,240,225,240, - 129,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,20,30,90,23,1,1, - 3,255,0,7,255,128,31,255,192,31,255,224,63,255,240,63, - 3,240,126,1,240,126,1,240,124,1,240,0,1,240,0,3, - 240,0,3,240,0,7,224,0,15,224,0,15,192,0,31,128, - 0,63,0,0,254,0,1,252,0,3,248,0,7,240,0,15, - 224,0,63,128,0,127,0,0,252,0,0,255,255,240,255,255, - 240,255,255,240,255,255,240,255,255,240,19,30,90,23,2,1, - 7,252,0,31,255,0,63,255,128,127,255,128,127,255,192,252, - 15,192,252,7,192,248,7,192,0,7,192,0,7,192,0,15, - 192,0,63,192,3,255,128,3,254,0,3,252,0,3,255,0, - 3,255,128,0,31,192,0,7,224,0,7,224,0,7,224,0, - 3,224,248,7,224,252,7,224,252,7,192,126,15,192,127,255, - 128,63,255,128,31,255,0,15,252,0,21,30,90,23,1,0, - 0,63,128,0,63,128,0,127,128,0,255,128,0,255,128,1, - 255,128,1,255,128,3,239,128,3,207,128,7,207,128,15,143, - 128,15,143,128,31,15,128,31,15,128,62,15,128,62,15,128, - 124,15,128,252,15,128,248,15,128,255,255,248,255,255,248,255, - 255,248,255,255,248,255,255,248,0,15,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,19,30,90,23,2,0, - 127,255,192,127,255,192,127,255,192,127,255,192,127,255,192,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,252,0,125,255,0,127,255,128,127,255,192,127,15,224, - 126,7,224,124,3,224,0,3,224,0,3,224,0,3,224,0, - 3,224,0,3,224,248,7,224,252,7,224,252,15,192,127,255, - 128,127,255,128,63,254,0,15,252,0,20,30,90,23,1,1, - 3,254,0,7,255,0,15,255,128,31,255,192,63,255,192,63, - 7,224,126,3,224,126,3,224,124,0,0,124,0,0,252,0, - 0,248,0,0,249,255,0,251,255,128,255,255,192,255,15,224, - 254,7,224,254,3,240,252,3,240,252,3,240,252,1,240,252, - 1,240,124,3,240,124,3,240,126,3,224,63,7,224,63,255, - 192,31,255,128,15,255,0,3,254,0,19,30,90,23,2,0, - 255,255,224,255,255,224,255,255,224,255,255,224,255,255,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,31, - 128,0,31,128,0,63,0,0,63,0,0,63,0,0,126,0, - 0,126,0,0,252,0,0,252,0,1,252,0,1,248,0,1, - 248,0,3,240,0,3,240,0,7,240,0,7,224,0,15,224, - 0,15,192,0,15,192,0,31,192,0,20,30,90,23,1,1, - 7,254,0,31,255,128,63,255,192,127,255,224,127,255,224,126, - 7,224,124,3,224,124,3,224,124,3,224,124,3,224,126,7, - 224,127,15,192,63,255,128,15,255,0,7,252,0,31,255,0, - 63,255,192,127,15,224,124,7,224,252,3,240,252,3,240,248, - 1,240,248,3,240,252,3,240,252,3,240,254,7,240,127,255, - 224,63,255,192,31,255,128,15,255,0,20,30,90,23,1,1, - 3,252,0,15,255,0,31,255,128,63,255,192,127,255,192,126, - 7,224,252,7,224,252,3,224,252,3,240,248,3,240,248,3, - 240,252,3,240,252,7,240,124,7,240,127,15,240,63,255,240, - 63,253,240,31,249,240,7,225,240,0,3,240,0,3,224,0, - 3,224,0,3,224,124,7,224,124,7,192,126,15,192,63,255, - 128,31,255,0,15,254,0,7,252,0,5,20,20,12,5,0, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,248, - 248,248,248,248,9,25,50,13,2,251,31,0,31,0,31,0, - 31,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,31,128,31,0,63,0,62,0, - 62,0,124,0,124,0,120,0,248,0,240,0,24,21,63,40, - 8,2,0,0,1,0,0,15,0,0,63,0,1,252,0,7, - 224,0,63,0,0,252,0,7,224,0,63,0,0,252,0,0, - 224,0,0,248,0,0,126,0,0,15,192,0,3,240,0,0, - 126,0,0,31,192,0,3,240,0,0,126,0,0,31,0,0, - 3,24,10,30,40,8,7,255,255,255,255,255,255,255,255,255, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,255,255,255,255,24,21,63,40,8,2,128,0,0,240,0, - 0,252,0,0,63,128,0,7,224,0,0,252,0,0,63,0, - 0,7,224,0,0,252,0,0,63,0,0,7,0,0,31,0, - 0,126,0,3,240,0,15,192,0,126,0,3,248,0,15,192, - 0,126,0,0,248,0,0,192,0,0,18,30,90,22,1,1, - 7,252,0,31,254,0,63,255,128,127,255,128,252,15,192,120, - 7,192,56,7,192,0,7,192,0,7,192,0,15,192,0,15, - 128,0,31,128,0,63,0,0,126,0,0,248,0,1,240,0, - 3,224,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,0,0,0,0,0,0,0,0,0,3,224,0,3,224, - 0,3,224,0,3,224,0,3,224,0,38,39,195,42,2,248, - 0,3,255,224,0,0,31,255,248,0,0,127,255,254,0,0, - 255,255,255,0,3,255,255,255,128,7,254,0,127,192,7,248, - 0,31,224,15,224,0,15,240,31,192,0,7,240,63,128,0, - 3,248,63,1,241,241,248,63,7,253,241,252,126,15,255,240, - 252,126,31,255,240,252,124,31,135,240,252,252,63,3,240,124, - 252,63,3,240,124,252,62,1,240,124,252,62,1,240,124,248, - 62,1,240,124,248,62,1,240,124,248,62,1,240,124,252,62, - 1,240,124,252,63,3,240,252,124,63,3,248,248,124,31,135, - 249,248,126,31,255,255,240,63,15,254,255,224,63,7,252,127, - 192,31,129,248,31,0,31,192,0,0,0,15,224,0,0,0, - 7,248,0,0,0,3,254,0,56,0,1,255,255,248,0,0, - 255,255,248,0,0,63,255,248,0,0,15,255,248,0,0,1, - 255,224,0,27,30,120,28,1,0,0,63,0,0,0,63,128, - 0,0,127,128,0,0,127,128,0,0,127,192,0,0,255,192, - 0,0,255,224,0,0,255,224,0,1,251,224,0,1,243,240, - 0,3,243,240,0,3,241,240,0,3,225,248,0,7,225,248, - 0,7,224,248,0,7,192,252,0,15,192,252,0,15,192,126, - 0,15,128,126,0,31,255,254,0,31,255,255,0,63,255,255, - 0,63,255,255,0,63,255,255,128,126,0,31,128,126,0,31, - 128,126,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 224,22,30,90,27,3,0,255,254,0,255,255,128,255,255,224, - 255,255,224,255,255,240,248,7,240,248,3,240,248,1,240,248, - 1,240,248,1,240,248,3,240,248,7,224,255,255,192,255,255, - 128,255,254,0,255,255,192,255,255,240,248,3,248,248,1,248, - 248,0,252,248,0,252,248,0,252,248,0,252,248,1,252,248, - 3,252,255,255,248,255,255,240,255,255,224,255,255,192,255,255, - 0,24,30,90,29,2,1,1,255,192,3,255,240,15,255,248, - 15,255,252,31,255,254,63,128,254,62,0,127,126,0,63,124, - 0,63,124,0,63,252,0,0,252,0,0,252,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,252,0,0, - 252,0,0,124,0,63,124,0,63,126,0,127,62,0,127,63, - 128,254,31,255,254,31,255,252,15,255,248,7,255,224,1,255, - 192,24,30,90,29,3,0,255,248,0,255,255,0,255,255,192, - 255,255,224,255,255,240,248,15,248,248,1,252,248,0,252,248, - 0,126,248,0,126,248,0,62,248,0,63,248,0,63,248,0, - 63,248,0,31,248,0,31,248,0,63,248,0,63,248,0,63, - 248,0,63,248,0,126,248,0,126,248,0,252,248,1,252,248, - 15,248,255,255,240,255,255,224,255,255,192,255,255,0,255,248, - 0,20,30,90,25,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,255,255,240,255,255,240,255,255,240,255,255,240,255,255, - 240,19,30,90,24,3,0,255,255,224,255,255,224,255,255,224, - 255,255,224,255,255,224,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,26,30,120,30,2,1,0,127,240,0,1,255,252,0,3, - 255,254,0,15,255,255,0,15,255,255,128,31,192,63,128,63, - 128,15,192,63,0,15,192,126,0,15,192,126,0,7,192,124, - 0,0,0,252,0,0,0,252,0,0,0,252,0,0,0,248, - 1,255,192,248,1,255,192,248,1,255,192,252,1,255,192,252, - 1,255,192,252,0,7,192,124,0,7,192,126,0,7,192,127, - 0,7,192,63,128,7,192,63,224,7,192,31,255,255,192,15, - 255,255,192,7,255,255,192,1,255,255,192,0,127,254,0,23, - 30,90,29,3,0,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,255,255,254,255,255,254,255, - 255,254,255,255,254,255,255,254,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,5, - 30,30,11,3,0,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,20,30,90,25,2,0,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,248,1,240,248,3,240,252,3,240,252,3, - 240,254,7,224,127,255,224,127,255,192,63,255,128,31,255,0, - 15,254,0,23,30,90,27,3,0,248,1,248,248,3,248,248, - 7,240,248,15,224,248,15,192,248,31,192,248,63,128,248,127, - 0,248,126,0,248,254,0,249,252,0,251,248,0,251,240,0, - 255,240,0,255,240,0,251,248,0,249,252,0,249,254,0,248, - 254,0,248,127,0,248,127,128,248,63,128,248,31,192,248,31, - 224,248,15,224,248,7,240,248,7,248,248,3,248,248,1,252, - 248,0,254,19,30,90,23,3,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,224,255,255,224,255,255,224,255,255,224, - 255,255,224,31,30,120,37,3,0,255,192,3,254,255,192,3, - 254,255,192,7,254,255,192,7,254,255,224,7,254,251,224,15, - 254,251,224,15,254,251,240,15,190,251,240,15,190,249,240,31, - 190,249,240,31,62,249,248,31,62,248,248,63,62,248,248,63, - 62,248,252,62,62,248,124,126,62,248,124,126,62,248,126,124, - 62,248,126,124,62,248,62,252,62,248,62,248,62,248,63,248, - 62,248,31,248,62,248,31,248,62,248,31,240,62,248,31,240, - 62,248,15,240,62,248,15,224,62,248,15,224,62,248,7,224, - 62,25,30,120,31,3,0,255,128,15,128,255,128,15,128,255, - 128,15,128,255,192,15,128,255,192,15,128,255,224,15,128,251, - 224,15,128,251,240,15,128,249,240,15,128,249,248,15,128,248, - 248,15,128,248,252,15,128,248,252,15,128,248,126,15,128,248, - 126,15,128,248,63,15,128,248,63,15,128,248,31,143,128,248, - 31,143,128,248,15,143,128,248,15,207,128,248,7,207,128,248, - 7,239,128,248,3,239,128,248,3,255,128,248,1,255,128,248, - 1,255,128,248,0,255,128,248,0,255,128,248,0,127,128,27, - 30,120,31,2,1,0,255,224,0,3,255,248,0,7,255,252, - 0,15,255,254,0,31,255,255,0,63,192,127,128,63,0,31, - 128,127,0,31,192,126,0,15,192,126,0,15,192,252,0,15, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,15,224,126,0,15,192,126,0,15,192,127,0,31, - 192,63,0,31,128,63,192,127,128,31,255,255,0,15,255,254, - 0,7,255,252,0,3,255,248,0,0,255,224,0,21,30,90, - 26,3,0,255,252,0,255,255,128,255,255,192,255,255,224,255, - 255,240,248,7,240,248,3,248,248,1,248,248,1,248,248,0, - 248,248,1,248,248,1,248,248,1,248,248,7,240,255,255,240, - 255,255,224,255,255,192,255,255,128,255,252,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,30,30,120, - 33,2,1,0,255,224,0,3,255,248,0,7,255,252,0,15, - 255,254,0,31,255,255,0,63,192,127,128,63,0,31,128,127, - 0,31,192,126,0,15,192,126,0,15,192,252,0,15,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,15,192,126,0,15,192,126,0,15,192,127,0,31,128,63, - 0,31,128,63,192,127,0,31,255,254,252,15,255,255,252,7, - 255,255,252,3,255,255,252,0,255,255,252,23,30,90,27,3, - 0,255,255,0,255,255,224,255,255,240,255,255,248,255,255,248, - 248,3,252,248,1,252,248,0,252,248,0,124,248,0,124,248, - 0,252,248,1,248,248,7,240,255,255,224,255,255,192,255,255, - 128,255,255,224,255,255,240,248,3,248,248,1,248,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,252,248,0,252,248, - 0,252,248,0,252,248,0,124,248,0,126,23,30,90,27,2, - 1,1,255,128,7,255,224,15,255,240,31,255,240,63,255,248, - 63,1,248,126,0,252,126,0,252,124,0,124,126,0,0,126, - 0,0,63,128,0,63,240,0,31,254,0,15,255,192,3,255, - 240,0,127,248,0,7,252,0,1,252,0,0,126,248,0,126, - 248,0,62,252,0,126,252,0,126,126,0,252,127,255,252,63, - 255,248,31,255,240,15,255,224,3,255,128,23,30,90,25,1, - 0,255,255,254,255,255,254,255,255,254,255,255,254,255,255,254, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,24,30,90,30,3, - 0,248,0,31,248,0,31,248,0,31,248,0,31,248,0,31, - 248,0,31,248,0,31,248,0,31,248,0,31,248,0,31,248, - 0,31,248,0,31,248,0,31,248,0,31,248,0,31,248,0, - 31,248,0,31,248,0,31,248,0,31,252,0,31,252,0,31, - 252,0,63,124,0,63,126,0,126,127,0,254,63,255,252,31, - 255,252,31,255,248,7,255,224,1,255,192,28,30,120,30,1, - 0,252,0,3,240,252,0,7,240,254,0,7,224,126,0,7, - 224,126,0,15,192,127,0,15,192,63,0,31,192,63,0,31, - 128,63,128,31,128,31,128,63,128,31,128,63,0,31,192,63, - 0,15,192,127,0,15,192,126,0,7,224,126,0,7,224,252, - 0,7,224,252,0,3,240,252,0,3,241,248,0,3,249,248, - 0,1,249,248,0,1,251,240,0,1,255,240,0,0,255,240, - 0,0,255,224,0,0,255,224,0,0,127,192,0,0,127,192, - 0,0,127,192,0,0,63,128,0,38,30,150,40,1,0,252, - 0,252,0,252,252,1,254,0,252,252,1,254,0,252,252,1, - 254,1,252,254,1,254,1,252,126,3,255,1,248,126,3,255, - 1,248,126,3,255,1,248,126,3,255,1,248,63,7,255,131, - 240,63,7,207,131,240,63,7,207,131,240,63,7,207,131,240, - 31,15,207,195,224,31,143,135,199,224,31,143,135,199,224,31, - 143,135,199,224,15,159,135,231,192,15,159,3,231,192,15,223, - 3,239,192,15,223,3,239,192,7,255,3,255,128,7,254,1, - 255,128,7,254,1,255,128,7,254,1,255,128,3,254,1,255, - 0,3,252,0,255,0,3,252,0,255,0,3,252,0,255,0, - 3,252,0,255,0,26,30,120,28,1,0,126,0,31,128,127, - 0,63,128,63,128,63,0,63,128,126,0,31,192,126,0,15, - 192,252,0,15,225,248,0,7,241,248,0,3,243,240,0,3, - 251,224,0,1,255,224,0,0,255,192,0,0,255,128,0,0, - 127,128,0,0,127,0,0,0,127,128,0,0,255,128,0,1, - 255,192,0,1,255,224,0,3,247,224,0,3,227,240,0,7, - 227,248,0,15,193,248,0,15,129,252,0,31,128,254,0,63, - 0,126,0,63,0,127,0,126,0,63,128,252,0,31,128,252, - 0,31,192,24,30,90,25,1,0,252,0,127,254,0,126,126, - 0,254,127,0,252,63,1,252,63,1,248,31,131,248,31,131, - 240,15,195,240,15,199,224,7,231,224,7,239,192,3,255,192, - 3,255,128,1,255,128,1,255,0,0,255,0,0,254,0,0, - 126,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,22,30,90,26,2,0,127,255,252,127,255,252,127, - 255,252,127,255,252,127,255,252,0,1,252,0,3,248,0,7, - 240,0,15,240,0,31,224,0,31,192,0,63,128,0,127,128, - 0,255,0,0,254,0,1,252,0,3,252,0,7,248,0,7, - 240,0,15,224,0,31,224,0,63,192,0,63,128,0,127,0, - 0,255,0,0,255,255,252,255,255,252,255,255,252,255,255,252, - 255,255,252,9,38,76,15,3,248,255,128,255,128,255,128,255, - 128,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,255,128,255, - 128,255,128,255,128,13,32,64,17,2,254,240,0,240,0,120, - 0,120,0,120,0,120,0,60,0,60,0,60,0,30,0,30, - 0,30,0,14,0,15,0,15,0,15,0,7,128,7,128,7, - 128,3,192,3,192,3,192,3,192,1,224,1,224,1,224,0, - 240,0,240,0,240,0,112,0,120,0,120,9,38,76,15,3, - 248,255,128,255,128,255,128,255,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,255,128,255,128,255,128,20,25,75, - 40,10,0,0,96,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,152,0,3,156,0,3,12,0,3,12,0,7,14, - 0,6,6,0,6,6,0,14,7,0,12,3,0,28,3,128, - 28,1,128,24,1,128,56,1,192,48,0,192,48,0,192,112, - 0,224,96,0,96,224,0,112,224,0,112,192,0,48,20,4, - 12,20,0,250,255,255,240,255,255,240,255,255,240,255,255,240, - 9,8,16,10,255,25,248,0,124,0,60,0,62,0,30,0, - 15,0,7,0,3,128,19,20,60,22,2,1,15,254,0,31, - 255,0,63,255,128,126,15,128,124,15,192,0,7,192,0,127, - 192,15,255,192,63,255,192,127,255,192,127,7,192,252,7,192, - 252,7,192,248,15,192,248,15,192,252,15,192,254,31,192,127, - 255,192,63,247,192,31,227,224,20,30,90,25,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,254,0,251, - 255,128,255,255,192,255,15,192,254,7,224,252,3,224,252,3, - 240,252,3,240,252,3,240,248,1,240,248,1,240,248,3,240, - 252,3,240,252,3,240,252,3,224,254,7,224,255,15,192,251, - 255,192,251,255,128,248,254,0,17,20,60,21,2,1,15,252, - 0,31,254,0,63,255,0,126,63,0,124,31,128,124,31,128, - 252,15,128,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,252,15,128,252,31,128,124,31,128,126,63, - 0,63,255,0,31,254,0,15,252,0,20,30,90,25,2,0, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,7,249, - 240,31,253,240,63,255,240,63,15,240,126,7,240,124,3,240, - 252,3,240,252,3,240,252,3,240,248,1,240,248,1,240,248, - 3,240,252,3,240,252,3,240,124,3,240,126,7,240,63,15, - 240,63,253,240,31,249,240,7,241,240,19,20,60,22,2,1, - 7,252,0,31,255,0,63,255,0,62,31,128,124,15,192,124, - 7,192,252,7,192,255,255,192,255,255,192,255,255,224,255,255, - 224,248,0,0,248,0,0,252,0,0,124,7,192,124,15,192, - 126,31,128,63,255,128,31,255,0,7,252,0,14,30,60,15, - 1,1,3,252,7,252,15,252,15,192,15,128,15,128,15,128, - 15,128,15,128,15,128,255,248,255,248,255,248,255,248,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,20,28, - 84,25,2,249,7,249,240,31,253,240,63,255,240,63,15,240, - 126,7,240,124,3,240,252,3,240,252,3,240,252,3,240,248, - 1,240,248,1,240,248,3,240,252,3,240,252,3,240,124,7, - 240,126,7,240,63,255,240,63,253,240,15,249,240,3,225,240, - 0,3,240,0,3,240,124,3,240,126,7,224,63,255,224,63, - 255,192,31,255,128,3,252,0,18,30,90,24,3,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,249,255,0,251, - 255,128,255,255,192,255,31,192,254,15,192,252,7,192,252,7, - 192,252,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,6,30,30,10,2,0,252,252, - 252,252,252,0,0,0,0,0,124,124,124,124,124,124,124,124, - 124,124,124,124,124,124,124,124,124,124,124,124,7,39,39,13, - 4,247,126,126,126,126,126,0,0,0,0,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,126,254,254,254,252,248,18,30,90,22,3,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,31,192, - 248,31,128,248,63,0,248,126,0,248,252,0,249,252,0,249, - 248,0,251,240,0,255,224,0,255,240,0,251,240,0,249,248, - 0,249,252,0,248,252,0,248,126,0,248,127,0,248,63,0, - 248,31,128,248,31,192,248,15,192,5,30,30,11,3,0,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,248,248,248,31,20,80, - 37,3,1,248,255,15,240,249,255,159,252,251,255,191,252,255, - 31,248,254,254,15,240,126,252,7,224,62,252,7,224,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,248,7,192,62,248,7,192,62,248,7,192,62,248, - 7,192,62,18,20,60,24,3,1,249,255,0,251,255,128,251, - 255,192,255,31,192,254,15,192,252,7,192,252,7,192,252,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,7,192,20,20,60,24,2,1,3,254,0,15,255, - 0,31,255,192,63,15,192,126,3,224,124,3,240,252,1,240, - 252,1,240,252,1,240,248,1,240,248,1,240,248,1,240,252, - 1,240,252,1,240,124,3,240,126,3,224,63,15,192,31,255, - 192,15,255,0,3,254,0,20,28,84,25,3,249,248,254,0, - 249,255,128,251,255,192,255,15,192,254,7,224,252,3,224,252, - 3,240,252,3,240,252,3,240,248,1,240,248,1,240,252,3, - 240,252,3,240,252,3,240,252,3,224,254,7,224,255,15,192, - 255,255,192,251,255,128,249,254,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,20,28,84,25,2,249,7,241,240,31,253,240,63,253,240, - 63,15,240,126,7,240,124,3,240,252,3,240,252,3,240,248, - 3,240,248,1,240,248,1,240,252,3,240,252,3,240,252,3, - 240,124,3,240,126,7,240,63,15,240,63,255,240,31,253,240, - 7,249,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,12,20,40,16,3, - 1,248,240,249,240,251,240,255,240,255,240,255,0,254,0,252, - 0,252,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,17,20,60,21,2,1,15, - 252,0,63,254,0,127,255,0,126,31,128,124,31,128,124,15, - 128,126,0,0,127,128,0,63,248,0,63,254,0,7,255,0, - 0,255,128,0,31,128,0,15,128,248,15,128,252,15,128,126, - 31,128,127,255,0,63,254,0,31,252,0,15,26,52,17,1, - 0,0,128,1,128,7,128,15,128,15,128,15,128,255,252,255, - 252,255,252,255,252,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,192,15,224,7, - 254,7,254,1,254,18,20,60,24,3,0,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,248, - 7,192,252,7,192,252,15,192,252,15,192,254,31,192,127,255, - 192,63,247,192,31,231,192,20,20,60,22,1,0,248,3,240, - 252,3,240,252,3,224,124,7,224,126,7,224,126,7,192,62, - 15,192,63,15,192,31,15,128,31,31,128,31,159,0,15,159, - 0,15,191,0,15,254,0,7,254,0,7,254,0,3,252,0, - 3,252,0,3,248,0,1,248,0,33,20,100,34,1,0,248, - 7,224,31,128,248,15,240,31,0,252,15,240,31,0,252,15, - 240,63,0,124,15,248,62,0,126,31,248,62,0,126,31,248, - 126,0,62,31,124,126,0,62,62,124,124,0,63,62,124,124, - 0,31,62,126,252,0,31,124,62,248,0,31,252,62,248,0, - 15,252,63,248,0,15,252,31,240,0,15,248,31,240,0,15, - 248,31,240,0,7,248,15,240,0,7,240,15,224,0,7,240, - 15,224,0,20,20,60,22,1,0,254,3,224,126,7,224,63, - 15,192,31,143,128,31,159,128,15,223,0,7,254,0,7,254, - 0,3,252,0,3,252,0,3,252,0,7,254,0,15,255,0, - 15,191,0,31,159,128,63,31,192,62,15,192,126,7,224,252, - 7,224,252,3,240,20,28,84,22,1,248,252,3,240,252,3, - 240,252,3,224,126,7,224,126,7,224,63,7,192,63,15,192, - 63,15,192,31,143,128,31,159,128,15,159,128,15,223,0,15, - 255,0,7,255,0,7,254,0,3,254,0,3,252,0,3,252, - 0,1,252,0,1,248,0,1,248,0,1,248,0,1,240,0, - 3,240,0,3,240,0,7,224,0,7,224,0,7,224,0,17, - 20,60,21,2,0,255,255,0,255,255,0,255,255,0,255,255, - 0,0,63,0,0,126,0,0,252,0,1,248,0,3,240,0, - 7,240,0,15,224,0,15,192,0,31,128,0,63,0,0,126, - 0,0,252,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,15,41,82,20,3,246,0,2,0,254,1,254,3,254,7, - 240,7,224,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,15,192,15,128,63,128,254,0,252, - 0,254,0,255,0,63,128,15,128,15,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,224,7, - 224,3,254,3,254,1,254,0,62,3,43,43,13,5,245,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,15,40,80,20,3,247, - 252,0,255,0,255,0,31,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,192,15,192,7,224, - 7,224,3,248,1,254,0,126,0,254,3,252,7,224,7,192, - 7,192,15,192,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,31,128,255,128,255,0,254,0,248,0, - 21,5,15,21,0,8,15,192,120,63,255,248,127,255,240,127, - 255,224,240,31,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--49-490-72-72-P-242-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=17 dx=49 dy= 0 ascent=36 len=140 - Font Bounding box w=72 h=65 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub35n[1697] U8G_FONT_SECTION("u8g_font_fub35n") = { - 0,72,65,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,20,18,54,32,6,17,7,14,0,31,15,128,31,159,128, - 15,159,0,7,158,0,3,252,0,129,248,16,254,247,240,255, - 255,240,255,255,240,249,249,240,1,248,0,3,252,0,7,158, - 0,15,159,0,31,143,128,31,15,128,7,14,0,29,29,116, - 49,10,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,255,255,255,248,255,255,255,248,255, - 255,255,248,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0, - 7,0,0,0,7,0,0,11,12,24,15,2,250,15,224,15, - 192,31,192,31,128,31,128,63,0,63,0,62,0,126,0,124, - 0,124,0,248,0,13,6,12,17,2,9,255,248,255,248,255, - 248,255,248,255,248,255,248,7,6,6,15,5,0,254,254,254, - 254,254,254,17,39,117,21,2,253,0,15,128,0,15,0,0, - 31,0,0,31,0,0,30,0,0,62,0,0,62,0,0,62, - 0,0,124,0,0,124,0,0,124,0,0,120,0,0,248,0, - 0,248,0,0,240,0,1,240,0,1,240,0,1,240,0,3, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,128,0,31,0,0, - 31,0,0,31,0,0,62,0,0,62,0,0,62,0,0,60, - 0,0,124,0,0,124,0,0,124,0,0,248,0,0,25,35, - 140,28,2,1,1,255,128,0,7,255,224,0,15,255,240,0, - 31,255,248,0,31,255,252,0,63,129,252,0,63,0,254,0, - 127,0,126,0,126,0,126,0,126,0,63,0,126,0,63,0, - 254,0,63,0,254,0,63,0,254,0,63,0,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,128,254,0,63,128, - 254,0,63,128,254,0,63,128,254,0,63,0,254,0,63,0, - 254,0,63,0,126,0,63,0,126,0,63,0,126,0,127,0, - 127,0,126,0,63,0,254,0,63,129,252,0,31,255,252,0, - 31,255,248,0,15,255,240,0,7,255,224,0,1,255,128,0, - 15,35,70,28,5,0,0,254,1,254,7,254,15,254,63,254, - 255,254,255,254,254,254,252,254,240,254,192,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,0,254,0,254, - 0,254,0,254,0,254,0,254,0,254,0,254,25,35,140,28, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,255,255,0,63,192,255,0,63,128,63,128,63,0, - 63,128,127,0,63,128,0,0,63,128,0,0,63,128,0,0, - 63,128,0,0,127,0,0,0,127,0,0,0,255,0,0,1, - 254,0,0,3,252,0,0,7,252,0,0,15,248,0,0,31, - 240,0,0,63,224,0,0,127,192,0,1,255,0,0,3,254, - 0,0,7,252,0,0,15,240,0,0,63,224,0,0,127,128, - 0,0,255,0,0,0,255,255,255,128,255,255,255,128,255,255, - 255,128,255,255,255,128,255,255,255,128,255,255,255,128,24,35, - 105,28,2,1,3,255,128,15,255,224,31,255,240,63,255,248, - 127,255,252,127,3,252,254,1,252,254,0,252,254,0,254,0, - 0,254,0,0,254,0,1,252,0,1,252,0,15,248,0,255, - 240,0,255,192,0,255,128,0,255,224,0,255,248,0,3,252, - 0,0,254,0,0,254,0,0,126,0,0,127,0,0,127,254, - 0,127,254,0,127,254,0,254,255,0,254,127,1,252,127,255, - 252,63,255,248,31,255,240,15,255,224,3,255,128,26,35,140, - 28,1,0,0,7,252,0,0,15,252,0,0,31,252,0,0, - 31,252,0,0,63,252,0,0,63,252,0,0,127,252,0,0, - 253,252,0,0,253,252,0,1,249,252,0,1,249,252,0,3, - 241,252,0,7,241,252,0,7,225,252,0,15,193,252,0,15, - 193,252,0,31,129,252,0,63,129,252,0,63,1,252,0,126, - 1,252,0,254,1,252,0,252,1,252,0,255,255,255,192,255, - 255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,0,1,252,0,0,1,252,0,0,1,252,0,0, - 1,252,0,0,1,252,0,0,1,252,0,0,1,252,0,24, - 35,105,28,2,0,127,255,252,127,255,252,127,255,252,127,255, - 252,127,255,252,127,255,252,127,0,0,127,0,0,127,0,0, - 127,0,0,127,0,0,127,0,0,127,31,192,127,127,240,127, - 255,248,127,255,252,127,255,252,127,193,254,127,0,254,127,0, - 127,126,0,127,0,0,127,0,0,127,0,0,127,0,0,127, - 0,0,127,254,0,127,254,0,254,254,0,254,255,1,252,127, - 255,252,127,255,248,63,255,240,15,255,192,7,255,128,25,35, - 140,28,2,1,0,255,192,0,3,255,240,0,7,255,248,0, - 15,255,252,0,31,255,254,0,31,224,254,0,63,192,127,0, - 63,128,127,0,127,0,0,0,127,0,0,0,127,0,0,0, - 126,0,0,0,254,31,192,0,254,127,240,0,254,255,248,0, - 254,255,252,0,255,255,254,0,255,225,254,0,255,192,255,0, - 255,128,127,0,255,0,63,0,255,0,63,128,255,0,63,128, - 255,0,63,128,255,0,63,128,127,0,63,0,127,0,63,0, - 127,128,127,0,127,128,127,0,63,192,254,0,31,255,252,0, - 31,255,252,0,15,255,248,0,7,255,224,0,1,255,128,0, - 24,35,105,28,2,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,127,0,0,127,0,0, - 254,0,0,254,0,1,254,0,1,252,0,3,252,0,3,248, - 0,7,248,0,7,240,0,15,240,0,15,240,0,31,224,0, - 31,224,0,63,192,0,63,192,0,63,128,0,127,128,0,127, - 0,0,255,0,0,255,0,1,254,0,1,254,0,3,252,0, - 3,252,0,7,248,0,7,248,0,15,248,0,15,240,0,25, - 35,140,28,2,1,3,255,192,0,15,255,240,0,31,255,252, - 0,63,255,254,0,63,255,254,0,127,193,255,0,127,128,255, - 0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127, - 0,127,0,127,0,63,128,254,0,63,193,252,0,15,255,248, - 0,7,255,224,0,1,255,192,0,15,255,240,0,31,255,248, - 0,63,193,254,0,127,128,254,0,127,0,127,0,254,0,63, - 0,254,0,63,0,254,0,63,128,254,0,63,128,254,0,63, - 128,255,0,127,128,255,0,127,0,127,128,255,0,127,255,255, - 0,63,255,254,0,63,255,252,0,15,255,248,0,3,255,224, - 0,25,35,140,28,2,1,1,255,192,0,7,255,224,0,15, - 255,248,0,31,255,252,0,63,255,252,0,127,129,254,0,127, - 0,254,0,126,0,255,0,254,0,127,0,254,0,127,0,254, - 0,127,128,254,0,127,128,254,0,127,128,254,0,127,128,254, - 0,255,128,127,0,255,128,127,131,255,128,63,255,255,128,63, - 255,191,128,31,255,191,128,15,255,63,128,1,248,63,128,0, - 0,63,0,0,0,127,0,0,0,127,0,0,0,127,0,127, - 0,254,0,127,0,254,0,127,1,254,0,63,131,252,0,31, - 255,252,0,31,255,248,0,15,255,240,0,7,255,224,0,1, - 255,128,0,7,24,24,16,7,0,254,254,254,254,254,254,0, - 0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,254, - 254}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--58-580-72-72-P-286-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=176 - Font Bounding box w=87 h=77 x=-5 y=-15 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub42n[2270] U8G_FONT_SECTION("u8g_font_fub42n") = { - 0,87,77,251,241,42,0,0,0,0,42,58,0,43,248,42, - 0,23,23,69,37,7,20,0,130,0,3,131,128,15,131,224, - 31,199,224,15,199,224,7,199,192,3,239,128,1,239,0,0, - 254,0,248,254,62,255,255,254,255,255,254,255,255,254,254,124, - 254,128,254,2,1,239,0,3,239,128,7,239,192,7,199,192, - 15,199,224,31,131,240,7,131,192,1,131,0,35,35,175,59, - 12,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,255,255,255,255,224,255,255,255,255,224,255,255,255,255, - 224,255,255,255,255,224,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,12,15,30,18,3,248,15,240,15,240,15,224,31,224,31, - 192,31,192,63,128,63,128,63,0,127,0,126,0,126,0,124, - 0,252,0,252,0,15,8,16,19,2,11,255,254,255,254,255, - 254,255,254,255,254,255,254,255,254,255,254,8,8,8,18,6, - 0,255,255,255,255,255,255,255,255,19,46,138,25,3,253,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,248,0,1,248,0,1,248, - 0,1,240,0,3,240,0,3,240,0,3,240,0,7,224,0, - 7,224,0,7,224,0,7,192,0,15,192,0,15,192,0,15, - 128,0,31,128,0,31,128,0,31,128,0,63,0,0,63,0, - 0,63,0,0,62,0,0,126,0,0,126,0,0,124,0,0, - 252,0,0,252,0,0,252,0,0,29,44,176,33,2,255,0, - 31,192,0,0,255,248,0,3,255,252,0,7,255,255,0,15, - 255,255,128,15,255,255,128,31,240,255,192,63,192,63,192,63, - 192,63,224,63,128,31,224,127,128,31,240,127,0,31,240,127, - 0,15,240,127,0,15,240,255,0,15,240,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,127,0,15,240,127,0,15,240,127,0,15,240,127, - 0,31,240,127,128,31,240,63,128,31,224,63,192,63,224,63, - 192,63,192,31,240,255,192,15,255,255,128,15,255,255,0,7, - 255,255,0,3,255,254,0,0,255,248,0,0,31,192,0,18, - 42,126,33,6,0,0,63,192,0,127,192,0,255,192,3,255, - 192,15,255,192,63,255,192,255,255,192,255,255,192,255,255,192, - 255,63,192,254,63,192,248,63,192,224,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,0,63,192,0,63,192,0,63,192,0,63,192,0, - 63,192,0,63,192,0,63,192,0,63,192,0,63,192,0,63, - 192,0,63,192,0,63,192,0,63,192,0,63,192,0,63,192, - 0,63,192,29,43,172,33,2,0,0,15,240,0,0,127,254, - 0,1,255,255,0,3,255,255,128,7,255,255,192,15,255,255, - 224,31,248,63,240,31,240,31,240,31,224,15,240,63,192,7, - 248,63,192,7,248,63,192,7,248,0,0,7,248,0,0,7, - 248,0,0,15,248,0,0,15,240,0,0,31,240,0,0,31, - 240,0,0,63,224,0,0,127,224,0,0,255,192,0,1,255, - 128,0,3,255,128,0,7,255,0,0,15,254,0,0,31,252, - 0,0,63,248,0,0,127,240,0,0,255,224,0,1,255,128, - 0,3,255,0,0,15,254,0,0,31,252,0,0,63,240,0, - 0,127,224,0,0,255,192,0,0,255,255,255,248,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,255,255,255,248,28,44,176,33,3,255,0,127,192,0,3, - 255,248,0,7,255,252,0,31,255,255,0,63,255,255,0,63, - 255,255,128,127,224,255,192,127,192,127,192,255,128,63,192,255, - 0,31,224,255,0,31,224,255,0,31,224,0,0,31,224,0, - 0,31,224,0,0,31,224,0,0,63,192,0,0,127,192,0, - 3,255,128,0,127,255,0,0,127,252,0,0,127,240,0,0, - 127,248,0,0,127,254,0,0,127,255,128,0,0,255,192,0, - 0,63,224,0,0,31,224,0,0,31,224,0,0,15,240,0, - 0,15,240,0,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,31,224,255,128,31,224,127,192,63,224,127, - 224,255,192,63,255,255,128,63,255,255,0,31,255,254,0,15, - 255,252,0,3,255,248,0,0,127,192,0,31,42,168,33,1, - 0,0,1,255,192,0,1,255,192,0,3,255,192,0,7,255, - 192,0,7,255,192,0,15,255,192,0,15,255,192,0,31,255, - 192,0,63,255,192,0,63,191,192,0,127,63,192,0,255,63, - 192,0,254,63,192,1,254,63,192,1,252,63,192,3,248,63, - 192,7,248,63,192,7,240,63,192,15,240,63,192,31,224,63, - 192,31,192,63,192,63,192,63,192,63,128,63,192,127,128,63, - 192,255,0,63,192,255,0,63,192,255,255,255,254,255,255,255, - 254,255,255,255,254,255,255,255,254,255,255,255,254,255,255,255, - 254,255,255,255,254,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,0,0,63,192,0,0,63, - 192,0,0,63,192,0,0,63,192,29,43,172,33,2,255,127, - 255,255,224,127,255,255,224,127,255,255,224,127,255,255,224,127, - 255,255,224,127,255,255,224,127,255,255,224,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,128,0,0,127, - 128,0,0,127,128,0,0,127,128,0,0,127,135,248,0,127, - 159,254,0,127,255,255,128,127,255,255,192,127,255,255,192,127, - 255,255,224,127,240,63,240,127,192,31,240,127,128,15,240,127, - 128,15,248,127,0,7,248,0,0,7,248,0,0,7,248,0, - 0,7,248,0,0,7,248,0,0,7,248,0,0,7,240,255, - 0,15,240,255,0,15,240,255,0,31,240,255,128,63,224,127, - 224,255,192,127,255,255,192,63,255,255,128,31,255,255,0,15, - 255,252,0,3,255,248,0,0,127,192,0,29,44,176,33,2, - 255,0,15,240,0,0,127,252,0,0,255,255,0,3,255,255, - 128,7,255,255,192,7,255,255,224,15,252,63,224,31,240,15, - 240,31,224,15,240,63,192,7,248,63,192,7,248,63,128,0, - 0,127,128,0,0,127,128,0,0,127,128,0,0,127,0,0, - 0,255,3,248,0,255,31,254,0,255,63,255,0,255,127,255, - 128,255,255,255,192,255,255,255,224,255,248,63,240,255,224,31, - 240,255,192,15,240,255,192,15,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,127,128,7, - 248,127,128,7,248,127,128,7,240,127,192,15,240,63,192,15, - 240,63,224,31,224,31,248,63,224,31,255,255,192,15,255,255, - 128,7,255,255,0,3,255,254,0,0,255,248,0,0,63,192, - 0,28,42,168,33,3,0,255,255,255,240,255,255,255,240,255, - 255,255,240,255,255,255,240,255,255,255,240,255,255,255,240,255, - 255,255,240,0,0,15,240,0,0,15,240,0,0,31,240,0, - 0,31,224,0,0,63,224,0,0,63,192,0,0,127,192,0, - 0,127,192,0,0,255,128,0,0,255,128,0,1,255,0,0, - 1,255,0,0,1,254,0,0,3,254,0,0,3,254,0,0, - 7,252,0,0,7,252,0,0,15,248,0,0,15,248,0,0, - 31,248,0,0,31,240,0,0,31,240,0,0,63,224,0,0, - 63,224,0,0,127,192,0,0,127,192,0,0,255,192,0,0, - 255,128,0,1,255,128,0,1,255,0,0,3,255,0,0,3, - 255,0,0,3,254,0,0,7,254,0,0,7,252,0,0,29, - 44,176,33,2,255,0,63,240,0,1,255,254,0,7,255,255, - 128,15,255,255,192,31,255,255,224,63,255,255,240,63,248,127, - 240,127,224,31,240,127,224,31,248,127,192,15,248,127,192,15, - 248,127,192,15,248,127,192,15,248,127,192,15,248,63,224,31, - 240,63,224,31,240,31,248,127,224,15,255,255,192,7,255,255, - 0,1,255,252,0,0,255,248,0,3,255,254,0,15,255,255, - 128,31,255,255,192,63,240,63,224,127,224,31,224,127,192,15, - 240,127,192,15,240,255,128,7,248,255,128,7,248,255,128,7, - 248,255,128,7,248,255,128,7,248,255,128,7,248,255,192,15, - 248,255,192,15,248,127,224,31,240,127,240,63,240,127,255,255, - 224,63,255,255,224,31,255,255,192,15,255,255,128,3,255,254, - 0,0,127,240,0,29,44,176,33,2,255,0,31,192,0,0, - 255,248,0,3,255,254,0,7,255,255,0,15,255,255,128,31, - 255,255,128,63,224,255,192,63,192,63,224,127,128,31,224,127, - 128,31,224,127,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,248,255,0,15,248,255,0,15,248,255, - 0,15,248,255,128,31,248,127,128,31,248,127,192,63,248,127, - 224,255,248,63,255,255,248,31,255,255,248,31,255,247,248,15, - 255,231,248,3,255,199,248,0,254,7,240,0,0,7,240,0, - 0,15,240,0,0,15,240,0,0,15,240,0,0,15,224,127, - 128,31,224,127,128,31,224,63,128,63,192,63,192,127,192,63, - 224,255,128,31,255,255,128,15,255,255,0,7,255,254,0,3, - 255,252,0,1,255,240,0,0,63,192,0,8,29,29,19,8, - 0,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-FreeUniversal-Bold-R-Normal--68-680-72-72-P-335-ISO10646-1 - Copyright: FreeUniveral (c) Stephen Wilson 2009 Original Font Sil-Sophia Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=255 - Font Bounding box w=100 h=91 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fub49n[3148] U8G_FONT_SECTION("u8g_font_fub49n") = { - 0,100,91,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,27,108,43,8,23,0,64,64,0,1,192,112,0,7, - 224,252,0,15,224,254,0,7,241,252,0,7,241,252,0,3, - 241,248,0,1,251,240,0,0,251,224,0,0,127,192,0,224, - 127,192,224,255,191,191,224,255,255,255,224,255,255,255,224,255, - 255,255,224,255,63,159,224,192,127,192,96,0,123,192,0,0, - 251,224,0,1,251,240,0,3,241,248,0,7,241,252,0,15, - 241,252,0,15,224,254,0,7,224,252,0,1,192,112,0,0, - 64,64,0,41,41,246,69,14,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,255,255,255,255,255,128,255,255,255, - 255,255,128,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,15, - 17,34,21,3,247,7,254,7,252,7,252,7,248,15,248,15, - 240,15,240,31,224,31,224,31,192,63,192,63,128,63,128,127, - 0,127,0,126,0,254,0,17,9,27,23,3,13,255,255,128, - 255,255,128,255,255,128,255,255,128,255,255,128,255,255,128,255, - 255,128,255,255,128,255,255,128,9,9,18,21,7,0,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128,255,128,255,128, - 23,54,162,29,3,252,0,0,254,0,0,254,0,0,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 248,0,7,240,0,7,240,0,7,240,0,7,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,192,0, - 63,128,0,63,128,0,63,128,0,63,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,254,0,0,254,0,1,252,0, - 1,252,0,1,252,0,1,248,0,3,248,0,3,248,0,3, - 240,0,7,240,0,7,240,0,7,240,0,15,224,0,15,224, - 0,15,224,0,15,192,0,31,192,0,31,192,0,31,128,0, - 63,128,0,63,128,0,63,0,0,127,0,0,127,0,0,127, - 0,0,126,0,0,254,0,0,34,51,255,39,2,255,0,7, - 248,0,0,0,63,255,0,0,0,255,255,192,0,1,255,255, - 224,0,3,255,255,240,0,7,255,255,248,0,15,255,255,252, - 0,15,254,31,252,0,31,248,7,254,0,31,240,3,254,0, - 63,240,3,255,0,63,224,1,255,0,63,224,1,255,0,127, - 224,1,255,128,127,192,0,255,128,127,192,0,255,128,127,192, - 0,255,128,255,192,0,255,128,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,192,0,255,192,255,192,0,255,192,255,192,0,255,192, - 255,192,0,255,192,255,192,0,255,192,255,192,0,255,192,255, - 192,0,255,192,255,192,0,255,192,255,192,0,255,192,255,192, - 0,255,192,255,192,0,255,128,127,192,0,255,128,127,192,0, - 255,128,127,192,0,255,128,127,224,1,255,128,63,224,1,255, - 0,63,224,1,255,0,63,240,3,255,0,31,240,3,254,0, - 31,248,7,254,0,15,254,31,252,0,15,255,255,252,0,7, - 255,255,248,0,3,255,255,240,0,1,255,255,224,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,20,49,147, - 39,7,0,0,31,240,0,63,240,0,127,240,1,255,240,3, - 255,240,15,255,240,63,255,240,255,255,240,255,255,240,255,255, - 240,255,223,240,255,159,240,254,31,240,248,31,240,224,31,240, - 128,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,0,31,240,0,31,240,0,31,240,0, - 31,240,0,31,240,0,31,240,0,31,240,0,31,240,0,31, - 240,0,31,240,0,31,240,0,31,240,0,31,240,0,31,240, - 0,31,240,0,31,240,34,50,250,39,2,0,0,3,254,0, - 0,0,31,255,192,0,0,127,255,240,0,0,255,255,248,0, - 3,255,255,254,0,7,255,255,254,0,7,255,255,255,0,15, - 255,255,255,128,31,255,7,255,128,31,252,1,255,192,31,248, - 0,255,192,63,248,0,255,192,63,240,0,127,192,63,240,0, - 127,192,63,240,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,255,192,0,0,0,255,128,0,0,1,255,128, - 0,0,1,255,128,0,0,3,255,0,0,0,7,255,0,0, - 0,15,254,0,0,0,31,254,0,0,0,63,252,0,0,0, - 127,248,0,0,0,255,240,0,0,1,255,224,0,0,3,255, - 192,0,0,7,255,128,0,0,15,255,0,0,0,31,254,0, - 0,0,63,252,0,0,0,255,248,0,0,1,255,224,0,0, - 3,255,192,0,0,7,255,128,0,0,31,254,0,0,0,63, - 252,0,0,0,127,248,0,0,0,255,224,0,0,0,255,255, - 255,255,192,255,255,255,255,192,255,255,255,255,192,255,255,255, - 255,192,255,255,255,255,192,255,255,255,255,192,255,255,255,255, - 192,255,255,255,255,192,32,51,204,39,3,255,0,31,248,0, - 0,255,255,0,3,255,255,128,7,255,255,224,15,255,255,240, - 31,255,255,248,63,255,255,248,127,255,255,252,127,248,31,252, - 127,224,15,254,255,192,7,254,255,192,3,254,255,128,3,254, - 255,128,3,254,0,0,3,254,0,0,3,254,0,0,3,254, - 0,0,7,254,0,0,15,252,0,0,127,252,0,63,255,248, - 0,63,255,224,0,63,255,192,0,63,254,0,0,63,255,0, - 0,63,255,192,0,63,255,240,0,63,255,248,0,0,63,252, - 0,0,7,254,0,0,3,254,0,0,3,255,0,0,1,255, - 0,0,1,255,0,0,1,255,0,0,1,255,255,128,1,255, - 255,128,1,255,255,128,1,255,255,192,3,255,255,192,3,254, - 127,224,7,254,127,224,15,254,127,248,31,252,63,255,255,248, - 63,255,255,240,31,255,255,240,15,255,255,192,3,255,255,128, - 1,255,254,0,0,31,240,0,36,50,250,39,2,0,0,0, - 63,252,0,0,0,127,252,0,0,0,127,252,0,0,0,255, - 252,0,0,0,255,252,0,0,1,255,252,0,0,3,255,252, - 0,0,3,255,252,0,0,7,255,252,0,0,7,255,252,0, - 0,15,247,252,0,0,31,247,252,0,0,31,231,252,0,0, - 63,199,252,0,0,127,199,252,0,0,127,135,252,0,0,255, - 135,252,0,0,255,7,252,0,1,255,7,252,0,3,254,7, - 252,0,3,252,7,252,0,7,252,7,252,0,7,248,7,252, - 0,15,248,7,252,0,31,240,7,252,0,31,240,7,252,0, - 63,224,7,252,0,63,192,7,252,0,127,192,7,252,0,255, - 128,7,252,0,255,128,7,252,0,255,255,255,255,240,255,255, - 255,255,240,255,255,255,255,240,255,255,255,255,240,255,255,255, - 255,240,255,255,255,255,240,255,255,255,255,240,255,255,255,255, - 240,0,0,7,252,0,0,0,7,252,0,0,0,7,252,0, - 0,0,7,252,0,0,0,7,252,0,0,0,7,252,0,0, - 0,7,252,0,0,0,7,252,0,0,0,7,252,0,0,0, - 7,252,0,0,0,7,252,0,33,50,250,39,3,255,127,255, - 255,254,0,127,255,255,254,0,127,255,255,254,0,127,255,255, - 254,0,127,255,255,254,0,127,255,255,254,0,127,255,255,254, - 0,127,255,255,254,0,127,192,0,0,0,127,192,0,0,0, - 127,192,0,0,0,127,192,0,0,0,127,192,0,0,0,127, - 192,0,0,0,127,192,0,0,0,127,192,0,0,0,127,192, - 0,0,0,127,193,255,0,0,127,199,255,192,0,127,223,255, - 240,0,127,255,255,248,0,127,255,255,252,0,127,255,255,254, - 0,127,255,255,254,0,127,252,15,255,0,127,240,3,255,0, - 127,224,3,255,0,127,192,1,255,128,127,192,1,255,128,0, - 0,0,255,128,0,0,0,255,128,0,0,0,255,128,0,0, - 0,255,128,0,0,0,255,128,0,0,0,255,128,0,0,0, - 255,128,0,0,0,255,128,255,128,1,255,128,255,128,1,255, - 0,255,192,3,255,0,255,192,3,254,0,127,224,15,254,0, - 127,248,63,252,0,127,255,255,252,0,63,255,255,248,0,31, - 255,255,240,0,15,255,255,224,0,7,255,255,128,0,1,255, - 254,0,0,0,63,240,0,0,34,51,255,39,2,255,0,3, - 252,0,0,0,31,255,128,0,0,127,255,224,0,0,255,255, - 240,0,1,255,255,248,0,3,255,255,252,0,7,255,255,254, - 0,7,255,255,254,0,15,255,7,255,0,31,252,3,255,0, - 31,248,1,255,128,31,248,0,255,128,63,240,0,255,128,63, - 224,0,0,0,63,224,0,0,0,127,224,0,0,0,127,192, - 0,0,0,127,192,0,0,0,127,192,127,0,0,127,195,255, - 224,0,255,199,255,240,0,255,207,255,248,0,255,223,255,252, - 0,255,191,255,254,0,255,255,255,255,0,255,254,15,255,0, - 255,248,3,255,128,255,248,3,255,128,255,240,1,255,128,255, - 240,1,255,192,255,224,0,255,192,255,224,0,255,192,255,224, - 0,255,192,255,224,0,255,192,255,224,0,255,192,127,224,0, - 255,192,127,224,0,255,192,127,224,0,255,192,127,224,0,255, - 128,63,240,1,255,128,63,240,1,255,128,63,248,3,255,0, - 31,248,3,255,0,31,254,15,254,0,15,255,255,254,0,7, - 255,255,252,0,3,255,255,248,0,1,255,255,240,0,0,255, - 255,192,0,0,63,255,0,0,0,7,248,0,0,33,49,245, - 39,3,0,255,255,255,255,128,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,255,255,255,255,128,0,0,0,255,128, - 0,0,1,255,128,0,0,1,255,128,0,0,3,255,0,0, - 0,3,255,0,0,0,7,254,0,0,0,7,254,0,0,0, - 15,254,0,0,0,15,252,0,0,0,31,252,0,0,0,31, - 248,0,0,0,31,248,0,0,0,63,240,0,0,0,63,240, - 0,0,0,127,240,0,0,0,127,224,0,0,0,255,224,0, - 0,0,255,192,0,0,1,255,192,0,0,1,255,192,0,0, - 3,255,128,0,0,3,255,128,0,0,3,255,0,0,0,7, - 255,0,0,0,7,254,0,0,0,15,254,0,0,0,15,254, - 0,0,0,31,252,0,0,0,31,252,0,0,0,63,248,0, - 0,0,63,248,0,0,0,63,248,0,0,0,127,240,0,0, - 0,127,240,0,0,0,255,224,0,0,0,255,224,0,0,1, - 255,192,0,0,1,255,192,0,0,3,255,192,0,0,3,255, - 128,0,0,7,255,128,0,0,34,51,255,39,2,255,0,15, - 252,0,0,0,255,255,192,0,3,255,255,240,0,7,255,255, - 248,0,15,255,255,252,0,31,255,255,254,0,63,255,255,255, - 0,63,255,255,255,0,63,252,15,255,0,127,248,7,255,128, - 127,240,3,255,128,127,224,1,255,128,127,224,1,255,128,127, - 224,1,255,128,127,224,1,255,128,127,224,1,255,128,127,224, - 1,255,128,63,240,3,255,0,63,248,7,255,0,31,252,15, - 254,0,15,255,255,252,0,7,255,255,240,0,1,255,255,192, - 0,0,63,255,0,0,0,255,255,128,0,3,255,255,224,0, - 7,255,255,248,0,31,255,255,252,0,63,252,15,254,0,63, - 248,7,255,0,127,240,3,255,0,127,224,1,255,128,127,224, - 1,255,128,255,192,0,255,192,255,192,0,255,192,255,192,0, - 255,192,255,192,0,255,192,255,192,0,255,192,255,192,0,255, - 192,255,224,1,255,192,255,224,1,255,192,255,240,3,255,192, - 127,240,7,255,128,127,252,15,255,128,63,255,255,255,0,63, - 255,255,255,0,31,255,255,254,0,15,255,255,252,0,3,255, - 255,240,0,0,255,255,192,0,0,15,252,0,0,34,51,255, - 39,2,255,0,7,248,0,0,0,63,255,0,0,0,255,255, - 192,0,3,255,255,224,0,7,255,255,240,0,15,255,255,248, - 0,31,255,255,252,0,31,255,255,254,0,63,248,31,254,0, - 63,240,7,255,0,127,224,7,255,0,127,192,3,255,0,127, - 192,3,255,128,255,192,1,255,128,255,128,1,255,128,255,128, - 1,255,128,255,128,1,255,192,255,128,1,255,192,255,128,1, - 255,192,255,192,1,255,192,255,192,3,255,192,255,192,3,255, - 192,127,224,7,255,192,127,240,7,255,192,127,248,31,255,192, - 63,255,255,255,192,31,255,255,127,192,31,255,254,255,192,15, - 255,252,255,192,3,255,252,255,192,1,255,240,255,192,0,127, - 192,255,128,0,0,0,255,128,0,0,0,255,128,0,0,1, - 255,128,0,0,1,255,128,0,0,1,255,0,0,0,1,255, - 0,127,192,3,255,0,127,192,3,254,0,127,224,7,254,0, - 63,224,15,254,0,63,240,15,252,0,31,248,63,252,0,31, - 255,255,248,0,15,255,255,240,0,7,255,255,224,0,3,255, - 255,192,0,1,255,255,128,0,0,127,254,0,0,0,15,240, - 0,0,9,34,68,21,9,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,128,255,128,255,128, - 255,128,255,128,255,128,255,128,255,128,255,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y=10 dx=15 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11[3712] U8G_FONT_SECTION("u8g_font_fur11") = { - 0,20,20,255,252,11,2,81,4,211,32,255,253,16,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,5,0,0,1,11,11,5,2,253,128,0,0, - 128,128,128,128,128,128,128,128,6,12,12,8,1,254,8,8, - 120,220,148,144,160,164,236,120,64,64,7,11,11,9,1,0, - 60,102,64,64,248,64,64,64,64,64,254,8,9,9,10,1, - 2,129,90,36,66,66,66,36,90,129,8,11,11,9,0,0, - 65,99,34,231,20,28,255,8,8,8,8,1,14,14,6,3, - 253,128,128,128,128,128,128,0,0,128,128,128,128,128,128,5, - 14,14,7,1,253,120,136,128,192,112,216,136,152,240,48,24, - 8,24,240,4,1,1,4,0,10,144,11,11,22,13,1,0, - 31,0,127,128,115,64,225,96,160,32,160,32,161,32,179,96, - 94,64,96,128,31,0,6,8,8,6,0,3,56,72,120,72, - 88,104,0,252,6,6,6,8,1,1,36,72,216,216,72,36, - 8,3,3,10,1,4,255,1,1,255,11,11,22,13,1,0, - 31,0,127,128,81,64,209,96,158,32,147,32,145,32,209,96, - 64,64,97,128,31,0,4,1,1,4,0,10,240,3,4,4, - 5,1,7,224,160,160,224,9,10,20,15,3,0,8,0,8, - 0,8,0,255,128,8,0,8,0,8,0,0,0,0,0,255, - 128,4,6,6,6,1,5,112,144,48,96,192,240,5,6,6, - 6,0,5,120,200,24,48,136,112,3,3,3,3,1,9,96, - 64,128,255,7,14,14,9,1,253,126,244,244,244,244,116,20, - 20,20,20,20,20,20,20,1,2,2,4,2,4,128,128,4, - 3,3,5,1,253,48,16,224,3,6,6,5,1,5,96,160, - 32,32,32,32,5,8,8,7,1,3,112,216,136,136,216,112, - 0,248,6,6,6,8,1,1,216,72,36,36,72,216,10,11, - 22,12,1,0,97,0,162,0,34,0,36,0,36,0,41,128, - 9,128,18,128,51,192,32,128,96,128,11,11,22,13,1,0, - 96,128,161,0,34,0,34,0,36,0,37,192,9,32,24,96, - 16,192,33,128,97,224,11,11,22,12,0,0,120,128,9,128, - 49,0,27,0,138,0,116,192,4,192,9,64,11,224,16,64, - 48,64,6,11,11,8,1,253,16,0,16,16,48,96,192,128, - 132,236,120,11,16,32,11,0,0,24,0,8,0,4,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,16,32,11,0,0,3, - 0,2,0,4,0,0,0,0,0,6,0,14,0,10,0,27, - 0,25,0,49,128,49,128,63,192,96,192,64,64,192,96,11, - 16,32,11,0,0,4,0,14,0,9,0,0,0,0,0,6, - 0,14,0,10,0,27,0,25,0,49,128,49,128,63,192,96, - 192,64,64,192,96,11,15,30,11,0,0,13,0,22,0,0, - 0,0,0,6,0,14,0,10,0,27,0,25,0,49,128,49, - 128,63,192,96,192,64,64,192,96,11,14,28,11,0,0,9, - 0,0,0,0,0,6,0,14,0,11,0,27,0,25,0,17, - 128,48,128,63,192,96,192,64,96,192,96,11,16,32,11,0, - 0,14,0,10,0,14,0,0,0,0,0,4,0,12,0,10, - 0,10,0,17,0,17,0,49,128,63,128,96,192,64,64,192, - 96,13,11,22,14,0,0,3,248,5,0,13,0,13,0,25, - 0,25,248,49,0,63,0,97,0,65,0,193,248,8,15,15, - 10,1,252,62,97,193,128,128,128,128,128,193,67,62,12,6, - 2,28,6,16,16,9,1,0,64,32,16,0,0,252,128,128, - 128,128,252,128,128,128,128,252,6,16,16,9,1,0,8,16, - 16,0,0,252,128,128,128,128,252,128,128,128,128,252,6,16, - 16,9,1,0,48,48,72,0,0,252,128,128,128,128,252,128, - 128,128,128,252,6,15,15,8,1,0,72,0,0,0,252,128, - 128,128,128,252,128,128,128,128,252,3,16,16,3,255,0,192, - 64,32,0,0,32,32,32,32,32,32,32,32,32,32,32,3, - 16,16,3,1,0,96,192,128,0,0,128,128,128,128,128,128, - 128,128,128,128,128,3,16,16,3,0,0,64,224,160,0,0, - 64,64,64,64,64,64,64,64,64,64,64,4,14,14,4,0, - 0,144,0,0,64,64,64,64,64,64,64,64,64,64,64,10, - 11,22,11,0,0,62,0,33,128,32,128,32,192,32,64,248, - 64,32,64,32,192,32,128,33,128,62,0,8,15,15,10,1, - 0,52,44,0,0,193,225,225,177,177,153,137,141,133,135,131, - 9,16,32,11,1,0,48,0,16,0,8,0,0,0,0,0, - 62,0,99,0,193,128,129,128,128,128,128,128,128,128,129,128, - 193,0,99,0,62,0,9,16,32,11,1,0,4,0,12,0, - 8,0,0,0,0,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,9,16,32,11, - 1,0,8,0,28,0,20,0,0,0,0,0,62,0,99,0, - 193,128,129,128,128,128,128,128,128,128,129,128,193,0,99,0, - 62,0,9,15,30,11,1,0,24,0,44,0,0,0,0,0, - 62,0,99,0,193,128,128,128,128,128,128,128,128,128,129,128, - 193,0,119,0,62,0,9,15,30,11,1,0,18,0,0,0, - 0,0,0,0,62,0,99,0,193,128,129,128,128,128,128,128, - 128,128,129,128,193,0,99,0,62,0,7,7,7,15,4,1, - 130,68,40,16,40,68,130,9,13,26,11,1,255,0,128,63, - 0,99,0,195,128,134,128,140,128,136,128,152,128,177,128,225, - 0,99,0,254,0,128,0,8,16,16,10,1,0,32,16,24, - 0,0,129,129,129,129,129,129,129,129,195,230,60,8,16,16, - 10,1,0,12,8,16,0,0,129,129,129,129,129,129,129,129, - 195,230,60,8,16,16,10,1,0,24,24,36,0,0,129,129, - 129,129,129,129,129,129,195,230,60,8,15,15,10,1,0,36, - 0,0,0,129,129,129,129,129,129,129,129,131,194,60,9,16, - 32,10,1,0,6,0,4,0,8,0,0,0,0,0,193,128, - 65,0,99,0,38,0,52,0,28,0,8,0,8,0,8,0, - 8,0,8,0,7,11,11,9,1,0,128,128,252,134,130,130, - 134,252,128,128,128,7,11,11,8,1,0,120,204,132,140,144, - 144,156,134,130,178,156,6,12,12,8,1,0,32,16,16,0, - 120,204,4,124,196,132,140,116,6,13,13,8,1,0,24,16, - 48,32,0,120,204,4,124,196,132,140,116,6,12,12,8,1, - 0,48,104,72,0,120,204,4,124,196,132,140,116,6,11,11, - 8,1,0,120,0,0,120,204,4,124,196,132,140,116,6,11, - 11,8,1,0,72,0,0,120,204,4,124,196,132,140,116,6, - 13,13,8,1,0,48,72,72,48,0,120,196,4,124,196,132, - 140,116,12,8,16,13,1,0,251,192,138,32,4,48,127,240, - 196,0,140,48,202,96,113,192,6,12,12,8,1,252,120,204, - 132,128,128,132,204,120,48,24,8,48,6,13,13,8,1,0, - 64,32,32,16,0,120,196,132,252,128,132,204,120,6,13,13, - 8,1,0,8,16,16,32,0,120,196,132,252,128,132,204,120, - 6,12,12,8,1,0,48,104,72,0,120,196,132,252,128,132, - 204,120,6,11,11,8,1,0,72,0,0,120,204,132,252,128, - 132,204,120,2,12,12,3,0,0,128,64,64,0,64,64,64, - 64,64,64,64,64,3,12,12,3,0,0,32,64,128,0,64, - 64,64,64,64,64,64,64,5,12,12,3,255,0,112,80,136, - 0,32,32,32,32,32,32,32,32,4,11,11,4,0,0,144, - 0,0,64,64,64,64,64,64,64,64,7,11,11,9,1,0, - 104,112,136,124,198,134,130,130,134,196,120,6,11,11,8,1, - 0,120,0,0,184,204,132,132,132,132,132,132,7,13,13,9, - 1,0,96,32,16,16,0,120,196,134,130,130,134,196,120,7, - 13,13,9,1,0,12,24,16,32,0,120,196,134,130,130,134, - 196,120,7,12,12,9,1,0,56,40,68,0,120,196,134,130, - 130,134,196,120,7,11,11,9,1,0,120,0,0,120,196,134, - 130,130,134,196,120,7,11,11,9,1,0,72,0,0,120,196, - 134,130,130,134,196,120,9,7,14,15,3,1,8,0,8,0, - 0,0,255,128,0,0,8,0,8,0,8,10,10,9,0,255, - 1,62,98,71,73,89,83,98,124,192,6,13,13,8,1,0, - 64,32,32,16,0,132,132,132,132,132,132,204,116,6,13,13, - 8,1,0,24,16,48,32,0,132,132,132,132,132,132,204,116, - 6,12,12,8,1,0,48,80,72,0,132,132,132,132,132,132, - 204,116,6,11,11,8,1,0,72,0,0,132,132,132,132,132, - 132,204,116,8,15,15,8,0,253,4,8,16,0,195,66,102, - 38,52,60,24,24,24,80,112,7,14,14,9,1,253,128,128, - 128,188,198,134,130,130,134,198,188,128,128,128,8,14,14,8, - 0,253,36,0,0,195,66,102,36,36,60,24,24,24,16,48 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 9 h=12 x= 3 y= 5 dx=15 dy= 0 ascent=11 len=18 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11n[279] U8G_FONT_SECTION("u8g_font_fur11n") = { - 0,20,20,255,252,11,0,0,0,0,42,58,0,11,254,11, - 0,6,5,5,10,2,5,72,48,252,48,120,9,9,18,15, - 3,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,2,4,4,4,1,254,192,192,128,128,4,1, - 1,6,1,3,240,1,2,2,4,2,0,128,128,4,12,12, - 6,1,255,16,16,16,32,32,32,64,64,64,64,128,128,6, - 11,11,8,1,0,120,200,140,132,132,132,132,132,140,200,120, - 4,11,11,8,2,0,48,112,208,16,16,16,16,16,16,16, - 16,6,11,11,8,1,0,120,204,196,4,12,24,16,48,96, - 192,252,7,11,11,8,0,0,60,70,194,6,24,4,6,2, - 194,70,60,7,11,11,8,1,0,12,28,20,36,100,68,196, - 254,4,4,4,6,11,11,8,1,0,248,128,128,184,204,132, - 4,4,140,200,112,7,11,11,8,1,0,60,198,134,128,188, - 198,130,130,130,198,60,7,11,11,8,1,0,254,6,6,4, - 12,8,24,24,16,48,48,6,11,11,8,1,0,120,204,132, - 204,112,200,132,132,132,204,120,7,11,11,8,1,0,124,198, - 130,130,198,122,2,6,134,204,120,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--15-150-72-72-P-71-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=16 x= 4 y= 9 dx=15 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=20 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur11r[1729] U8G_FONT_SECTION("u8g_font_fur11r") = { - 0,20,20,255,252,11,2,81,4,211,32,127,253,13,252,11, - 253,0,0,0,5,0,0,1,11,11,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,5,5,5,7,1,6,216,216, - 152,152,144,9,11,22,11,1,0,9,0,9,0,19,0,127, - 128,18,0,38,0,255,0,36,0,100,0,72,0,72,0,7, - 14,14,9,1,255,16,16,120,148,148,144,240,124,22,18,146, - 214,124,16,12,11,22,14,1,0,112,128,152,128,137,0,137, - 0,154,0,116,224,5,176,9,16,9,16,17,48,16,224,9, - 11,22,11,1,0,56,0,68,0,68,0,120,0,113,0,217, - 0,137,0,143,0,134,0,199,0,125,128,2,5,5,6,2, - 6,192,128,128,128,128,2,14,14,6,2,253,64,64,192,128, - 128,128,128,128,128,128,128,192,64,64,2,14,14,5,2,253, - 128,128,128,192,64,64,64,64,64,64,192,128,128,128,6,5, - 5,10,2,5,72,48,252,48,120,9,9,18,15,3,0,8, - 0,8,0,8,0,8,0,255,128,8,0,8,0,8,0,8, - 0,2,4,4,4,1,254,192,192,128,128,4,1,1,6,1, - 3,240,1,2,2,4,2,0,128,128,4,12,12,6,1,255, - 16,16,16,32,32,32,64,64,64,64,128,128,6,11,11,8, - 1,0,120,200,140,132,132,132,132,132,140,200,120,4,11,11, - 8,2,0,48,112,208,16,16,16,16,16,16,16,16,6,11, - 11,8,1,0,120,204,196,4,12,24,16,48,96,192,252,7, - 11,11,8,0,0,60,70,194,6,24,4,6,2,194,70,60, - 7,11,11,8,1,0,12,28,20,36,100,68,196,254,4,4, - 4,6,11,11,8,1,0,248,128,128,184,204,132,4,4,140, - 200,112,7,11,11,8,1,0,60,198,134,128,188,198,130,130, - 130,198,60,7,11,11,8,1,0,254,6,6,4,12,8,24, - 24,16,48,48,6,11,11,8,1,0,120,204,132,204,112,200, - 132,132,132,204,120,7,11,11,8,1,0,124,198,130,130,198, - 122,2,6,134,204,120,1,8,8,4,2,0,128,128,0,0, - 0,0,128,128,2,10,10,4,1,254,64,64,0,0,0,0, - 64,192,192,128,9,8,16,15,3,1,0,128,3,0,28,0, - 96,0,128,0,112,0,14,0,1,128,9,4,8,15,3,3, - 255,128,0,0,0,0,255,128,9,8,16,15,3,1,128,0, - 96,0,28,0,3,0,0,128,7,0,56,0,192,0,7,11, - 11,8,0,0,60,198,2,6,4,8,16,16,16,0,16,13, - 14,28,15,1,253,15,128,48,96,96,16,206,144,153,152,144, - 136,144,136,144,136,145,152,153,144,206,96,96,0,48,0,15, - 128,11,11,22,11,0,0,6,0,14,0,10,0,27,0,25, - 0,49,128,49,128,63,192,96,192,64,64,192,96,8,11,11, - 10,1,0,252,134,130,130,134,252,130,129,129,131,254,8,11, - 11,10,1,0,62,99,193,128,128,128,128,128,193,67,62,8, - 11,11,10,1,0,248,134,130,131,129,129,129,131,130,134,248, - 6,11,11,9,1,0,252,128,128,128,128,252,128,128,128,128, - 252,6,11,11,8,1,0,252,128,128,128,128,252,128,128,128, - 128,128,9,11,22,11,1,0,30,0,97,128,192,128,128,0, - 128,0,135,128,128,128,128,128,192,128,96,128,63,128,8,11, - 11,10,1,0,129,129,129,129,129,255,129,129,129,129,129,1, - 11,11,3,1,0,128,128,128,128,128,128,128,128,128,128,128, - 6,11,11,8,1,0,4,4,4,4,4,4,4,4,132,140, - 120,8,11,11,9,1,0,134,140,152,176,224,224,176,152,140, - 134,131,6,11,11,7,1,0,128,128,128,128,128,128,128,128, - 128,128,252,11,11,22,13,1,0,192,96,224,224,224,160,161, - 160,177,160,145,32,147,32,154,32,138,32,142,32,132,32,8, - 11,11,10,1,0,193,225,225,177,177,153,137,141,133,135,131, - 9,11,22,11,1,0,62,0,99,0,193,128,129,128,128,128, - 128,128,128,128,129,128,193,0,99,0,62,0,7,11,11,9, - 1,0,252,134,130,130,134,252,128,128,128,128,128,10,11,22, - 12,1,0,62,0,99,0,193,128,129,128,128,128,128,128,128, - 128,129,128,193,128,99,0,63,192,7,11,11,9,1,0,252, - 134,130,130,134,248,132,134,134,130,130,8,11,11,10,1,0, - 60,194,131,128,240,126,7,1,129,195,124,9,11,22,11,1, - 0,255,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,11,11,10,1,0,129,129,129, - 129,129,129,129,129,131,194,60,9,11,22,10,0,0,192,128, - 65,128,97,128,97,0,35,0,51,0,18,0,22,0,30,0, - 12,0,12,0,14,11,22,15,0,0,195,4,67,140,67,140, - 102,136,38,136,36,216,52,80,60,80,24,80,24,112,24,32, - 9,11,22,11,1,0,193,0,99,0,38,0,52,0,28,0, - 24,0,60,0,38,0,98,0,195,0,129,128,9,11,22,10, - 1,0,193,128,65,0,99,0,38,0,52,0,28,0,8,0, - 8,0,8,0,8,0,8,0,8,11,11,10,1,0,127,3, - 6,6,12,24,56,48,96,224,255,3,14,14,6,2,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,224,4,12,12, - 6,1,255,128,128,128,64,64,64,32,32,32,32,16,16,3, - 14,14,6,1,253,224,32,32,32,32,32,32,32,32,32,32, - 32,32,224,7,10,10,15,4,0,16,16,40,40,72,68,68, - 130,130,130,8,1,1,8,0,254,255,2,3,3,3,0,9, - 128,192,64,6,8,8,8,1,0,120,204,4,124,196,132,140, - 116,7,11,11,9,1,0,128,128,128,188,198,134,130,130,134, - 196,184,6,8,8,8,1,0,120,204,132,128,128,132,204,120, - 7,11,11,9,1,0,2,2,2,122,198,134,130,130,134,198, - 58,6,8,8,8,1,0,120,196,132,252,128,132,204,120,5, - 11,11,7,1,0,56,32,32,248,32,32,32,32,32,32,32, - 7,11,11,9,1,253,122,198,134,130,130,134,198,122,6,198, - 120,6,11,11,8,1,0,128,128,128,184,204,132,132,132,132, - 132,132,1,11,11,3,1,0,128,0,0,128,128,128,128,128, - 128,128,128,2,14,14,4,1,253,64,0,0,64,64,64,64, - 64,64,64,64,64,64,192,6,11,11,7,1,0,128,128,128, - 136,144,160,224,160,176,152,140,1,11,11,3,1,0,128,128, - 128,128,128,128,128,128,128,128,128,11,8,16,13,1,0,185, - 192,206,96,132,32,132,32,132,32,132,32,132,32,132,32,6, - 8,8,8,1,0,184,204,132,132,132,132,132,132,7,8,8, - 9,1,0,120,196,134,130,130,134,196,120,7,11,11,9,1, - 253,188,198,134,130,130,134,198,188,128,128,128,7,11,11,9, - 1,253,122,198,134,130,130,134,198,122,2,2,2,4,8,8, - 5,1,0,240,192,128,128,128,128,128,128,6,8,8,8,1, - 0,120,140,128,240,28,4,140,120,4,10,10,6,1,0,32, - 32,240,32,32,32,32,32,32,48,6,8,8,8,1,0,132, - 132,132,132,132,132,204,116,8,8,8,8,0,0,195,66,102, - 36,36,60,24,24,12,8,16,12,0,0,198,48,70,48,79, - 32,105,32,41,96,41,192,56,192,16,192,7,8,8,8,1, - 0,196,76,120,48,48,120,204,134,8,11,11,8,0,253,195, - 66,102,38,52,60,24,24,24,16,48,5,8,8,7,1,0, - 248,24,16,32,96,64,192,248,5,15,15,7,1,252,24,48, - 32,32,32,32,96,192,96,32,32,32,32,48,24,1,16,16, - 6,3,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,15,15,7,1,252,192,96,32,32,32,32,48, - 24,48,32,32,32,32,96,192,8,2,2,8,0,3,115,206, - 255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=13 dx=19 dy= 0 ascent=21 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14[5349] U8G_FONT_SECTION("u8g_font_fur14") = { - 0,26,26,255,251,14,3,59,6,250,32,255,252,21,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,6,0,0,2, - 14,14,7,3,252,192,192,0,0,192,192,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,2,4,60,102,203,200,200, - 208,208,211,102,60,32,64,10,14,28,11,1,0,31,0,49, - 128,96,192,96,0,96,0,252,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,255,128,10,10,20,12,1,3,128, - 64,94,128,51,0,65,128,64,128,64,128,64,128,33,0,94, - 128,128,64,10,14,28,12,1,0,192,192,96,128,97,128,49, - 0,243,192,27,0,30,0,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,1,18,18,7,3,252,128,128,128,128,128, - 128,128,128,0,0,128,128,128,128,128,128,128,128,7,17,17, - 9,1,253,60,100,192,192,96,56,124,198,198,206,124,60,14, - 6,6,140,248,6,1,1,6,0,13,204,14,14,28,16,1, - 0,15,192,28,224,39,144,76,200,216,108,152,4,152,4,152, - 4,152,100,140,204,71,200,32,16,16,32,15,192,7,10,10, - 8,1,4,120,204,4,124,196,132,124,0,0,254,7,8,8, - 11,2,1,38,100,204,216,152,204,100,38,10,5,10,12,1, - 3,255,192,0,64,0,64,0,64,0,64,255,14,14,28,16, - 1,0,15,192,28,224,47,208,76,104,204,108,140,100,143,132, - 140,68,140,100,204,108,76,104,32,16,28,224,15,192,6,1, - 1,6,0,13,252,4,5,5,6,1,9,96,240,144,144,96, - 11,12,24,19,4,0,6,0,6,0,6,0,6,0,255,224, - 6,0,6,0,6,0,0,0,0,0,0,0,255,224,6,8, - 8,7,1,6,120,220,12,12,24,48,192,252,6,8,8,7, - 1,6,120,204,12,48,24,140,204,120,4,4,4,4,1,12, - 48,96,64,192,255,9,18,36,11,1,252,63,128,121,0,249, - 0,249,0,249,0,249,0,121,0,25,0,9,0,9,0,9, - 0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,2, - 2,2,5,2,5,192,192,6,5,5,5,0,251,64,120,12, - 12,248,4,7,7,6,1,7,112,240,48,48,48,48,48,6, - 10,10,8,1,4,120,72,132,132,132,132,204,120,0,252,7, - 8,8,11,2,1,152,204,100,102,102,100,204,152,13,14,28, - 15,1,0,112,64,240,192,48,128,49,128,49,0,51,0,50, - 48,54,112,12,112,8,176,25,176,17,248,48,48,32,48,13, - 14,28,15,1,0,112,64,240,192,48,128,49,128,49,0,50, - 0,50,112,52,216,12,24,8,24,24,48,16,96,48,192,32, - 248,14,14,28,16,1,0,120,48,204,32,12,96,48,192,12, - 128,141,128,121,24,3,56,2,120,4,88,12,152,8,252,24, - 24,16,24,8,14,14,10,1,252,12,12,0,12,12,12,24, - 48,96,192,192,193,127,62,14,20,40,14,0,0,12,0,6, - 0,2,0,3,0,0,0,0,0,3,0,7,128,7,128,4, - 192,12,192,12,192,24,96,24,96,31,240,63,240,48,24,96, - 24,96,24,192,12,14,20,40,14,0,0,0,192,0,128,1, - 128,1,0,0,0,0,0,3,0,7,128,7,128,4,192,12, - 192,12,192,24,96,24,96,31,240,63,240,48,24,96,24,96, - 24,192,12,14,20,40,14,0,0,3,0,3,128,6,128,4, - 192,0,0,0,0,3,0,7,128,7,128,4,192,12,192,12, - 192,24,96,24,96,31,240,63,240,48,24,96,24,96,24,192, - 12,14,18,36,14,0,0,7,192,0,0,0,0,0,0,3, - 0,7,128,7,128,4,192,12,192,12,192,24,96,24,96,31, - 240,63,240,48,24,96,24,96,24,192,12,13,18,36,15,1, - 0,12,192,0,0,0,0,0,0,7,0,7,0,13,128,13, - 128,12,192,24,192,24,192,48,96,63,224,63,240,96,48,96, - 24,192,24,192,24,13,21,42,14,1,0,6,0,13,0,9, - 0,9,0,6,0,0,0,0,0,6,0,7,0,15,0,13, - 0,25,128,25,128,16,192,48,192,63,224,127,224,96,32,192, - 48,192,48,192,24,17,14,42,19,1,0,1,255,128,3,192, - 0,2,192,0,6,192,0,14,192,0,12,192,0,28,255,128, - 24,192,0,56,192,0,63,192,0,96,192,0,96,192,0,192, - 192,0,192,255,128,11,18,36,13,1,252,31,128,57,192,96, - 96,64,96,192,0,192,0,192,0,192,0,192,0,192,0,64, - 96,96,96,49,192,31,0,4,0,7,0,1,128,15,128,9, - 20,40,12,2,0,96,0,48,0,24,0,8,0,0,0,0, - 0,255,128,192,0,192,0,192,0,192,0,192,0,255,128,192, - 0,192,0,192,0,192,0,192,0,192,0,255,128,9,20,40, - 12,2,0,6,0,4,0,12,0,24,0,0,0,0,0,255, - 128,192,0,192,0,192,0,192,0,192,0,255,128,192,0,192, - 0,192,0,192,0,192,0,192,0,255,128,9,20,40,12,2, - 0,24,0,28,0,52,0,38,0,0,0,0,0,255,128,192, - 0,192,0,192,0,192,0,192,0,255,128,192,0,192,0,192, - 0,192,0,192,0,192,0,255,128,9,18,36,12,2,0,102, - 0,0,0,0,0,0,0,255,128,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,255,128,4,20,20,5,0,0,192,96,32,48,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,4,20,20, - 5,2,0,48,96,64,128,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,5,20,20,5,0,0,48,112,88, - 200,0,0,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,6,18,18,6,0,0,204,0,0,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,13,14,28,14,0,0,127, - 128,97,224,96,112,96,48,96,16,96,24,254,24,96,24,96, - 24,96,16,96,48,96,96,97,224,127,128,11,18,36,14,2, - 0,31,0,0,0,0,0,0,0,224,96,224,96,240,96,248, - 96,216,96,220,96,204,96,198,96,198,96,195,96,195,96,193, - 224,193,224,192,224,12,20,40,14,1,0,24,0,12,0,6, - 0,2,0,0,0,0,0,31,128,57,192,96,96,64,32,192, - 48,192,48,192,48,192,48,192,48,192,48,64,32,96,96,57, - 192,15,0,12,20,40,14,1,0,1,128,3,0,6,0,4, - 0,0,0,0,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,12,20,40,14,1,0,6,0,15,0,9,0,16,128,0, - 0,0,0,31,128,57,192,96,96,64,32,192,48,192,48,192, - 48,192,48,192,48,192,48,64,32,96,96,57,192,15,0,12, - 19,38,14,1,0,12,128,31,0,0,0,0,0,0,0,31, - 128,57,192,96,96,64,32,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,112,224,63,192,15,0,12,18,36,14,1, - 0,13,128,0,0,0,0,0,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,0,11,10,20,19,4,1,192,96,96,192,49, - 128,27,0,14,0,14,0,27,0,49,128,96,192,64,96,12, - 16,32,14,1,255,0,48,31,224,56,224,96,224,65,176,193, - 176,195,48,198,48,198,48,204,48,220,48,88,32,112,96,57, - 192,127,0,192,0,11,20,40,15,2,0,24,0,8,0,4, - 0,6,0,0,0,0,0,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,96,192,127, - 192,31,0,11,20,40,15,2,0,3,0,2,0,4,0,12, - 0,0,0,0,0,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,96,192,127,192,31, - 0,11,20,40,15,2,0,14,0,14,0,27,0,17,0,0, - 0,0,0,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,96,192,127,192,31,0,11, - 18,36,15,2,0,25,128,0,0,0,0,0,0,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,96,192,113,192,31,0,12,20,40,12,0,0,1, - 128,3,0,2,0,4,0,0,0,0,0,224,112,96,96,112, - 192,48,192,25,128,25,128,15,0,14,0,6,0,6,0,6, - 0,6,0,6,0,6,0,9,14,28,12,2,0,192,0,192, - 0,192,0,254,0,195,0,193,128,193,128,193,128,195,128,254, - 0,192,0,192,0,192,0,192,0,10,14,28,11,1,0,62, - 0,103,0,195,0,195,0,198,0,204,0,204,0,206,0,199, - 128,193,128,192,192,216,192,220,128,199,128,8,15,15,10,1, - 0,48,24,8,0,0,62,103,195,3,63,99,195,195,231,123, - 8,16,16,10,1,0,6,12,24,16,0,0,62,103,195,3, - 63,99,195,195,231,123,8,16,16,10,1,0,24,28,36,38, - 0,0,62,103,195,3,63,99,195,195,231,123,8,14,14,10, - 1,0,62,0,0,0,62,103,195,3,63,115,195,195,231,123, - 8,14,14,10,1,0,102,0,0,0,62,103,195,3,63,99, - 195,195,231,123,8,16,16,10,1,0,28,34,34,28,0,0, - 62,99,193,1,63,113,193,193,231,61,16,10,20,18,1,0, - 62,124,227,198,193,131,1,131,63,255,225,128,193,128,195,131, - 230,238,124,60,8,14,14,10,1,252,62,103,195,192,192,192, - 192,195,102,60,16,28,6,62,9,16,32,11,1,0,48,0, - 48,0,24,0,8,0,0,0,0,0,62,0,99,0,193,0, - 193,128,255,128,192,0,192,0,67,0,103,0,62,0,9,16, - 32,11,1,0,6,0,12,0,8,0,24,0,0,0,0,0, - 62,0,99,0,193,0,193,128,255,128,192,0,192,0,67,0, - 103,0,62,0,9,16,32,11,1,0,24,0,28,0,52,0, - 34,0,0,0,0,0,62,0,99,0,193,0,193,128,255,128, - 192,0,192,0,67,0,103,0,62,0,9,14,28,11,1,0, - 102,0,0,0,0,0,0,0,62,0,99,0,193,0,193,128, - 255,128,192,0,192,0,67,0,103,0,62,0,3,15,15,4, - 0,0,128,192,96,32,0,96,96,96,96,96,96,96,96,96, - 96,3,15,15,4,1,0,96,64,192,128,0,192,192,192,192, - 192,192,192,192,192,192,6,15,15,4,255,0,48,120,72,132, - 0,48,48,48,48,48,48,48,48,48,48,6,14,14,5,0, - 0,204,0,0,0,48,48,48,48,48,48,48,48,48,48,9, - 14,28,11,1,0,102,0,24,0,108,0,6,0,63,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,8,14,14,10,1,0,52,124,0,0,222,231,195,195,195, - 195,195,195,195,195,9,16,32,11,1,0,48,0,16,0,24, - 0,8,0,0,0,0,0,62,0,99,0,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,16,32,11,1, - 0,6,0,4,0,12,0,8,0,0,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,16,32,11,1,0,8,0,28,0,20,0,34,0,0, - 0,0,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,62,0,0, - 0,0,0,0,0,62,0,99,0,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,9,14,28,11,1,0,51, - 0,0,0,0,0,0,0,62,0,115,0,193,128,192,128,192, - 128,192,128,192,128,193,128,115,0,62,0,11,8,16,19,4, - 2,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,9,12,24,11,1,0,1,128,63,0,99,0,199,128,197, - 128,201,128,217,128,209,128,225,128,99,0,254,0,128,0,8, - 16,16,10,1,0,96,48,16,8,0,0,195,195,195,195,195, - 195,195,195,231,123,8,16,16,10,1,0,4,12,8,16,0, - 0,195,195,195,195,195,195,195,195,231,123,8,16,16,10,1, - 0,24,24,52,36,0,0,195,195,195,195,195,195,195,195,231, - 123,8,14,14,10,1,0,102,0,0,0,195,195,195,195,195, - 195,195,195,231,123,10,19,38,10,0,252,3,0,6,0,4, - 0,8,0,0,0,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,120,0,120, - 0,9,18,36,11,1,252,192,0,192,0,192,0,192,0,222, - 0,227,0,193,128,193,128,193,128,193,128,193,128,193,128,227, - 0,222,0,192,0,192,0,192,0,192,0,10,18,36,10,0, - 252,51,0,0,0,0,0,0,0,192,192,97,128,97,128,97, - 0,51,0,51,0,30,0,30,0,30,0,12,0,12,0,24, - 0,24,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=15 x= 4 y= 7 dx=19 dy= 0 ascent=14 len=28 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14n[421] U8G_FONT_SECTION("u8g_font_fur14n") = { - 0,26,26,255,251,14,0,0,0,0,42,58,0,14,254,14, - 0,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--19-190-72-72-P-92-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=18 h=21 x= 5 y=12 dx=19 dy= 0 ascent=16 len=54 - Font Bounding box w=26 h=26 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur14r[2489] U8G_FONT_SECTION("u8g_font_fur14r") = { - 0,26,26,255,251,14,3,59,6,250,32,127,252,16,251,14, - 252,0,0,0,6,0,0,2,14,14,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,0,0,192,6,6,6,9,1, - 8,204,204,76,76,68,68,12,14,28,14,1,0,6,96,4, - 64,4,64,12,192,127,240,8,128,25,128,25,0,255,224,19, - 0,51,0,34,0,34,0,102,0,9,18,36,11,1,254,8, - 0,8,0,62,0,107,0,201,128,200,0,200,0,248,0,126, - 0,15,0,9,128,9,128,201,128,201,128,107,0,62,0,8, - 0,8,0,16,14,28,18,1,0,120,16,108,16,198,32,198, - 96,198,64,204,128,124,128,1,60,3,102,2,99,6,99,4, - 99,8,102,8,60,12,14,28,14,1,0,30,0,51,0,97, - 0,99,0,51,0,60,0,60,96,108,96,198,96,195,96,193, - 192,192,192,99,224,62,48,1,6,6,7,3,8,128,128,128, - 128,128,128,3,17,17,7,2,253,32,96,96,64,192,192,192, - 192,192,192,192,192,192,64,96,96,32,3,17,17,7,2,253, - 128,128,192,192,64,64,96,96,96,96,96,96,64,192,192,128, - 128,8,7,7,12,2,7,36,36,24,255,24,60,102,11,12, - 24,19,4,0,6,0,6,0,6,0,6,0,6,0,6,0, - 255,224,6,0,6,0,6,0,6,0,6,0,3,5,5,5, - 1,254,96,96,192,192,128,5,1,1,7,1,4,248,2,2, - 2,5,2,0,192,192,6,15,15,8,1,255,12,8,8,24, - 16,16,48,48,32,32,96,64,64,192,128,9,14,28,11,1, - 0,60,0,103,0,67,0,193,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,0,67,0,119,0,60,0,5,14,14, - 11,2,0,56,120,248,152,24,24,24,24,24,24,24,24,24, - 24,8,14,14,11,1,0,60,102,195,195,3,3,6,12,28, - 56,48,96,192,255,9,14,28,11,1,0,62,0,119,0,97, - 128,193,128,1,128,3,0,28,0,7,0,3,0,1,128,193, - 128,193,128,99,0,62,0,9,14,28,11,1,0,7,0,7, - 0,15,0,27,0,19,0,51,0,99,0,99,0,195,0,255, - 128,255,128,3,0,3,0,3,0,9,14,28,11,1,0,255, - 0,192,0,192,0,192,0,222,0,243,0,193,0,193,128,1, - 128,1,128,193,128,195,0,102,0,60,0,9,14,28,11,1, - 0,30,0,99,0,65,128,192,0,192,0,222,0,255,0,195, - 0,193,128,193,128,193,128,65,0,103,0,30,0,8,14,14, - 11,1,0,255,3,3,2,6,6,12,12,12,24,24,24,48, - 48,9,14,28,11,1,0,62,0,99,0,193,128,193,128,193, - 128,99,0,62,0,99,0,193,128,193,128,193,128,193,128,99, - 0,62,0,9,14,28,11,1,0,62,0,99,0,193,0,193, - 128,193,128,193,128,99,128,125,128,1,128,1,128,193,0,67, - 0,102,0,60,0,2,10,10,5,2,0,192,192,0,0,0, - 0,0,0,192,192,3,12,12,5,1,254,96,96,0,0,0, - 0,0,96,96,64,192,192,12,10,20,19,4,1,0,48,0, - 224,7,0,28,0,224,0,192,0,56,0,14,0,1,192,0, - 48,11,5,10,19,4,4,255,224,0,0,0,0,0,0,255, - 224,12,10,20,19,4,1,128,0,112,0,28,0,3,128,0, - 96,0,112,1,192,14,0,112,0,192,0,8,14,14,9,0, - 0,60,126,195,3,3,2,6,12,24,24,24,0,0,24,17, - 18,54,19,1,252,7,240,0,28,60,0,48,6,0,96,3, - 0,99,243,0,198,113,0,196,49,128,204,49,128,204,49,128, - 204,49,128,204,49,128,196,51,0,70,95,0,99,158,0,96, - 0,0,48,0,0,30,16,0,7,240,0,14,14,28,14,0, - 0,3,0,7,128,7,128,4,192,12,192,12,192,24,96,24, - 96,31,240,63,240,48,24,96,24,96,24,192,12,10,14,28, - 13,2,0,255,0,193,128,192,192,192,192,192,192,193,128,254, - 0,195,128,192,192,192,192,192,192,192,192,195,128,255,0,11, - 14,28,13,1,0,31,128,57,192,96,96,64,96,192,0,192, - 0,192,0,192,0,192,0,192,0,64,96,96,96,49,192,31, - 0,11,14,28,14,2,0,254,0,195,128,192,192,192,192,192, - 96,192,96,192,96,192,96,192,96,192,96,192,192,192,192,195, - 128,254,0,9,14,28,12,2,0,255,128,192,0,192,0,192, - 0,192,0,192,0,255,128,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,8,14,14,11,2,0,255,192,192,192,192, - 192,255,192,192,192,192,192,192,192,12,14,28,14,1,0,15, - 128,56,224,96,48,64,0,192,0,192,0,193,240,192,48,192, - 48,192,48,96,48,96,48,56,112,15,224,10,14,28,14,2, - 0,192,192,192,192,192,192,192,192,192,192,192,192,255,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,2,14,14, - 5,2,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,14,14,11,1,0,3,3,3,3,3,3,3,3,3, - 3,195,195,102,60,10,14,28,13,2,0,193,128,195,0,198, - 0,204,0,216,0,240,0,240,0,216,0,220,0,206,0,199, - 0,195,0,193,128,192,192,8,14,14,11,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,255,255,14,14,28,18,2, - 0,224,28,224,28,240,60,240,60,216,108,216,108,216,108,204, - 204,204,204,196,140,199,140,199,140,195,12,195,12,11,14,28, - 14,2,0,224,96,224,96,240,96,248,96,216,96,220,96,204, - 96,198,96,198,96,195,96,195,96,193,224,193,224,192,224,12, - 14,28,14,1,0,31,128,57,192,96,96,64,32,192,48,192, - 48,192,48,192,48,192,48,192,48,64,32,96,96,57,192,15, - 0,9,14,28,12,2,0,254,0,195,0,193,128,193,128,193, - 128,193,128,195,0,254,0,192,0,192,0,192,0,192,0,192, - 0,192,0,14,14,28,15,1,0,31,128,57,192,96,96,64, - 32,192,48,192,48,192,48,192,48,192,48,192,48,64,32,96, - 96,57,192,15,252,9,14,28,12,2,0,254,0,195,0,193, - 128,193,128,193,128,195,0,254,0,195,0,195,0,193,0,193, - 128,193,128,193,128,193,128,10,14,28,12,1,0,63,0,97, - 128,192,192,192,0,192,0,240,0,127,0,31,128,1,192,0, - 192,192,192,192,192,97,128,62,0,11,14,28,13,1,0,255, - 224,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,11,14,28,15,2, - 0,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,96,192,113,192,31,0,12,14,28, - 12,0,0,224,48,96,112,96,96,48,96,48,96,48,192,24, - 192,24,192,25,128,13,128,13,0,15,0,7,0,6,0,18, - 14,42,18,0,0,192,224,192,96,224,192,97,225,128,97,161, - 128,33,177,128,49,49,128,51,51,0,51,19,0,27,27,0, - 26,26,0,30,30,0,14,14,0,12,14,0,12,12,0,12, - 14,28,13,1,0,224,96,96,192,49,192,57,128,27,0,15, - 0,14,0,15,0,27,0,25,128,49,192,96,192,224,224,192, - 112,12,14,28,12,0,0,224,112,96,96,112,192,48,192,25, - 128,25,128,15,0,14,0,6,0,6,0,6,0,6,0,6, - 0,6,0,10,14,28,12,1,0,127,192,0,192,1,128,3, - 128,3,0,6,0,14,0,28,0,24,0,56,0,112,0,96, - 0,224,0,255,192,4,18,18,8,2,252,240,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,5,15,15, - 8,1,255,128,192,64,64,64,96,32,32,48,16,16,16,24, - 8,8,4,18,18,8,2,252,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,9,12,24,19,5,0, - 8,0,8,0,20,0,20,0,34,0,34,0,34,0,65,0, - 65,0,193,128,128,128,128,128,10,1,2,10,0,254,255,192, - 3,4,4,4,0,12,128,192,96,32,8,10,10,10,1,0, - 62,103,195,3,63,99,195,195,231,123,9,14,28,11,1,0, - 192,0,192,0,192,0,192,0,222,0,227,0,193,128,193,128, - 193,128,193,128,193,128,193,0,227,0,222,0,8,10,10,10, - 1,0,62,103,195,192,192,192,192,195,103,60,9,14,28,11, - 1,0,1,128,1,128,1,128,1,128,61,128,103,128,195,128, - 193,128,193,128,193,128,193,128,65,128,99,128,29,128,9,10, - 20,11,1,0,62,0,99,0,193,0,193,128,255,128,192,0, - 192,0,67,0,103,0,62,0,6,14,14,8,1,0,28,48, - 48,48,252,48,48,48,48,48,48,48,48,48,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,65,128,115,0,62,0,8,14, - 14,10,1,0,192,192,192,192,222,231,195,195,195,195,195,195, - 195,195,2,14,14,4,1,0,192,0,0,0,192,192,192,192, - 192,192,192,192,192,192,3,18,18,5,1,252,96,0,0,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,192,7,14, - 14,9,1,0,192,192,192,192,198,204,216,240,240,248,216,204, - 198,198,2,14,14,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,14,10,20,17,1,0,222,120,231,156, - 195,12,195,12,195,12,195,12,195,12,195,12,195,12,195,12, - 8,10,10,10,1,0,222,231,195,195,195,195,195,195,195,195, - 9,10,20,11,1,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,99,0,62,0,9,14,28,11,1,252, - 222,0,227,0,193,128,193,128,193,128,193,128,193,128,193,128, - 227,0,222,0,192,0,192,0,192,0,192,0,9,14,28,11, - 1,252,61,128,99,128,193,128,193,128,193,128,193,128,193,128, - 193,128,99,128,61,128,1,128,1,128,1,128,1,128,5,10, - 10,7,1,0,248,224,192,192,192,192,192,192,192,192,8,10, - 10,10,1,0,124,231,195,192,124,30,3,195,230,124,6,13, - 13,8,1,0,16,48,48,252,48,48,48,48,48,48,48,48, - 28,8,10,10,10,1,0,195,195,195,195,195,195,195,195,231, - 123,10,10,20,10,0,0,192,192,96,128,97,128,49,128,51, - 0,51,0,26,0,30,0,14,0,12,0,15,10,20,15,0, - 0,195,134,99,134,99,196,98,204,38,76,54,72,52,120,28, - 120,28,48,24,48,9,10,20,10,1,0,195,0,99,0,118, - 0,60,0,24,0,28,0,60,0,102,0,195,0,195,128,10, - 14,28,10,0,252,192,192,97,128,97,128,49,128,51,0,19, - 0,26,0,30,0,14,0,12,0,12,0,12,0,24,0,24, - 0,7,10,10,9,1,0,254,6,12,28,24,48,96,96,192, - 254,6,19,19,10,2,251,12,24,16,48,48,48,48,48,96, - 224,224,48,48,48,48,16,16,24,28,1,21,21,7,3,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,19,19,10,2,251,224,112,48,48,48, - 48,48,16,24,12,28,16,48,48,48,48,48,48,224,10,2, - 4,10,0,4,120,192,207,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=15 dx=24 dy= 0 ascent=24 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17[6799] U8G_FONT_SECTION("u8g_font_fur17") = { - 0,31,30,254,250,17,4,5,8,170,32,255,251,24,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,7,0,0, - 2,17,17,8,3,251,192,192,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,10,18,36,14,2,253,1,0,1, - 0,1,0,31,0,127,128,98,192,198,192,196,0,196,0,204, - 0,200,0,200,192,121,192,127,128,31,0,32,0,32,0,32, - 0,11,17,34,13,1,0,15,128,29,192,48,96,48,0,48, - 0,48,0,254,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,255,224,11,14,28,13,1,3,0, - 32,128,32,95,64,123,128,96,128,64,64,64,64,64,64,64, - 64,96,128,113,128,95,64,128,32,0,32,12,17,34,14,1, - 0,192,48,96,96,96,96,48,224,48,192,249,240,25,128,15, - 128,15,0,255,240,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,1,22,22,8,4,251,128,128,128,128,128,128,128, - 128,128,0,0,0,0,128,128,128,128,128,128,128,128,128,8, - 21,21,10,1,252,62,126,192,192,192,112,120,62,119,227,195, - 199,238,124,30,7,3,3,3,142,252,7,2,2,7,0,15, - 198,198,17,17,51,19,1,0,3,224,0,15,120,0,56,14, - 0,35,242,0,71,57,0,78,25,0,140,0,128,140,0,128, - 140,0,128,140,0,128,140,24,128,70,57,0,67,241,0,32, - 2,0,48,6,0,12,24,0,3,224,0,9,11,22,9,0, - 6,62,0,127,0,97,0,1,0,63,0,113,0,65,0,67, - 0,61,0,0,0,255,128,9,9,18,13,2,1,49,128,51, - 0,99,0,230,0,204,0,230,0,99,0,51,0,17,128,12, - 5,10,14,1,5,255,240,0,16,0,16,0,16,0,16,255, - 17,17,51,19,1,0,3,224,0,15,120,0,56,14,0,39, - 242,0,70,57,0,70,25,0,134,24,128,135,224,128,134,48, - 128,134,16,128,134,24,128,70,25,0,70,25,0,32,2,0, - 56,14,0,15,120,0,3,224,0,7,1,1,7,0,15,254, - 5,6,6,7,1,11,112,216,136,136,216,112,14,14,28,24, - 5,0,2,0,2,0,2,0,2,0,255,252,2,0,2,0, - 2,0,2,0,2,0,0,0,0,0,0,0,255,252,7,9, - 9,9,1,8,60,126,198,6,12,24,48,224,254,7,9,9, - 9,1,8,60,126,198,14,24,14,6,206,124,3,4,4,5, - 2,14,96,96,192,128,255,10,21,42,13,1,252,31,192,60, - 128,124,128,252,128,252,128,252,128,124,128,124,128,60,128,4, - 128,4,128,4,128,4,128,4,128,4,128,4,128,4,128,4, - 128,4,128,4,128,4,128,2,3,3,6,2,7,192,192,192, - 6,5,5,6,1,250,64,120,12,12,252,3,9,9,7,2, - 8,96,224,32,32,32,32,32,32,32,8,11,11,10,1,6, - 60,126,195,193,193,193,195,98,124,0,255,9,9,18,13,2, - 1,204,0,102,0,99,0,51,0,57,128,51,0,99,0,102, - 0,204,0,15,17,34,18,2,0,96,48,224,32,32,96,32, - 64,32,192,32,128,33,0,35,0,34,24,6,24,4,40,12, - 72,8,200,16,254,48,8,32,8,96,8,16,17,34,19,2, - 0,96,16,224,48,32,32,32,96,32,192,32,128,33,128,33, - 0,35,62,6,119,4,99,12,3,8,6,24,28,16,48,32, - 96,96,127,17,17,51,19,1,0,124,4,0,254,12,0,6, - 8,0,24,16,0,30,48,0,6,32,0,198,96,0,206,64, - 0,124,198,0,1,134,0,1,10,0,3,26,0,2,50,0, - 6,63,128,4,2,0,8,2,0,24,2,0,10,17,34,12, - 1,251,6,0,6,0,0,0,0,0,6,0,6,0,6,0, - 14,0,28,0,112,0,96,0,192,0,192,0,192,192,241,192, - 127,128,31,0,16,23,46,17,1,0,14,0,6,0,3,0, - 1,0,0,0,0,0,3,128,3,128,7,192,6,192,14,224, - 12,96,12,112,24,48,24,48,56,56,63,248,63,252,96,12, - 96,12,224,6,192,6,192,7,16,23,46,17,1,0,0,96, - 0,192,0,128,1,0,0,0,0,0,3,128,3,128,7,192, - 6,192,14,224,12,96,12,112,24,48,24,48,56,56,63,248, - 63,252,96,12,96,12,224,6,192,6,192,7,16,23,46,17, - 1,0,3,128,3,192,6,192,4,96,0,0,0,0,3,128, - 3,128,7,192,6,192,14,224,12,96,12,112,24,48,24,48, - 56,56,63,248,63,252,96,12,96,12,224,6,192,6,192,7, - 16,22,44,17,1,0,7,96,13,192,0,0,0,0,0,0, - 3,128,3,128,7,192,6,192,14,224,12,96,12,112,24,48, - 24,48,56,56,63,248,63,252,96,12,96,12,224,6,192,6, - 192,7,16,22,44,18,1,0,6,48,6,48,0,0,0,0, - 0,0,1,192,3,192,3,224,7,96,6,96,6,112,12,48, - 12,56,28,24,24,28,63,252,63,252,48,6,96,6,96,7, - 224,3,192,3,16,24,48,17,1,0,3,128,6,192,4,64, - 4,64,3,128,0,0,0,0,3,128,3,128,7,192,6,192, - 6,224,12,96,12,112,28,48,24,48,24,24,63,248,63,252, - 96,12,96,12,224,6,192,6,192,7,21,17,51,23,1,0, - 0,255,248,0,240,0,1,240,0,1,176,0,3,176,0,3, - 48,0,7,48,0,6,48,0,14,63,248,12,48,0,28,48, - 0,31,240,0,56,48,0,48,48,0,112,48,0,96,48,0, - 192,63,248,13,22,44,15,1,251,15,192,63,240,48,56,96, - 24,96,24,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,24,112,48,63,240,15,192,2,0,3,192,0, - 224,0,96,7,224,11,23,46,14,2,0,48,0,24,0,12, - 0,4,0,0,0,0,0,255,224,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,255,224,11,23,46,14,2,0,3, - 0,6,0,6,0,12,0,0,0,0,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,11,23,46, - 14,2,0,30,0,30,0,51,0,33,0,0,0,0,0,255, - 224,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 192,192,0,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,11,22,44,14,2,0,51,0,51,0,0,0,0,0,0, - 0,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,192,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,224,4,23,23,6,0,0,192,96,48,16,0,0,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 4,23,23,6,2,0,48,96,64,192,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,6,23,23, - 6,0,0,56,120,76,196,0,0,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,7,22,22,7,0,0, - 198,198,0,0,0,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,15,17,34,17,0,0,63,192,49,240, - 48,56,48,12,48,12,48,6,48,6,48,6,255,6,48,6, - 48,6,48,6,48,12,48,28,48,56,49,240,63,192,13,22, - 44,17,2,0,14,192,31,128,0,0,0,0,0,0,224,24, - 240,24,248,24,248,24,220,24,220,24,206,24,198,24,199,24, - 195,24,195,152,193,216,193,216,192,248,192,248,192,120,192,56, - 15,24,48,17,1,0,14,0,6,0,3,0,1,0,1,128, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,15,24,48,17,1,0,0,224,0,192, - 1,128,1,0,3,0,0,0,0,0,7,192,30,240,48,24, - 96,12,96,12,192,6,192,6,192,6,192,6,192,6,192,6, - 224,14,96,12,96,12,48,24,30,240,7,192,15,24,48,17, - 1,0,3,128,3,128,6,192,4,64,12,32,0,0,0,0, - 7,192,30,240,48,24,96,12,96,12,192,6,192,6,192,6, - 192,6,192,6,192,6,224,14,96,12,96,12,48,24,30,240, - 7,192,15,22,44,17,1,0,7,96,13,192,0,0,0,0, - 0,0,7,192,30,240,48,24,96,12,96,12,192,6,192,6, - 192,6,192,6,192,6,192,6,224,14,96,12,112,28,56,56, - 31,240,7,192,15,22,44,17,1,0,6,96,6,96,0,0, - 0,0,0,0,7,192,30,240,48,24,96,12,96,12,192,6, - 192,6,192,6,192,6,192,6,192,6,224,14,96,12,96,12, - 48,24,30,240,7,192,13,12,24,23,5,1,192,24,96,48, - 48,96,24,192,13,128,7,0,7,0,13,128,24,192,48,96, - 96,48,192,24,15,21,42,17,1,254,0,4,0,14,7,236, - 30,248,48,60,96,60,96,110,192,230,192,198,193,198,195,134, - 195,6,199,6,238,14,108,12,124,12,120,24,62,240,111,192, - 224,0,64,0,13,24,48,17,2,0,28,0,12,0,6,0, - 2,0,1,0,0,0,0,0,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 224,24,96,56,112,112,63,224,31,192,13,24,48,17,2,0, - 1,192,1,128,3,0,2,0,6,0,0,0,0,0,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,224,24,96,56,112,112,63,224,31,192, - 13,24,48,17,2,0,7,0,7,0,13,128,8,128,24,64, - 0,0,0,0,192,24,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,224,24,96,56, - 112,112,63,224,31,192,13,22,44,17,2,0,12,192,12,192, - 0,0,0,0,0,0,192,24,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,24,192,24,192,24,192,24,192,24, - 96,56,96,48,61,224,31,192,14,23,46,15,0,0,0,192, - 1,128,1,128,3,0,0,0,0,0,224,28,112,24,112,56, - 56,48,24,112,28,96,12,192,14,192,7,128,3,128,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,11,17,34,14, - 2,0,192,0,192,0,192,0,192,0,255,128,193,192,192,224, - 192,96,192,96,192,96,193,192,255,128,192,0,192,0,192,0, - 192,0,192,0,12,17,34,13,1,0,31,0,127,128,224,192, - 192,192,193,192,195,128,199,0,198,0,198,0,195,128,193,224, - 192,112,192,48,192,48,204,48,207,96,195,192,10,18,36,13, - 1,0,24,0,12,0,4,0,6,0,0,0,0,0,31,0, - 123,128,96,192,96,192,0,192,63,192,120,192,224,192,192,192, - 193,192,119,192,60,192,10,19,38,13,1,0,3,0,6,0, - 6,0,12,0,8,0,0,0,0,0,31,0,123,128,96,192, - 96,192,0,192,63,192,120,192,224,192,192,192,193,192,119,192, - 60,192,10,19,38,13,1,0,14,0,14,0,27,0,51,0, - 33,128,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,17, - 34,13,1,0,29,128,63,0,0,0,0,0,0,0,31,0, - 123,128,96,192,0,192,7,192,63,192,112,192,192,192,193,192, - 193,192,119,192,60,192,10,17,34,13,1,0,49,128,49,128, - 0,0,0,0,0,0,31,0,123,128,96,192,96,192,0,192, - 63,192,120,192,224,192,192,192,193,192,119,192,60,192,10,20, - 40,13,1,0,14,0,27,0,17,0,17,0,27,0,14,0, - 0,0,0,0,31,0,123,128,96,192,96,192,0,192,63,192, - 120,192,224,192,192,192,193,192,119,192,62,192,18,12,36,20, - 1,0,30,31,0,127,191,128,97,225,128,0,224,192,0,192, - 192,63,255,192,120,192,0,224,192,0,192,224,192,193,225,128, - 127,63,128,62,31,0,10,17,34,12,1,251,31,0,127,128, - 97,192,192,192,192,0,192,0,192,0,192,0,192,192,97,192, - 127,128,31,0,8,0,15,0,3,128,1,128,31,0,10,19, - 38,13,1,0,48,0,24,0,8,0,12,0,6,0,0,0, - 0,0,31,0,127,128,96,192,192,192,192,192,255,192,192,0, - 192,0,192,192,96,192,63,128,31,0,10,19,38,13,1,0, - 3,0,7,0,6,0,12,0,8,0,0,0,0,0,31,0, - 127,128,96,192,192,192,192,192,255,192,192,0,192,0,192,192, - 96,192,63,128,31,0,10,19,38,13,1,0,12,0,30,0, - 26,0,51,0,33,0,0,0,0,0,31,0,127,128,96,192, - 192,192,192,192,255,192,192,0,192,0,192,192,96,192,63,128, - 31,0,11,17,34,13,1,0,49,128,49,128,0,0,0,0, - 0,0,31,0,59,192,96,192,224,96,192,96,255,224,192,0, - 192,0,192,96,96,192,59,192,31,0,4,18,18,6,0,0, - 192,96,48,16,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,4,18,18,6,2,0,48,96,192,128,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,6,18,18,6,0,0, - 120,120,204,132,0,0,48,48,48,48,48,48,48,48,48,48, - 48,48,6,17,17,5,255,0,204,204,0,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,11,17,34,13,1,0,97, - 128,63,0,30,0,119,0,3,128,31,192,127,192,96,224,224, - 96,192,96,192,96,192,96,192,96,224,96,96,192,63,192,31, - 0,10,17,34,14,2,0,25,0,63,0,0,0,0,0,0, - 0,223,0,255,128,225,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,11,19,38,13,1,0,56, - 0,24,0,12,0,4,0,2,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,19,38,13,1,0,3,128,3,0,6, - 0,4,0,12,0,0,0,0,0,31,0,63,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,63,192,31, - 0,11,19,38,13,1,0,14,0,14,0,27,0,17,0,49, - 128,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,11,17,34, - 13,1,0,29,128,63,0,0,0,0,0,0,0,31,0,63, - 192,96,192,224,224,192,96,192,96,192,96,192,96,224,224,96, - 192,63,192,31,0,11,17,34,13,1,0,49,128,49,128,0, - 0,0,0,0,0,31,0,63,192,96,192,224,224,192,96,192, - 96,192,96,192,96,224,224,96,192,63,192,31,0,14,10,20, - 24,5,2,3,0,3,0,3,0,0,0,0,0,255,252,0, - 0,3,0,3,0,3,0,11,15,30,13,1,254,0,32,0, - 96,31,192,63,192,97,192,227,224,194,96,198,96,204,96,216, - 96,248,224,112,192,123,192,95,0,192,0,10,19,38,14,2, - 0,48,0,24,0,24,0,12,0,4,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,119,192,60,192,10,19,38,14,2,0,3,0,6, - 0,6,0,12,0,8,0,0,0,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,119, - 192,60,192,10,19,38,14,2,0,12,0,30,0,30,0,51, - 0,33,0,0,0,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,225,192,119,192,60,192,10, - 17,34,14,2,0,51,0,51,0,0,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,11,23,46,12,1,251,3,0,3, - 0,6,0,12,0,0,0,0,0,192,96,192,192,224,192,97, - 192,113,128,49,128,51,128,59,0,27,0,30,0,14,0,14, - 0,12,0,12,0,220,0,248,0,112,0,11,22,44,14,2, - 251,192,0,192,0,192,0,192,0,192,0,207,0,251,192,224, - 192,224,224,192,96,192,96,192,96,192,96,224,224,224,192,251, - 192,207,0,192,0,192,0,192,0,192,0,192,0,11,22,44, - 13,1,251,49,128,49,128,0,0,0,0,0,0,192,96,224, - 96,96,224,96,192,113,192,49,128,57,128,27,128,27,0,31, - 0,14,0,14,0,14,0,12,0,12,0,28,0,24,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 17 - Calculated Max Values w=14 h=18 x= 5 y= 8 dx=24 dy= 0 ascent=17 len=34 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =17 descent= 0 - X Font ascent =17 descent= 0 - Max Font ascent =17 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17n[528] U8G_FONT_SECTION("u8g_font_fur17n") = { - 0,31,30,254,250,17,0,0,0,0,42,58,0,17,253,17, - 0,9,9,18,15,3,8,34,0,54,0,22,0,28,0,255, - 128,156,128,20,0,54,0,34,0,14,14,28,24,5,0,2, - 0,2,0,2,0,2,0,2,0,2,0,255,252,2,0,2, - 0,2,0,2,0,2,0,2,0,2,0,4,6,6,6,1, - 253,112,112,96,96,192,192,6,1,1,8,1,5,252,2,3, - 3,6,2,0,192,192,192,7,18,18,9,1,255,6,6,4, - 12,12,8,8,24,24,16,48,48,32,32,96,96,64,192,10, - 17,34,13,1,0,30,0,63,128,97,128,96,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,97, - 192,97,128,63,128,30,0,5,17,17,13,3,0,56,120,248, - 216,24,24,24,24,24,24,24,24,24,24,24,24,24,10,17, - 34,13,1,0,30,0,127,128,97,128,224,192,224,192,0,192, - 1,192,3,128,3,128,7,0,14,0,28,0,56,0,112,0, - 96,0,224,0,255,192,10,17,34,13,1,0,31,0,127,128, - 96,192,224,192,0,192,0,192,3,128,14,0,7,128,1,192, - 0,192,0,192,192,192,224,192,97,192,127,128,30,0,11,17, - 34,13,1,0,3,128,3,128,7,128,13,128,13,128,25,128, - 57,128,49,128,97,128,97,128,193,128,255,224,255,224,1,128, - 1,128,1,128,1,128,10,17,34,13,1,0,127,128,96,0, - 96,0,96,0,96,0,111,0,127,128,97,128,64,192,0,192, - 0,192,0,192,0,192,192,192,225,128,127,0,30,0,11,17, - 34,13,1,0,31,0,59,128,96,192,224,192,192,0,192,0, - 207,0,223,192,241,192,224,224,192,96,192,96,192,96,192,96, - 96,192,59,192,31,0,10,17,34,13,1,0,255,192,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,56,0,11,17, - 34,13,1,0,31,0,59,128,96,192,96,192,96,192,96,192, - 49,128,31,0,59,128,96,192,192,96,192,96,192,96,192,96, - 96,224,123,192,31,0,11,17,34,13,1,0,31,0,127,192, - 96,192,192,224,192,96,192,96,192,224,224,224,113,224,63,96, - 0,96,0,96,0,224,96,192,97,192,127,128,31,0,2,12, - 12,6,2,0,192,192,192,0,0,0,0,0,0,192,192,192 - }; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--23-230-72-72-P-109-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=22 h=25 x= 6 y=14 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=31 h=30 x=-2 y=-6 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur17r[3146] U8G_FONT_SECTION("u8g_font_fur17r") = { - 0,31,30,254,250,17,4,5,8,170,32,127,251,19,250,17, - 251,0,0,0,7,0,0,2,17,17,8,3,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,192,192,7,7, - 7,10,2,10,206,206,198,198,196,196,196,15,17,34,17,1, - 0,1,24,3,24,3,24,3,48,6,48,63,254,6,32,4, - 96,12,96,12,64,255,248,24,192,24,128,17,128,49,128,49, - 128,49,0,11,21,42,13,1,254,4,0,4,0,63,0,127, - 128,196,192,196,192,196,0,196,0,244,0,127,0,63,192,5, - 224,4,224,4,96,196,96,196,96,228,96,127,192,63,128,4, - 0,4,0,19,17,51,21,1,0,60,2,0,126,4,0,227, - 12,0,195,8,0,195,24,0,195,16,0,195,48,0,102,96, - 0,62,71,128,0,207,192,0,152,96,1,152,96,1,24,96, - 2,24,96,6,24,96,4,15,192,12,7,128,15,17,34,17, - 1,0,15,0,63,128,48,192,48,192,49,192,59,128,31,0, - 28,24,118,24,103,24,227,152,193,216,192,240,224,112,96,120, - 123,252,31,142,2,7,7,8,3,10,192,192,192,192,192,192, - 64,4,20,20,8,2,253,48,48,96,96,96,224,192,192,192, - 192,192,192,192,192,224,96,96,96,48,48,4,20,20,8,2, - 253,192,64,96,96,96,48,48,48,48,48,48,48,48,48,48, - 96,96,96,64,192,9,9,18,15,3,8,34,0,54,0,22, - 0,28,0,255,128,156,128,20,0,54,0,34,0,14,14,28, - 24,5,0,2,0,2,0,2,0,2,0,2,0,2,0,255, - 252,2,0,2,0,2,0,2,0,2,0,2,0,2,0,4, - 6,6,6,1,253,112,112,96,96,192,192,6,1,1,8,1, - 5,252,2,3,3,6,2,0,192,192,192,7,18,18,9,1, - 255,6,6,4,12,12,8,8,24,24,16,48,48,32,32,96, - 96,64,192,10,17,34,13,1,0,30,0,63,128,97,128,96, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,97,192,97,128,63,128,30,0,5,17,17,13,3, - 0,56,120,248,216,24,24,24,24,24,24,24,24,24,24,24, - 24,24,10,17,34,13,1,0,30,0,127,128,97,128,224,192, - 224,192,0,192,1,192,3,128,3,128,7,0,14,0,28,0, - 56,0,112,0,96,0,224,0,255,192,10,17,34,13,1,0, - 31,0,127,128,96,192,224,192,0,192,0,192,3,128,14,0, - 7,128,1,192,0,192,0,192,192,192,224,192,97,192,127,128, - 30,0,11,17,34,13,1,0,3,128,3,128,7,128,13,128, - 13,128,25,128,57,128,49,128,97,128,97,128,193,128,255,224, - 255,224,1,128,1,128,1,128,1,128,10,17,34,13,1,0, - 127,128,96,0,96,0,96,0,96,0,111,0,127,128,97,128, - 64,192,0,192,0,192,0,192,0,192,192,192,225,128,127,0, - 30,0,11,17,34,13,1,0,31,0,59,128,96,192,224,192, - 192,0,192,0,207,0,223,192,241,192,224,224,192,96,192,96, - 192,96,192,96,96,192,59,192,31,0,10,17,34,13,1,0, - 255,192,0,192,0,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,14,0,12,0,12,0,28,0,24,0, - 56,0,11,17,34,13,1,0,31,0,59,128,96,192,96,192, - 96,192,96,192,49,128,31,0,59,128,96,192,192,96,192,96, - 192,96,192,96,96,224,123,192,31,0,11,17,34,13,1,0, - 31,0,127,192,96,192,192,224,192,96,192,96,192,224,224,224, - 113,224,63,96,0,96,0,96,0,224,96,192,97,192,127,128, - 31,0,2,12,12,6,2,0,192,192,192,0,0,0,0,0, - 0,192,192,192,3,15,15,6,1,253,96,96,96,0,0,0, - 0,0,0,96,96,96,192,192,192,14,12,24,24,5,1,0, - 12,0,60,1,224,7,0,56,0,224,0,224,0,60,0,7, - 0,1,224,0,60,0,12,14,5,10,24,5,4,255,252,0, - 0,0,0,0,0,255,252,14,12,24,24,5,1,192,0,240, - 0,30,0,3,128,0,112,0,28,0,28,0,240,3,128,30, - 0,240,0,192,0,9,17,34,11,1,0,60,0,255,0,195, - 128,129,128,1,128,1,128,3,0,7,0,14,0,28,0,24, - 0,24,0,24,0,0,0,0,0,24,0,24,0,20,22,66, - 23,1,251,1,252,0,7,255,0,30,7,128,56,1,192,48, - 0,224,97,236,96,99,252,112,227,28,48,198,12,48,198,12, - 48,198,12,48,198,12,48,198,12,48,198,12,48,227,28,96, - 99,31,224,97,231,192,48,0,0,56,0,0,28,0,0,7, - 220,0,1,252,0,16,17,34,17,1,0,3,128,3,128,7, - 192,6,192,14,224,12,96,12,112,24,48,24,48,56,56,63, - 248,63,252,96,12,96,12,224,6,192,6,192,7,12,17,34, - 16,2,0,255,128,195,224,192,112,192,48,192,48,192,48,192, - 112,192,224,255,128,193,224,192,112,192,48,192,48,192,48,192, - 112,195,224,255,128,13,17,34,15,1,0,15,192,63,240,48, - 56,96,24,96,24,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,24,48,48,63,240,15,192,13,17,34, - 17,2,0,255,0,199,192,192,96,192,48,192,48,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,48,192,48,192, - 224,199,192,255,0,11,17,34,14,2,0,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,192,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,10,17,34, - 13,2,0,255,192,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,14,17,34,17,1,0,7,224,31,248,48, - 28,96,12,96,0,192,0,192,0,192,0,192,252,192,12,192, - 12,224,12,96,12,112,12,56,12,31,252,7,248,12,17,34, - 16,2,0,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,255,240,192,48,192,48,192,48,192,48,192,48,192, - 48,192,48,192,48,2,17,17,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,10,17,34,13, - 1,0,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,225,128, - 127,128,62,0,12,17,34,15,2,0,192,96,192,192,193,128, - 195,0,199,0,206,0,220,0,248,0,220,0,222,0,206,0, - 199,0,195,128,193,192,192,224,192,224,192,112,10,17,34,12, - 2,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 255,192,255,192,17,17,51,21,2,0,240,7,128,240,7,128, - 240,7,128,216,13,128,216,13,128,220,29,128,204,25,128,204, - 25,128,206,57,128,198,49,128,198,49,128,195,97,128,195,97, - 128,195,97,128,193,193,128,193,193,128,193,193,128,13,17,34, - 17,2,0,224,24,240,24,248,24,248,24,220,24,220,24,206, - 24,198,24,199,24,195,24,195,152,193,216,193,216,192,248,192, - 248,192,120,192,56,15,17,34,17,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,240,7,192,11,17,34, - 14,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 224,193,192,255,128,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,17,34,18,1,0,7,192,30,240,48, - 24,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,224,14,96,12,96,12,48,24,30,248,7,255,11,17,34, - 15,2,0,255,0,199,192,192,224,192,96,192,96,192,96,192, - 96,193,192,255,0,193,192,192,192,192,192,192,224,192,96,192, - 96,192,96,192,96,12,17,34,15,1,0,31,128,63,224,96, - 112,192,48,192,0,224,0,240,0,127,128,63,224,3,240,0, - 112,0,48,192,48,192,48,96,112,123,224,31,128,13,17,34, - 15,1,0,255,248,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,13,17,34,17,2,0,192,24,192,24,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,96,56,96,48,61,224,31,192,14,17,34, - 15,1,0,192,28,192,24,224,56,96,48,96,48,112,112,48, - 96,48,96,56,224,24,192,24,192,29,192,13,128,13,128,15, - 128,7,0,7,0,22,17,51,22,0,0,224,56,28,96,120, - 28,96,120,24,112,120,24,48,108,56,48,204,48,48,204,48, - 24,206,48,24,198,112,25,134,96,29,134,96,13,131,96,13, - 131,192,15,3,192,7,3,192,7,1,192,6,1,128,14,17, - 34,16,1,0,112,24,112,56,56,48,28,96,28,224,14,192, - 7,128,7,128,7,128,7,192,13,192,28,224,24,112,48,112, - 112,56,96,28,224,28,14,17,34,15,0,0,224,28,112,24, - 112,56,56,48,24,112,28,96,12,192,14,192,7,128,3,128, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,12,17, - 34,14,1,0,127,240,0,48,0,112,0,224,1,192,1,192, - 3,128,7,0,7,0,14,0,28,0,60,0,56,0,112,0, - 240,0,224,0,255,240,4,22,22,9,2,251,240,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,18,18,9,1,255,192,192,64,96,96,32,48,48, - 16,16,24,24,8,12,12,4,4,6,4,22,22,10,3,251, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,11,14,28,23,6,0,4,0,14,0, - 10,0,27,0,17,0,17,0,49,128,32,128,32,128,96,192, - 64,64,192,96,128,32,128,32,12,1,2,12,0,253,255,240, - 4,4,4,5,0,14,192,96,96,48,10,12,24,13,1,0, - 31,0,123,128,96,192,96,192,0,192,63,192,120,192,224,192, - 192,192,193,192,119,192,60,192,11,17,34,14,2,0,192,0, - 192,0,192,0,192,0,192,0,207,0,223,192,224,192,224,224, - 192,96,192,96,192,96,192,96,224,224,224,192,251,128,207,0, - 10,12,24,12,1,0,31,0,127,128,97,192,192,192,192,0, - 192,0,192,0,192,0,192,192,97,192,127,128,31,0,11,17, - 34,14,1,0,0,96,0,96,0,96,0,96,0,96,30,96, - 127,224,97,224,224,224,192,96,192,96,192,96,192,96,224,224, - 96,224,59,224,30,96,10,12,24,13,1,0,31,0,127,128, - 96,192,192,192,192,192,255,192,192,0,192,0,192,192,96,192, - 63,128,31,0,7,17,17,9,1,0,30,62,48,48,48,254, - 48,48,48,48,48,48,48,48,48,48,48,11,17,34,14,1, - 251,31,96,63,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,96,224,96,192,63, - 128,31,0,10,17,34,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,251,128,225,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,2,17,17,5,1, - 0,192,192,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,3,22,22,7,2,251,96,96,0,0,0,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,224,192,9,17, - 34,12,2,0,192,0,192,0,192,0,192,0,192,0,195,128, - 199,0,206,0,220,0,216,0,248,0,216,0,204,0,206,0, - 199,0,195,0,195,128,2,17,17,6,2,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,18,12,36, - 21,2,0,207,31,0,255,191,128,225,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,10,12,24,14,2,0,223,0,255, - 128,225,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,12,24,13,1,0,31,0,63,192,96, - 192,224,224,192,96,192,96,192,96,192,96,224,224,96,192,63, - 192,31,0,11,17,34,14,2,251,207,0,251,192,224,192,224, - 224,192,96,192,96,192,96,192,96,224,224,224,192,251,192,207, - 0,192,0,192,0,192,0,192,0,192,0,11,17,34,14,1, - 251,30,96,123,224,96,224,224,224,192,96,192,96,192,96,192, - 96,224,224,96,224,123,224,30,96,0,96,0,96,0,96,0, - 96,0,96,7,12,12,9,2,0,222,252,224,192,192,192,192, - 192,192,192,192,192,9,12,24,11,1,0,62,0,127,128,193, - 128,192,0,224,0,126,0,31,128,3,128,193,128,193,128,119, - 0,62,0,7,15,15,9,1,0,48,48,48,254,48,48,48, - 48,48,48,48,48,48,58,30,10,12,24,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,192,60,192,11,12,24,12,1,0,192,96,192,192, - 224,192,97,192,97,128,49,128,51,0,59,0,27,0,30,0, - 30,0,12,0,18,12,36,19,0,0,224,224,192,96,224,192, - 97,161,192,113,177,128,49,177,128,51,49,128,51,27,0,27, - 27,0,30,27,0,30,14,0,14,14,0,12,14,0,11,12, - 24,13,1,0,224,192,113,192,49,128,59,0,31,0,14,0, - 30,0,31,0,51,128,113,128,97,192,192,224,11,17,34,12, - 1,251,192,96,192,192,224,192,97,192,113,128,49,128,51,128, - 59,0,27,0,30,0,14,0,14,0,12,0,12,0,28,0, - 24,0,24,0,8,12,12,10,1,0,255,3,7,14,12,24, - 56,48,96,224,192,255,8,23,23,11,2,251,15,14,24,24, - 24,24,24,24,24,56,112,224,240,48,24,24,24,24,24,24, - 24,12,15,1,25,25,8,4,250,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,8,23,23,11,2,251,224,112,56,24,24,24,24,24, - 24,28,14,7,14,28,24,24,24,24,24,24,24,48,240,12, - 2,4,12,0,5,62,112,231,224,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=17 dx=29 dy= 0 ascent=28 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =28 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20[8654] U8G_FONT_SECTION("u8g_font_fur20") = { - 0,38,35,254,249,20,5,12,11,23,32,255,251,28,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,3,19, - 19,10,4,251,224,224,224,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,12,20,40,16,2,253,0,192,0, - 128,0,128,31,128,63,192,113,96,227,96,226,0,226,0,230, - 0,228,0,228,0,236,112,232,96,120,224,63,192,31,128,16, - 0,48,0,48,0,14,20,40,16,1,0,7,224,31,248,60, - 60,56,28,56,0,56,0,56,0,255,128,255,128,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,255, - 248,255,248,16,14,28,18,1,4,192,3,97,134,55,236,28, - 56,24,24,48,12,48,12,48,12,48,12,24,24,28,56,63, - 252,115,198,192,3,15,20,40,17,1,0,224,14,224,28,112, - 28,48,56,56,56,24,112,252,126,252,254,14,224,7,192,255, - 254,255,254,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,1,25,25,9,4,251,128,128,128,128,128,128,128, - 128,128,128,128,0,0,0,128,128,128,128,128,128,128,128,128, - 128,128,10,25,50,12,1,251,31,0,63,128,112,0,224,0, - 224,0,112,0,120,0,62,0,31,0,127,128,113,192,225,192, - 225,192,225,128,247,128,126,0,31,0,7,128,3,192,1,192, - 1,192,1,192,131,128,255,0,60,0,8,3,3,8,0,17, - 231,231,231,21,20,60,25,2,0,1,252,0,7,255,0,28, - 3,128,56,112,192,35,254,96,103,142,48,199,7,16,134,7, - 24,142,0,8,142,0,8,142,0,8,134,0,8,134,7,24, - 199,7,16,67,254,16,32,248,32,48,0,64,28,1,128,7, - 143,0,1,252,0,10,13,26,12,1,7,63,0,127,128,97, - 128,1,128,31,128,127,128,225,128,193,128,227,128,127,128,24, - 0,0,0,255,192,11,11,22,16,2,2,12,96,24,224,56, - 192,113,128,99,128,227,0,99,128,113,128,56,192,24,224,12, - 96,15,6,12,18,2,6,255,254,255,254,0,6,0,6,0, - 6,0,6,255,21,20,60,25,2,0,1,252,0,7,255,0, - 28,3,128,59,252,192,35,254,96,99,3,48,195,3,16,131, - 3,24,131,254,8,131,252,8,131,6,8,131,6,8,131,3, - 24,195,3,16,67,3,48,35,3,96,56,0,192,28,3,128, - 7,255,0,1,252,0,8,2,2,8,0,17,255,255,6,6, - 6,8,1,14,120,204,132,132,204,120,17,17,51,29,6,0, - 1,128,0,1,128,0,1,128,0,1,128,0,1,128,0,255, - 255,128,255,255,128,1,128,0,1,128,0,1,128,0,1,128, - 0,1,128,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,9,11,22,11,1,9,62,0,127,0,227,128,3, - 128,3,0,7,0,28,0,56,0,112,0,255,128,255,128,8, - 11,11,10,1,9,62,127,195,3,30,30,7,3,195,126,60, - 5,5,5,6,2,16,56,48,96,224,192,255,13,24,48,16, - 1,252,15,248,62,32,126,32,126,32,254,32,254,32,254,32, - 126,32,62,32,30,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,3,3,3,7,2,8,224,224,224,7,7,7,7,1, - 249,32,32,60,14,6,254,248,4,10,10,8,2,10,112,240, - 176,48,48,48,48,48,48,48,10,12,24,12,1,8,30,0, - 99,128,193,128,192,192,192,192,192,192,192,192,193,128,99,128, - 30,0,0,0,255,192,12,11,22,16,2,2,227,0,99,128, - 49,128,56,192,24,224,28,112,24,224,56,192,49,128,99,128, - 227,0,18,20,60,22,2,0,112,12,0,240,12,0,176,24, - 0,48,24,0,48,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,131,0,49,7,0,3,15,0,6,31,0,6, - 27,0,12,51,0,12,99,0,24,127,192,16,3,0,48,3, - 0,96,3,0,18,20,60,22,2,0,112,12,0,240,24,0, - 176,24,0,48,48,0,48,48,0,48,96,0,48,64,0,48, - 192,0,48,128,0,49,143,0,51,31,128,3,49,192,6,1, - 192,6,1,192,12,3,128,8,7,0,24,14,0,16,24,0, - 48,63,192,96,63,192,20,20,60,22,1,0,62,1,128,127, - 3,0,195,3,0,3,6,0,28,6,0,30,12,0,3,24, - 0,195,24,0,199,48,0,126,48,192,56,97,192,0,99,192, - 0,198,192,1,134,192,1,140,192,3,24,192,3,31,240,6, - 0,192,12,0,192,12,0,192,12,19,38,15,2,251,7,0, - 7,0,7,0,0,0,0,0,7,0,7,0,7,0,15,0, - 30,0,56,0,112,0,224,0,224,0,224,0,224,112,127,224, - 63,224,31,128,19,27,81,21,1,0,7,0,0,3,128,0, - 1,128,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 224,0,1,240,0,1,240,0,3,176,0,3,184,0,3,56, - 0,7,28,0,7,28,0,14,14,0,14,14,0,30,15,0, - 28,7,0,28,7,0,63,255,128,63,255,128,112,1,192,112, - 1,192,224,0,224,224,0,224,224,0,224,19,27,81,21,1, - 0,0,28,0,0,56,0,0,48,0,0,96,0,0,192,0, - 0,0,0,0,0,0,0,224,0,1,240,0,1,240,0,3, - 176,0,3,184,0,3,56,0,7,28,0,7,28,0,14,14, - 0,14,14,0,30,15,0,28,7,0,28,7,0,63,255,128, - 63,255,128,112,1,192,112,1,192,224,0,224,224,0,224,224, - 0,224,19,27,81,21,1,0,0,224,0,1,240,0,1,176, - 0,3,24,0,6,12,0,0,0,0,0,0,0,0,224,0, - 1,240,0,1,240,0,3,176,0,3,184,0,3,56,0,7, - 28,0,7,28,0,14,14,0,14,14,0,30,15,0,28,7, - 0,28,7,0,63,255,128,63,255,128,112,1,192,112,1,192, - 224,0,224,224,0,224,224,0,224,19,26,78,21,1,0,1, - 140,0,3,248,0,6,112,0,0,0,0,0,0,0,0,0, - 0,0,224,0,1,240,0,1,240,0,3,176,0,3,184,0, - 3,56,0,7,28,0,7,28,0,14,14,0,14,14,0,30, - 15,0,28,7,0,28,7,0,63,255,128,63,255,128,112,1, - 192,112,1,192,224,0,224,224,0,224,224,0,224,19,26,78, - 21,1,0,3,156,0,3,156,0,3,156,0,0,0,0,0, - 0,0,0,0,0,0,224,0,0,240,0,1,240,0,1,184, - 0,3,184,0,3,152,0,7,28,0,7,28,0,7,14,0, - 14,14,0,14,15,0,28,7,0,28,7,0,63,255,128,63, - 255,128,56,1,192,112,1,192,112,0,224,224,0,224,224,0, - 224,20,28,84,21,0,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,0,0,0, - 240,0,0,240,0,0,248,0,1,248,0,1,220,0,3,156, - 0,3,158,0,7,14,0,7,14,0,7,7,0,14,7,0, - 14,7,128,30,3,128,31,255,192,31,255,192,56,1,192,56, - 0,224,112,0,224,112,0,112,224,0,112,25,20,80,28,1, - 0,0,63,255,128,0,127,255,128,0,126,0,0,0,238,0, - 0,0,238,0,0,1,206,0,0,1,206,0,0,3,206,0, - 0,3,142,0,0,7,143,255,128,7,15,255,128,15,14,0, - 0,14,14,0,0,31,254,0,0,63,254,0,0,56,14,0, - 0,120,14,0,0,112,14,0,0,224,15,255,128,224,15,255, - 128,16,27,54,19,2,249,7,240,31,252,60,14,48,6,112, - 7,96,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,96,0,96,7,48,6,56,14,31,252,7,240,0, - 128,0,224,0,248,0,24,0,24,3,248,1,224,13,27,54, - 17,2,0,24,0,28,0,14,0,6,0,3,0,0,0,0, - 0,255,248,255,248,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,255,240,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,248,255,248,13,27,54,17,2,0,1, - 192,1,128,3,0,6,0,4,0,0,0,0,0,255,248,255, - 248,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,255,248,255,248,13,27,54,17,2,0,15,0,15,0,25, - 128,16,192,48,192,0,0,0,0,255,248,255,248,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,240,255,240,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,248,255, - 248,13,26,52,17,2,0,56,224,56,224,56,224,0,0,0, - 0,0,0,255,248,255,248,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,248,255,248,5,27,27,7,0, - 0,224,96,48,48,24,0,0,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,27,27,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,8,27,27, - 7,255,0,28,62,118,99,193,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,8,26, - 26,8,0,0,227,227,227,0,0,0,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,19,20, - 60,20,0,0,63,240,0,63,254,0,56,31,0,56,7,128, - 56,3,128,56,1,192,56,1,192,56,0,192,56,0,224,255, - 192,224,255,192,224,56,0,224,56,0,192,56,1,192,56,1, - 192,56,3,128,56,7,128,56,31,0,63,254,0,63,240,0, - 16,26,52,20,2,0,6,48,15,224,9,224,0,0,0,0, - 0,0,240,7,248,7,248,7,252,7,252,7,238,7,238,7, - 231,7,231,135,227,135,227,199,225,199,224,231,224,231,224,119, - 224,119,224,63,224,63,224,31,224,31,18,28,84,22,2,0, - 7,0,0,3,128,0,1,128,0,0,192,0,0,64,0,0, - 0,0,0,0,0,0,0,0,3,240,0,15,252,0,62,31, - 0,56,7,0,112,3,128,96,1,128,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,96, - 1,192,112,3,128,112,3,128,56,7,0,30,30,0,15,252, - 0,3,240,0,18,28,84,22,2,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,3,240,0,15,252,0,62,31,0,56,7,0,112,3, - 128,96,1,128,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,96,1,192,112,3,128,112, - 3,128,56,7,0,30,30,0,15,252,0,3,240,0,18,28, - 84,22,2,0,1,224,0,1,224,0,3,240,0,3,48,0, - 6,24,0,0,0,0,0,0,0,0,0,0,3,240,0,15, - 252,0,62,31,0,56,7,0,112,3,128,96,1,128,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,96,1,192,112,3,128,112,3,128,56,7,0,30, - 30,0,15,252,0,3,240,0,18,26,78,22,2,0,3,152, - 0,7,248,0,6,112,0,0,0,0,0,0,0,0,0,0, - 3,240,0,15,252,0,62,31,0,56,7,0,112,3,128,96, - 1,128,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,96,1,192,112,3,128,112,3,128, - 56,7,0,31,62,0,15,252,0,3,240,0,18,26,78,22, - 2,0,7,28,0,7,28,0,7,28,0,0,0,0,0,0, - 0,0,0,0,3,240,0,15,252,0,62,31,0,56,7,0, - 112,3,128,96,1,128,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,96,1,192,112,3, - 128,112,3,128,56,7,0,30,30,0,15,252,0,3,240,0, - 16,15,30,28,6,1,64,2,224,7,112,14,56,28,12,56, - 6,96,3,192,1,128,3,192,6,96,12,48,24,24,48,12, - 96,6,64,2,18,24,72,22,2,254,0,0,128,0,1,192, - 3,251,128,15,255,0,62,31,0,56,15,128,112,31,128,96, - 29,128,224,57,192,224,113,192,224,113,192,224,225,192,225,193, - 192,227,193,192,227,129,192,231,1,128,111,3,128,126,3,128, - 60,7,0,62,30,0,63,252,0,115,240,0,224,0,0,96, - 0,0,16,28,56,20,2,0,14,0,7,0,3,0,1,128, - 0,128,0,0,0,0,0,0,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,96,14,112,14,62,124,31,248,15,224, - 16,28,56,20,2,0,0,112,0,224,0,192,1,128,1,0, - 0,0,0,0,0,0,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,96,14,112,14,62,124,31,248,15,224,16,28, - 56,20,2,0,3,192,3,192,7,224,6,96,12,48,0,0, - 0,0,0,0,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,96,14,112,14,62,124,31,248,15,224,16,26,52,20, - 2,0,14,56,14,56,14,56,0,0,0,0,0,0,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,96,6,112,14, - 60,60,31,248,15,224,17,27,81,19,1,0,0,112,0,0, - 96,0,0,192,0,0,128,0,1,128,0,0,0,0,0,0, - 0,224,3,128,240,7,0,112,7,0,56,14,0,60,28,0, - 28,28,0,14,56,0,14,48,0,7,112,0,7,96,0,3, - 224,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,14,20,40, - 17,2,0,224,0,224,0,224,0,224,0,255,192,255,240,224, - 120,224,56,224,28,224,28,224,28,224,56,224,120,255,240,255, - 192,224,0,224,0,224,0,224,0,224,0,14,20,40,15,1, - 0,15,128,63,224,112,112,224,112,224,112,224,112,225,224,227, - 128,231,0,231,0,227,128,227,224,224,248,224,56,224,28,224, - 28,238,28,230,28,231,248,225,240,12,21,42,15,1,0,12, - 0,14,0,6,0,3,0,1,128,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,22,44,15,1,0,1, - 192,1,128,3,0,3,0,6,0,12,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,22,44,15,1, - 0,7,0,15,0,13,128,29,128,24,192,48,64,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,12,20,40, - 15,1,0,30,64,31,192,49,128,0,0,0,0,0,0,31, - 192,63,224,112,112,112,112,0,112,15,240,63,240,112,112,224, - 112,224,112,224,112,224,240,127,176,30,48,12,20,40,15,1, - 0,56,224,56,224,56,224,0,0,0,0,0,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,12,23,46,15,1,0,15, - 0,25,128,16,128,16,128,25,128,15,0,0,0,0,0,0, - 0,31,192,63,224,112,112,112,112,0,112,15,240,63,240,112, - 112,224,112,224,112,224,112,224,240,127,176,30,48,23,14,42, - 25,1,0,31,131,240,63,207,248,112,108,28,112,56,12,0, - 56,14,15,255,254,63,255,254,120,56,0,224,56,0,224,56, - 14,224,120,12,240,236,28,127,199,248,31,3,240,12,21,42, - 14,1,249,31,128,63,224,112,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,112,224,112,112,224,63,224,31,128,4, - 0,7,128,7,192,0,96,0,96,31,192,15,0,13,22,44, - 15,1,0,56,0,28,0,12,0,6,0,6,0,3,0,0, - 0,0,0,15,128,63,224,112,112,96,48,224,56,255,248,255, - 248,224,0,224,0,224,56,96,112,112,112,63,224,15,128,13, - 22,44,15,1,0,1,192,1,128,3,128,3,0,6,0,4, - 0,0,0,0,0,15,128,63,224,112,112,96,48,224,56,255, - 248,255,248,224,0,224,0,224,56,96,112,112,112,63,224,15, - 128,13,22,44,15,1,0,7,0,15,0,15,128,25,128,24, - 192,48,64,0,0,0,0,15,128,63,224,112,112,96,48,224, - 56,255,248,255,248,224,0,224,0,224,56,96,112,112,112,63, - 224,15,128,13,20,40,15,1,0,56,224,56,224,56,224,0, - 0,0,0,0,0,15,192,63,224,112,112,96,56,224,56,255, - 248,255,248,224,0,224,0,224,56,96,56,112,112,63,224,15, - 128,5,21,21,7,0,0,224,96,48,48,24,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,5,21,21,7, - 2,0,56,112,96,192,128,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,8,21,21,7,255,0,60,62,118, - 99,193,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,8,20,20,7,255,0,227,227,227,0,0,0,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,14,20,40,16, - 1,0,48,32,57,224,15,0,31,128,113,192,0,224,15,240, - 63,240,120,120,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,96,56,112,112,63,224,15,192,12,20,40,16,2,0, - 28,192,63,192,51,128,0,0,0,0,0,0,239,128,255,224, - 240,240,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,14,22,44,16,1,0,28,0, - 12,0,14,0,6,0,3,0,1,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,14,22,44,16,1,0, - 0,224,1,192,1,128,3,0,3,0,6,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,22,44,16, - 1,0,7,0,7,128,15,128,12,192,24,192,24,96,0,0, - 0,0,15,192,63,224,112,112,112,56,224,24,224,28,224,28, - 224,28,224,28,224,24,112,56,112,112,63,224,15,192,14,20, - 40,16,1,0,14,96,31,192,17,128,0,0,0,0,0,0, - 15,192,63,224,112,112,112,56,224,24,224,28,224,28,224,28, - 224,28,224,24,112,56,112,112,63,224,15,192,14,20,40,16, - 1,0,28,224,28,224,28,224,0,0,0,0,0,0,15,192, - 63,224,112,112,112,56,224,24,224,28,224,28,224,28,224,28, - 224,24,112,56,112,112,63,224,15,192,17,12,36,29,6,2, - 1,192,0,1,192,0,1,192,0,0,0,0,0,0,0,255, - 255,128,255,255,128,0,0,0,0,0,0,1,192,0,1,192, - 0,1,192,0,14,18,36,16,1,254,0,8,0,24,15,248, - 63,240,112,112,112,248,225,216,225,152,227,28,230,28,238,28, - 236,24,120,56,112,112,127,224,111,192,192,0,128,0,12,22, - 44,16,2,0,56,0,24,0,12,0,12,0,6,0,3,0, - 0,0,0,0,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,240,240,127,240,63,112, - 12,22,44,16,2,0,1,192,1,128,3,0,7,0,6,0, - 12,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,12,22,44,16,2,0,6,0,15,0,15,0,25,128, - 16,128,48,192,0,0,0,0,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,240,240, - 127,240,63,112,12,20,40,16,2,0,57,192,57,192,57,192, - 0,0,0,0,0,0,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,240,240,127,240, - 63,112,13,27,54,15,1,251,0,224,1,192,1,128,3,0, - 2,0,0,0,0,0,0,0,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,7,128, - 7,128,7,0,7,0,6,0,238,0,252,0,120,0,14,25, - 50,17,2,251,224,0,224,0,224,0,224,0,224,0,224,0, - 231,192,255,240,240,112,240,56,224,24,224,28,224,28,224,28, - 224,28,224,24,224,56,240,112,255,240,231,192,224,0,224,0, - 224,0,224,0,224,0,14,25,50,14,0,251,28,224,28,224, - 28,224,0,0,0,0,0,0,224,28,112,24,112,56,48,56, - 56,112,56,112,28,96,28,224,14,224,14,192,7,192,7,128, - 3,128,3,128,3,0,7,0,6,0,6,0,14,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 20 - Calculated Max Values w=17 h=21 x= 6 y= 9 dx=29 dy= 0 ascent=20 len=48 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =20 descent= 0 - X Font ascent =20 descent= 0 - Max Font ascent =20 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20n[616] U8G_FONT_SECTION("u8g_font_fur20n") = { - 0,38,35,254,249,20,0,0,0,0,42,58,0,20,253,20, - 0,11,11,22,19,4,9,17,0,49,128,27,0,27,0,14, - 0,255,224,142,32,27,0,27,0,49,128,17,0,17,16,48, - 29,6,0,1,128,0,1,128,0,1,128,0,1,128,0,1, - 128,0,1,128,0,1,128,0,255,255,128,255,255,128,1,128, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,5,7,7,8,1,253,56,56,112,112,96,96,224, - 7,2,2,9,1,6,254,254,3,3,3,8,3,0,224,224, - 224,8,21,21,11,2,255,3,6,6,6,4,12,12,12,24, - 24,24,48,48,48,96,96,96,64,192,192,192,13,20,40,16, - 1,0,15,128,63,192,112,224,96,112,96,112,224,48,224,48, - 224,56,224,56,224,56,224,56,224,56,224,56,224,48,224,48, - 96,112,112,112,48,224,63,192,15,128,7,20,20,16,4,0, - 30,62,126,254,206,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,12,20,40,16,2,0,31,128,63,192,112,96, - 112,112,224,112,0,112,0,112,0,112,0,224,1,224,3,192, - 3,128,7,0,14,0,28,0,60,0,120,0,240,0,255,240, - 255,240,13,20,40,16,1,0,15,128,63,224,112,112,112,48, - 224,56,0,56,0,48,0,224,7,192,7,192,0,224,0,112, - 0,56,0,56,224,56,224,56,224,56,112,112,63,224,31,128, - 14,20,40,16,1,0,0,240,1,240,1,240,3,240,7,112, - 6,112,14,112,28,112,24,112,56,112,112,112,96,112,224,112, - 255,252,255,252,0,112,0,112,0,112,0,112,0,112,13,20, - 40,16,1,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,239,128,255,224,240,112,224,112,224,48,0,56,0,56, - 0,56,224,48,224,112,112,224,127,192,31,128,13,20,40,16, - 1,0,15,192,63,224,120,112,112,48,224,56,224,0,224,0, - 231,192,255,224,248,240,224,56,224,56,224,56,224,56,224,56, - 224,56,96,48,48,112,63,224,15,128,12,20,40,16,2,0, - 255,240,255,240,0,112,0,112,0,96,0,224,0,224,1,192, - 1,192,1,128,3,128,3,128,3,0,7,0,7,0,14,0, - 14,0,14,0,28,0,28,0,13,20,40,16,1,0,15,128, - 63,224,112,112,224,48,224,56,224,56,96,48,112,112,31,192, - 31,192,56,96,96,48,224,56,224,56,224,56,224,56,224,56, - 112,112,63,224,15,128,13,20,40,16,1,0,31,192,63,224, - 112,112,224,56,224,56,224,56,224,56,224,56,224,56,112,120, - 63,248,31,56,0,56,0,56,0,56,96,48,96,112,112,224, - 63,192,31,128,3,14,14,8,3,0,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--28-280-72-72-P-133-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 20, '1' Height: 20 - Calculated Max Values w=26 h=29 x= 7 y=16 dx=29 dy= 0 ascent=22 len=96 - Font Bounding box w=38 h=35 x=-2 y=-7 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =20 descent=-5 - X Font ascent =20 descent=-5 - Max Font ascent =22 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur20r[3976] U8G_FONT_SECTION("u8g_font_fur20r") = { - 0,38,35,254,249,20,5,12,11,23,32,127,251,22,249,20, - 251,0,0,0,8,0,0,3,20,20,11,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,0,0,224,224, - 224,9,8,16,13,2,12,227,128,227,128,227,0,227,0,227, - 0,195,0,195,0,67,0,18,20,60,21,1,0,0,195,0, - 0,195,0,0,195,0,1,198,0,1,134,0,1,134,0,31, - 255,192,63,255,192,3,12,0,3,24,0,6,24,0,6,24, - 0,127,255,128,255,255,0,12,48,0,12,48,0,28,96,0, - 24,96,0,24,96,0,24,192,0,14,25,50,16,1,253,2, - 0,2,0,31,192,63,224,114,112,98,48,226,56,226,0,226, - 0,114,0,126,0,63,224,15,240,2,248,2,56,2,28,226, - 28,226,28,226,24,114,56,127,240,31,192,2,0,2,0,2, - 0,23,20,60,25,1,0,30,0,192,127,128,192,97,129,128, - 225,193,0,225,195,0,225,198,0,225,198,0,97,140,0,127, - 136,0,30,24,224,0,49,248,0,51,156,0,103,14,0,71, - 14,0,199,14,1,135,14,1,135,14,3,3,12,2,3,252, - 6,0,240,19,20,60,22,2,0,7,192,0,31,240,0,56, - 48,0,56,48,0,56,48,0,56,112,0,29,224,0,15,192, - 0,31,3,128,63,131,128,115,195,128,225,227,128,224,243,0, - 224,123,0,224,63,0,224,30,0,112,15,0,120,31,128,63, - 251,192,15,225,224,3,8,8,10,4,12,224,224,192,192,192, - 192,192,192,5,24,24,10,3,252,24,48,48,112,112,96,96, - 224,224,224,224,224,224,224,224,224,224,96,96,112,112,48,48, - 24,5,24,24,10,3,252,192,192,96,96,96,112,112,48,48, - 48,56,56,56,56,48,48,48,112,112,96,96,96,192,192,11, - 11,22,19,4,9,17,0,49,128,27,0,27,0,14,0,255, - 224,142,32,27,0,27,0,49,128,17,0,17,16,48,29,6, - 0,1,128,0,1,128,0,1,128,0,1,128,0,1,128,0, - 1,128,0,1,128,0,255,255,128,255,255,128,1,128,0,1, - 128,0,1,128,0,1,128,0,1,128,0,1,128,0,1,128, - 0,5,7,7,8,1,253,56,56,112,112,96,96,224,7,2, - 2,9,1,6,254,254,3,3,3,8,3,0,224,224,224,8, - 21,21,11,2,255,3,6,6,6,4,12,12,12,24,24,24, - 48,48,48,96,96,96,64,192,192,192,13,20,40,16,1,0, - 15,128,63,192,112,224,96,112,96,112,224,48,224,48,224,56, - 224,56,224,56,224,56,224,56,224,56,224,48,224,48,96,112, - 112,112,48,224,63,192,15,128,7,20,20,16,4,0,30,62, - 126,254,206,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,12,20,40,16,2,0,31,128,63,192,112,96,112,112, - 224,112,0,112,0,112,0,112,0,224,1,224,3,192,3,128, - 7,0,14,0,28,0,60,0,120,0,240,0,255,240,255,240, - 13,20,40,16,1,0,15,128,63,224,112,112,112,48,224,56, - 0,56,0,48,0,224,7,192,7,192,0,224,0,112,0,56, - 0,56,224,56,224,56,224,56,112,112,63,224,31,128,14,20, - 40,16,1,0,0,240,1,240,1,240,3,240,7,112,6,112, - 14,112,28,112,24,112,56,112,112,112,96,112,224,112,255,252, - 255,252,0,112,0,112,0,112,0,112,0,112,13,20,40,16, - 1,0,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 239,128,255,224,240,112,224,112,224,48,0,56,0,56,0,56, - 224,48,224,112,112,224,127,192,31,128,13,20,40,16,1,0, - 15,192,63,224,120,112,112,48,224,56,224,0,224,0,231,192, - 255,224,248,240,224,56,224,56,224,56,224,56,224,56,224,56, - 96,48,48,112,63,224,15,128,12,20,40,16,2,0,255,240, - 255,240,0,112,0,112,0,96,0,224,0,224,1,192,1,192, - 1,128,3,128,3,128,3,0,7,0,7,0,14,0,14,0, - 14,0,28,0,28,0,13,20,40,16,1,0,15,128,63,224, - 112,112,224,48,224,56,224,56,96,48,112,112,31,192,31,192, - 56,96,96,48,224,56,224,56,224,56,224,56,224,56,112,112, - 63,224,15,128,13,20,40,16,1,0,31,192,63,224,112,112, - 224,56,224,56,224,56,224,56,224,56,224,56,112,120,63,248, - 31,56,0,56,0,56,0,56,96,48,96,112,112,224,63,192, - 31,128,3,14,14,8,3,0,224,224,224,0,0,0,0,0, - 0,0,0,224,224,224,4,17,17,8,2,253,112,112,112,0, - 0,0,0,0,0,0,112,112,96,224,192,192,192,17,14,42, - 29,6,1,0,1,128,0,15,128,0,124,0,1,224,0,15, - 0,0,120,0,0,224,0,0,240,0,0,62,0,0,7,128, - 0,0,240,0,0,62,0,0,7,128,0,0,128,17,7,21, - 29,6,5,255,255,128,255,255,128,0,0,0,0,0,0,0, - 0,0,255,255,128,255,255,128,17,14,42,29,6,1,192,0, - 0,248,0,0,31,0,0,3,192,0,0,120,0,0,15,0, - 0,3,128,0,7,128,0,62,0,0,240,0,7,128,0,62, - 0,0,240,0,0,128,0,0,12,20,40,15,1,0,31,0, - 63,192,127,224,224,240,64,112,0,112,0,112,0,96,0,192, - 3,128,7,0,14,0,14,0,14,0,14,0,0,0,0,0, - 14,0,14,0,14,0,25,24,96,28,2,252,0,127,0,0, - 3,255,224,0,15,129,248,0,30,0,60,0,56,0,14,0, - 48,0,6,0,112,125,199,0,96,255,199,0,225,195,195,0, - 227,131,195,0,227,129,195,128,227,129,195,128,227,129,195,128, - 227,129,195,0,227,129,195,0,225,131,199,0,113,199,206,0, - 112,252,252,0,56,56,48,0,60,0,0,0,30,0,0,0, - 15,128,64,0,3,255,192,0,0,127,128,0,19,20,60,21, - 1,0,0,224,0,1,240,0,1,240,0,3,176,0,3,184, - 0,3,56,0,7,28,0,7,28,0,14,14,0,14,14,0, - 30,15,0,28,7,0,28,7,0,63,255,128,63,255,128,112, - 1,192,112,1,192,224,0,224,224,0,224,224,0,224,15,20, - 40,19,2,0,255,224,255,248,224,120,224,28,224,28,224,28, - 224,28,224,24,224,56,255,224,255,240,224,28,224,12,224,14, - 224,14,224,14,224,30,224,60,255,248,255,224,16,20,40,19, - 2,0,7,240,31,252,60,14,48,6,112,7,96,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,96,0, - 96,7,112,6,56,14,31,252,7,240,16,20,40,20,2,0, - 255,192,255,240,224,120,224,28,224,14,224,14,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,14,224,14, - 224,28,224,120,255,240,255,192,13,20,40,17,2,0,255,248, - 255,248,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,240,255,240,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,248,255,248,12,20,40,16,2,0,255,240,255,240, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,18,20,60,22,2,0,3,248,0,15,254,0, - 30,15,128,56,3,128,112,1,192,96,0,0,224,0,0,224, - 0,0,224,0,0,224,63,192,224,63,192,224,1,192,224,1, - 192,224,1,192,112,1,192,112,1,192,56,1,192,30,7,192, - 15,255,192,3,254,0,15,20,40,19,2,0,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,255,254, - 255,254,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,3,20,20,7,2,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,12,20, - 40,16,2,0,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112, - 0,112,224,112,224,96,113,224,63,192,31,128,15,20,40,18, - 2,0,224,60,224,120,224,240,224,224,225,192,227,128,231,0, - 238,0,252,0,254,0,238,0,239,0,231,128,227,192,225,224, - 224,240,224,120,224,56,224,60,224,30,12,20,40,15,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,240,255,240,21,20,60,25,2,0,248,0, - 248,248,0,248,248,1,248,252,1,248,252,1,184,236,3,184, - 238,3,184,238,3,56,230,7,56,231,6,56,227,14,56,227, - 142,56,227,140,56,225,156,56,225,220,56,225,216,56,224,248, - 56,224,240,56,224,112,56,224,112,56,16,20,40,20,2,0, - 240,7,248,7,248,7,252,7,252,7,238,7,238,7,231,7, - 231,135,227,135,227,199,225,199,224,231,224,231,224,119,224,119, - 224,63,224,63,224,31,224,31,18,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,252,0,3,240,0,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,120,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,20,20,60,22,2,0,3,240, - 0,15,252,0,62,31,0,56,7,0,112,3,128,96,1,128, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,96,1,192,112,3,128,112,3,128,56,7, - 0,30,30,0,15,255,240,3,255,240,14,20,40,17,2,0, - 255,192,255,240,224,120,224,56,224,28,224,28,224,28,224,56, - 224,112,255,224,255,224,224,112,224,56,224,56,224,56,224,24, - 224,24,224,24,224,28,224,28,15,20,40,19,2,0,15,192, - 63,240,120,120,96,28,224,28,224,0,224,0,120,0,127,0, - 63,240,7,252,0,60,0,14,0,14,224,14,224,14,224,14, - 120,60,63,248,15,192,16,20,40,18,1,0,255,255,255,255, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,16,20,40,20,2,0,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,96,6,112,14,60,60,31,248, - 15,224,17,20,60,18,1,0,224,3,128,224,7,0,224,7, - 0,112,7,0,112,14,0,112,14,0,56,14,0,56,28,0, - 56,28,0,28,56,0,28,56,0,12,56,0,14,112,0,14, - 112,0,7,112,0,7,224,0,7,224,0,3,224,0,3,192, - 0,3,192,0,26,20,80,27,1,0,224,28,1,192,224,30, - 3,128,224,62,3,128,224,62,3,128,112,54,3,0,112,119, - 7,0,112,115,7,0,48,99,7,0,56,99,134,0,56,227, - 142,0,24,225,142,0,28,193,140,0,28,193,220,0,29,193, - 220,0,13,192,216,0,15,128,216,0,15,128,248,0,7,128, - 120,0,7,0,112,0,7,0,112,0,18,20,60,20,1,0, - 120,7,128,56,7,0,60,14,0,30,30,0,14,28,0,15, - 56,0,7,56,0,3,240,0,1,224,0,1,224,0,3,224, - 0,3,240,0,7,120,0,14,56,0,14,28,0,28,30,0, - 56,15,0,120,7,0,112,7,128,224,3,192,17,20,60,19, - 1,0,224,3,128,240,7,0,112,7,0,56,14,0,60,28, - 0,28,28,0,14,56,0,14,48,0,7,112,0,7,96,0, - 3,224,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,15,20, - 40,17,1,0,255,252,255,252,0,28,0,56,0,120,0,240, - 0,224,1,192,3,192,3,128,7,0,14,0,30,0,28,0, - 56,0,112,0,240,0,224,0,255,254,255,254,5,25,25,11, - 3,251,248,248,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,248,248,9,21,42,11,1, - 255,192,0,96,0,96,0,96,0,48,0,48,0,48,0,24, - 0,24,0,24,0,8,0,12,0,12,0,12,0,6,0,6, - 0,6,0,3,0,3,0,3,0,1,128,6,25,25,12,3, - 251,252,252,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,252,252,14,17,34,28,7,0, - 3,0,3,0,7,128,7,128,4,128,12,192,8,64,24,96, - 24,96,16,32,48,48,48,48,96,24,96,24,64,8,192,12, - 192,12,14,2,4,14,0,252,255,252,255,252,6,5,5,6, - 255,16,224,112,48,24,12,12,14,28,15,1,0,31,192,63, - 224,112,112,112,112,0,112,15,240,63,240,112,112,224,112,224, - 112,224,112,224,240,127,176,30,48,13,20,40,16,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,231,192,255,224,240, - 112,224,48,224,56,224,56,224,56,224,56,224,56,224,56,224, - 112,240,112,255,224,231,128,12,14,28,14,1,0,31,128,63, - 224,112,112,224,112,224,112,224,0,224,0,224,0,224,0,224, - 112,96,112,112,224,63,224,31,128,13,20,40,16,1,0,0, - 56,0,56,0,56,0,56,0,56,0,56,31,56,63,248,112, - 248,96,120,224,56,224,56,224,56,224,56,224,56,224,56,112, - 56,112,120,63,248,15,184,13,14,28,15,1,0,15,128,63, - 224,112,112,96,48,224,56,255,248,255,248,224,0,224,0,224, - 56,96,112,112,112,63,224,15,128,9,20,40,10,1,0,7, - 128,31,128,28,0,28,0,28,0,28,0,255,128,255,128,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,13,19,38,16,1,251,31,184,63, - 248,112,120,96,56,224,56,224,56,224,56,224,56,224,56,224, - 56,96,56,112,120,63,248,31,56,0,56,112,48,112,112,63, - 224,15,128,12,20,40,16,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,239,192,255,224,240,240,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,3,20,20,7,2,0,224,224,224,0,0,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,5,25,25,7,1, - 251,56,56,56,0,0,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,240,224,11,20,40,14,2,0, - 224,0,224,0,224,0,224,0,224,0,224,0,225,224,225,192, - 227,128,231,0,238,0,252,0,252,0,254,0,238,0,231,0, - 227,128,227,192,225,192,224,224,3,20,20,7,2,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,21,14,42,25,2,0,231,195,224,255,239,240,240,248, - 56,224,120,56,224,112,24,224,112,24,224,112,24,224,112,24, - 224,112,24,224,112,24,224,112,24,224,112,24,224,112,24,224, - 112,24,12,14,28,16,2,0,239,128,255,224,240,240,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,14,14,28,16,1,0,15,192,63,224,112,112, - 112,56,224,24,224,28,224,28,224,28,224,28,224,24,112,56, - 112,112,63,224,15,192,14,19,38,17,2,251,231,192,255,240, - 240,112,240,56,224,24,224,28,224,28,224,28,224,28,224,24, - 224,56,240,112,255,240,231,192,224,0,224,0,224,0,224,0, - 224,0,14,19,38,17,1,251,15,156,63,220,112,124,112,60, - 224,28,224,28,224,28,224,28,224,28,224,28,96,60,112,124, - 63,252,15,156,0,28,0,28,0,28,0,28,0,28,8,14, - 14,10,2,0,239,255,240,224,224,224,224,224,224,224,224,224, - 224,224,12,14,28,14,1,0,31,128,127,192,112,224,224,224, - 224,0,120,0,63,128,15,224,0,224,0,112,224,112,224,224, - 127,192,63,128,8,18,18,10,1,0,8,56,56,56,255,255, - 56,56,56,56,56,56,56,56,56,56,31,15,12,14,28,16, - 2,0,224,112,224,112,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,240,240,127,240,63,112,13,14, - 28,15,1,0,224,24,224,56,224,56,112,48,112,112,56,96, - 56,224,24,192,28,192,29,192,15,128,15,128,7,0,7,0, - 21,14,42,23,1,0,192,112,24,224,248,56,224,248,56,96, - 216,48,97,216,112,113,156,112,49,140,96,51,140,224,59,14, - 224,27,6,192,27,7,192,30,7,128,14,3,128,14,3,128, - 13,14,28,15,1,0,240,56,112,112,56,96,28,224,31,192, - 15,128,7,0,7,128,15,192,29,192,56,224,112,112,112,120, - 224,56,13,19,38,15,1,251,224,24,224,56,96,56,112,112, - 112,112,56,96,56,224,28,224,29,192,13,192,15,128,15,128, - 7,128,7,0,7,0,6,0,14,0,14,0,12,0,10,14, - 28,12,1,0,255,192,255,192,1,192,3,128,7,0,14,0, - 14,0,28,0,56,0,48,0,112,0,224,0,255,192,255,192, - 9,27,54,13,2,249,3,128,15,128,14,0,12,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,56,0,248,0, - 240,0,240,0,56,0,24,0,28,0,28,0,28,0,28,0, - 12,0,12,0,12,0,14,0,15,128,3,128,1,29,29,9, - 4,249,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,9, - 27,54,13,2,249,240,0,248,0,24,0,28,0,28,0,28, - 0,28,0,28,0,28,0,12,0,12,0,14,0,7,128,3, - 128,7,128,14,0,12,0,12,0,28,0,28,0,28,0,28, - 0,28,0,28,0,24,0,248,0,240,0,15,3,6,15,0, - 5,62,14,127,252,224,248,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=22 dx=34 dy= 0 ascent=36 len=132 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =36 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25[11949] U8G_FONT_SECTION("u8g_font_fur25") = { - 0,46,45,254,247,25,6,119,15,27,32,255,249,36,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 10,0,0,3,25,25,13,5,249,224,224,224,0,0,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,14,26,52,19,2,252,0,48,0,48,0,32,0,96, - 15,224,63,240,124,248,112,220,112,156,241,156,225,128,225,128, - 227,0,227,0,227,0,226,0,246,28,118,28,124,60,60,120, - 63,240,15,192,24,0,24,0,16,0,48,0,17,26,78,19, - 1,0,0,64,0,7,252,0,15,254,0,30,15,0,60,7, - 128,56,3,128,56,0,0,56,0,0,56,0,0,56,0,0, - 255,224,0,255,224,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,255,255,0,255,255,0, - 18,19,57,20,1,6,64,0,128,224,1,192,113,227,128,63, - 255,0,31,62,0,28,14,0,24,6,0,48,3,0,48,3, - 0,48,3,0,48,3,0,48,3,0,24,6,0,28,14,0, - 31,62,0,55,251,0,113,225,128,224,1,192,64,0,128,18, - 25,75,20,1,0,240,1,192,112,3,192,120,3,128,56,7, - 128,60,7,0,28,15,0,30,14,0,254,15,192,255,31,192, - 7,28,0,7,184,0,3,184,0,3,240,0,255,255,192,255, - 255,192,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 2,33,33,12,5,249,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,0,0,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,12,31,62,16,2,251,31,224,63, - 224,56,32,112,0,112,0,112,0,120,0,124,0,62,0,31, - 128,15,192,63,224,120,240,240,112,224,112,224,112,224,240,241, - 224,127,192,63,128,31,128,7,224,1,224,0,240,0,112,0, - 112,0,112,0,240,65,224,127,192,63,128,10,3,6,10,0, - 22,225,192,225,192,225,192,26,25,100,30,2,1,0,255,192, - 0,3,255,240,0,7,128,120,0,14,0,28,0,28,127,14, - 0,57,255,135,0,115,227,195,0,99,129,225,128,103,128,225, - 128,199,0,0,192,199,0,0,192,199,0,0,192,199,0,0, - 192,199,0,0,192,199,0,0,192,199,0,224,128,99,129,225, - 128,99,195,193,128,49,255,131,0,48,127,7,0,24,0,14, - 0,14,0,28,0,7,128,120,0,1,255,224,0,0,127,128, - 0,12,17,34,14,1,8,31,128,63,192,120,224,96,96,0, - 96,7,224,63,224,56,96,96,96,96,96,96,224,113,224,63, - 96,30,96,0,0,0,0,255,240,13,14,28,19,3,2,14, - 56,28,56,56,112,56,224,112,224,113,192,227,192,227,192,113, - 192,112,224,56,224,24,112,28,56,14,56,18,8,24,21,2, - 7,255,255,192,255,255,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,255,26,25,100,30,2,1, - 0,255,192,0,3,255,240,0,7,128,120,0,14,255,156,0, - 24,255,206,0,48,193,231,0,112,192,99,0,96,192,97,128, - 96,192,97,128,192,192,192,192,192,255,128,192,192,255,128,192, - 192,193,192,192,192,192,192,192,192,192,192,192,192,192,225,128, - 96,192,97,128,96,192,97,128,48,192,99,0,56,0,7,0, - 28,0,14,0,15,0,60,0,7,193,248,0,1,255,224,0, - 0,127,128,0,10,2,4,10,0,22,255,192,255,192,7,7, - 7,11,2,18,56,196,130,130,130,196,120,20,21,63,34,7, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,240,255,255,240, - 10,13,26,12,1,13,63,128,127,128,97,192,225,192,1,192, - 3,128,7,128,14,0,28,0,56,0,240,0,255,192,255,192, - 10,14,28,13,2,12,127,128,255,192,193,192,1,192,7,128, - 14,0,15,128,3,192,0,192,192,192,192,192,227,128,127,128, - 62,0,6,6,6,8,2,21,28,60,56,112,96,192,255,16, - 31,62,20,2,250,7,255,31,140,63,140,127,140,255,140,255, - 140,255,140,255,140,255,140,127,140,127,140,31,140,7,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,3,4,4,9,3,10,224,224,224,224,8,9,9, - 9,2,247,32,32,60,62,7,3,135,255,252,5,13,13,10, - 2,12,56,120,248,152,24,24,24,24,24,24,24,24,24,12, - 16,32,14,1,9,31,128,63,192,112,224,224,96,192,112,192, - 48,192,48,192,48,192,112,224,112,112,224,63,192,31,128,0, - 0,0,0,255,240,13,14,28,19,3,2,227,128,225,192,112, - 192,56,224,56,112,28,112,28,56,30,56,28,112,56,112,56, - 224,112,192,225,192,227,128,23,27,81,27,2,0,56,0,192, - 120,1,192,248,1,128,216,3,128,24,3,0,24,7,0,24, - 6,0,24,14,0,24,12,0,24,24,0,24,24,0,24,48, - 0,24,112,0,24,96,112,0,224,112,0,192,240,1,193,176, - 1,129,48,3,131,48,3,6,48,7,12,48,6,15,254,14, - 15,254,12,0,48,24,0,48,24,0,48,48,0,48,23,27, - 81,27,2,0,56,0,224,120,1,192,248,1,128,216,3,128, - 24,3,0,24,7,0,24,6,0,24,14,0,24,12,0,24, - 28,0,24,24,0,24,56,0,24,48,0,24,112,248,0,227, - 252,0,195,142,1,199,6,1,128,6,3,128,14,3,0,12, - 7,0,56,6,0,112,14,0,224,12,3,192,28,7,128,24, - 7,254,48,7,254,24,26,78,27,2,0,0,0,24,127,128, - 56,255,192,112,193,192,96,3,128,224,14,0,192,15,129,192, - 3,193,128,0,195,128,192,199,0,192,198,0,227,142,0,127, - 140,28,62,28,60,0,24,60,0,48,108,0,112,204,0,97, - 204,0,227,140,0,195,12,1,199,255,1,135,255,3,0,12, - 7,0,12,6,0,12,14,0,12,15,25,50,18,2,249,1, - 192,1,192,1,192,0,0,0,0,0,0,1,192,1,192,1, - 192,1,192,3,192,7,128,15,0,62,0,124,0,120,0,240, - 0,224,0,224,0,224,8,240,14,120,60,63,252,31,248,7, - 224,24,35,105,26,1,0,1,192,0,1,224,0,0,224,0, - 0,112,0,0,48,0,0,24,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,60,0,0,124,0,0,126,0,0,254, - 0,0,238,0,0,239,0,1,231,0,1,199,128,3,195,128, - 3,131,192,7,131,192,7,1,192,7,1,224,15,0,224,14, - 0,240,31,255,240,31,255,240,31,255,248,60,0,56,56,0, - 60,120,0,28,112,0,30,112,0,30,240,0,14,224,0,15, - 24,35,105,26,1,0,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,60,0,0,124,0,0,126,0,0,254,0, - 0,238,0,0,239,0,1,231,0,1,199,128,3,195,128,3, - 131,192,7,131,192,7,1,192,7,1,224,15,0,224,14,0, - 240,31,255,240,31,255,240,31,255,248,60,0,56,56,0,60, - 120,0,28,112,0,30,112,0,30,240,0,14,224,0,15,24, - 35,105,26,1,0,0,60,0,0,124,0,0,110,0,0,230, - 0,0,195,0,1,131,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,60,0,0,124,0,0,126,0,0,254,0,0, - 238,0,0,239,0,1,231,0,1,199,128,3,195,128,3,131, - 192,7,131,192,7,1,192,7,1,224,15,0,224,14,0,240, - 31,255,240,31,255,240,31,255,248,60,0,56,56,0,60,120, - 0,28,112,0,30,112,0,30,240,0,14,224,0,15,24,33, - 99,26,1,0,0,241,128,1,255,0,1,159,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,60,0,0, - 124,0,0,126,0,0,254,0,0,238,0,0,239,0,1,231, - 0,1,199,128,3,195,128,3,131,192,7,131,192,7,1,192, - 7,1,224,15,0,224,14,0,240,31,255,240,31,255,240,31, - 255,248,60,0,56,56,0,60,120,0,28,112,0,30,112,0, - 30,240,0,14,224,0,15,25,33,132,25,0,0,0,225,192, - 0,0,225,192,0,0,225,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,0, - 0,0,62,0,0,0,62,0,0,0,127,0,0,0,119,0, - 0,0,247,128,0,0,227,128,0,0,227,192,0,1,227,192, - 0,1,193,192,0,3,193,224,0,3,128,224,0,7,128,240, - 0,7,0,112,0,7,0,112,0,15,255,248,0,15,255,248, - 0,31,255,252,0,28,0,28,0,28,0,30,0,60,0,14, - 0,56,0,14,0,120,0,15,0,112,0,7,0,240,0,7, - 128,24,36,108,25,1,0,0,56,0,0,196,0,0,130,0, - 0,130,0,0,130,0,0,196,0,0,124,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,60,0,0,124,0,0,126, - 0,0,254,0,0,238,0,0,239,0,1,231,0,1,199,128, - 3,195,128,3,131,128,7,131,192,7,129,192,7,1,224,15, - 0,224,14,0,240,31,255,240,31,255,240,31,255,248,60,0, - 56,56,0,60,120,0,60,120,0,28,112,0,30,240,0,14, - 224,0,15,31,25,100,34,1,0,0,7,255,252,0,15,255, - 252,0,15,255,252,0,31,192,0,0,29,192,0,0,61,192, - 0,0,57,192,0,0,121,192,0,0,241,192,0,0,241,192, - 0,1,225,192,0,1,225,255,252,3,193,255,252,3,193,255, - 252,7,129,192,0,7,255,192,0,15,255,192,0,15,255,192, - 0,30,1,192,0,28,1,192,0,60,1,192,0,56,1,192, - 0,120,1,255,254,112,1,255,254,240,1,255,254,19,33,99, - 23,2,249,3,254,0,15,255,128,30,3,192,60,1,192,56, - 0,224,112,0,224,112,0,0,112,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,112,0,0,112,0,224,112,0,224,56, - 1,224,60,1,192,31,7,128,15,255,0,3,252,0,0,64, - 0,0,120,0,0,124,0,0,30,0,0,6,0,0,6,0, - 1,254,0,1,252,0,16,35,70,21,3,0,28,0,14,0, - 7,0,7,0,3,128,1,128,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,16,35,70,21,3,0,0,112,0,240,0,224,1,192, - 1,128,3,0,0,0,0,0,0,0,0,0,255,254,255,254, - 255,254,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,255,254,255,254,255,254,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,255,255,255,255,255,16,35, - 70,21,3,0,7,192,7,192,14,224,12,96,28,112,24,48, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,255,254, - 255,254,255,254,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,255,255,255,255,255,255,16,33,66,21,3,0, - 28,112,28,112,28,112,0,0,0,0,0,0,0,0,0,0, - 255,254,255,254,255,254,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,254,255,254,255,254,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,255,255,255,255, - 255,255,6,35,35,9,0,0,240,112,56,24,28,12,0,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,6,35,35,9,3, - 0,28,56,48,112,224,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,9,35,70,9,0,0,30,0,62,0,55,0, - 115,0,99,128,193,128,0,0,0,0,0,0,0,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 10,33,66,10,0,0,225,192,225,192,225,192,0,0,0,0, - 0,0,0,0,0,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,22,25,75,24,0,0,31,252, - 0,31,255,128,31,255,192,28,7,224,28,0,240,28,0,120, - 28,0,120,28,0,60,28,0,60,28,0,28,28,0,28,255, - 240,28,255,240,28,255,240,28,28,0,28,28,0,28,28,0, - 60,28,0,56,28,0,120,28,0,120,28,0,240,28,7,224, - 31,255,192,31,255,128,31,252,0,19,33,99,25,3,0,3, - 204,0,7,252,0,14,248,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,248,0,224,248,0,224,252,0,224, - 254,0,224,254,0,224,239,0,224,239,0,224,231,128,224,231, - 128,224,227,192,224,227,192,224,225,224,224,224,224,224,224,240, - 224,224,120,224,224,120,224,224,60,224,224,60,224,224,30,224, - 224,30,224,224,15,224,224,15,224,224,7,224,224,3,224,224, - 3,224,22,36,108,26,2,0,3,192,0,1,192,0,0,224, - 0,0,96,0,0,112,0,0,56,0,0,24,0,0,0,0, - 0,0,0,0,0,0,0,0,0,3,255,0,15,255,192,31, - 255,224,62,1,240,56,0,112,120,0,120,112,0,56,240,0, - 56,240,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,240,0,60,112,0,56,112,0,56,120, - 0,120,56,0,112,60,0,240,31,3,224,15,255,192,7,255, - 128,0,252,0,22,36,108,26,2,0,0,15,0,0,14,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,96,0,0, - 0,0,0,0,0,0,0,0,0,0,0,3,255,0,15,255, - 192,31,255,224,62,1,240,56,0,112,120,0,120,112,0,56, - 240,0,56,240,0,28,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,240,0,60,112,0,56,112,0, - 56,120,0,120,56,0,112,60,0,240,31,3,224,15,255,192, - 7,255,128,0,252,0,22,36,108,26,2,0,0,120,0,0, - 120,0,0,252,0,0,206,0,1,206,0,3,135,0,3,3, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,255,0, - 15,255,192,31,255,224,62,1,240,56,0,112,120,0,120,112, - 0,56,240,0,56,240,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,240,0,60,112,0,56, - 112,0,56,120,0,120,56,0,112,60,0,240,31,3,224,15, - 255,192,7,255,128,0,252,0,22,33,99,26,2,0,1,243, - 0,3,255,0,3,30,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,255,0,15,255,192,31,255,224,62, - 1,240,56,0,112,120,0,120,112,0,56,240,0,56,240,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,28, - 224,0,28,240,0,60,112,0,56,112,0,56,120,0,120,56, - 0,112,60,0,240,31,3,224,15,255,192,7,255,128,0,252, - 0,22,33,99,26,2,0,1,195,128,1,195,128,1,195,128, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3, - 255,0,15,255,192,31,255,224,62,1,240,56,0,112,120,0, - 120,112,0,56,240,0,56,240,0,28,224,0,28,224,0,28, - 224,0,28,224,0,28,224,0,28,224,0,28,240,0,60,112, - 0,56,112,0,56,120,0,120,56,0,112,60,0,240,31,3, - 224,15,255,192,7,255,128,0,252,0,18,19,57,34,8,1, - 64,0,128,224,1,192,112,3,128,56,7,0,24,6,0,12, - 12,0,6,24,0,3,48,0,1,224,0,0,192,0,1,224, - 0,3,48,0,6,24,0,12,12,0,24,6,0,48,3,0, - 96,1,128,224,1,192,64,0,128,22,31,93,26,2,253,0, - 0,24,0,0,60,0,0,56,3,255,120,15,255,240,31,255, - 240,62,1,240,56,1,240,120,3,248,112,7,184,240,15,60, - 240,15,60,224,30,28,224,60,28,224,60,28,224,120,28,224, - 240,28,224,224,28,241,224,60,115,192,56,115,128,56,127,128, - 120,63,0,112,62,0,240,31,3,224,63,255,192,63,255,128, - 121,252,0,240,0,0,224,0,0,32,0,0,19,36,108,25, - 3,0,7,0,0,3,128,0,3,128,0,1,192,0,0,224, - 0,0,96,0,0,48,0,0,0,0,0,0,0,0,0,0, - 0,0,0,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,240,0,224,240,1,224,112,1,192,120, - 3,192,62,7,192,63,255,128,31,255,0,3,248,0,19,36, - 108,25,3,0,0,28,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,1,192,0,0,0,0,0,0,0,0, - 0,0,0,0,0,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,240,0,224,240,1,224,112,1, - 192,120,3,192,62,7,192,63,255,128,31,255,0,3,248,0, - 19,36,108,25,3,0,0,224,0,1,240,0,1,240,0,3, - 184,0,3,28,0,6,12,0,6,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,240,0,224,240,1,224, - 112,1,192,120,3,192,62,7,192,63,255,128,31,255,0,3, - 248,0,19,33,99,25,3,0,7,14,0,7,14,0,7,14, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,240,0,224,240,1,224,112,1,192,120,3,192,62, - 7,192,63,255,128,31,255,0,3,248,0,21,35,105,23,1, - 0,0,14,0,0,30,0,0,28,0,0,56,0,0,48,0, - 0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 0,120,120,0,112,120,0,240,60,1,224,30,1,224,30,3, - 192,15,3,128,15,7,128,7,135,0,3,143,0,3,206,0, - 1,252,0,1,252,0,0,248,0,0,120,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,16,25,50,21,3,0, - 224,0,224,0,224,0,224,0,255,224,255,252,255,254,224,62, - 224,15,224,7,224,7,224,7,224,7,224,7,224,15,224,62, - 255,254,255,252,255,224,224,0,224,0,224,0,224,0,224,0, - 224,0,17,25,75,19,2,0,7,224,0,31,248,0,126,124, - 0,112,60,0,240,28,0,224,28,0,224,28,0,224,56,0, - 224,248,0,225,224,0,225,192,0,225,192,0,225,224,0,225, - 240,0,224,252,0,224,63,0,224,15,0,224,7,128,224,3, - 128,224,3,128,231,3,128,227,131,128,227,231,128,225,255,0, - 224,124,0,15,27,54,19,2,0,14,0,7,0,3,128,3, - 128,1,192,0,192,0,0,0,0,0,0,15,240,63,252,60, - 60,120,30,112,14,0,14,0,14,15,254,63,254,124,14,112, - 14,224,14,224,30,224,30,240,62,120,238,63,238,15,142,15, - 28,56,19,2,0,0,112,0,224,0,224,1,192,3,128,3, - 0,6,0,0,0,0,0,0,0,15,240,63,252,60,60,120, - 30,112,14,0,14,0,14,15,254,63,254,124,14,112,14,224, - 14,224,30,224,30,240,62,120,238,63,238,15,142,15,28,56, - 19,2,0,3,192,7,192,7,224,14,224,12,112,28,48,24, - 24,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,25,50,19,2, - 0,15,152,31,240,25,224,0,0,0,0,0,0,0,0,15, - 240,63,252,60,60,120,30,112,14,0,14,0,14,15,254,63, - 254,124,14,112,14,224,14,224,30,224,30,240,62,120,238,63, - 238,15,142,15,25,50,19,2,0,28,56,28,56,28,56,0, - 0,0,0,0,0,0,0,15,240,63,252,60,60,120,30,112, - 14,0,14,0,14,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,15,29,58,19,2, - 0,3,128,12,64,8,32,8,32,8,32,12,64,7,192,0, - 0,0,0,0,0,0,0,15,240,63,252,60,124,120,30,112, - 30,0,30,0,30,15,254,63,254,124,14,112,14,224,14,224, - 30,224,30,240,62,120,238,63,238,15,142,27,18,72,31,2, - 0,15,224,126,0,63,241,255,0,124,121,199,128,112,31,129, - 192,112,15,1,192,0,15,0,224,0,14,0,224,15,255,255, - 224,63,255,255,224,124,14,0,0,240,14,0,0,224,14,0, - 0,224,31,0,224,224,27,1,192,240,59,131,192,124,241,239, - 128,63,225,255,128,31,192,126,0,14,26,52,18,2,248,15, - 224,63,248,60,120,112,60,112,28,240,28,224,0,224,0,224, - 0,224,0,224,0,224,0,240,28,112,28,112,60,60,120,31, - 240,7,224,1,0,1,224,1,240,0,120,0,24,0,24,7, - 240,7,224,16,28,56,19,2,0,28,0,14,0,14,0,7, - 0,3,128,1,128,0,192,0,0,0,0,0,0,7,224,31, - 248,60,124,120,30,112,14,240,14,224,14,255,254,255,255,224, - 0,224,0,224,0,112,14,112,14,120,30,62,124,31,248,7, - 224,16,28,56,19,2,0,0,120,0,240,0,224,1,192,1, - 128,3,128,3,0,0,0,0,0,0,0,7,224,31,248,60, - 124,120,30,112,14,240,14,224,14,255,254,255,255,224,0,224, - 0,224,0,112,14,112,14,120,30,62,124,31,248,7,224,16, - 28,56,19,2,0,3,192,7,192,7,224,14,224,12,112,24, - 48,24,24,0,0,0,0,0,0,7,224,31,248,60,124,120, - 30,112,14,240,14,224,14,255,254,255,255,224,0,224,0,224, - 0,112,14,112,14,120,30,62,124,31,248,7,224,16,25,50, - 19,2,0,28,56,28,56,28,56,0,0,0,0,0,0,0, - 0,7,224,31,248,60,60,120,14,112,14,240,14,224,6,255, - 254,255,255,224,0,224,0,224,0,112,14,112,14,120,30,62, - 60,31,248,7,224,6,27,27,8,255,0,240,112,56,24,28, - 12,0,0,0,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,6,27,27,8,2,0,28,56,112,112, - 224,192,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,9,27,54,8,255,0,62,0,62, - 0,119,0,115,0,227,128,193,128,0,0,0,0,0,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,10,25,50,8,255,0,227,192,227,192,227,192,0, - 0,0,0,0,0,0,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,17,26,78,21,2, - 0,16,4,0,56,28,0,30,248,0,7,192,0,15,192,0, - 60,240,0,112,120,0,0,60,0,7,252,0,31,254,0,62, - 63,0,120,15,0,112,7,0,240,7,128,240,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,240,7,0, - 112,7,0,120,15,0,62,62,0,31,252,0,7,240,0,15, - 25,50,19,2,0,15,48,31,240,27,224,0,0,0,0,0, - 0,0,0,227,240,239,248,252,124,248,30,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,17,28,84,21,2,0,14,0,0, - 15,0,0,7,0,0,3,128,0,1,128,0,0,192,0,0, - 224,0,0,0,0,0,0,0,0,0,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,17,28,84,21,2,0,0,56,0,0,120,0,0,112,0, - 0,224,0,0,192,0,1,128,0,3,0,0,0,0,0,0, - 0,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,0,240,7,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,7,128,240,7,128,112,7,0,120, - 15,0,62,62,0,31,252,0,7,240,0,17,28,84,21,2, - 0,1,192,0,3,224,0,3,224,0,7,112,0,14,56,0, - 12,24,0,28,28,0,0,0,0,0,0,0,0,0,0,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 0,240,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 240,7,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,25,75,21,2,0,7,152,0,15,248, - 0,12,240,0,0,0,0,0,0,0,0,0,0,0,0,0, - 7,240,0,31,252,0,62,62,0,120,15,0,112,7,0,240, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,240,7,128,240,7,128,112,7,0,120,15,0,62,62,0, - 31,252,0,7,240,0,17,25,75,21,2,0,28,56,0,28, - 56,0,28,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,240,7,128,240,7,128,112,7,0,120,15,0,62,62, - 0,31,252,0,7,240,0,20,15,45,34,7,3,0,96,0, - 0,240,0,0,240,0,0,96,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,0,0,0,0,0,0,0,96, - 0,0,240,0,0,240,0,0,96,0,17,23,69,21,2,254, - 0,1,0,0,1,128,0,3,128,7,247,0,31,254,0,62, - 62,0,120,31,0,112,63,0,240,55,128,240,119,128,224,227, - 128,225,195,128,225,131,128,227,131,128,231,7,128,254,7,128, - 124,7,0,124,15,0,62,62,0,127,252,0,103,240,0,224, - 0,0,192,0,0,15,28,56,19,2,0,28,0,30,0,14, - 0,7,0,3,0,1,128,1,128,0,0,0,0,0,0,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,240,30,124,126,63, - 238,31,142,15,28,56,19,2,0,0,112,0,240,0,224,1, - 192,1,128,3,0,7,0,0,0,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,30,124,126,63,238,31, - 142,15,28,56,19,2,0,3,128,7,192,7,192,14,224,12, - 96,24,48,24,48,0,0,0,0,0,0,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,240,30,124,126,63,238,31,142,15, - 25,50,19,2,0,56,112,56,112,56,112,0,0,0,0,0, - 0,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,240,30,240, - 62,124,126,63,238,31,142,16,34,68,18,1,249,0,56,0, - 112,0,96,0,224,1,192,1,128,0,0,0,0,0,0,224, - 7,240,7,112,15,112,14,120,14,56,30,60,28,28,28,28, - 60,30,56,14,120,15,112,7,112,7,240,7,224,3,224,3, - 224,1,192,1,192,3,128,3,128,231,128,255,0,127,0,62, - 0,16,32,64,20,2,249,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,227,240,231,248,254,60,248,30,240,14,240, - 15,224,7,224,7,224,7,224,7,224,7,224,7,240,15,240, - 14,248,30,254,124,239,248,227,240,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,16,32,64,18,1,249,28,56,28, - 56,28,56,0,0,0,0,0,0,0,0,224,7,224,7,240, - 15,112,14,120,14,56,30,60,28,60,28,28,56,30,56,14, - 120,15,112,15,112,7,240,7,224,3,224,3,192,3,192,3, - 192,3,128,3,128,7,128,7,0,7,0,15,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=20 h=28 x= 7 y=12 dx=34 dy= 0 ascent=26 len=75 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25n[798] U8G_FONT_SECTION("u8g_font_fur25n") = { - 0,46,45,254,247,25,0,0,0,0,42,58,0,26,252,25, - 0,14,13,26,22,4,12,24,96,28,224,28,224,12,192,7, - 128,243,60,255,252,231,156,7,128,12,192,28,224,60,224,24, - 96,20,21,63,34,7,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,255,255,240,255,255,240,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,6,9,9,9,2,252,60,120,120,112, - 112,224,224,224,192,8,3,3,10,1,7,255,255,255,3,4, - 4,9,3,0,224,224,224,224,10,28,56,13,2,254,0,192, - 1,192,1,128,1,128,3,128,3,0,3,0,3,0,7,0, - 6,0,6,0,14,0,12,0,12,0,28,0,28,0,24,0, - 24,0,56,0,48,0,48,0,112,0,112,0,96,0,96,0, - 224,0,192,0,192,0,15,25,50,19,2,1,15,224,63,248, - 62,248,120,60,112,28,112,30,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,240,14, - 112,30,112,28,120,28,60,60,63,248,31,240,7,192,8,25, - 25,19,5,0,15,31,63,127,255,231,135,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,15,25,50, - 19,2,1,15,240,63,248,62,252,120,28,120,30,112,14,240, - 14,0,14,0,30,0,28,0,60,0,120,0,120,0,240,1, - 224,3,192,7,128,15,0,31,0,62,0,60,0,120,0,240, - 0,255,254,255,254,16,25,50,19,2,1,15,240,63,248,60, - 28,120,14,112,14,112,14,0,14,0,14,0,28,0,120,3, - 240,3,240,0,248,0,30,0,14,0,15,0,7,0,7,240, - 7,240,7,240,14,120,30,60,124,31,248,7,224,17,25,75, - 19,1,0,0,60,0,0,124,0,0,124,0,0,252,0,1, - 220,0,1,220,0,3,156,0,7,28,0,7,28,0,14,28, - 0,28,28,0,60,28,0,56,28,0,112,28,0,240,28,0, - 224,28,0,255,255,128,255,255,128,255,255,128,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,15,25, - 50,19,2,0,127,252,127,252,127,252,112,0,112,0,112,0, - 112,0,112,0,115,240,127,248,124,60,120,28,112,30,96,14, - 0,14,0,14,0,14,0,14,0,14,224,30,240,28,112,60, - 124,120,63,240,15,192,16,25,50,19,1,1,15,240,31,252, - 60,28,120,30,112,14,240,14,224,0,224,0,224,0,227,240, - 231,252,239,252,252,30,248,14,240,15,240,7,240,7,240,7, - 240,7,112,7,120,14,56,14,62,60,15,248,7,224,15,25, - 50,19,2,0,255,254,255,254,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,240,0,240,0,224, - 1,224,1,224,1,192,3,192,3,128,7,128,7,128,7,0, - 15,0,15,0,14,0,16,25,50,19,1,1,15,240,63,252, - 60,60,120,30,112,14,112,14,112,14,112,14,56,28,60,60, - 15,240,15,240,62,56,56,28,112,14,224,7,224,7,224,7, - 224,7,224,7,240,15,120,14,60,60,31,248,7,224,16,25, - 50,19,2,1,31,248,63,252,120,30,112,14,240,15,224,15, - 224,15,224,15,224,15,240,15,112,31,120,63,63,247,15,231, - 0,7,0,7,0,7,0,14,112,14,112,14,112,30,112,60, - 60,120,31,240,15,224,3,18,18,9,3,0,224,224,224,224, - 0,0,0,0,0,0,0,0,0,0,224,224,224,224}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--34-340-72-72-P-161-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 25, '1' Height: 25 - Calculated Max Values w=31 h=37 x= 8 y=21 dx=34 dy= 0 ascent=28 len=120 - Font Bounding box w=46 h=45 x=-2 y=-9 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur25r[5389] U8G_FONT_SECTION("u8g_font_fur25r") = { - 0,46,45,254,247,25,6,119,15,27,32,127,249,28,247,25, - 249,0,0,0,10,0,0,3,25,25,12,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,11,10,20,15,2,15,241,224,112,224, - 112,224,112,224,112,224,112,224,112,224,96,192,96,192,96,192, - 22,25,75,25,2,0,0,112,224,0,112,224,0,96,192,0, - 225,192,0,225,192,0,193,128,0,193,128,63,255,252,63,255, - 248,1,131,0,3,135,0,3,134,0,3,6,0,7,14,0, - 255,255,224,255,255,224,14,28,0,14,28,0,12,24,0,12, - 24,0,28,56,0,28,56,0,24,48,0,56,112,0,56,112, - 0,16,32,64,18,1,252,1,128,1,128,1,128,15,240,31, - 248,63,252,121,158,113,142,113,142,113,142,113,128,113,128,121, - 128,63,128,31,240,15,252,1,254,1,159,1,143,1,135,225, - 135,225,135,225,135,241,135,121,143,127,254,63,252,15,240,1, - 128,1,128,1,128,1,128,28,27,108,32,2,0,0,0,14, - 0,0,0,12,0,31,128,24,0,63,192,24,0,121,224,48, - 0,240,240,48,0,224,112,96,0,224,112,224,0,224,112,192, - 0,224,113,192,0,240,113,128,0,112,227,128,0,63,227,0, - 0,31,134,31,128,0,6,63,192,0,12,121,224,0,12,240, - 240,0,24,224,112,0,56,224,112,0,48,224,112,0,112,224, - 112,0,96,224,112,0,224,224,112,0,192,240,240,1,128,121, - 224,1,128,63,192,3,0,31,128,23,25,75,26,2,1,7, - 248,0,15,252,0,30,30,0,28,14,0,28,14,0,28,14, - 0,30,28,0,30,60,0,15,248,0,7,224,0,15,192,112, - 31,224,112,61,224,112,120,240,112,240,120,112,224,60,112,224, - 30,224,224,15,224,224,7,224,240,3,192,120,3,224,124,15, - 240,63,255,120,31,252,124,7,240,62,4,10,10,13,4,15, - 240,112,112,112,112,112,112,96,96,96,6,30,30,12,3,251, - 12,24,24,56,56,112,112,112,112,240,224,224,224,224,224,224, - 224,224,224,224,240,112,112,112,112,56,56,24,24,12,6,30, - 30,12,3,251,224,96,112,112,48,56,56,56,56,28,28,28, - 28,28,28,28,28,28,28,28,28,60,56,56,56,48,112,112, - 96,224,14,13,26,22,4,12,24,96,28,224,28,224,12,192, - 7,128,243,60,255,252,231,156,7,128,12,192,28,224,60,224, - 24,96,20,21,63,34,7,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,255,255,240,255,255,240,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,6,9,9,9,2,252,60,120,120, - 112,112,224,224,224,192,8,3,3,10,1,7,255,255,255,3, - 4,4,9,3,0,224,224,224,224,10,28,56,13,2,254,0, - 192,1,192,1,128,1,128,3,128,3,0,3,0,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,28,0,24, - 0,24,0,56,0,48,0,48,0,112,0,112,0,96,0,96, - 0,224,0,192,0,192,0,15,25,50,19,2,1,15,224,63, - 248,62,248,120,60,112,28,112,30,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 14,112,30,112,28,120,28,60,60,63,248,31,240,7,192,8, - 25,25,19,5,0,15,31,63,127,255,231,135,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,25, - 50,19,2,1,15,240,63,248,62,252,120,28,120,30,112,14, - 240,14,0,14,0,30,0,28,0,60,0,120,0,120,0,240, - 1,224,3,192,7,128,15,0,31,0,62,0,60,0,120,0, - 240,0,255,254,255,254,16,25,50,19,2,1,15,240,63,248, - 60,28,120,14,112,14,112,14,0,14,0,14,0,28,0,120, - 3,240,3,240,0,248,0,30,0,14,0,15,0,7,0,7, - 240,7,240,7,240,14,120,30,60,124,31,248,7,224,17,25, - 75,19,1,0,0,60,0,0,124,0,0,124,0,0,252,0, - 1,220,0,1,220,0,3,156,0,7,28,0,7,28,0,14, - 28,0,28,28,0,60,28,0,56,28,0,112,28,0,240,28, - 0,224,28,0,255,255,128,255,255,128,255,255,128,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,15, - 25,50,19,2,0,127,252,127,252,127,252,112,0,112,0,112, - 0,112,0,112,0,115,240,127,248,124,60,120,28,112,30,96, - 14,0,14,0,14,0,14,0,14,0,14,224,30,240,28,112, - 60,124,120,63,240,15,192,16,25,50,19,1,1,15,240,31, - 252,60,28,120,30,112,14,240,14,224,0,224,0,224,0,227, - 240,231,252,239,252,252,30,248,14,240,15,240,7,240,7,240, - 7,240,7,112,7,120,14,56,14,62,60,15,248,7,224,15, - 25,50,19,2,0,255,254,255,254,0,14,0,30,0,28,0, - 28,0,60,0,56,0,56,0,120,0,112,0,240,0,240,0, - 224,1,224,1,224,1,192,3,192,3,128,7,128,7,128,7, - 0,15,0,15,0,14,0,16,25,50,19,1,1,15,240,63, - 252,60,60,120,30,112,14,112,14,112,14,112,14,56,28,60, - 60,15,240,15,240,62,56,56,28,112,14,224,7,224,7,224, - 7,224,7,224,7,240,15,120,14,60,60,31,248,7,224,16, - 25,50,19,2,1,31,248,63,252,120,30,112,14,240,15,224, - 15,224,15,224,15,224,15,240,15,112,31,120,63,63,247,15, - 231,0,7,0,7,0,7,0,14,112,14,112,14,112,30,112, - 60,60,120,31,240,15,224,3,18,18,9,3,0,224,224,224, - 224,0,0,0,0,0,0,0,0,0,0,224,224,224,224,6, - 22,22,9,1,252,56,56,56,56,0,0,0,0,0,0,0, - 0,0,60,56,56,56,112,112,112,96,224,21,19,57,34,7, - 1,0,0,8,0,0,56,0,1,240,0,15,192,0,62,0, - 1,248,0,7,192,0,62,0,0,248,0,0,192,0,0,248, - 0,0,62,0,0,7,192,0,1,248,0,0,62,0,0,7, - 192,0,1,248,0,0,56,0,0,8,20,8,24,34,7,6, - 255,255,240,255,255,240,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,240,255,255,240,21,17,51,34,7,2,224,0, - 0,252,0,0,31,0,0,7,224,0,0,248,0,0,31,0, - 0,7,192,0,0,248,0,0,56,0,0,248,0,7,192,0, - 63,0,0,248,0,7,224,0,31,0,0,248,0,0,224,0, - 0,15,25,50,18,1,1,31,224,63,248,125,252,240,30,96, - 14,0,14,0,14,0,30,0,28,0,60,0,120,0,240,1, - 192,3,128,7,128,7,0,7,0,7,0,7,0,0,0,0, - 0,0,0,7,0,7,0,7,0,30,30,120,34,2,251,0, - 31,240,0,0,255,254,0,3,255,255,0,7,224,31,192,15, - 128,3,224,30,0,0,240,60,0,0,112,56,31,56,120,112, - 63,184,56,112,125,248,56,240,112,120,60,224,240,120,28,224, - 224,56,28,224,224,56,28,224,224,56,28,224,224,56,28,224, - 224,56,28,224,224,56,56,240,224,120,56,112,112,120,120,112, - 120,254,240,120,63,223,224,56,31,15,192,60,0,0,0,30, - 0,0,0,15,128,0,0,7,224,0,0,3,255,248,0,0, - 255,248,0,0,31,240,0,24,25,75,26,1,0,0,60,0, - 0,124,0,0,126,0,0,254,0,0,238,0,0,239,0,1, - 231,0,1,199,128,3,195,128,3,131,192,7,131,192,7,1, - 192,7,1,224,15,0,224,14,0,240,31,255,240,31,255,240, - 31,255,248,60,0,56,56,0,60,120,0,28,112,0,30,112, - 0,30,240,0,14,224,0,15,18,25,75,23,3,0,255,248, - 0,255,254,0,255,255,0,224,15,128,224,7,128,224,3,128, - 224,3,128,224,3,128,224,7,128,224,15,0,255,254,0,255, - 252,0,255,254,0,224,15,0,224,3,128,224,3,192,224,1, - 192,224,1,192,224,1,192,224,3,192,224,7,192,224,15,128, - 255,255,0,255,254,0,255,248,0,19,25,75,23,2,1,3, - 254,0,15,255,128,30,3,192,60,1,192,56,0,224,112,0, - 224,112,0,0,112,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,112,0,0,112,0,224,112,0,224,56,1,224,60,1, - 192,31,7,128,15,255,0,1,252,0,20,25,75,25,3,0, - 255,240,0,255,254,0,255,255,0,224,31,128,224,7,192,224, - 3,192,224,1,224,224,0,224,224,0,240,224,0,240,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,240, - 224,0,240,224,0,224,224,1,224,224,3,192,224,7,192,224, - 31,128,255,255,0,255,252,0,255,240,0,16,25,50,21,3, - 0,255,254,255,254,255,254,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,255,255, - 255,255,255,15,25,50,20,3,0,255,254,255,254,255,254,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 252,255,252,255,252,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,21,25,75,26,2, - 1,1,255,128,7,255,192,15,255,224,30,0,240,60,0,120, - 120,0,56,112,0,0,112,0,0,240,0,0,224,0,0,224, - 0,0,224,15,248,224,15,248,224,15,248,224,0,56,240,0, - 56,112,0,56,112,0,56,120,0,56,60,0,56,62,0,56, - 31,0,248,15,255,248,7,255,240,0,255,128,18,25,75,24, - 3,0,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,255,255,192,255,255,192,255,255,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,3,25,25, - 9,3,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,14,25,50,19, - 2,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,224,28,224,28,240,60,120,120,127,240, - 63,224,15,192,18,25,75,23,3,0,224,7,128,224,15,0, - 224,30,0,224,60,0,224,120,0,224,240,0,225,224,0,227, - 192,0,231,128,0,239,0,0,254,0,0,255,0,0,239,128, - 0,231,128,0,231,192,0,227,224,0,225,240,0,224,248,0, - 224,120,0,224,60,0,224,62,0,224,31,0,224,15,128,224, - 7,192,224,3,192,15,25,50,19,3,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,255,254,255,254,255,254,25,25,100, - 31,3,0,248,0,15,128,252,0,31,128,252,0,31,128,252, - 0,31,128,238,0,59,128,238,0,59,128,239,0,123,128,231, - 0,115,128,231,0,115,128,231,128,243,128,227,128,227,128,227, - 128,227,128,225,193,195,128,225,193,195,128,225,193,195,128,224, - 227,131,128,224,227,131,128,224,247,131,128,224,119,3,128,224, - 119,3,128,224,127,3,128,224,62,3,128,224,62,3,128,224, - 28,3,128,224,28,3,128,19,25,75,25,3,0,248,0,224, - 248,0,224,252,0,224,254,0,224,254,0,224,239,0,224,239, - 0,224,231,128,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,120,224,224,60,224, - 224,60,224,224,30,224,224,30,224,224,15,224,224,15,224,224, - 7,224,224,3,224,224,3,224,22,25,75,26,2,1,3,255, - 0,15,255,192,31,255,224,62,1,240,56,0,112,120,0,120, - 112,0,56,240,0,56,240,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,112,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,31,3,224, - 15,255,192,7,255,128,0,252,0,16,25,50,21,3,0,255, - 224,255,252,255,254,224,30,224,15,224,7,224,7,224,7,224, - 7,224,15,224,30,255,254,255,252,255,224,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,24,25,75,27,2,1,3,255,0,15,255,192,31,255,224, - 62,1,240,56,0,112,120,0,120,112,0,56,240,0,56,240, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,240,0,60,112,0,56,112,0,56,120,0,120, - 56,0,112,60,0,240,31,3,224,15,255,255,7,255,255,0, - 255,255,17,25,75,21,3,0,255,240,0,255,252,0,255,254, - 0,224,31,0,224,15,0,224,7,0,224,7,0,224,7,0, - 224,15,0,224,30,0,255,252,0,255,240,0,255,252,0,224, - 60,0,224,30,0,224,14,0,224,14,0,224,14,0,224,15, - 0,224,7,0,224,7,0,224,7,0,224,7,0,224,7,0, - 224,7,128,18,25,75,22,2,1,7,252,0,31,254,0,63, - 255,0,120,7,128,112,3,128,112,3,128,112,0,0,112,0, - 0,120,0,0,124,0,0,63,192,0,31,252,0,7,255,0, - 0,63,128,0,7,128,0,3,192,0,1,192,224,1,192,224, - 1,192,240,1,192,112,3,192,124,15,128,63,255,0,31,254, - 0,7,240,0,19,25,75,21,1,0,255,255,224,255,255,224, - 255,255,224,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,19,25,75,25,3,0,224,0,224,224,0, - 224,224,0,224,224,0,224,224,0,224,224,0,224,224,0,224, - 224,0,224,224,0,224,224,0,224,224,0,224,224,0,224,224, - 0,224,224,0,224,224,0,224,224,0,224,224,0,224,240,0, - 224,240,1,224,112,1,192,120,3,192,62,7,192,63,255,128, - 31,255,0,3,248,0,21,25,75,22,1,0,240,0,120,240, - 0,240,240,0,240,120,0,240,120,1,224,120,1,224,60,1, - 192,60,3,192,60,3,192,28,3,128,30,7,128,14,7,128, - 14,7,0,15,15,0,7,15,0,7,14,0,7,158,0,3, - 158,0,3,156,0,3,252,0,1,252,0,1,248,0,1,248, - 0,0,248,0,0,240,0,31,25,100,33,1,0,224,7,192, - 14,240,7,192,14,240,7,192,30,112,7,192,30,112,14,224, - 28,120,14,224,60,120,14,224,60,56,14,240,56,56,28,112, - 56,60,28,112,120,28,28,112,120,28,60,56,112,28,56,56, - 112,30,56,56,240,14,56,56,224,14,112,28,224,14,112,28, - 224,7,112,29,192,7,112,29,192,7,224,15,192,7,224,15, - 192,3,224,15,128,3,224,7,128,3,192,7,128,1,192,7, - 0,22,25,75,24,1,0,124,0,120,60,0,240,30,1,224, - 31,1,224,15,3,192,7,135,128,7,135,128,3,207,0,1, - 238,0,1,254,0,0,252,0,0,120,0,0,252,0,0,252, - 0,1,222,0,3,207,0,3,143,0,7,135,128,15,3,192, - 14,3,192,30,1,224,60,1,240,56,0,240,120,0,120,240, - 0,124,21,25,75,23,1,0,240,0,120,120,0,112,120,0, - 240,60,1,224,30,1,224,30,3,192,15,3,128,15,7,128, - 7,135,0,3,143,0,3,206,0,1,252,0,1,252,0,0, - 248,0,0,120,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,18,25,75,22,2,0,127,255,192,127,255,192,127, - 255,192,0,3,192,0,7,128,0,15,128,0,31,0,0,30, - 0,0,60,0,0,124,0,0,248,0,0,240,0,1,224,0, - 3,224,0,7,192,0,15,128,0,15,0,0,31,0,0,62, - 0,0,124,0,0,120,0,0,240,0,0,255,255,192,255,255, - 192,255,255,192,7,32,32,14,4,249,254,254,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,254,254,10,28,56,13,2,254, - 192,0,192,0,224,0,224,0,96,0,96,0,112,0,48,0, - 48,0,56,0,56,0,24,0,24,0,28,0,12,0,12,0, - 14,0,6,0,6,0,6,0,7,0,3,0,3,0,3,128, - 1,128,1,128,1,128,1,192,6,32,32,14,4,249,252,252, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,252,252,18,21, - 63,34,8,0,0,192,0,1,224,0,1,224,0,1,224,0, - 3,48,0,3,48,0,2,16,0,6,24,0,6,24,0,12, - 12,0,12,12,0,12,12,0,24,6,0,24,6,0,24,6, - 0,48,3,0,48,3,0,112,1,128,96,1,128,96,1,128, - 192,0,192,17,2,6,17,0,251,255,255,128,255,255,128,6, - 6,6,8,0,21,224,224,112,56,24,12,15,18,36,19,2, - 0,15,240,63,252,60,60,120,30,112,14,0,14,0,14,15, - 254,63,254,124,14,112,14,224,14,224,30,224,30,240,62,120, - 238,63,238,15,142,16,25,50,20,2,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,227,240,239,248,238,124,248, - 30,240,14,240,15,224,7,224,7,224,7,224,7,224,7,224, - 15,240,14,240,14,248,28,254,124,239,248,227,224,14,18,36, - 18,2,0,15,224,63,240,124,120,112,60,112,28,240,28,224, - 0,224,0,224,0,224,0,224,0,224,0,240,28,112,28,112, - 60,60,120,31,240,15,224,16,25,50,20,2,0,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,15,199,31,247,60, - 127,120,31,112,31,112,15,224,15,224,7,224,7,224,7,224, - 7,224,7,112,15,112,15,56,31,62,63,15,247,7,199,16, - 18,36,19,2,0,7,224,31,248,60,124,120,30,112,14,240, - 14,224,14,255,254,255,255,224,0,224,0,224,0,112,14,112, - 14,120,30,62,124,31,248,7,224,11,25,50,12,1,0,7, - 224,15,224,31,32,28,0,28,0,28,0,28,0,255,224,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,16,25,50,20,2,249,7,231,31,247,62,127,120,31,112, - 15,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,112,15,120,31,62,127,31,247,15,199,0,7,0,15,112, - 14,120,30,60,60,31,248,7,224,15,25,50,19,2,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,227,240,239, - 248,252,124,248,28,240,30,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,3,25,25,7,2,0,224,224,224,0,0,0,0,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 5,32,32,9,2,249,56,56,56,0,0,0,0,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,240,224,14,25,50,17,2,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,120,224,240,225,224, - 225,192,227,192,231,128,239,0,254,0,254,0,239,0,231,128, - 231,128,227,192,225,224,225,224,224,240,224,120,224,60,3,25, - 25,8,2,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,26,18,72, - 30,2,0,227,224,124,0,239,241,255,0,252,123,143,128,248, - 63,3,128,240,30,3,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,224,28,1,192,224, - 28,1,192,224,28,1,192,224,28,1,192,15,18,36,19,2, - 0,227,240,239,248,252,124,248,30,240,30,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,17,18,54,21,2,0,7,240,0,31,252, - 0,62,62,0,120,15,0,112,7,0,240,7,0,240,7,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,240, - 7,128,112,7,0,120,15,0,62,62,0,31,252,0,7,240, - 0,16,25,50,20,2,249,227,240,231,248,254,60,248,30,240, - 14,240,15,224,7,224,7,224,7,224,7,224,7,224,7,240, - 15,240,14,248,30,254,124,239,248,227,240,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,16,25,50,21,2,249,7, - 199,31,247,62,63,120,31,112,15,240,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,15,112,15,120,31,62,127,31, - 247,7,199,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,10,18,36,12,2,0,231,192,239,192,254,0,248,0,240, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,14,18,36,18,2, - 0,31,192,127,240,120,248,240,56,224,56,224,0,240,0,126, - 0,63,224,15,248,0,252,0,60,0,28,224,28,240,60,120, - 248,63,240,31,192,10,22,44,12,1,1,28,0,28,0,28, - 0,28,0,255,192,255,192,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,30,0,15,192,7,192,15,18,36,19,2,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,240,30,240,62,124,126,63,238,31, - 142,16,18,36,18,1,0,224,7,240,7,240,15,112,14,120, - 14,56,30,56,28,60,28,28,56,30,56,14,56,14,112,15, - 112,7,224,7,224,3,224,3,192,3,192,26,18,72,28,1, - 0,224,30,1,192,224,62,3,192,224,63,3,128,112,63,3, - 128,112,119,3,128,112,115,7,0,56,115,135,0,56,115,135, - 0,56,227,142,0,24,225,206,0,28,225,206,0,29,193,206, - 0,29,192,220,0,15,192,252,0,15,128,252,0,15,128,120, - 0,7,128,120,0,7,128,120,0,17,18,54,19,1,0,112, - 7,0,120,14,0,60,30,0,30,28,0,30,56,0,15,112, - 0,7,240,0,3,224,0,3,192,0,3,224,0,7,224,0, - 15,240,0,14,120,0,28,60,0,60,28,0,120,30,0,112, - 15,0,240,7,128,16,25,50,18,1,249,224,7,240,7,112, - 15,112,14,120,14,56,30,60,28,28,28,28,60,30,56,14, - 56,15,112,7,112,7,240,7,224,3,224,3,224,1,192,1, - 192,3,128,3,128,7,128,7,0,7,0,15,0,13,18,36, - 17,2,0,127,248,127,248,0,120,0,112,0,240,1,224,3, - 192,3,192,7,128,15,0,31,0,30,0,60,0,120,0,120, - 0,240,0,255,248,255,248,11,35,70,17,3,248,1,224,3, - 224,7,128,15,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,30,0,28,0,60,0,248,0,240, - 0,248,0,60,0,28,0,30,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,7,0,7,128,3, - 224,1,224,2,37,37,12,5,247,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,11,35, - 70,17,3,248,240,0,248,0,60,0,28,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,15,0, - 7,0,7,128,3,224,1,224,3,224,7,128,7,0,15,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,28,0,60,0,248,0,240,0,18,4,12,18,0,7, - 31,1,192,63,231,128,121,255,0,224,62,0,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=26 dx=40 dy= 0 ascent=43 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =43 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30[16505] U8G_FONT_SECTION("u8g_font_fur30") = { - 0,54,54,253,245,30,9,94,20,223,32,255,249,43,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,12,0,0,4,28,28,14,5,248, - 240,240,240,240,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,17,31,93,23, - 3,250,0,12,0,0,12,0,0,24,0,0,24,0,0,24, - 0,15,248,0,63,254,0,62,63,0,120,119,0,120,103,0, - 240,103,128,240,96,0,240,192,0,240,192,0,240,192,0,241, - 128,0,241,128,0,241,128,0,243,7,128,243,7,128,123,7, - 0,126,15,0,62,30,0,31,254,0,15,248,0,12,0,0, - 12,0,0,28,0,0,24,0,0,24,0,0,8,0,0,20, - 31,93,23,2,0,0,16,0,1,255,0,7,255,192,15,135, - 224,15,1,224,30,0,240,30,0,240,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,248,0,255,248,0,255, - 248,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,255,224,255,255,224,255, - 255,224,21,22,66,25,2,7,192,0,24,224,0,56,96,48, - 48,51,254,96,63,255,224,31,7,192,28,1,192,24,0,192, - 56,0,224,48,0,96,48,0,96,48,0,96,48,0,96,56, - 0,224,24,0,192,28,1,192,14,3,128,31,255,192,59,254, - 224,112,248,112,224,0,56,192,0,24,21,30,90,23,1,0, - 240,0,120,248,0,120,120,0,240,124,0,240,60,1,240,62, - 1,224,30,1,224,30,3,192,15,3,192,15,7,128,255,135, - 248,255,143,248,255,207,248,3,207,0,1,254,0,1,252,0, - 255,255,248,255,255,248,255,255,248,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,2,38,38,14,6,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,15,37,74,19,2,250,15,248,31,248, - 62,24,60,0,120,0,120,0,120,0,120,0,60,0,63,0, - 31,128,15,224,15,240,63,248,124,124,120,62,240,30,240,30, - 240,30,240,60,248,120,127,240,63,224,31,224,7,240,1,248, - 0,124,0,60,0,30,0,30,0,30,0,28,0,60,96,248, - 127,240,127,224,3,0,12,4,8,12,0,26,240,240,240,240, - 240,240,240,240,30,30,120,34,2,1,0,63,240,0,0,255, - 252,0,3,240,63,0,7,128,7,128,15,0,3,192,28,3, - 0,224,56,63,240,112,56,127,248,112,112,248,124,56,97,240, - 30,24,97,224,30,24,225,224,30,28,195,192,0,12,195,192, - 0,12,195,192,0,12,195,192,0,12,195,192,0,12,195,192, - 0,12,193,192,30,12,97,224,30,24,97,224,30,24,96,240, - 60,56,48,255,252,48,56,63,248,112,28,15,224,224,14,0, - 1,192,7,0,3,128,3,192,15,0,1,255,252,0,0,63, - 240,0,14,19,38,16,1,11,15,192,63,240,56,120,112,56, - 0,56,0,56,15,248,63,248,120,56,224,56,224,56,224,120, - 240,248,127,184,31,56,0,0,0,0,255,252,255,252,16,16, - 32,22,3,2,7,7,15,14,14,14,28,28,60,60,56,120, - 120,112,240,240,240,240,120,112,56,120,60,60,28,28,14,14, - 15,14,7,7,21,10,30,25,2,8,255,255,248,255,255,248, - 255,255,248,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,255,30,30,120,34,2,1,0, - 63,240,0,0,255,252,0,3,240,63,0,7,128,7,128,14, - 0,1,192,28,127,240,224,56,127,248,112,48,127,252,48,112, - 112,30,56,96,112,14,24,96,112,14,24,192,112,14,12,192, - 112,28,12,192,127,248,12,192,127,240,12,192,127,248,12,192, - 112,28,12,192,112,28,12,192,112,28,12,96,112,12,24,96, - 112,12,24,112,112,14,56,48,112,14,48,56,112,14,112,28, - 0,0,224,14,0,1,192,7,128,7,128,3,240,63,0,1, - 255,252,0,0,63,240,0,12,3,6,12,0,26,255,240,255, - 240,255,240,9,9,18,13,2,21,62,0,127,0,227,128,193, - 128,193,128,193,128,227,128,127,0,62,0,24,24,72,40,8, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,255,255,255,255,255,255,255,255,255,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,255,255,255,255,255,255,12,16,32,14,1,15,31, - 192,127,224,120,240,112,112,224,112,0,112,0,224,1,224,3, - 192,7,128,14,0,60,0,120,0,255,240,255,240,255,240,12, - 16,32,14,1,15,63,192,127,224,112,240,96,112,0,112,0, - 240,7,224,7,128,7,224,0,240,0,112,224,112,224,112,127, - 224,127,192,31,128,8,7,7,9,2,25,15,30,28,56,56, - 112,224,255,18,36,108,22,2,250,3,255,192,15,255,192,63, - 195,0,127,195,0,127,195,0,255,195,0,255,195,0,255,195, - 0,255,195,0,255,195,0,255,195,0,127,195,0,127,195,0, - 63,195,0,15,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,0,195,0,0,195,0,0,195,0,0,195, - 0,0,195,0,0,195,0,0,195,0,0,195,0,0,195,0, - 0,195,0,0,195,0,0,195,0,0,195,0,0,195,0,0, - 195,0,0,195,0,4,5,5,10,3,11,240,240,240,240,240, - 10,10,20,10,2,246,48,0,48,0,62,0,63,128,7,128, - 1,192,1,192,3,192,255,128,254,0,7,16,16,12,2,14, - 30,62,254,238,142,14,14,14,14,14,14,14,14,14,14,14, - 14,19,38,16,1,10,15,192,63,224,120,112,112,56,224,56, - 224,28,224,28,224,28,224,28,224,28,224,56,112,56,56,112, - 31,224,7,128,0,0,0,0,255,252,255,252,16,16,32,22, - 3,2,224,224,112,112,120,120,56,56,28,60,30,30,15,14, - 15,15,15,15,15,14,30,30,28,60,56,56,120,120,112,112, - 224,224,28,30,120,32,2,0,30,0,12,0,62,0,28,0, - 254,0,56,0,238,0,56,0,142,0,112,0,14,0,112,0, - 14,0,224,0,14,0,192,0,14,1,192,0,14,3,128,0, - 14,3,128,0,14,7,0,0,14,7,0,0,14,14,0,0, - 14,12,7,128,14,28,7,128,0,56,15,128,0,56,31,128, - 0,112,27,128,0,112,59,128,0,224,115,128,0,224,99,128, - 1,192,195,128,1,129,195,128,3,129,255,240,7,1,255,240, - 7,0,3,128,14,0,3,128,14,0,3,128,28,0,3,128, - 28,30,120,32,2,0,30,0,28,0,62,0,28,0,254,0, - 56,0,238,0,56,0,142,0,112,0,14,0,112,0,14,0, - 224,0,14,0,224,0,14,1,192,0,14,3,128,0,14,3, - 128,0,14,7,0,0,14,7,0,0,14,14,0,0,14,14, - 31,128,14,28,63,224,0,56,121,224,0,56,112,112,0,112, - 240,112,0,112,0,112,0,224,0,240,0,224,0,224,1,192, - 3,192,1,128,7,128,3,128,15,0,7,0,60,0,7,0, - 120,0,14,0,255,240,14,0,255,240,28,0,255,240,30,31, - 124,32,1,0,0,0,1,192,63,192,3,128,127,224,3,128, - 112,240,7,0,96,112,6,0,0,112,14,0,0,240,28,0, - 7,224,28,0,7,128,56,0,7,224,56,0,0,240,112,0, - 0,112,112,0,224,112,224,0,224,113,192,0,127,225,192,0, - 127,195,129,224,31,131,129,224,0,7,3,224,0,7,7,224, - 0,14,6,224,0,12,12,224,0,28,28,224,0,56,24,224, - 0,56,48,224,0,112,112,224,0,112,127,252,0,224,127,252, - 0,224,0,224,1,192,0,224,1,128,0,224,3,128,0,224, - 17,28,84,21,2,248,0,240,0,0,240,0,0,240,0,0, - 240,0,0,0,0,0,0,0,0,0,0,0,240,0,0,240, - 0,0,240,0,0,240,0,1,240,0,1,224,0,7,192,0, - 15,128,0,31,0,0,60,0,0,120,0,0,240,0,0,240, - 0,0,240,0,0,240,3,0,240,3,128,124,15,128,127,255, - 0,63,254,0,31,252,0,3,240,0,28,41,164,30,1,0, - 0,240,0,0,0,240,0,0,0,120,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,14,0,0,0,7,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0, - 0,31,128,0,0,31,128,0,0,63,192,0,0,63,192,0, - 0,127,192,0,0,121,224,0,0,121,224,0,0,241,240,0, - 0,240,240,0,1,240,240,0,1,224,248,0,1,224,120,0, - 3,224,124,0,3,192,60,0,7,192,60,0,7,128,62,0, - 7,128,30,0,15,128,31,0,15,255,255,0,31,255,255,128, - 31,255,255,128,30,0,7,128,60,0,3,192,60,0,3,192, - 124,0,3,224,120,0,1,224,120,0,1,224,240,0,0,240, - 240,0,0,240,28,41,164,30,1,0,0,0,240,0,0,0, - 240,0,0,1,224,0,0,1,192,0,0,3,128,0,0,7, - 0,0,0,7,0,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,15,0,0,0,31,128,0,0,31, - 128,0,0,63,192,0,0,63,192,0,0,127,192,0,0,121, - 224,0,0,121,224,0,0,241,240,0,0,240,240,0,1,240, - 240,0,1,224,248,0,1,224,120,0,3,224,124,0,3,192, - 60,0,7,192,60,0,7,128,62,0,7,128,30,0,15,128, - 31,0,15,255,255,0,31,255,255,128,31,255,255,128,30,0, - 7,128,60,0,3,192,60,0,3,192,124,0,3,224,120,0, - 1,224,120,0,1,224,240,0,0,240,240,0,0,240,28,41, - 164,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,57,192,0,0,112,224,0,0,96,96,0, - 0,224,112,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,15,0,0,0,31,128,0,0,31,128,0,0,63,192,0, - 0,63,192,0,0,127,192,0,0,121,224,0,0,121,224,0, - 0,241,240,0,0,240,240,0,1,240,240,0,1,224,248,0, - 1,224,120,0,3,224,124,0,3,192,60,0,7,192,60,0, - 7,128,62,0,7,128,30,0,15,128,31,0,15,255,255,0, - 31,255,255,128,31,255,255,128,30,0,7,128,60,0,3,192, - 60,0,3,192,124,0,3,224,120,0,1,224,120,0,1,224, - 240,0,0,240,240,0,0,240,28,39,156,30,1,0,0,16, - 48,0,0,126,112,0,0,127,224,0,0,231,224,0,0,192, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,15,0,0,0,31,128,0,0,31,128,0,0,63, - 192,0,0,63,192,0,0,127,192,0,0,121,224,0,0,121, - 224,0,0,241,240,0,0,240,240,0,1,240,240,0,1,224, - 248,0,1,224,120,0,3,224,124,0,3,192,60,0,7,192, - 60,0,7,128,62,0,7,128,30,0,15,128,31,0,15,255, - 255,0,31,255,255,128,31,255,255,128,30,0,7,128,60,0, - 3,192,60,0,3,192,124,0,3,224,120,0,1,224,120,0, - 1,224,240,0,0,240,240,0,0,240,29,39,156,30,1,0, - 0,120,120,0,0,120,120,0,0,120,120,0,0,120,120,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,128,0,0,15,128,0,0,31,128,0, - 0,31,192,0,0,63,192,0,0,61,224,0,0,125,224,0, - 0,121,240,0,0,120,240,0,0,240,240,0,0,240,248,0, - 1,240,120,0,1,224,124,0,1,224,60,0,3,224,60,0, - 3,192,62,0,7,192,30,0,7,128,31,0,7,128,15,0, - 15,255,255,128,15,255,255,128,31,255,255,128,30,0,3,192, - 30,0,3,192,60,0,3,224,60,0,1,224,120,0,1,224, - 120,0,0,240,120,0,0,240,240,0,0,248,28,43,172,30, - 1,0,0,14,0,0,0,63,0,0,0,49,128,0,0,96, - 192,0,0,96,192,0,0,96,192,0,0,96,192,0,0,49, - 128,0,0,63,128,0,0,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,31,0,0,0,31,0,0,0,31, - 128,0,0,63,128,0,0,63,192,0,0,123,192,0,0,123, - 192,0,0,121,224,0,0,241,224,0,0,241,240,0,1,224, - 240,0,1,224,248,0,1,224,120,0,3,192,120,0,3,192, - 124,0,7,192,60,0,7,128,62,0,15,128,30,0,15,0, - 30,0,15,255,255,0,31,255,255,0,31,255,255,128,60,0, - 7,128,60,0,7,192,60,0,3,192,120,0,3,192,120,0, - 1,224,240,0,1,224,240,0,1,240,240,0,0,240,37,30, - 150,39,0,0,0,1,255,255,240,0,1,255,255,240,0,3, - 255,255,240,0,3,255,255,240,0,7,252,0,0,0,7,188, - 0,0,0,15,188,0,0,0,15,60,0,0,0,31,60,0, - 0,0,30,60,0,0,0,62,60,0,0,0,60,60,0,0, - 0,124,60,0,0,0,120,63,255,240,0,248,63,255,240,0, - 240,63,255,240,1,240,63,255,240,1,224,60,0,0,3,224, - 60,0,0,3,255,252,0,0,7,255,252,0,0,7,255,252, - 0,0,15,0,60,0,0,31,0,60,0,0,30,0,60,0, - 0,62,0,60,0,0,60,0,63,255,248,124,0,63,255,248, - 120,0,63,255,248,248,0,63,255,248,22,40,120,26,2,247, - 1,255,128,7,255,224,15,255,240,31,0,248,62,0,120,60, - 0,60,120,0,60,120,0,60,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,112, - 0,0,120,0,60,120,0,60,60,0,60,60,0,120,31,0, - 248,15,255,240,7,255,224,3,255,128,0,48,0,0,48,0, - 0,62,0,0,63,128,0,63,192,0,1,192,0,1,192,0, - 1,192,0,255,128,0,254,0,19,41,123,24,3,0,30,0, - 0,15,0,0,7,0,0,3,128,0,3,128,0,1,192,0, - 0,224,0,0,96,0,0,0,0,0,0,0,0,0,0,255, - 255,192,255,255,192,255,255,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,255,255,192,255,255,192,255,255,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,255,255,224, - 255,255,224,255,255,224,255,255,224,19,41,123,24,3,0,0, - 30,0,0,60,0,0,56,0,0,120,0,0,240,0,0,224, - 0,1,192,0,1,128,0,0,0,0,0,0,0,0,0,0, - 255,255,192,255,255,192,255,255,192,255,255,192,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 255,255,192,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,255,255, - 224,255,255,224,255,255,224,255,255,224,19,41,123,24,3,0, - 1,224,0,3,240,0,7,240,0,7,120,0,15,56,0,14, - 28,0,28,28,0,24,14,0,0,0,0,0,0,0,0,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,255,255,192,255,255,192,255,255, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,255, - 255,224,255,255,224,255,255,224,255,255,224,19,39,117,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,192,255, - 255,192,255,255,192,255,255,192,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,255,255,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,255,255,224,255,255,224, - 255,255,224,255,255,224,8,41,41,10,255,0,240,120,56,28, - 30,14,7,3,0,0,0,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,7,41,41,10,3,0,30,30,60,56,112, - 112,224,192,0,0,0,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,12,41,82,10,255,0,15,0,31,0,31,128, - 63,128,57,192,112,224,96,224,224,112,0,0,0,0,0,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,12,39,78,11, - 0,0,240,240,240,240,240,240,240,240,0,0,0,0,0,0, - 0,0,0,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 26,30,120,28,0,0,31,255,0,0,31,255,224,0,31,255, - 248,0,31,255,252,0,30,0,254,0,30,0,63,0,30,0, - 31,0,30,0,15,128,30,0,7,128,30,0,7,128,30,0, - 3,192,30,0,3,192,30,0,3,192,30,0,3,192,255,252, - 3,192,255,252,3,192,255,252,3,192,30,0,3,192,30,0, - 3,192,30,0,3,192,30,0,7,128,30,0,7,128,30,0, - 15,128,30,0,31,0,30,0,63,0,30,0,254,0,31,255, - 252,0,31,255,248,0,31,255,224,0,31,255,0,0,22,39, - 117,28,3,0,0,131,0,3,243,0,7,255,0,7,62,0, - 6,8,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,60,252,0,60,254,0,60,254,0,60,255,0,60,255,0, - 60,255,128,60,247,128,60,247,192,60,243,192,60,243,224,60, - 241,224,60,241,240,60,240,240,60,240,248,60,240,120,60,240, - 124,60,240,60,60,240,62,60,240,30,60,240,31,60,240,15, - 60,240,15,188,240,7,188,240,3,252,240,3,252,240,1,252, - 240,1,252,240,0,252,240,0,252,26,41,164,30,2,0,1, - 224,0,0,0,240,0,0,0,120,0,0,0,56,0,0,0, - 28,0,0,0,28,0,0,0,14,0,0,0,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,1,255,224,0,3, - 255,240,0,15,255,252,0,31,255,254,0,31,0,62,0,62, - 0,31,0,60,0,15,0,120,0,7,128,120,0,7,128,112, - 0,3,128,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,112,0,3,128,120,0,7,128,120, - 0,7,128,120,0,15,128,60,0,15,0,62,0,31,0,31, - 128,126,0,15,255,252,0,7,255,248,0,3,255,240,0,0, - 255,192,0,26,41,164,30,2,0,0,1,224,0,0,3,192, - 0,0,7,128,0,0,7,0,0,0,15,0,0,0,14,0, - 0,0,28,0,0,0,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,1,255,224,0,3,255,240,0,15,255,252, - 0,31,255,254,0,31,0,62,0,62,0,31,0,60,0,15, - 0,120,0,7,128,120,0,7,128,112,0,3,128,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,112,0,3,128,120,0,7,128,120,0,7,128,120,0,15, - 128,60,0,15,0,62,0,31,0,31,128,126,0,15,255,252, - 0,7,255,248,0,3,255,240,0,0,255,192,0,26,41,164, - 30,2,0,0,30,0,0,0,63,0,0,0,63,0,0,0, - 127,128,0,0,115,128,0,0,225,192,0,0,192,224,0,1, - 192,96,0,0,0,0,0,0,0,0,0,0,0,0,0,1, - 255,224,0,3,255,240,0,15,255,252,0,31,255,254,0,31, - 0,62,0,62,0,31,0,60,0,15,0,120,0,7,128,120, - 0,7,128,112,0,3,128,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,112,0,3,128,120, - 0,7,128,120,0,7,128,120,0,15,128,60,0,15,0,62, - 0,31,0,31,128,126,0,15,255,252,0,7,255,248,0,3, - 255,240,0,0,255,192,0,26,39,156,30,2,0,0,32,96, - 0,0,252,224,0,0,255,224,0,1,207,192,0,1,129,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,1,255,224,0,3,255,240,0,15,255,252,0,31,255,254, - 0,31,0,62,0,62,0,31,0,60,0,15,0,120,0,7, - 128,120,0,7,128,112,0,3,128,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,240,0,3, - 192,240,0,3,192,240,0,3,192,240,0,3,192,112,0,3, - 128,120,0,7,128,120,0,7,128,120,0,15,128,60,0,15, - 0,62,0,31,0,31,128,126,0,15,255,252,0,7,255,248, - 0,3,255,240,0,0,255,192,0,26,39,156,30,2,0,0, - 240,240,0,0,240,240,0,0,240,240,0,0,240,240,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,1,255,224,0,3,255,240,0,15,255,252,0,31, - 255,254,0,31,0,62,0,62,0,31,0,60,0,15,0,120, - 0,7,128,120,0,7,128,112,0,3,128,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,240, - 0,3,192,240,0,3,192,240,0,3,192,240,0,3,192,112, - 0,3,128,120,0,7,128,120,0,7,128,120,0,15,128,60, - 0,15,0,62,0,31,0,31,128,126,0,15,255,252,0,7, - 255,248,0,3,255,240,0,0,255,192,0,22,22,66,40,9, - 1,96,0,24,240,0,60,120,0,120,56,0,112,28,0,224, - 14,1,192,7,3,128,3,135,0,1,206,0,0,252,0,0, - 120,0,0,120,0,0,252,0,1,206,0,3,135,0,7,3, - 128,14,1,192,28,0,224,56,0,112,112,0,56,96,0,24, - 64,0,8,26,38,152,30,2,252,0,0,1,0,0,0,3, - 128,0,0,3,192,0,0,7,128,0,255,199,128,3,255,255, - 0,15,255,255,0,31,255,254,0,31,0,62,0,62,0,127, - 0,124,0,127,0,120,0,255,128,120,1,247,128,240,1,227, - 128,240,3,195,192,240,7,195,192,240,7,131,192,240,15,3, - 192,240,31,3,192,240,30,3,192,240,60,3,192,240,124,3, - 192,240,248,3,192,112,240,3,192,121,240,7,128,123,224,7, - 128,127,192,15,128,63,192,15,0,63,128,31,0,31,128,126, - 0,31,255,252,0,31,255,248,0,63,255,240,0,124,255,192, - 0,120,0,0,0,240,0,0,0,112,0,0,0,32,0,0, - 0,23,41,123,29,3,0,3,192,0,1,192,0,1,224,0, - 0,240,0,0,112,0,0,56,0,0,24,0,0,28,0,0, - 0,0,0,0,0,0,0,0,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,120,0,60,120,0,60, - 124,0,124,62,0,248,63,255,248,31,255,240,15,255,224,3, - 255,128,23,41,123,29,3,0,0,7,128,0,7,0,0,15, - 0,0,30,0,0,28,0,0,56,0,0,48,0,0,112,0, - 0,0,0,0,0,0,0,0,0,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,120,0,60,120,0, - 60,124,0,124,62,0,248,63,255,248,31,255,240,15,255,224, - 3,255,128,23,41,123,29,3,0,0,124,0,0,124,0,0, - 254,0,0,238,0,1,199,0,1,199,0,3,131,128,7,1, - 128,0,0,0,0,0,0,0,0,0,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,120,0,60,120, - 0,60,124,0,124,62,0,248,63,255,248,31,255,240,15,255, - 224,3,255,128,23,38,114,29,3,0,3,195,192,3,195,192, - 3,195,192,3,195,192,0,0,0,0,0,0,0,0,0,0, - 0,0,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,120,0,60,120,0,60,124,0,124,62,0,248, - 63,255,248,31,255,240,15,255,224,3,255,128,24,41,123,26, - 1,0,0,3,192,0,7,128,0,7,0,0,15,0,0,14, - 0,0,28,0,0,24,0,0,48,0,0,0,0,0,0,0, - 0,0,0,248,0,15,248,0,31,124,0,30,124,0,60,62, - 0,124,30,0,120,31,0,248,15,0,240,15,129,224,7,129, - 224,3,195,192,3,227,192,1,231,128,1,247,0,0,255,0, - 0,254,0,0,126,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,19,30,90, - 24,3,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,255,248,0,255,255,0,255,255,128,255,255, - 192,240,15,192,240,3,224,240,1,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,3,224,240,15,192,255,255,192,255, - 255,128,255,255,0,255,248,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,20,30,90, - 22,2,0,3,248,0,15,254,0,63,255,0,124,15,0,248, - 7,128,240,7,128,240,7,128,240,7,128,240,15,0,240,31, - 0,240,62,0,240,124,0,240,248,0,240,240,0,240,240,0, - 240,248,0,240,126,0,240,63,0,240,31,192,240,15,224,240, - 3,224,240,1,240,240,0,240,240,0,240,243,192,240,243,192, - 240,241,224,240,241,241,224,240,255,224,240,63,128,18,31,93, - 23,2,0,7,128,0,7,128,0,3,192,0,1,192,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,0,0, - 0,0,0,0,15,254,0,63,255,0,62,15,128,120,7,128, - 120,3,192,0,3,192,0,3,192,3,255,192,15,255,192,63, - 255,192,126,3,192,120,3,192,240,3,192,240,3,192,240,7, - 192,240,7,192,248,15,192,124,63,192,63,251,192,31,227,192, - 18,32,96,23,2,0,0,60,0,0,60,0,0,120,0,0, - 240,0,0,224,0,1,192,0,1,128,0,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,15,254,0,63,255,0, - 62,15,128,120,7,128,120,3,192,0,3,192,0,3,192,3, - 255,192,15,255,192,63,255,192,126,3,192,120,3,192,240,3, - 192,240,3,192,240,7,192,240,7,192,248,15,192,124,63,192, - 63,251,192,31,227,192,18,32,96,23,2,0,1,224,0,3, - 240,0,3,240,0,7,184,0,7,60,0,14,28,0,12,14, - 0,28,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,30,90,23, - 2,0,7,134,0,15,206,0,15,254,0,28,124,0,24,16, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,243,192,18,30,90,23, - 2,0,30,30,0,30,30,0,30,30,0,30,30,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,254,0,63,255,0,62,15,128,120,7,128,120,3,192,0, - 3,192,0,3,192,3,255,192,15,255,192,63,255,192,126,3, - 192,120,3,192,240,3,192,240,3,192,240,7,192,240,7,192, - 248,15,192,124,63,192,63,251,192,31,227,192,18,34,102,23, - 2,0,1,224,0,3,240,0,6,24,0,12,12,0,12,12, - 0,12,12,0,12,12,0,6,24,0,3,240,0,1,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,15,254,0,63, - 255,0,62,15,128,120,7,128,120,3,192,0,3,192,0,3, - 192,3,255,192,15,255,192,63,255,192,126,3,192,120,3,192, - 240,3,192,240,3,192,240,7,192,240,7,192,248,15,192,124, - 63,192,63,251,192,31,227,192,32,20,80,36,2,1,15,248, - 31,240,63,254,63,248,124,30,120,60,120,7,112,30,120,7, - 224,14,0,3,224,15,0,3,192,15,0,127,255,255,31,255, - 255,255,63,255,255,255,126,3,192,0,120,3,192,0,240,3, - 192,0,240,3,192,15,240,7,224,14,240,7,224,30,248,14, - 112,30,126,62,124,124,63,252,63,248,31,240,15,240,17,30, - 90,21,2,247,15,252,0,31,254,0,62,31,0,120,15,128, - 120,7,128,240,7,128,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,7,128,112,7, - 128,120,7,128,120,15,0,62,31,0,31,254,0,15,252,0, - 1,128,0,1,128,0,1,240,0,1,252,0,1,254,0,0, - 14,0,0,14,0,0,14,0,7,252,0,7,240,0,18,32, - 96,22,2,0,30,0,0,15,0,0,7,0,0,3,128,0, - 3,192,0,1,192,0,0,224,0,0,96,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,252,0,31,254,0,62,31, - 0,60,7,128,120,3,128,112,3,192,240,3,192,240,3,192, - 255,255,192,255,255,192,255,255,192,240,0,0,240,0,0,240, - 0,0,112,3,192,120,7,128,56,7,128,62,31,0,31,254, - 0,7,252,0,18,32,96,22,2,0,0,30,0,0,60,0, - 0,120,0,0,112,0,0,224,0,0,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,31,254,0,62,31,0,60,7,128,120,3,128,112,3,192, - 240,3,192,240,3,192,255,255,192,255,255,192,255,255,192,240, - 0,0,240,0,0,240,0,0,112,3,192,120,7,128,56,7, - 128,62,31,0,31,254,0,7,252,0,18,32,96,22,2,0, - 1,224,0,3,240,0,3,240,0,7,248,0,7,56,0,14, - 28,0,12,12,0,28,14,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,31,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,7,128,56,7,128,62,31,0,31,254,0,7,252,0, - 18,30,90,22,2,0,30,30,0,30,30,0,30,30,0,30, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,31,254,0,62,15,0,60,7,128, - 120,3,128,112,3,192,240,3,192,240,3,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,112,3, - 192,120,3,128,60,7,128,62,15,0,31,254,0,7,252,0, - 8,32,32,10,255,0,240,120,56,28,30,14,7,3,0,0, - 0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,9,32,64,10,2,0,15,128,15,0, - 30,0,28,0,56,0,56,0,112,0,224,0,0,0,0,0, - 0,0,0,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0, - 120,0,120,0,120,0,120,0,120,0,120,0,12,32,64,10, - 255,0,15,0,31,128,31,128,59,192,57,192,112,224,224,96, - 192,112,0,0,0,0,0,0,0,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,12,30,60,10,255,0,240,240,240,240,240,240,240,240, - 0,0,0,0,0,0,0,0,0,0,0,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,20,30,90,24,2,0,16,1,0,60,7,0, - 30,31,0,7,252,0,3,240,0,7,240,0,62,120,0,120, - 60,0,96,30,0,0,15,0,7,255,128,31,255,192,63,15, - 192,60,3,192,120,1,224,120,1,224,240,1,224,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 1,224,120,1,224,120,3,224,60,3,192,63,15,128,31,255, - 0,7,254,0,18,30,90,24,3,0,7,14,0,15,204,0, - 31,252,0,28,248,0,24,16,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,243,254,0,247,255,0,254,31, - 128,248,7,128,248,7,128,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,20,32,96,24,2,0,15,0,0,7,128,0, - 3,128,0,1,192,0,1,192,0,0,224,0,0,112,0,0, - 48,0,0,0,0,0,0,0,0,0,0,0,0,0,7,252, - 0,15,255,0,63,15,128,60,3,192,120,3,224,120,1,224, - 240,1,224,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,1,224,120,1,224,120,3,224,60,3, - 192,63,15,128,15,255,0,7,254,0,20,32,96,24,2,0, - 0,30,0,0,30,0,0,60,0,0,56,0,0,112,0,0, - 96,0,0,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,0,0,0,7,252,0,15,255,0,63,15,128,60,3,192, - 120,3,224,120,1,224,240,1,224,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,1,224,120,1, - 224,120,3,224,60,3,192,63,15,128,15,255,0,7,254,0, - 20,32,96,24,2,0,0,240,0,1,248,0,1,248,0,3, - 188,0,3,156,0,7,14,0,6,6,0,12,7,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,3,135,0,7, - 230,0,15,254,0,14,124,0,12,8,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,20,30,90,24,2,0,15,15,0,15, - 15,0,15,15,0,15,15,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,7,252,0,15,255,0, - 63,15,128,60,3,192,120,3,224,120,1,224,240,1,224,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,1,224,120,1,224,120,3,224,60,3,192,63,15,128, - 15,255,0,7,254,0,24,19,57,40,8,2,0,16,0,0, - 56,0,0,124,0,0,124,0,0,124,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,56,0,0,124,0,0,124,0,0, - 124,0,0,56,0,21,26,78,24,1,254,0,0,56,0,0, - 120,0,0,112,3,255,224,7,255,192,31,135,192,30,3,224, - 60,7,240,60,15,240,120,14,240,120,28,120,120,56,120,120, - 120,120,120,112,120,120,224,120,121,192,120,123,192,240,63,128, - 240,63,1,240,30,1,224,15,135,192,31,255,128,59,255,0, - 112,0,0,240,0,0,96,0,0,18,32,96,24,3,0,30, - 0,0,15,0,0,7,0,0,3,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,0,0,0,0,0,0,0,0, - 0,0,0,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,7,192,120,7,192,124,31,192,63,251,192,31,243,192,18, - 32,96,24,3,0,0,62,0,0,60,0,0,120,0,0,112, - 0,0,224,0,0,224,0,1,192,0,3,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,7,192,120,7,192,124,31,192,63, - 251,192,31,243,192,18,32,96,24,3,0,1,224,0,3,240, - 0,3,240,0,7,120,0,7,56,0,14,28,0,28,12,0, - 24,14,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 7,192,124,31,192,63,251,192,31,243,192,18,30,90,24,3, - 0,30,30,0,30,30,0,30,30,0,30,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,40,120,21,1, - 248,0,15,0,0,30,0,0,28,0,0,56,0,0,112,0, - 0,112,0,0,224,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,240,1,224,120,1,224,120,1, - 192,60,3,192,60,3,192,62,7,128,30,7,128,30,7,0, - 15,15,0,15,15,0,15,158,0,7,158,0,7,156,0,3, - 252,0,3,252,0,1,248,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,224,0,1,224,0,33,224,0,243,192,0, - 127,192,0,127,128,0,31,0,0,19,38,114,24,3,248,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,243,254,0, - 247,255,0,254,15,128,252,7,192,248,3,192,248,3,192,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,248,3,192,248,3,192,252,7,192, - 254,15,128,247,255,0,243,254,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,20,38,114,22,1,248,15,15,0,15,15,0,15,15,0, - 15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,240,0,240,248,0,224,120,1,224,120,1, - 224,60,3,192,60,3,192,62,3,128,30,7,128,30,7,128, - 15,15,0,15,15,0,7,143,0,7,158,0,7,222,0,3, - 252,0,3,252,0,1,252,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 30 - Calculated Max Values w=24 h=33 x= 8 y=15 dx=40 dy= 0 ascent=31 len=90 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =30 descent= 0 - X Font ascent =30 descent= 0 - Max Font ascent =31 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30n[1201] U8G_FONT_SECTION("u8g_font_fur30n") = { - 0,54,54,253,245,30,0,0,0,0,42,58,0,31,251,30, - 0,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--40-400-72-72-P-189-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 30, '1' Height: 30 - Calculated Max Values w=37 h=43 x=10 y=25 dx=40 dy= 0 ascent=33 len=185 - Font Bounding box w=54 h=54 x=-3 y=-11 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-7 - X Font ascent =31 descent=-8 - Max Font ascent =33 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur30r[7380] U8G_FONT_SECTION("u8g_font_fur30r") = { - 0,54,54,253,245,30,9,94,20,223,32,127,249,33,245,31, - 248,0,0,0,12,0,0,4,30,30,14,5,0,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,0,0,0,240,240,240,240,12,12,24,18,3, - 18,240,240,240,240,240,240,240,240,240,240,240,240,240,112,224, - 112,224,112,96,112,96,112,96,96,26,30,120,30,2,0,0, - 28,14,0,0,28,28,0,0,28,28,0,0,28,28,0,0, - 56,24,0,0,56,56,0,0,56,56,0,0,112,56,0,0, - 112,112,0,31,255,255,192,31,255,255,128,31,255,255,128,0, - 224,224,0,0,224,224,0,1,192,224,0,1,193,192,0,1, - 193,192,0,127,255,254,0,255,255,254,0,255,255,254,0,3, - 3,128,0,7,7,0,0,7,7,0,0,7,7,0,0,14, - 7,0,0,14,14,0,0,14,14,0,0,14,14,0,0,28, - 28,0,0,28,28,0,0,20,37,111,22,1,252,0,96,0, - 0,96,0,0,96,0,3,252,0,15,254,0,63,255,0,63, - 255,128,124,103,128,120,99,192,240,99,192,240,99,192,240,96, - 0,240,96,0,240,96,0,120,96,0,127,96,0,63,240,0, - 31,254,0,15,255,128,1,255,192,0,111,224,0,97,224,0, - 96,240,0,96,240,0,96,240,240,96,240,240,96,240,240,96, - 240,120,96,240,124,97,224,63,255,192,31,255,128,15,255,0, - 0,96,0,0,96,0,0,96,0,0,96,0,33,31,155,37, - 2,0,0,0,0,224,0,15,192,0,192,0,31,240,1,192, - 0,63,248,1,128,0,120,60,3,0,0,240,60,7,0,0, - 240,30,6,0,0,240,30,14,0,0,240,30,12,0,0,240, - 30,28,0,0,240,30,24,0,0,240,28,56,0,0,112,60, - 48,0,0,120,124,112,0,0,63,248,224,0,0,31,240,192, - 96,0,3,129,195,252,0,0,1,135,254,0,0,3,143,15, - 0,0,3,14,7,0,0,7,30,7,128,0,6,30,7,128, - 0,14,30,7,128,0,28,30,7,128,0,28,30,7,128,0, - 56,30,7,128,0,56,30,7,128,0,112,15,15,0,0,96, - 15,254,0,0,224,7,252,0,0,192,1,248,0,27,30,120, - 30,2,1,3,254,0,0,7,255,0,0,15,143,128,0,15, - 3,192,0,30,3,192,0,30,3,192,0,30,3,192,0,30, - 3,192,0,31,7,128,0,15,15,128,0,15,191,0,0,7, - 252,0,0,3,248,0,0,7,224,15,0,15,240,15,0,63, - 248,15,0,124,124,15,0,120,62,15,0,248,31,15,0,240, - 15,142,0,240,7,206,0,240,3,254,0,240,1,254,0,240, - 0,252,0,248,0,124,0,124,0,126,0,126,1,255,0,63, - 255,255,128,31,255,207,192,7,255,3,224,4,12,12,15,5, - 18,240,240,240,240,112,112,112,112,112,112,112,112,7,36,36, - 15,4,251,14,14,28,28,60,56,56,120,120,120,112,112,240, - 240,240,240,240,240,240,240,240,240,240,240,112,112,120,120,120, - 56,56,60,28,28,14,14,7,36,36,14,4,251,224,224,96, - 112,112,120,56,56,60,60,60,28,28,28,30,30,30,30,30, - 30,30,30,28,28,60,60,60,60,56,56,120,112,112,224,224, - 224,16,15,30,26,5,15,12,48,28,56,14,112,14,112,7, - 224,3,192,253,191,255,255,243,207,3,192,6,96,14,112,30, - 120,28,56,12,48,24,25,75,40,8,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,255,255,255,255, - 255,255,255,255,255,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,7,10,10,11,2,251,62,60,60,124, - 120,120,112,112,224,224,10,3,6,14,2,8,255,192,255,192, - 255,192,4,5,5,11,4,0,240,240,240,240,240,12,33,66, - 16,2,254,0,112,0,112,0,96,0,224,0,224,0,224,0, - 192,1,192,1,192,1,128,3,128,3,128,3,128,7,0,7, - 0,7,0,6,0,14,0,14,0,14,0,28,0,28,0,28, - 0,24,0,56,0,56,0,56,0,112,0,112,0,112,0,96, - 0,224,0,224,0,18,30,90,22,2,1,7,248,0,31,254, - 0,63,255,0,60,15,0,120,7,128,120,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,112,3,192,112,3,128, - 120,7,128,120,7,128,56,7,0,60,15,0,31,254,0,15, - 254,0,7,248,0,10,30,60,22,5,0,7,192,15,192,31, - 192,63,192,127,192,251,192,243,192,195,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,17,30,90,22,2,1,15,248,0, - 31,252,0,63,254,0,124,15,0,120,7,0,120,7,128,120, - 7,128,240,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,31,0,0,30,0,0,62,0,0,124,0,0,248,0, - 0,248,0,1,240,0,3,224,0,7,192,0,15,128,0,31, - 0,0,31,0,0,62,0,0,124,0,0,248,0,0,255,255, - 128,255,255,128,255,255,128,18,30,90,22,2,1,7,248,0, - 31,254,0,62,31,0,60,7,128,124,3,128,120,3,192,120, - 3,192,120,3,192,0,3,192,0,3,128,0,7,128,0,15, - 0,0,62,0,3,252,0,3,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,240, - 3,192,240,3,192,248,3,192,120,7,128,124,15,128,62,31, - 0,31,254,0,15,248,0,20,30,90,22,1,0,0,15,128, - 0,31,128,0,31,128,0,63,128,0,127,128,0,127,128,0, - 247,128,1,231,128,1,231,128,3,199,128,3,135,128,7,135, - 128,15,7,128,14,7,128,30,7,128,60,7,128,60,7,128, - 120,7,128,240,7,128,240,7,128,255,255,240,255,255,240,255, - 255,240,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,18,30,90,22,2,0,127,255,0, - 127,255,0,127,255,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,96,0,123,252, - 0,127,254,0,126,31,0,124,7,128,120,7,128,112,3,128, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,240,3,192,240,7,128,240,7,128,120,15,0,127,254, - 0,31,252,0,15,248,0,19,30,90,22,2,1,3,252,0, - 15,255,0,31,255,0,63,15,128,62,7,128,124,3,192,120, - 3,192,120,3,192,240,0,0,240,0,0,240,0,0,240,0, - 0,241,252,0,243,255,0,247,255,128,254,7,128,252,3,192, - 252,3,192,248,1,192,248,1,224,248,1,224,248,1,224,248, - 1,224,248,1,224,120,1,192,124,3,192,60,7,128,31,15, - 128,15,255,0,7,252,0,18,30,90,22,2,0,255,255,192, - 255,255,192,255,255,192,0,3,192,0,3,192,0,7,128,0, - 7,128,0,7,128,0,15,0,0,15,0,0,31,0,0,30, - 0,0,30,0,0,60,0,0,60,0,0,60,0,0,120,0, - 0,120,0,0,248,0,0,240,0,0,240,0,1,240,0,1, - 224,0,1,224,0,3,192,0,3,192,0,7,192,0,7,128, - 0,7,128,0,15,128,0,19,30,90,22,2,1,7,252,0, - 31,254,0,62,15,128,60,7,128,120,3,192,120,3,192,120, - 3,192,120,3,192,120,3,192,120,3,192,56,3,128,60,7, - 128,30,15,0,15,254,0,7,252,0,31,254,0,60,7,128, - 120,3,128,112,1,192,240,1,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,120,3,192,120,3,192,62,15, - 128,31,255,0,7,252,0,19,30,90,22,2,1,7,252,0, - 31,255,0,62,31,128,120,7,128,120,3,192,112,3,192,240, - 3,192,240,3,224,240,1,224,240,1,224,240,3,224,240,3, - 224,240,3,224,112,3,224,120,7,224,60,15,224,63,253,224, - 31,249,224,7,241,224,0,1,192,0,1,192,0,1,192,0, - 3,192,112,3,192,112,3,128,120,7,128,56,15,0,62,31, - 0,31,254,0,15,248,0,4,20,20,11,4,0,240,240,240, - 240,240,0,0,0,0,0,0,0,0,0,0,240,240,240,240, - 240,6,26,26,11,2,250,60,60,60,60,60,0,0,0,0, - 0,0,0,0,0,0,0,60,60,60,56,120,112,112,112,224, - 224,24,21,63,40,8,2,0,0,1,0,0,15,0,0,63, - 0,1,252,0,7,224,0,63,0,1,252,0,7,224,0,63, - 0,0,252,0,0,224,0,0,248,0,0,126,0,0,15,192, - 0,3,248,0,0,126,0,0,31,192,0,3,240,0,0,126, - 0,0,31,0,0,3,24,10,30,40,8,7,255,255,255,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,255,255,255,24,21,63,40,8,2, - 128,0,0,240,0,0,252,0,0,63,128,0,7,224,0,0, - 252,0,0,63,0,0,7,224,0,0,252,0,0,63,0,0, - 7,0,0,31,0,0,126,0,3,240,0,31,192,0,126,0, - 3,248,0,15,192,0,126,0,0,248,0,0,192,0,0,18, - 30,90,21,1,1,15,248,0,31,254,0,63,255,0,126,127, - 128,248,7,128,112,3,192,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,15,0,0,30,0,0,60,0,0, - 120,0,1,240,0,1,224,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,0,0,0,0,0,0, - 0,0,0,3,192,0,3,192,0,3,192,0,3,192,0,35, - 37,185,39,2,249,0,7,252,0,0,0,63,255,128,0,0, - 255,255,240,0,1,255,255,248,0,7,248,3,252,0,15,224, - 0,126,0,15,128,0,31,0,31,0,0,15,128,62,0,0, - 7,128,60,0,0,7,192,120,7,231,131,192,120,15,247,131, - 192,112,31,255,129,224,240,62,31,129,224,240,60,15,129,224, - 240,120,7,129,224,240,120,7,129,224,240,120,7,129,224,240, - 120,7,129,224,240,120,7,129,224,240,120,7,129,224,240,120, - 7,129,192,240,120,7,129,192,112,56,15,131,192,120,60,15, - 135,128,120,30,27,255,0,124,31,251,255,0,60,15,240,252, - 0,62,1,128,48,0,31,0,0,0,0,31,128,0,0,0, - 15,224,0,0,0,7,248,0,128,0,3,255,255,128,0,0, - 255,255,128,0,0,63,255,128,0,0,7,254,0,0,28,30, - 120,30,1,0,0,15,0,0,0,31,128,0,0,31,128,0, - 0,63,192,0,0,63,192,0,0,127,192,0,0,121,224,0, - 0,121,224,0,0,241,240,0,0,240,240,0,1,240,240,0, - 1,224,248,0,1,224,120,0,3,224,124,0,3,192,60,0, - 7,192,60,0,7,128,62,0,7,128,30,0,15,128,31,0, - 15,255,255,0,31,255,255,128,31,255,255,128,30,0,7,128, - 60,0,3,192,60,0,3,192,124,0,3,224,120,0,1,224, - 120,0,1,224,240,0,0,240,240,0,0,240,21,30,90,26, - 3,0,255,254,0,255,255,128,255,255,192,255,255,224,240,7, - 224,240,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,224,240,1,224,240,7,192,255,255,128,255,255,0,255, - 255,192,240,3,224,240,0,240,240,0,112,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,248,240,1,248,240,7,240, - 255,255,224,255,255,224,255,255,128,255,254,0,22,30,90,26, - 2,1,1,255,128,7,255,224,15,255,240,31,0,248,62,0, - 120,60,0,60,120,0,60,120,0,60,120,0,0,112,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,112,0, - 0,112,0,0,120,0,60,120,0,60,60,0,60,60,0,120, - 31,0,248,15,255,240,7,255,224,1,255,128,23,30,90,28, - 3,0,255,248,0,255,255,0,255,255,192,255,255,224,240,15, - 240,240,1,248,240,0,248,240,0,124,240,0,60,240,0,60, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 60,240,0,60,240,0,124,240,0,248,240,1,240,240,7,240, - 255,255,224,255,255,192,255,255,0,255,248,0,19,30,90,24, - 3,0,255,255,192,255,255,192,255,255,192,255,255,192,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,192,255,255,192,255, - 255,192,255,255,192,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 255,255,224,255,255,224,255,255,224,255,255,224,17,30,90,23, - 3,0,255,255,128,255,255,128,255,255,128,255,255,128,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,255,255,0,255,255,0,255, - 255,0,255,255,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,25,30,120,30, - 2,1,0,255,224,0,3,255,248,0,7,255,252,0,15,255, - 254,0,31,128,63,0,62,0,15,0,60,0,7,128,120,0, - 7,128,120,0,0,0,112,0,0,0,240,0,0,0,240,0, - 0,0,240,0,0,0,240,0,0,0,240,3,255,128,240,3, - 255,128,240,3,255,128,240,3,255,128,240,0,7,128,240,0, - 7,128,120,0,7,128,120,0,7,128,124,0,7,128,62,0, - 7,128,62,0,7,128,31,128,7,128,15,255,255,128,7,255, - 255,128,3,255,255,0,0,255,248,0,22,30,90,28,3,0, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,255,255,252,255,255,252,255,255,252, - 255,255,252,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,4,30,30,10,3,0, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,17,30, - 90,22,2,0,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,0,7,128,0, - 7,128,0,7,128,0,7,128,0,7,128,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,240,7,128,240,7,128,240,15,128,120, - 31,0,127,255,0,63,254,0,31,252,0,15,240,0,22,30, - 90,26,3,0,240,1,240,240,3,224,240,7,192,240,15,128, - 240,31,0,240,30,0,240,60,0,240,124,0,240,248,0,241, - 240,0,243,224,0,247,192,0,255,128,0,255,128,0,255,192, - 0,247,192,0,243,224,0,243,240,0,241,248,0,240,252,0, - 240,124,0,240,62,0,240,31,0,240,31,128,240,15,192,240, - 7,192,240,3,224,240,1,240,240,1,248,240,0,252,17,30, - 90,21,3,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,30,30, - 120,36,3,0,252,0,0,252,254,0,1,252,254,0,1,252, - 254,0,1,252,255,0,3,252,255,0,3,252,247,128,7,188, - 247,128,7,188,247,128,7,188,243,192,15,60,243,192,15,60, - 243,192,14,60,241,224,30,60,241,224,30,60,240,224,28,60, - 240,240,60,60,240,240,60,60,240,120,120,60,240,120,120,60, - 240,120,120,60,240,60,240,60,240,60,240,60,240,28,224,60, - 240,31,224,60,240,31,224,60,240,15,192,60,240,15,192,60, - 240,15,192,60,240,7,128,60,240,7,128,60,22,30,90,28, - 3,0,252,0,60,252,0,60,254,0,60,254,0,60,255,0, - 60,255,0,60,255,128,60,247,128,60,247,192,60,243,192,60, - 243,224,60,241,224,60,241,240,60,240,240,60,240,248,60,240, - 120,60,240,124,60,240,60,60,240,62,60,240,30,60,240,31, - 60,240,15,60,240,15,188,240,7,188,240,3,252,240,3,252, - 240,1,252,240,1,252,240,0,252,240,0,252,26,30,120,30, - 2,1,1,255,224,0,3,255,240,0,15,255,252,0,31,255, - 254,0,31,0,62,0,62,0,31,0,60,0,15,0,120,0, - 7,128,120,0,7,128,112,0,3,128,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,240,0, - 3,192,240,0,3,192,240,0,3,192,240,0,3,192,112,0, - 3,128,120,0,7,128,120,0,7,128,120,0,15,128,60,0, - 15,0,62,0,31,0,31,128,126,0,15,255,252,0,7,255, - 248,0,3,255,240,0,0,255,192,0,19,30,90,24,3,0, - 255,248,0,255,254,0,255,255,128,255,255,192,240,15,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,240,15,192,255,255,192,255,255,128, - 255,254,0,255,248,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,28,30,120,31,2,1, - 0,255,192,0,3,255,240,0,15,255,252,0,31,255,254,0, - 31,0,62,0,62,0,31,0,60,0,15,128,120,0,7,128, - 120,0,7,128,112,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,240,0,3,192, - 240,0,3,192,240,0,3,192,240,0,3,192,112,0,3,128, - 120,0,7,128,120,0,7,128,120,0,15,0,60,0,15,0, - 62,0,30,0,31,128,126,0,15,255,255,240,7,255,255,240, - 3,255,255,240,0,255,255,240,20,30,90,25,3,0,255,252, - 0,255,255,0,255,255,192,255,255,224,240,7,224,240,1,224, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 1,224,240,7,192,255,255,128,255,255,0,255,255,0,255,255, - 128,240,7,192,240,3,192,240,3,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,0,224,240,0,224,240,0,240,240, - 0,240,240,0,240,240,0,112,22,30,90,26,2,1,3,255, - 0,15,255,192,63,255,224,63,255,240,124,0,240,120,0,120, - 240,0,120,240,0,120,240,0,0,240,0,0,120,0,0,124, - 0,0,63,128,0,31,252,0,15,255,128,0,255,224,0,7, - 240,0,0,248,0,0,120,0,0,56,0,0,60,240,0,60, - 240,0,60,240,0,60,120,0,120,124,0,248,63,255,240,63, - 255,240,31,255,192,7,255,0,23,30,90,25,1,0,255,255, - 254,255,255,254,255,255,254,255,255,254,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,23,30,90,29,3,0,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 240,0,30,240,0,30,240,0,30,240,0,30,240,0,30,240, - 0,30,240,0,30,240,0,30,240,0,30,240,0,30,240,0, - 30,240,0,30,240,0,30,240,0,30,240,0,30,240,0,30, - 120,0,60,120,0,60,124,0,124,62,0,248,63,255,248,31, - 255,240,15,255,224,3,255,128,24,30,90,26,1,0,240,0, - 15,248,0,15,248,0,31,120,0,30,124,0,30,124,0,62, - 60,0,60,62,0,60,30,0,124,30,0,120,31,0,120,15, - 0,248,15,0,240,15,0,240,7,129,240,7,129,224,7,129, - 224,3,195,224,3,195,192,3,195,192,1,231,192,1,231,128, - 1,231,128,0,255,128,0,255,0,0,255,0,0,126,0,0, - 126,0,0,126,0,0,60,0,37,30,150,39,1,0,240,0, - 248,0,120,240,0,248,0,120,240,1,248,0,248,120,1,252, - 0,240,120,1,252,0,240,120,1,220,0,240,124,3,222,1, - 224,60,3,222,1,224,60,3,222,1,224,60,3,142,1,224, - 30,7,143,3,192,30,7,143,3,192,30,7,15,3,192,30, - 7,7,3,128,15,15,7,135,128,15,15,7,135,128,15,14, - 3,135,128,7,14,3,135,0,7,158,3,207,0,7,158,3, - 207,0,7,156,1,206,0,3,156,1,222,0,3,252,1,254, - 0,3,252,1,254,0,1,248,0,252,0,1,248,0,252,0, - 1,248,0,252,0,1,240,0,248,0,0,240,0,120,0,0, - 240,0,120,0,26,30,120,28,1,0,62,0,15,0,62,0, - 31,0,31,0,30,0,15,128,60,0,15,128,124,0,7,192, - 120,0,3,224,240,0,3,224,240,0,1,241,224,0,0,243, - 224,0,0,251,192,0,0,127,128,0,0,63,128,0,0,63, - 0,0,0,63,0,0,0,63,128,0,0,127,128,0,0,247, - 192,0,0,243,224,0,1,227,224,0,3,225,240,0,3,192, - 248,0,7,128,248,0,15,128,124,0,15,0,62,0,31,0, - 62,0,62,0,31,0,60,0,31,0,124,0,15,128,248,0, - 7,192,24,30,90,26,1,0,248,0,15,248,0,31,124,0, - 30,124,0,60,62,0,124,30,0,120,31,0,248,15,0,240, - 15,129,224,7,129,224,3,195,192,3,227,192,1,231,128,1, - 247,0,0,255,0,0,254,0,0,126,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,21,30,90,25,2,0,127,255,248,127,255,248,127,255, - 248,127,255,248,0,0,248,0,1,248,0,1,240,0,3,224, - 0,7,192,0,15,128,0,31,128,0,31,0,0,62,0,0, - 124,0,0,252,0,0,248,0,1,240,0,3,224,0,7,192, - 0,15,192,0,15,128,0,31,0,0,62,0,0,126,0,0, - 252,0,0,248,0,0,255,255,248,255,255,248,255,255,248,255, - 255,248,8,38,38,16,4,248,255,255,255,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,255,255,255,12,33, - 66,16,2,254,224,0,224,0,224,0,96,0,112,0,112,0, - 48,0,56,0,56,0,56,0,28,0,28,0,28,0,12,0, - 14,0,14,0,6,0,7,0,7,0,7,0,3,0,3,128, - 3,128,1,128,1,192,1,192,1,192,0,192,0,224,0,224, - 0,96,0,112,0,112,8,38,38,16,4,248,255,255,255,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,255, - 255,255,20,25,75,40,10,0,0,96,0,0,240,0,0,240, - 0,0,240,0,1,248,0,1,152,0,3,156,0,3,12,0, - 3,12,0,7,14,0,6,6,0,6,6,0,14,7,0,12, - 3,0,28,3,128,28,1,128,24,1,128,56,1,192,48,0, - 192,48,0,192,112,0,224,96,0,96,224,0,112,224,0,112, - 192,0,48,20,3,9,20,0,251,255,255,240,255,255,240,255, - 255,240,8,7,7,9,255,25,240,120,56,28,14,14,7,18, - 20,60,23,2,1,15,254,0,63,255,0,62,15,128,120,7, - 128,120,3,192,0,3,192,0,3,192,3,255,192,15,255,192, - 63,255,192,126,3,192,120,3,192,240,3,192,240,3,192,240, - 7,192,240,7,192,248,15,192,124,63,192,63,251,192,31,227, - 192,19,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,252,0,247,255,0,255,15,128,252,7, - 128,248,3,192,248,3,192,240,1,192,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,192,240,3,192,240, - 3,192,248,7,128,252,7,128,254,31,0,247,254,0,243,252, - 0,17,20,60,21,2,1,15,252,0,31,254,0,62,31,0, - 120,15,128,120,7,128,240,7,128,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,7, - 128,112,7,128,120,7,128,120,15,0,62,31,0,31,254,0, - 15,252,0,19,30,90,24,2,0,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,15,249,224,31,253,224,62,31,224, - 60,7,224,120,7,224,120,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,120,3,224,120,3,224,60,7,224,31,15,224,15,255,224, - 7,249,224,18,20,60,22,2,1,7,252,0,31,254,0,62, - 31,0,60,7,128,120,3,128,112,3,192,240,3,192,240,3, - 192,255,255,192,255,255,192,255,255,192,240,0,0,240,0,0, - 240,0,0,112,3,192,120,7,128,56,7,128,62,31,0,31, - 254,0,7,252,0,13,30,60,14,1,0,1,248,3,248,7, - 248,15,128,15,0,15,0,15,0,15,0,15,0,15,0,255, - 240,255,240,255,240,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,19,28,84,24,2,249,15,249,224, - 31,253,224,62,31,224,120,7,224,120,3,224,112,3,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,3,224,120,3,224,124,7,224,62,15,224, - 31,253,224,15,249,224,0,129,224,0,1,224,0,3,192,120, - 3,192,120,3,192,60,7,128,63,255,0,15,254,0,3,248, - 0,18,30,90,24,3,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,243,254,0,247,255,0,254,31,128,248,7, - 128,240,7,128,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,4,30,30,8,2,0,240,240,240,240,0,0,0,0,0, - 0,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,7,38,38,11,2,248,30,30,30,30,0, - 0,0,0,0,0,30,30,30,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,254,252, - 248,16,30,60,20,3,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,30,240,62,240, - 124,240,248,241,240,243,224,247,192,255,128,255,0,255,0,247, - 128,247,192,243,224,241,240,240,240,240,248,240,124,240,62,240, - 30,240,31,4,30,30,10,3,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,30,20,80,36,3,1,243,252,31, - 224,247,254,63,240,254,31,112,248,252,15,224,120,248,7,192, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,240,7,128, - 60,240,7,128,60,240,7,128,60,240,7,128,60,18,20,60, - 24,3,1,243,254,0,247,255,0,254,31,128,248,7,128,248, - 7,128,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,20, - 20,60,24,2,1,7,252,0,15,255,0,63,15,128,60,3, - 192,120,3,224,120,1,224,240,1,224,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,1,224,120, - 1,224,120,3,224,60,3,192,63,15,128,15,255,0,7,254, - 0,19,28,84,24,3,249,243,254,0,247,255,0,254,15,128, - 252,7,192,248,3,192,248,3,192,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,248,3,192,248,3,192,252,7,192,254,15,128,247,255,0, - 243,254,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,19,28,84,24,2, - 249,15,249,224,31,253,224,62,15,224,124,7,224,120,3,224, - 120,3,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,3,224,120,3, - 224,124,7,224,62,15,224,31,253,224,15,249,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,11,20,40,15,3,0,243,224,247,224,255, - 224,254,0,248,0,248,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,16,20,40,20,2,1,31,248,63,254,124,62,248, - 31,240,15,240,0,240,0,124,0,127,192,63,248,15,254,0, - 126,0,31,0,15,240,15,240,15,240,31,124,62,127,252,31, - 248,12,25,50,14,1,1,14,0,30,0,30,0,30,0,30, - 0,255,240,255,240,255,240,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,15,0,15,240,7,240,18,20,60,24,3,0,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,7,192,120, - 15,192,126,31,192,63,251,192,31,243,192,20,20,60,21,1, - 0,240,0,240,240,1,224,120,1,224,120,1,192,124,3,192, - 60,3,192,60,7,128,30,7,128,30,7,0,15,15,0,15, - 14,0,15,14,0,7,158,0,7,156,0,3,252,0,3,248, - 0,3,248,0,1,248,0,1,240,0,0,240,0,31,20,80, - 33,1,0,240,7,192,30,240,15,192,28,240,15,192,60,120, - 15,224,60,120,30,224,56,120,30,224,120,56,28,240,120,60, - 28,112,112,60,60,112,112,28,56,120,240,30,56,56,224,30, - 120,56,224,14,112,57,224,15,112,29,192,15,240,29,192,7, - 224,31,192,7,224,31,128,7,224,15,128,3,192,15,128,3, - 192,15,0,20,20,60,22,1,0,120,1,224,60,3,192,62, - 3,192,31,7,128,15,15,0,7,158,0,7,222,0,3,252, - 0,1,248,0,0,240,0,1,248,0,3,252,0,3,188,0, - 7,158,0,15,31,0,30,15,128,62,7,128,60,3,192,120, - 3,224,240,1,240,20,28,84,21,1,248,240,0,240,240,1, - 224,120,1,224,120,1,192,60,3,192,60,3,192,62,7,128, - 30,7,128,30,7,128,15,15,0,15,15,0,15,158,0,7, - 158,0,7,158,0,3,252,0,3,252,0,1,248,0,1,248, - 0,1,248,0,0,240,0,0,240,0,0,224,0,1,224,0, - 1,224,0,1,192,0,3,192,0,3,128,0,7,128,0,15, - 20,40,19,2,0,127,254,127,254,127,254,0,62,0,124,0, - 120,0,240,1,240,3,224,3,192,7,128,15,128,31,0,30, - 0,60,0,124,0,248,0,255,254,255,254,255,254,13,41,82, - 19,3,246,0,24,1,248,3,248,3,224,7,128,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,7,0,7, - 0,7,0,15,0,31,0,62,0,252,0,248,0,252,0,126, - 0,30,0,15,0,15,0,7,0,7,0,7,0,7,128,7, - 128,7,0,7,0,7,0,7,0,7,128,7,128,3,192,3, - 248,1,248,0,120,2,43,43,14,6,245,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,41,82,19,3,246,192,0,252,0, - 254,0,30,0,15,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,128,7,128,7,128,7,128,7,128,7,128,3,192, - 3,224,1,248,0,248,1,248,1,240,3,192,3,192,7,128, - 7,128,7,128,7,128,7,128,7,128,7,0,7,0,7,0, - 7,0,7,0,15,0,31,0,254,0,252,0,240,0,21,5, - 15,21,0,8,2,0,56,31,240,120,63,255,240,120,127,224, - 240,15,128,255}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--48-480-72-72-P-226-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 35 - Calculated Max Values w=29 h=39 x=10 y=16 dx=49 dy= 0 ascent=36 len=116 - Font Bounding box w=65 h=64 x=-4 y=-13 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =35 descent= 0 - X Font ascent =35 descent= 0 - Max Font ascent =36 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur35n[1447] U8G_FONT_SECTION("u8g_font_fur35n") = { - 0,65,64,252,243,35,0,0,0,0,42,58,0,36,250,35, - 0,19,19,57,31,6,16,6,12,0,30,15,0,15,30,0, - 15,30,0,7,28,0,3,184,0,1,176,0,193,240,96,255, - 255,224,255,255,224,248,227,224,1,240,0,3,184,0,7,188, - 0,7,28,0,15,30,0,30,15,0,14,14,0,2,8,0, - 29,29,116,49,10,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,255,255,255,248,255,255, - 255,248,255,255,255,248,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7, - 0,0,0,7,0,0,0,7,0,0,9,12,24,13,2,250, - 31,128,31,0,31,0,62,0,62,0,62,0,60,0,124,0, - 120,0,120,0,112,0,240,0,12,4,8,16,2,10,255,240, - 255,240,255,240,255,240,5,6,6,13,5,0,248,248,248,248, - 248,248,15,39,78,19,2,253,0,14,0,30,0,28,0,28, - 0,60,0,56,0,56,0,120,0,112,0,112,0,112,0,240, - 0,224,0,224,1,224,1,192,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,15,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,56,0,120,0, - 112,0,112,0,240,0,22,35,105,27,2,1,3,255,0,7, - 255,128,31,255,224,31,255,224,62,3,240,62,1,240,124,0, - 248,120,0,248,120,0,120,248,0,120,248,0,124,248,0,124, - 248,0,124,248,0,124,248,0,124,248,0,124,248,0,124,248, - 0,124,248,0,124,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,120,0,124,120,0,120,120,0,120,124,0,248, - 60,0,248,62,1,240,63,3,240,31,255,224,15,255,192,7, - 255,128,1,255,0,12,35,70,27,7,0,3,240,7,240,15, - 240,31,240,127,240,255,240,253,240,241,240,193,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,21,35,105,27,3,1,3,255,0,15,255,128,31,255,192, - 63,255,224,63,1,240,126,0,240,124,0,248,124,0,248,124, - 0,248,124,0,248,0,0,248,0,0,248,0,0,240,0,1, - 240,0,3,224,0,7,224,0,7,192,0,15,128,0,31,128, - 0,63,0,0,126,0,0,252,0,1,248,0,3,240,0,7, - 224,0,15,192,0,31,192,0,31,128,0,63,0,0,126,0, - 0,252,0,0,255,255,248,255,255,248,255,255,248,255,255,248, - 22,35,105,27,2,1,3,255,0,15,255,192,31,255,224,31, - 255,240,63,1,248,62,0,248,124,0,120,124,0,120,124,0, - 124,0,0,120,0,0,120,0,0,248,0,1,240,0,15,224, - 0,255,192,0,255,0,0,255,128,0,255,192,0,15,224,0, - 1,240,0,0,248,0,0,248,0,0,124,0,0,124,0,0, - 124,248,0,124,248,0,124,252,0,124,252,0,120,124,0,248, - 127,3,248,63,255,240,31,255,224,15,255,192,3,255,0,24, - 35,105,27,1,0,0,3,240,0,7,240,0,7,240,0,15, - 240,0,31,240,0,63,240,0,61,240,0,121,240,0,249,240, - 0,241,240,1,225,240,3,225,240,3,193,240,7,129,240,15, - 129,240,15,1,240,30,1,240,62,1,240,60,1,240,120,1, - 240,248,1,240,240,1,240,255,255,255,255,255,255,255,255,255, - 255,255,255,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,21,35, - 105,27,3,0,127,255,224,127,255,224,127,255,224,127,255,224, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,254,0,125,255,128,127,255, - 192,127,131,224,126,1,240,124,0,240,120,0,248,120,0,120, - 0,0,120,0,0,120,0,0,120,0,0,120,0,0,120,0, - 0,120,248,0,120,248,0,248,248,0,240,248,1,240,126,3, - 224,63,255,224,63,255,192,15,255,128,7,254,0,23,35,105, - 27,2,1,1,255,128,7,255,192,15,255,224,31,193,240,31, - 0,248,62,0,248,62,0,120,124,0,120,124,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,127,0,120,255,192, - 249,255,240,251,255,240,255,131,248,254,0,248,252,0,124,252, - 0,124,248,0,60,248,0,60,248,0,60,248,0,62,248,0, - 60,248,0,60,120,0,60,124,0,124,124,0,120,63,1,248, - 31,255,240,15,255,224,7,255,192,1,255,0,21,35,105,27, - 3,0,255,255,248,255,255,248,255,255,248,255,255,248,0,0, - 120,0,0,248,0,0,240,0,1,240,0,1,240,0,1,224, - 0,3,224,0,3,224,0,7,192,0,7,192,0,7,128,0, - 15,128,0,15,128,0,15,0,0,31,0,0,31,0,0,62, - 0,0,62,0,0,62,0,0,124,0,0,124,0,0,248,0, - 0,248,0,0,248,0,1,240,0,1,240,0,3,240,0,3, - 224,0,3,224,0,7,192,0,7,192,0,22,35,105,27,2, - 1,3,255,128,15,255,224,31,255,240,63,255,248,63,1,248, - 126,0,252,124,0,124,124,0,124,124,0,124,124,0,124,124, - 0,124,60,0,120,62,0,248,31,131,240,15,255,224,3,255, - 128,7,255,128,15,255,224,31,3,240,62,0,248,124,0,120, - 120,0,124,248,0,60,248,0,60,248,0,60,248,0,60,248, - 0,60,248,0,60,248,0,124,124,0,124,126,1,248,63,255, - 248,31,255,240,15,255,224,3,255,128,22,35,105,27,2,1, - 3,255,128,15,255,192,31,255,224,63,255,240,126,1,248,124, - 0,248,120,0,248,248,0,124,248,0,124,248,0,124,248,0, - 124,248,0,124,248,0,124,248,0,124,248,0,252,120,0,252, - 124,1,252,127,3,252,63,255,252,31,255,124,15,254,124,3, - 248,124,0,0,124,0,0,124,0,0,120,0,0,120,0,0, - 248,120,0,248,120,1,240,124,1,240,62,3,224,63,255,224, - 31,255,192,15,255,128,7,254,0,5,24,24,13,5,0,248, - 248,248,248,248,248,0,0,0,0,0,0,0,0,0,0,0, - 0,248,248,248,248,248,248}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--58-580-72-72-P-271-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 42 - Calculated Max Values w=35 h=46 x=12 y=20 dx=59 dy= 0 ascent=43 len=175 - Font Bounding box w=78 h=76 x=-4 y=-15 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =42 descent= 0 - X Font ascent =42 descent= 0 - Max Font ascent =43 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur42n[2194] U8G_FONT_SECTION("u8g_font_fur42n") = { - 0,78,76,252,241,42,0,0,0,0,42,58,0,43,249,42, - 0,23,22,66,37,7,20,3,1,128,7,131,192,15,131,224, - 7,131,192,7,199,192,3,199,128,1,239,0,0,238,0,0, - 254,0,254,124,254,255,255,254,255,255,254,254,124,254,0,124, - 0,0,238,0,1,239,0,3,199,128,3,199,128,7,195,192, - 15,131,224,15,131,224,3,1,128,35,35,175,59,12,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,255,255,255,255,224,255, - 255,255,255,224,255,255,255,255,224,255,255,255,255,224,0,1, - 224,0,0,0,1,224,0,0,0,1,224,0,0,0,1,224, - 0,0,0,1,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,1,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,1,224,0,0,0, - 1,224,0,0,0,1,224,0,0,0,1,224,0,0,10,15, - 30,16,3,249,31,192,31,192,31,128,63,128,63,0,63,0, - 62,0,62,0,126,0,124,0,124,0,120,0,248,0,248,0, - 240,0,14,5,10,18,2,12,255,252,255,252,255,252,255,252, - 255,252,6,7,7,16,6,0,252,252,252,252,252,252,252,17, - 46,138,23,3,253,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,240, - 0,1,224,0,1,224,0,1,224,0,3,192,0,3,192,0, - 3,192,0,7,128,0,7,128,0,7,128,0,7,128,0,15, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,62,0,0,60,0,0,60,0,0,60,0,0,120,0,0, - 120,0,0,120,0,0,240,0,0,240,0,0,240,0,0,26, - 43,172,32,3,0,0,255,224,0,3,255,240,0,7,255,252, - 0,15,255,254,0,31,255,254,0,31,128,127,0,63,0,63, - 0,62,0,31,128,126,0,31,128,124,0,15,128,124,0,15, - 192,124,0,15,192,252,0,15,192,252,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,248,0,7,192,248,0,7,192,248,0,7, - 192,248,0,7,192,252,0,7,192,252,0,7,192,252,0,7, - 192,252,0,7,192,252,0,7,192,124,0,15,192,124,0,15, - 192,124,0,15,192,126,0,15,128,126,0,31,128,62,0,31, - 128,63,0,63,0,31,128,127,0,31,224,254,0,15,255,254, - 0,7,255,252,0,3,255,248,0,1,255,224,0,0,63,128, - 0,14,42,84,32,8,0,0,252,1,252,3,252,7,252,15, - 252,63,252,127,252,255,124,254,124,248,124,224,124,128,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0, - 124,0,124,0,124,0,124,0,124,0,124,25,42,168,32,4, - 1,1,255,192,0,7,255,240,0,15,255,248,0,31,255,252, - 0,31,255,254,0,63,128,127,0,63,0,63,0,127,0,31, - 128,126,0,31,128,126,0,31,128,126,0,15,128,126,0,15, - 128,0,0,31,128,0,0,31,128,0,0,31,0,0,0,63, - 0,0,0,63,0,0,0,126,0,0,0,252,0,0,1,252, - 0,0,3,248,0,0,7,240,0,0,7,224,0,0,15,224, - 0,0,31,192,0,0,63,128,0,0,127,0,0,0,254,0, - 0,1,252,0,0,3,248,0,0,7,240,0,0,15,224,0, - 0,31,224,0,0,63,192,0,0,63,128,0,0,127,0,0, - 0,254,0,0,0,255,255,255,128,255,255,255,128,255,255,255, - 128,255,255,255,128,255,255,255,128,26,43,172,32,3,0,1, - 255,192,0,7,255,240,0,15,255,252,0,31,255,254,0,31, - 255,255,0,63,128,127,0,63,0,63,128,127,0,31,128,126, - 0,15,128,126,0,15,128,252,0,15,128,0,0,15,128,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,63,0,0, - 0,126,0,0,3,252,0,0,127,248,0,0,127,240,0,0, - 127,224,0,0,127,240,0,0,127,252,0,0,3,254,0,0, - 0,127,0,0,0,63,128,0,0,31,192,0,0,15,192,0, - 0,7,192,0,0,7,192,0,0,7,192,252,0,7,192,252, - 0,7,192,252,0,7,192,254,0,15,192,254,0,31,192,127, - 0,63,128,127,192,255,0,63,255,255,0,31,255,254,0,15, - 255,248,0,3,255,240,0,0,255,128,0,29,42,168,32,2, - 0,0,0,127,0,0,0,127,0,0,0,255,0,0,1,255, - 0,0,3,255,0,0,3,255,0,0,7,223,0,0,15,223, - 0,0,15,159,0,0,31,31,0,0,63,31,0,0,62,31, - 0,0,124,31,0,0,252,31,0,0,248,31,0,1,240,31, - 0,3,240,31,0,3,224,31,0,7,192,31,0,15,192,31, - 0,15,128,31,0,31,0,31,0,63,0,31,0,126,0,31, - 0,124,0,31,0,252,0,31,0,248,0,31,0,255,255,255, - 248,255,255,255,248,255,255,255,248,255,255,255,248,255,255,255, - 248,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,31,0,0,0,31, - 0,0,0,31,0,0,0,31,0,26,43,172,32,3,255,127, - 255,255,0,127,255,255,0,127,255,255,0,127,255,255,0,127, - 255,255,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,0,0,0,124,0,0,0,124, - 0,0,0,124,0,0,0,124,31,192,0,124,127,240,0,124, - 255,252,0,125,255,252,0,127,224,254,0,127,128,63,0,127, - 0,31,0,126,0,31,128,126,0,15,128,124,0,15,128,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,7,192,0, - 0,7,192,0,0,15,192,0,0,15,192,0,0,15,192,252, - 0,15,128,252,0,31,128,254,0,31,128,126,0,63,0,127, - 0,127,0,127,192,254,0,63,255,252,0,31,255,248,0,15, - 255,240,0,3,255,224,0,0,127,0,0,27,43,172,32,3, - 0,0,127,240,0,1,255,252,0,3,255,254,0,7,255,255, - 0,15,240,63,0,31,192,31,128,31,128,15,128,63,0,15, - 192,63,0,15,192,126,0,7,192,126,0,0,0,126,0,0, - 0,124,0,0,0,124,0,0,0,124,0,0,0,124,0,0, - 0,124,15,224,0,124,63,248,0,124,255,254,0,124,255,255, - 0,125,255,255,128,127,224,127,128,127,192,31,192,255,128,15, - 192,255,0,7,192,255,0,7,224,254,0,7,224,254,0,7, - 224,254,0,3,224,254,0,3,224,254,0,3,224,254,0,7, - 224,254,0,7,224,126,0,7,224,127,0,7,192,63,0,15, - 192,63,192,31,128,31,224,127,128,15,255,255,0,7,255,254, - 0,3,255,252,0,0,255,240,0,0,63,192,0,26,42,168, - 32,3,0,255,255,255,192,255,255,255,192,255,255,255,192,255, - 255,255,192,255,255,255,192,0,0,7,192,0,0,15,192,0, - 0,15,128,0,0,31,128,0,0,31,128,0,0,31,0,0, - 0,63,0,0,0,63,0,0,0,126,0,0,0,126,0,0, - 0,124,0,0,0,252,0,0,0,252,0,0,1,248,0,0, - 1,248,0,0,1,248,0,0,3,240,0,0,3,240,0,0, - 7,224,0,0,7,224,0,0,15,224,0,0,15,192,0,0, - 15,192,0,0,31,128,0,0,31,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,127,0,0,0,126,0,0,0, - 254,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,3,240,0,0,27,43,172,32,2, - 0,0,255,224,0,3,255,252,0,15,255,254,0,31,255,255, - 0,63,255,255,128,63,128,63,192,127,0,31,192,126,0,15, - 192,126,0,7,192,126,0,7,192,124,0,7,192,124,0,7, - 192,126,0,7,192,62,0,15,192,63,0,15,128,31,128,31, - 0,15,224,127,0,7,255,254,0,3,255,248,0,0,255,240, - 0,3,255,248,0,15,255,254,0,31,224,127,0,63,128,31, - 128,62,0,15,128,126,0,7,192,124,0,7,224,124,0,3, - 224,252,0,3,224,248,0,3,224,248,0,3,224,252,0,3, - 224,252,0,3,224,252,0,7,224,254,0,7,224,126,0,15, - 224,127,0,31,192,63,192,127,192,63,255,255,128,31,255,255, - 0,7,255,254,0,1,255,248,0,0,63,192,0,27,43,172, - 32,3,0,1,255,240,0,7,255,252,0,15,255,254,0,31, - 255,255,0,63,255,255,128,63,128,63,128,126,0,31,192,126, - 0,15,192,124,0,15,192,252,0,15,224,252,0,7,224,252, - 0,7,224,248,0,7,224,248,0,7,224,248,0,7,224,252, - 0,7,224,252,0,7,224,124,0,15,224,124,0,15,224,126, - 0,31,224,63,0,63,224,63,192,251,224,31,255,243,224,15, - 255,243,224,3,255,195,224,0,255,7,224,0,0,7,224,0, - 0,7,224,0,0,7,192,0,0,7,192,0,0,7,192,0, - 0,15,192,124,0,15,192,124,0,15,128,62,0,31,128,62, - 0,63,128,63,0,127,0,31,193,254,0,31,255,254,0,15, - 255,252,0,7,255,248,0,3,255,224,0,0,127,128,0,6, - 29,29,16,6,0,252,252,252,252,252,252,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,252,252,252,252,252, - 252,252}; -/* - Fontname: -FreeType-FreeUniversal-Medium-R-Normal--68-680-72-72-P-317-ISO10646-1 - Copyright: (FreeUniversal) Copyright (c) Stephen Wilson 2009 a modification of: Original Font (SIL Sophia) Copyright (c) SIL International, 1994-2008. - Capital A Height: 0, '1' Height: 49 - Calculated Max Values w=41 h=54 x=14 y=23 dx=69 dy= 0 ascent=50 len=250 - Font Bounding box w=92 h=89 x=-5 y=-18 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =49 descent= 0 - X Font ascent =49 descent= 0 - Max Font ascent =50 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_fur49n[2683] U8G_FONT_SECTION("u8g_font_fur49n") = { - 0,92,89,251,238,49,0,0,0,0,42,58,0,50,247,49, - 0,27,26,104,45,9,23,0,192,96,0,3,192,120,0,15, - 192,126,0,7,224,252,0,3,224,248,0,1,241,240,0,1, - 241,240,0,0,251,224,0,0,123,192,0,0,59,128,0,224, - 63,128,224,255,255,255,224,255,255,255,224,255,255,255,224,255, - 159,63,224,128,63,128,32,0,123,192,0,0,123,192,0,0, - 241,224,0,1,241,240,0,3,241,248,0,3,224,248,0,7, - 224,252,0,15,192,124,0,3,192,120,0,0,128,32,0,41, - 41,246,69,14,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,255,255,255,255,255,128,255,255,255, - 255,255,128,255,255,255,255,255,128,255,255,255,255,255,128,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,0,0,60,0,0, - 0,0,0,60,0,0,0,0,0,60,0,0,0,0,0,60, - 0,0,0,0,0,60,0,0,0,0,0,60,0,0,0,0, - 0,60,0,0,0,0,0,60,0,0,0,12,17,34,19,3, - 247,15,240,15,240,15,224,15,224,31,224,31,192,31,192,31, - 128,63,128,63,0,63,0,62,0,126,0,126,0,124,0,124, - 0,248,0,16,6,12,22,3,14,255,255,255,255,255,255,255, - 255,255,255,255,255,7,8,8,19,7,0,254,254,254,254,254, - 254,254,254,21,54,162,27,3,252,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,248,0,0,240,0, - 1,240,0,1,240,0,1,240,0,1,224,0,3,224,0,3, - 224,0,3,192,0,7,192,0,7,192,0,7,128,0,15,128, - 0,15,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,124,0,0,120,0,0,248,0,0,31,51,204,38,3, - 255,0,31,240,0,0,127,252,0,1,255,255,0,3,255,255, - 128,7,255,255,192,15,255,255,224,31,240,31,240,31,192,15, - 240,63,128,7,248,63,128,3,248,63,0,1,248,127,0,1, - 252,126,0,1,252,126,0,0,252,126,0,0,252,254,0,0, - 252,254,0,0,254,252,0,0,254,252,0,0,254,252,0,0, - 254,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,126,252,0,0,126,252,0,0, - 126,252,0,0,126,252,0,0,254,254,0,0,254,254,0,0, - 254,254,0,0,254,254,0,0,254,126,0,0,254,126,0,0, - 252,126,0,0,252,127,0,1,252,127,0,1,252,63,0,1, - 252,63,128,3,248,63,128,3,248,31,192,7,248,31,224,15, - 240,15,248,63,240,15,255,255,224,7,255,255,192,3,255,255, - 128,1,255,255,0,0,127,252,0,0,15,240,0,16,49,98, - 38,9,0,0,127,0,255,1,255,3,255,7,255,31,255,63, - 255,127,255,255,255,255,63,252,63,240,63,192,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,29,50,200,38,4,0,0,31,224,0,0, - 255,252,0,3,255,255,0,7,255,255,128,15,255,255,192,31, - 255,255,224,31,240,31,224,63,224,7,240,63,192,3,240,63, - 128,3,248,127,128,3,248,127,0,1,248,127,0,1,248,127, - 0,1,248,127,0,1,248,0,0,1,248,0,0,1,248,0, - 0,3,248,0,0,3,248,0,0,7,240,0,0,7,240,0, - 0,15,224,0,0,31,224,0,0,63,192,0,0,127,128,0, - 0,127,0,0,0,255,0,0,1,254,0,0,3,252,0,0, - 7,248,0,0,15,240,0,0,31,240,0,0,63,224,0,0, - 127,192,0,0,127,128,0,0,255,0,0,1,254,0,0,3, - 252,0,0,7,248,0,0,15,248,0,0,31,240,0,0,63, - 224,0,0,127,192,0,0,255,128,0,0,255,0,0,0,255, - 255,255,248,255,255,255,248,255,255,255,248,255,255,255,248,255, - 255,255,248,31,51,204,38,3,255,0,31,240,0,0,255,254, - 0,1,255,255,128,3,255,255,192,7,255,255,224,15,248,31, - 240,31,224,7,248,31,192,3,248,63,192,1,252,63,128,0, - 252,63,128,0,252,127,0,0,252,127,0,0,252,127,0,0, - 252,0,0,0,252,0,0,0,252,0,0,1,252,0,0,1, - 248,0,0,3,248,0,0,7,240,0,0,31,224,0,0,255, - 192,0,31,255,128,0,31,254,0,0,31,252,0,0,31,255, - 0,0,31,255,192,0,0,255,224,0,0,15,240,0,0,7, - 248,0,0,3,252,0,0,1,252,0,0,0,254,0,0,0, - 254,0,0,0,126,0,0,0,126,0,0,0,126,254,0,0, - 126,254,0,0,126,255,0,0,126,255,0,0,254,127,0,0, - 254,127,128,1,252,127,128,3,252,63,224,7,248,31,248,31, - 240,15,255,255,224,7,255,255,192,3,255,255,128,0,255,254, - 0,0,31,240,0,34,50,250,38,2,0,0,0,15,240,0, - 0,0,15,240,0,0,0,31,240,0,0,0,63,240,0,0, - 0,63,240,0,0,0,127,240,0,0,0,255,240,0,0,0, - 255,240,0,0,1,251,240,0,0,3,251,240,0,0,3,243, - 240,0,0,7,227,240,0,0,15,227,240,0,0,15,195,240, - 0,0,31,131,240,0,0,63,131,240,0,0,63,3,240,0, - 0,126,3,240,0,0,254,3,240,0,1,252,3,240,0,1, - 248,3,240,0,3,248,3,240,0,7,240,3,240,0,7,224, - 3,240,0,15,224,3,240,0,31,192,3,240,0,31,128,3, - 240,0,63,128,3,240,0,127,0,3,240,0,126,0,3,240, - 0,252,0,3,240,0,252,0,3,240,0,255,255,255,255,192, - 255,255,255,255,192,255,255,255,255,192,255,255,255,255,192,255, - 255,255,255,192,255,255,255,255,192,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,240,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,3,240,0,0,0,3,240,0, - 0,0,3,240,0,30,50,200,38,4,255,63,255,255,224,63, - 255,255,224,63,255,255,224,63,255,255,224,63,255,255,224,63, - 255,255,224,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,0,0,0,63, - 0,0,0,63,0,0,0,63,0,0,0,63,3,248,0,63, - 31,254,0,63,63,255,128,63,127,255,192,63,255,255,224,63, - 248,31,224,63,224,7,240,63,192,3,240,63,128,3,248,63, - 0,1,248,63,0,1,252,62,0,1,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,0, - 0,0,252,0,0,0,252,0,0,0,252,0,0,0,252,254, - 0,1,252,254,0,1,248,254,0,1,248,255,0,3,248,127, - 0,3,240,127,128,7,224,127,192,15,224,63,240,63,192,31, - 255,255,128,15,255,255,0,7,255,254,0,1,255,248,0,0, - 31,224,0,31,51,204,38,3,255,0,7,248,0,0,63,255, - 0,0,255,255,192,1,255,255,224,3,255,255,240,7,252,15, - 240,15,248,7,248,31,224,3,248,31,192,1,252,63,192,1, - 252,63,128,0,252,63,0,0,252,127,0,0,252,127,0,0, - 0,127,0,0,0,126,0,0,0,126,0,0,0,126,0,0, - 0,126,0,0,0,126,0,0,0,126,7,252,0,126,31,255, - 0,126,63,255,192,126,127,255,224,126,255,255,240,127,252,15, - 248,127,240,3,248,255,192,1,252,255,192,1,252,255,128,0, - 254,255,128,0,254,255,0,0,126,255,0,0,126,255,0,0, - 126,255,0,0,126,255,0,0,126,255,0,0,126,255,0,0, - 126,127,0,0,126,127,0,0,126,127,128,0,254,63,128,0, - 252,63,128,1,252,31,192,1,252,31,224,3,248,15,248,15, - 240,7,255,255,224,3,255,255,192,1,255,255,128,0,127,254, - 0,0,15,248,0,30,49,196,38,4,0,255,255,255,252,255, - 255,255,252,255,255,255,252,255,255,255,252,255,255,255,252,0, - 0,0,252,0,0,1,252,0,0,1,252,0,0,1,248,0, - 0,3,248,0,0,3,240,0,0,7,240,0,0,7,240,0, - 0,7,224,0,0,15,224,0,0,15,224,0,0,31,192,0, - 0,31,192,0,0,31,128,0,0,63,128,0,0,63,128,0, - 0,127,0,0,0,127,0,0,0,127,0,0,0,254,0,0, - 0,254,0,0,0,254,0,0,1,252,0,0,1,252,0,0, - 3,248,0,0,3,248,0,0,3,248,0,0,7,240,0,0, - 7,240,0,0,15,240,0,0,15,224,0,0,15,224,0,0, - 31,192,0,0,31,192,0,0,63,192,0,0,63,128,0,0, - 63,128,0,0,127,128,0,0,127,0,0,0,127,0,0,0, - 254,0,0,0,254,0,0,1,254,0,0,1,252,0,0,32, - 51,204,38,3,255,0,15,248,0,0,127,255,0,1,255,255, - 128,3,255,255,224,7,255,255,240,15,248,31,248,31,224,7, - 252,31,192,1,252,63,128,1,252,63,128,0,254,63,0,0, - 254,63,0,0,254,63,0,0,126,63,0,0,126,63,0,0, - 126,63,0,0,254,63,0,0,252,31,128,0,252,31,128,1, - 248,15,192,3,248,15,224,7,240,7,248,31,224,3,255,255, - 192,0,255,255,128,0,127,254,0,1,255,255,128,3,255,255, - 192,15,248,15,240,31,192,3,248,31,128,1,248,63,0,0, - 252,127,0,0,126,126,0,0,126,126,0,0,126,254,0,0, - 127,252,0,0,63,252,0,0,63,252,0,0,63,254,0,0, - 127,254,0,0,127,254,0,0,127,254,0,0,127,127,0,0, - 254,127,128,1,254,63,192,3,252,63,240,15,252,31,255,255, - 248,15,255,255,240,3,255,255,192,0,255,255,0,0,15,248, - 0,31,51,204,38,3,255,0,31,248,0,0,255,255,0,3, - 255,255,192,7,255,255,224,15,255,255,240,31,240,31,248,63, - 192,7,248,63,128,3,252,127,0,1,252,126,0,1,252,126, - 0,0,254,254,0,0,254,254,0,0,254,252,0,0,254,252, - 0,0,254,252,0,0,254,252,0,0,254,252,0,0,254,254, - 0,0,254,254,0,0,254,254,0,0,254,126,0,1,254,127, - 0,1,254,63,128,3,254,63,192,7,254,31,240,31,254,31, - 255,255,126,15,255,254,126,7,255,252,126,1,255,248,126,0, - 63,224,126,0,0,0,126,0,0,0,126,0,0,0,126,0, - 0,0,254,0,0,0,252,0,0,0,252,0,0,0,252,126, - 0,0,252,127,0,1,248,63,0,1,248,63,0,3,248,63, - 0,7,240,63,128,7,240,31,192,31,224,31,224,63,224,15, - 255,255,192,7,255,255,128,3,255,255,0,1,255,252,0,0, - 63,224,0,7,34,34,19,7,0,254,254,254,254,254,254,254, - 254,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,254,254,254,254,254,254,254,254}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=11 dx=16 dy= 0 ascent=16 len=34 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11[4313] U8G_FONT_SECTION("u8g_font_gdb11") = { - 0,27,26,247,250,11,2,67,5,71,32,255,252,16,251,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,4,0,0,3,13,13,6,1,251,96,224,64, - 64,64,64,96,96,96,96,96,96,192,7,11,11,9,1,0, - 16,24,126,148,144,144,144,210,124,16,16,8,11,11,9,1, - 0,30,34,98,96,96,252,96,96,97,127,158,7,7,7,9, - 1,2,132,126,68,68,68,68,254,10,11,22,9,255,0,227, - 192,113,0,51,0,58,0,26,0,30,0,12,0,127,128,12, - 0,12,0,30,0,1,19,19,4,2,252,128,128,128,128,128, - 128,128,128,0,0,0,128,128,128,128,128,128,128,128,7,13, - 13,9,1,0,112,152,144,240,252,158,130,98,60,12,68,100, - 124,6,3,3,7,0,9,196,204,140,11,12,24,13,1,0, - 31,0,32,128,79,64,147,32,146,32,144,32,144,32,144,32, - 137,32,78,64,32,128,31,0,5,6,6,5,0,5,112,208, - 176,144,248,240,7,8,8,9,1,0,18,38,108,220,220,108, - 38,18,7,4,4,9,1,1,254,2,2,2,6,1,1,6, - 0,4,252,6,7,7,6,0,6,120,72,188,188,180,104,120, - 7,1,1,9,1,11,254,4,4,4,6,1,7,112,144,144, - 224,7,8,8,7,0,1,16,16,254,16,16,16,0,254,4, - 7,7,6,1,5,112,208,16,32,64,144,240,4,7,7,6, - 1,5,48,80,144,48,16,144,224,4,4,4,6,2,9,112, - 96,192,128,9,12,24,10,1,252,227,0,99,0,99,0,99, - 0,99,0,99,0,127,128,91,0,64,0,64,0,96,0,112, - 0,10,13,26,11,0,254,63,192,98,128,194,128,194,128,98, - 128,62,128,2,128,2,128,2,128,2,128,2,128,2,128,7, - 192,3,3,3,4,0,5,224,224,192,2,4,4,4,2,252, - 192,64,64,192,4,7,7,6,1,5,32,224,32,32,32,32, - 240,4,6,6,5,0,5,96,144,144,144,96,240,8,8,8, - 9,1,0,136,76,102,55,55,102,76,136,10,11,22,11,1, - 0,192,192,65,128,65,0,66,0,68,0,172,0,8,128,19, - 128,50,128,99,192,197,192,9,11,22,11,1,0,192,128,65, - 0,66,0,66,0,68,0,168,0,25,128,18,128,33,0,98, - 128,199,128,11,11,22,11,0,0,96,96,80,192,32,128,17, - 0,146,0,230,0,4,64,9,192,25,64,49,224,98,224,6, - 13,13,8,1,251,56,56,48,16,16,16,32,96,192,196,204, - 204,112,11,16,32,11,0,0,16,0,24,0,12,0,6,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,16,32,11,0,0,1,0, - 3,128,6,0,12,0,0,0,6,0,14,0,14,0,11,0, - 19,0,19,0,63,128,33,128,33,192,96,192,241,224,11,16, - 32,11,0,0,4,0,14,0,31,0,17,0,0,128,6,0, - 14,0,14,0,11,0,19,0,19,0,63,128,33,128,33,192, - 96,192,241,224,11,15,30,11,0,0,12,128,31,128,39,0, - 0,0,6,0,14,0,14,0,11,0,19,0,19,0,63,128, - 33,128,33,192,96,192,241,224,11,15,30,11,0,0,16,128, - 49,128,49,128,0,0,6,0,14,0,14,0,11,0,19,0, - 19,0,63,128,33,128,33,192,96,192,241,224,11,16,32,11, - 0,0,6,0,10,0,10,0,14,0,0,0,6,0,14,0, - 14,0,11,0,19,0,19,0,63,128,33,128,33,192,96,192, - 241,224,14,11,22,15,0,0,15,252,7,140,5,136,13,128, - 9,128,31,248,25,128,17,128,49,132,33,132,243,252,9,15, - 30,10,0,252,31,0,99,0,64,0,192,0,192,0,192,0, - 192,0,192,0,96,0,112,128,31,0,4,0,2,0,6,0, - 28,0,9,16,32,9,0,0,32,0,48,0,24,0,4,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,9,16,32,9,0,0,2,0, - 7,0,14,0,24,0,0,0,255,0,49,0,49,0,48,0, - 48,0,63,0,48,0,48,0,48,128,48,128,255,128,9,16, - 32,9,0,0,8,0,28,0,30,0,35,0,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,15,30,9,0,0,33,0,97,0,99,0, - 0,0,255,0,49,0,49,0,48,0,48,0,63,0,48,0, - 48,0,48,128,48,128,255,128,5,16,16,6,0,0,64,224, - 112,16,8,120,48,48,48,48,48,48,48,48,48,120,5,16, - 16,6,1,0,16,56,112,192,0,240,96,96,96,96,96,96, - 96,96,96,240,6,16,16,6,0,0,48,112,120,204,0,120, - 48,48,48,48,48,48,48,48,48,120,7,15,15,6,255,0, - 66,194,194,0,60,24,24,24,24,24,24,24,24,24,60,9, - 11,22,11,1,0,254,0,99,0,97,0,97,128,97,128,249, - 128,97,128,97,128,97,0,99,0,252,0,10,15,30,12,1, - 0,25,0,63,0,46,0,0,0,225,192,96,128,112,128,120, - 128,92,128,76,128,70,128,71,128,67,128,65,128,225,128,10, - 16,32,11,0,0,16,0,24,0,12,0,2,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,16,32,11,0,0,1,0,3,128,6, - 0,12,0,0,0,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,10,16,32,11,0, - 0,4,0,14,0,31,0,17,128,0,0,30,0,33,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,0,30, - 0,10,15,30,11,0,0,12,128,31,128,39,0,0,0,30, - 0,33,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,0,30,0,10,15,30,11,0,0,16,128,49,128,49, - 128,0,0,30,0,33,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,0,30,0,6,6,6,8,1,2,140, - 216,112,112,216,140,10,11,22,11,0,0,31,192,35,128,99, - 128,195,192,198,192,204,192,216,192,240,192,113,128,113,0,254, - 0,10,16,32,12,1,0,16,0,56,0,28,0,6,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,12,1,0,2,0,7, - 0,14,0,24,0,0,0,241,192,96,128,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,49,0,30,0,10,16,32, - 12,1,0,12,0,14,0,30,0,51,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,49, - 0,30,0,10,15,30,12,1,0,33,0,33,128,33,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,49,0,30,0,10,16,32,11,1,0,4,0,7, - 0,12,0,24,0,0,0,227,192,113,128,49,0,59,0,26, - 0,14,0,12,0,12,0,12,0,12,0,30,0,8,11,11, - 10,1,0,240,96,126,99,99,99,99,98,124,96,240,9,13, - 26,11,1,0,14,0,49,128,33,128,97,128,97,0,102,0, - 104,0,100,0,103,0,97,128,104,128,104,128,239,0,8,13, - 13,9,1,0,96,48,16,8,0,60,102,198,30,102,198,207, - 118,8,13,13,9,1,0,12,28,24,48,0,60,102,198,30, - 102,198,207,118,8,13,13,9,1,0,16,56,108,198,0,60, - 102,198,30,102,198,207,118,8,12,12,9,1,0,114,252,0, - 0,60,102,198,30,102,198,207,118,8,12,12,9,1,0,194, - 198,134,0,60,102,198,30,102,198,207,118,8,13,13,9,1, - 0,24,40,40,48,0,60,102,198,30,102,198,207,118,11,8, - 16,13,1,0,61,192,102,32,196,32,63,224,68,0,198,32, - 255,192,115,128,7,12,12,8,1,252,62,70,196,192,192,192, - 102,56,16,8,24,48,7,13,13,9,1,0,96,48,24,8, - 0,60,70,198,254,192,192,98,60,7,13,13,9,1,0,12, - 14,24,48,0,60,70,198,254,192,192,98,60,7,13,13,9, - 1,0,24,56,108,66,0,60,70,198,254,192,192,98,60,7, - 12,12,9,1,0,66,198,194,0,60,70,198,254,192,192,98, - 60,5,13,13,5,0,0,224,96,48,16,0,48,112,48,48, - 48,48,48,120,5,13,13,5,1,0,48,56,96,64,128,96, - 224,96,96,96,96,96,240,6,13,13,5,0,0,48,112,216, - 132,0,48,112,48,48,48,48,48,120,7,12,12,5,255,0, - 66,194,194,0,24,56,24,24,24,24,24,60,7,13,13,9, - 1,0,112,62,56,108,4,62,78,198,198,198,196,76,56,9, - 12,24,10,1,0,57,0,126,0,0,0,0,0,110,0,255, - 0,115,0,99,0,99,0,99,0,99,0,247,128,7,13,13, - 9,1,0,112,48,24,8,0,56,68,198,198,198,198,68,56, - 7,13,13,9,1,0,14,12,24,16,0,56,68,198,198,198, - 198,68,56,7,13,13,9,1,0,24,60,44,66,0,56,68, - 198,198,198,198,68,56,7,12,12,9,1,0,50,124,128,0, - 56,68,198,198,198,198,68,56,7,12,12,9,1,0,66,194, - 66,0,56,68,198,198,198,198,68,56,7,6,6,8,0,2, - 16,16,0,126,144,16,7,9,9,9,1,0,2,58,68,206, - 214,230,230,68,248,10,13,26,10,0,0,24,0,56,0,12, - 0,4,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,7,0,6,0,12, - 0,8,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,13,26,10,0,0,12,0,30,0,18, - 0,33,0,0,0,227,128,97,128,97,128,97,128,97,128,97, - 128,127,192,57,128,10,12,24,10,0,0,33,0,33,128,33, - 0,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,10,17,34,9,255,252,3,0,3,128,6,0,4, - 0,8,0,121,192,48,128,25,128,25,0,15,0,14,0,14, - 0,6,0,4,0,12,0,120,0,240,0,8,18,18,10,1, - 252,96,224,96,96,96,96,110,127,97,97,97,97,98,124,96, - 96,96,240,10,16,32,9,255,252,16,128,48,128,48,128,0, - 0,121,192,48,128,25,128,25,0,15,0,14,0,14,0,6, - 0,4,0,12,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx=10 dy= 0 ascent=14 len=17 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11n[278] U8G_FONT_SECTION("u8g_font_gdb11n") = { - 0,27,26,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--18-180-72-72-P-89-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=32 - Font Bounding box w=27 h=26 x=-9 y=-6 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb11r[2001] U8G_FONT_SECTION("u8g_font_gdb11r") = { - 0,27,26,247,250,11,2,67,5,71,32,127,252,15,252,14, - 252,0,0,0,4,0,0,3,14,14,6,1,255,96,224,96, - 96,96,96,96,64,64,64,0,224,224,192,6,6,6,8,1, - 7,108,236,204,76,76,76,8,10,10,9,1,1,26,18,22, - 127,36,36,254,72,72,216,7,14,14,9,1,254,16,16,126, - 150,144,240,120,30,18,146,210,252,16,16,11,11,22,13,1, - 0,112,64,144,128,137,128,139,0,146,0,85,192,42,32,26, - 32,50,32,34,32,65,192,11,13,26,12,1,0,28,0,102, - 0,70,0,70,0,124,0,120,0,113,224,248,128,252,128,222, - 128,207,0,195,128,125,224,3,6,6,5,1,7,96,224,192, - 64,64,64,4,17,17,6,1,253,16,32,96,64,64,192,192, - 192,192,192,192,192,192,64,96,32,16,4,17,17,6,1,253, - 128,64,96,32,48,48,48,48,48,48,48,48,32,32,96,64, - 128,6,8,8,8,1,6,48,176,252,120,120,252,52,48,7, - 6,6,8,0,2,16,16,16,254,16,16,3,5,5,5,1, - 253,96,224,96,64,192,6,1,1,6,0,4,252,3,3,3, - 5,1,255,224,224,192,8,17,17,9,0,253,3,3,2,6, - 6,4,12,12,24,24,16,48,48,32,96,64,192,7,11,11, - 9,1,0,56,76,70,198,198,198,198,198,196,100,56,7,11, - 11,9,1,0,24,248,24,24,24,24,24,24,24,24,126,7, - 11,11,9,1,0,60,102,102,6,4,8,16,34,66,126,254, - 7,11,11,8,0,0,60,102,102,6,8,28,6,6,6,140, - 120,7,11,11,8,0,0,4,12,12,20,52,36,68,126,132, - 4,30,7,11,11,9,1,0,126,124,64,64,124,134,6,6, - 6,134,124,7,11,11,9,1,0,12,48,96,64,252,198,198, - 198,198,100,56,7,11,11,9,1,0,254,254,134,4,4,8, - 8,24,48,48,96,8,11,11,10,1,0,60,102,102,102,124, - 62,71,195,195,195,60,7,11,11,9,1,0,56,68,198,198, - 198,198,126,4,12,24,224,3,9,9,5,1,255,224,224,192, - 0,0,0,224,224,192,3,11,11,5,1,253,224,224,192,0, - 0,0,96,224,96,64,192,8,6,6,8,0,2,3,30,112, - 240,30,7,8,4,4,8,0,3,127,128,0,255,8,6,6, - 8,0,2,96,188,15,14,120,192,7,14,14,8,1,255,60, - 198,198,134,12,8,16,32,32,32,0,56,56,56,14,16,32, - 16,1,252,7,192,31,240,48,56,64,8,71,68,136,196,152, - 196,152,196,152,196,152,200,159,248,206,224,192,32,112,112,63, - 192,31,128,11,11,22,11,0,0,6,0,14,0,14,0,11, - 0,19,0,19,0,63,128,33,128,33,192,96,192,241,224,9, - 11,22,11,1,0,254,0,99,0,99,0,99,0,126,0,99, - 128,97,128,97,128,97,128,97,128,254,0,8,11,11,10,1, - 0,31,99,64,192,192,192,192,192,192,97,62,9,11,22,11, - 1,0,254,0,99,0,97,0,97,128,97,128,97,128,97,128, - 97,128,97,0,99,0,252,0,9,11,22,9,0,0,255,0, - 49,0,49,0,48,0,48,0,63,0,48,0,48,0,48,128, - 48,128,255,128,9,11,22,9,0,0,255,128,49,0,49,0, - 48,0,48,0,62,0,48,0,48,0,48,0,48,0,248,0, - 11,11,22,11,0,0,15,192,49,192,64,0,192,0,192,0, - 192,0,193,224,192,192,64,192,112,192,31,128,10,11,22,12, - 1,0,243,192,97,128,97,128,97,128,97,128,127,128,97,128, - 97,128,97,128,97,128,243,192,4,11,11,6,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,14,14,6,254,253,62, - 12,12,12,12,12,12,12,12,12,12,8,136,240,10,11,22, - 11,1,0,243,192,99,0,102,0,108,0,104,0,120,0,108, - 0,102,0,103,0,99,128,241,192,8,11,11,9,1,0,240, - 96,96,96,96,96,96,96,97,97,255,15,11,22,15,0,0, - 112,28,56,56,56,56,56,120,44,88,44,88,38,216,38,152, - 35,152,35,24,243,62,10,11,22,12,1,0,225,192,96,128, - 112,128,120,128,92,128,76,128,70,128,71,128,67,128,65,128, - 225,128,10,11,22,11,0,0,30,0,33,128,64,128,192,192, - 192,192,192,192,192,192,192,192,64,128,97,0,30,0,8,11, - 11,10,1,0,254,99,99,99,98,124,96,96,96,96,240,12, - 14,28,11,0,253,30,0,33,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,0,30,0,3,144,1,240,0, - 96,10,11,22,11,1,0,254,0,99,0,99,0,99,0,98, - 0,124,0,100,0,102,0,99,0,99,128,241,192,7,11,11, - 9,1,0,62,198,128,192,112,60,6,2,130,196,248,10,11, - 22,10,0,0,255,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,30,0,10,11,22,12,1,0, - 241,192,96,128,96,128,96,128,96,128,96,128,96,128,96,128, - 96,128,49,0,30,0,12,11,22,12,0,0,248,240,112,64, - 48,64,48,128,24,128,25,128,29,0,13,0,15,0,6,0, - 6,0,15,11,22,15,0,0,241,30,97,132,49,140,51,200, - 50,200,50,200,28,120,28,112,28,48,24,48,8,48,11,11, - 22,11,0,0,249,224,48,128,57,128,31,0,14,0,6,0, - 15,0,27,0,49,128,33,192,243,224,10,11,22,11,1,0, - 227,192,113,128,49,0,59,0,26,0,14,0,12,0,12,0, - 12,0,12,0,30,0,9,11,22,10,0,0,127,128,67,0, - 71,0,6,0,14,0,12,0,24,0,56,0,48,128,112,128, - 255,128,4,17,17,6,1,253,240,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,240,8,17,17,8,0,253,192, - 64,96,32,48,48,16,24,24,8,12,4,6,6,2,3,3, - 4,17,17,6,1,253,240,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,240,7,9,9,9,1,5,16,48,56, - 40,76,76,68,134,130,8,1,1,9,0,254,255,4,4,4, - 6,0,9,192,96,32,16,8,8,8,9,1,0,60,102,198, - 30,102,198,207,118,9,14,28,10,0,0,96,0,224,0,96, - 0,96,0,96,0,96,0,103,0,127,128,112,128,96,128,96, - 128,97,0,97,0,62,0,7,8,8,8,1,0,62,70,196, - 192,192,192,66,124,9,14,28,10,1,0,3,0,7,0,3, - 0,3,0,3,0,3,0,63,0,67,0,195,0,195,0,195, - 0,195,0,127,128,59,0,7,8,8,9,1,0,60,70,198, - 254,192,192,98,60,7,13,13,6,1,0,30,36,96,96,96, - 252,96,96,96,96,96,96,248,10,12,24,10,0,252,62,192, - 193,0,129,0,193,0,62,0,112,0,254,0,255,128,227,128, - 192,128,193,0,62,0,9,14,28,10,1,0,96,0,224,0, - 96,0,96,0,96,0,96,0,102,0,127,0,115,0,99,0, - 99,0,99,0,99,0,247,128,4,12,12,6,1,0,48,112, - 0,0,96,224,96,96,96,96,96,240,7,16,16,5,253,252, - 14,14,0,0,28,12,12,12,12,12,12,12,12,140,248,224, - 9,14,28,10,1,0,96,0,224,0,96,0,96,0,96,0, - 96,0,103,128,102,0,108,0,120,0,108,0,102,0,103,0, - 243,128,4,14,14,5,1,0,96,224,96,96,96,96,96,96, - 96,96,96,96,96,240,14,8,16,15,1,0,110,112,255,248, - 99,24,99,24,99,24,99,24,99,24,247,188,9,8,16,10, - 1,0,110,0,255,0,115,0,99,0,99,0,99,0,99,0, - 247,128,7,8,8,9,1,0,56,68,198,198,198,198,68,56, - 8,12,12,10,1,252,110,255,97,97,97,97,98,124,96,96, - 96,240,9,12,24,10,1,252,61,0,67,0,195,0,195,0, - 195,0,195,0,127,0,59,0,3,0,3,0,3,0,7,128, - 8,8,8,8,0,0,119,255,50,50,48,48,48,248,6,8, - 8,8,1,0,240,152,144,240,60,132,196,248,6,11,11,7, - 0,0,32,96,96,252,96,96,96,96,100,124,48,10,8,16, - 10,0,0,227,128,97,128,97,128,97,128,97,128,97,128,127, - 192,57,128,9,8,16,9,0,0,243,128,97,0,51,0,50, - 0,30,0,28,0,28,0,8,0,13,8,16,13,0,0,242, - 56,99,16,51,32,53,160,53,160,24,224,24,192,24,192,9, - 8,16,9,0,0,251,128,115,0,62,0,28,0,28,0,22, - 0,35,0,247,128,10,12,24,9,255,252,121,192,48,128,25, - 128,25,0,15,0,14,0,14,0,6,0,4,0,12,0,120, - 0,240,0,7,8,8,8,1,0,254,140,152,56,48,98,226, - 254,6,17,17,5,0,253,8,28,48,48,48,48,48,48,224, - 48,48,48,48,48,48,24,8,1,19,19,4,2,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,5,255,253,64,96,48,48,48,48,48,48,28, - 48,48,48,48,48,48,96,192,8,2,2,9,0,4,57,206, - 255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12[4626] U8G_FONT_SECTION("u8g_font_gdb12") = { - 0,29,28,246,249,12,2,113,5,210,32,255,252,17,251,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,5,0,0,3,14,14,6,1,251,96,224,64,0,96,96, - 96,96,96,96,96,96,96,64,7,12,12,10,2,0,16,16, - 62,86,144,144,144,144,86,124,16,16,9,11,22,10,0,0, - 15,128,49,128,49,0,112,0,112,0,254,0,112,0,112,0, - 96,128,123,128,255,0,8,7,7,10,1,2,255,66,66,66, - 66,102,255,10,11,22,10,0,0,227,192,113,0,51,0,26, - 0,26,0,12,0,127,128,12,0,12,0,12,0,30,0,1, - 20,20,4,2,252,128,128,128,128,128,128,128,128,128,0,0, - 128,128,128,128,128,128,128,128,128,8,13,13,10,1,0,120, - 152,136,240,190,135,193,113,62,14,34,50,62,6,3,3,7, - 0,10,236,252,220,12,13,26,14,1,0,15,0,48,192,64, - 32,143,32,145,16,145,16,144,16,144,16,144,16,136,160,79, - 32,32,64,31,128,5,7,7,5,0,5,112,208,112,144,248, - 0,240,8,9,9,10,1,0,17,34,102,204,220,204,102,34, - 17,8,4,4,10,1,2,255,1,1,1,6,1,1,7,0, - 4,252,7,7,7,7,0,7,56,68,186,170,178,108,56,8, - 2,2,9,1,11,255,254,5,5,5,7,1,7,112,136,136, - 136,112,8,9,9,8,0,1,8,8,8,127,8,8,8,0, - 255,4,7,7,7,2,6,112,208,16,32,64,144,240,5,7, - 7,6,0,6,56,104,8,24,8,136,112,4,4,4,6,2, - 10,48,96,192,128,10,13,26,11,1,252,99,0,227,0,99, - 0,99,0,99,0,99,0,103,0,127,128,91,64,64,0,64, - 0,96,0,112,0,9,14,28,11,1,254,63,128,101,0,197, - 0,197,0,197,0,101,0,61,0,5,0,5,0,5,0,5, - 0,5,0,5,0,15,128,3,3,3,4,0,5,224,224,192, - 3,4,4,4,1,252,64,96,96,192,5,7,7,7,1,6, - 32,224,32,32,32,32,248,4,7,7,5,0,5,96,144,144, - 144,96,0,240,8,9,9,10,1,0,136,76,102,55,51,55, - 102,76,136,11,11,22,12,1,0,64,64,192,128,65,0,67, - 0,70,0,228,0,8,192,25,64,50,64,35,224,192,224,10, - 11,22,12,1,0,64,64,192,128,65,0,65,0,66,0,228, - 192,9,64,26,128,16,128,33,64,99,192,11,11,22,11,0, - 0,96,32,208,64,32,128,145,128,227,0,2,0,4,192,13, - 64,25,64,19,224,96,224,7,14,14,9,1,251,56,56,48, - 0,16,16,16,32,96,192,194,198,196,120,12,16,32,12,0, - 0,24,0,28,0,3,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,12,16,32,12,0,0,1,0,7,128,12,0,0,0,6, - 0,14,0,15,0,11,0,27,0,19,128,17,128,63,128,33, - 192,32,192,96,224,241,240,12,16,32,12,0,0,6,0,15, - 0,16,128,0,0,6,0,14,0,15,0,11,0,27,0,19, - 128,17,128,63,128,33,192,32,192,96,224,241,240,12,16,32, - 12,0,0,12,192,31,128,35,0,0,0,6,0,14,0,15, - 0,11,0,27,0,19,128,17,128,63,128,33,192,32,192,96, - 224,241,240,12,16,32,12,0,0,27,0,27,128,27,0,0, - 0,6,0,14,0,15,0,11,0,27,0,19,128,17,128,63, - 128,33,192,32,192,96,224,241,240,12,17,34,12,0,0,6, - 0,9,0,17,0,14,0,0,0,6,0,14,0,15,0,11, - 0,27,0,19,128,17,128,63,128,33,192,32,192,96,224,241, - 240,15,12,24,15,0,0,31,252,5,132,5,132,13,128,9, - 128,31,248,17,144,17,128,49,128,33,130,97,132,243,252,9, - 16,32,11,1,252,31,0,99,128,65,0,192,0,192,0,192, - 0,192,0,192,0,192,0,96,128,59,128,30,0,8,0,6, - 0,14,0,28,0,10,16,32,10,0,0,48,0,56,0,6, - 0,0,0,255,128,48,128,48,128,48,0,48,0,63,0,50, - 0,48,0,48,0,48,64,48,128,255,128,10,16,32,10,0, - 0,3,0,7,0,24,0,0,0,255,128,48,128,48,128,48, - 0,48,0,63,0,50,0,48,0,48,0,48,64,48,128,255, - 128,10,16,32,10,0,0,12,0,30,0,33,0,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,10,16,32,10,0,0,51,0,63, - 0,54,0,0,0,255,128,48,128,48,128,48,0,48,0,63, - 0,50,0,48,0,48,0,48,64,48,128,255,128,5,16,16, - 6,0,0,192,224,24,0,120,48,48,48,48,48,48,48,48, - 48,48,120,5,16,16,6,1,0,24,56,192,0,240,96,96, - 96,96,96,96,96,96,96,96,240,6,16,16,6,0,0,48, - 120,132,0,120,48,48,48,48,48,48,48,48,48,48,120,6, - 16,16,6,0,0,204,252,216,0,120,48,48,48,48,48,48, - 48,48,48,48,120,10,12,24,12,1,0,254,0,99,128,97, - 128,96,192,96,192,248,192,96,192,96,192,96,192,97,128,99, - 0,254,0,11,16,32,13,1,0,28,128,63,0,39,0,0, - 0,224,224,112,64,112,64,120,64,92,64,78,64,78,64,71, - 64,67,192,65,192,65,192,224,192,10,16,32,12,1,0,48, - 0,56,0,6,0,0,0,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,128,96,128,97,0,30,0,10, - 16,32,12,1,0,2,0,15,0,24,0,0,0,30,0,33, - 128,65,128,64,192,192,192,192,192,192,192,192,192,192,128,96, - 128,97,0,30,0,10,16,32,12,1,0,12,0,30,0,33, - 0,0,0,30,0,33,128,65,128,64,192,192,192,192,192,192, - 192,192,192,192,128,96,128,97,0,30,0,10,16,32,12,1, - 0,25,128,63,0,70,0,0,0,30,0,33,128,65,128,64, - 192,192,192,192,192,192,192,192,192,192,128,96,128,97,0,30, - 0,10,16,32,12,1,0,55,0,55,0,54,0,0,0,30, - 0,33,128,65,128,64,192,192,192,192,192,192,192,192,192,192, - 128,96,128,97,0,30,0,6,6,6,8,1,2,132,72,48, - 48,72,132,10,12,24,12,1,0,30,192,33,128,97,128,67, - 192,198,192,196,192,200,192,216,192,240,128,97,128,97,0,222, - 0,11,16,32,13,1,0,16,0,60,0,6,0,0,0,240, - 224,96,64,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,128,48,128,31,0,11,16,32,13,1,0,3,0,7, - 128,12,0,0,0,240,224,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,128,48,128,31,0,11,16,32, - 13,1,0,12,0,30,0,49,0,0,128,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,128,48, - 128,31,0,11,16,32,13,1,0,27,0,63,0,51,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,128,48,128,31,0,11,16,32,12,0,0,1, - 0,7,128,12,0,0,0,241,224,48,192,24,128,29,128,13, - 0,15,0,6,0,6,0,6,0,6,0,6,0,15,0,9, - 12,24,11,1,0,248,0,96,0,126,0,99,0,97,128,97, - 128,97,128,97,128,113,0,110,0,96,0,248,0,9,14,28, - 12,1,0,14,0,51,0,33,128,97,128,97,128,103,0,108, - 0,108,0,102,0,99,0,97,128,104,128,104,128,239,0,8, - 14,14,9,1,0,112,48,24,8,0,60,102,198,14,126,198, - 198,207,118,8,14,14,9,1,0,14,12,24,48,0,60,102, - 198,14,126,198,198,207,118,8,14,14,9,1,0,24,60,108, - 66,0,60,102,198,14,126,198,198,207,118,8,13,13,9,1, - 0,114,126,140,0,60,102,198,14,126,198,198,207,118,8,13, - 13,9,1,0,108,110,108,0,60,102,198,14,126,198,198,207, - 118,8,14,14,9,1,0,56,68,72,56,0,60,102,198,14, - 126,198,198,207,118,12,9,18,14,1,0,29,192,111,32,198, - 48,166,48,63,240,70,0,199,16,251,224,113,192,8,13,13, - 9,1,252,62,70,196,192,192,192,194,127,60,16,12,28,48, - 7,14,14,9,1,0,112,48,24,8,0,60,100,198,198,254, - 192,226,124,56,7,14,14,9,1,0,14,12,24,16,0,60, - 100,198,198,254,192,226,124,56,7,14,14,9,1,0,24,60, - 100,66,0,60,100,198,198,254,192,226,124,56,7,13,13,9, - 1,0,110,126,108,0,60,100,198,198,254,192,226,124,56,5, - 14,14,6,0,0,224,96,48,16,0,48,112,48,48,48,48, - 48,48,120,5,14,14,6,1,0,56,48,96,64,0,96,224, - 96,96,96,96,96,96,240,6,14,14,6,0,0,48,120,200, - 132,0,48,112,48,48,48,48,48,48,120,6,13,13,6,0, - 0,220,220,216,0,48,112,48,48,48,48,48,48,120,8,14, - 14,10,1,0,48,255,28,102,6,63,71,195,195,195,195,194, - 102,60,9,13,26,11,1,0,57,0,63,0,78,0,0,0, - 102,0,255,0,115,0,99,0,99,0,99,0,99,0,99,0, - 247,128,8,14,14,10,1,0,48,112,24,12,0,60,70,195, - 195,195,195,194,98,60,8,14,14,10,1,0,6,12,24,16, - 0,60,70,195,195,195,195,194,98,60,8,14,14,10,1,0, - 24,60,38,66,0,60,70,195,195,195,195,194,98,60,8,13, - 13,10,1,0,57,126,76,0,60,70,195,195,195,195,194,98, - 60,8,13,13,10,1,0,118,126,108,0,60,70,195,195,195, - 195,194,98,60,8,7,7,8,0,2,8,8,0,127,128,8, - 8,8,9,9,10,1,0,63,102,71,203,219,211,226,102,252, - 10,14,28,11,0,0,24,0,60,0,12,0,6,0,0,0, - 227,128,97,128,97,128,97,128,97,128,97,128,99,128,127,192, - 57,128,10,14,28,11,0,0,3,0,7,0,4,0,8,0, - 0,0,227,128,97,128,97,128,97,128,97,128,97,128,99,128, - 127,192,57,128,10,14,28,11,0,0,12,0,14,0,27,0, - 33,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,10,13,26,11,0,0,27,0,63,0, - 51,0,0,0,227,128,97,128,97,128,97,128,97,128,97,128, - 99,128,127,192,57,128,11,18,36,10,255,252,3,128,3,0, - 6,0,4,0,0,0,121,224,56,128,24,128,25,128,13,0, - 13,0,14,0,6,0,6,0,4,0,12,0,120,0,240,0, - 9,18,36,11,1,252,96,0,224,0,96,0,96,0,96,0, - 103,0,111,0,113,128,97,128,97,128,97,128,97,0,127,0, - 110,0,96,0,96,0,96,0,248,0,11,17,34,10,255,252, - 25,128,31,128,27,0,0,0,121,224,56,128,24,128,25,128, - 13,0,13,0,14,0,6,0,6,0,4,0,12,0,120,0, - 240,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 9 h=18 x= 1 y= 7 dx=10 dy= 0 ascent=15 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12n[301] U8G_FONT_SECTION("u8g_font_gdb12n") = { - 0,29,28,246,249,12,0,0,0,0,42,58,0,15,252,12, - 0,7,7,7,8,1,7,48,180,222,48,222,148,48,7,7, - 7,8,1,2,16,16,16,254,16,16,16,3,6,6,5,1, - 252,96,224,96,96,64,128,6,1,1,7,0,4,252,3,3, - 3,5,1,0,224,224,192,9,18,36,9,0,253,1,128,3, - 0,3,0,3,0,6,0,6,0,4,0,12,0,12,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,192, - 0,8,11,11,10,1,0,60,102,66,195,195,195,195,195,66, - 98,60,7,12,12,10,1,0,8,120,152,24,24,24,24,24, - 24,24,24,254,7,11,11,9,1,0,60,102,230,6,4,8, - 16,34,66,126,254,7,11,11,9,1,0,60,102,230,6,8, - 28,6,6,6,140,120,8,12,12,9,0,0,6,14,14,22, - 22,38,102,70,255,6,6,31,7,11,11,10,1,0,126,124, - 64,64,124,134,6,6,6,134,124,8,12,12,10,1,0,14, - 56,112,96,192,254,195,195,195,195,98,60,8,11,11,10,1, - 0,255,254,130,6,4,12,8,24,24,48,96,8,11,11,10, - 1,0,60,102,102,102,124,62,71,195,195,195,60,8,11,11, - 10,1,0,60,70,195,195,195,195,63,2,6,12,112,3,9, - 9,5,1,0,224,224,192,0,0,0,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--19-190-72-72-P-94-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=36 - Font Bounding box w=29 h=28 x=-10 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb12r[2190] U8G_FONT_SECTION("u8g_font_gdb12r") = { - 0,29,28,246,249,12,2,113,5,210,32,127,252,16,252,15, - 252,0,0,0,5,0,0,3,14,14,6,1,0,32,96,96, - 96,96,96,96,96,96,96,0,224,224,192,7,6,6,9,1, - 8,102,236,108,76,68,68,9,11,22,10,1,1,27,0,26, - 0,18,0,127,128,54,0,36,0,36,0,255,0,104,0,72, - 0,88,0,8,15,15,9,0,254,8,8,63,75,74,104,60, - 30,11,137,73,235,126,8,8,12,12,24,14,1,0,112,32, - 144,64,136,128,137,128,139,0,146,0,100,224,13,16,25,16, - 17,16,33,16,96,224,12,13,26,13,1,0,30,0,35,0, - 99,0,99,0,118,0,124,0,120,240,252,64,222,64,207,64, - 199,128,193,192,62,240,3,6,6,5,1,8,96,224,96,64, - 64,64,4,18,18,6,1,253,16,48,96,96,64,192,192,192, - 192,192,192,192,192,192,96,96,48,16,4,18,18,6,1,253, - 128,192,96,96,48,48,48,48,48,48,48,48,48,32,96,96, - 192,128,7,7,7,8,1,7,48,180,222,48,222,148,48,7, - 7,7,8,1,2,16,16,16,254,16,16,16,3,6,6,5, - 1,252,96,224,96,96,64,128,6,1,1,7,0,4,252,3, - 3,3,5,1,0,224,224,192,9,18,36,9,0,253,1,128, - 3,0,3,0,3,0,6,0,6,0,4,0,12,0,12,0, - 24,0,24,0,16,0,48,0,48,0,32,0,96,0,96,0, - 192,0,8,11,11,10,1,0,60,102,66,195,195,195,195,195, - 66,98,60,7,12,12,10,1,0,8,120,152,24,24,24,24, - 24,24,24,24,254,7,11,11,9,1,0,60,102,230,6,4, - 8,16,34,66,126,254,7,11,11,9,1,0,60,102,230,6, - 8,28,6,6,6,140,120,8,12,12,9,0,0,6,14,14, - 22,22,38,102,70,255,6,6,31,7,11,11,10,1,0,126, - 124,64,64,124,134,6,6,6,134,124,8,12,12,10,1,0, - 14,56,112,96,192,254,195,195,195,195,98,60,8,11,11,10, - 1,0,255,254,130,6,4,12,8,24,24,48,96,8,11,11, - 10,1,0,60,102,102,102,124,62,71,195,195,195,60,8,11, - 11,10,1,0,60,70,195,195,195,195,63,2,6,12,112,3, - 9,9,5,1,0,224,224,192,0,0,0,224,224,192,3,13, - 13,5,1,252,224,224,64,0,0,0,0,96,224,96,96,64, - 128,8,7,7,9,0,2,1,15,60,96,248,31,3,8,4, - 4,9,0,3,127,128,0,255,8,7,7,9,0,2,96,248, - 15,7,30,120,192,7,14,14,9,1,0,60,70,198,134,6, - 12,8,16,16,16,0,56,56,56,14,17,34,16,1,252,7, - 192,31,240,56,56,32,8,99,164,68,100,204,100,204,100,204, - 100,204,100,204,104,199,248,103,112,112,8,56,24,31,240,15, - 192,12,12,24,12,0,0,6,0,14,0,15,0,11,0,27, - 0,19,128,17,128,63,128,33,192,32,192,96,224,241,240,9, - 12,24,11,1,0,254,0,99,0,99,0,99,0,98,0,126, - 0,99,128,97,128,97,128,97,128,97,128,254,0,9,12,24, - 11,1,0,31,0,99,128,65,0,192,0,192,0,192,0,192, - 0,192,0,192,0,97,128,127,0,60,0,10,12,24,12,1, - 0,254,0,99,128,97,128,96,192,96,192,96,192,96,192,96, - 192,96,192,97,128,99,0,254,0,10,12,24,10,0,0,255, - 128,48,128,48,128,48,0,48,0,63,0,50,0,48,0,48, - 0,48,64,48,128,255,128,9,12,24,10,0,0,255,128,48, - 128,48,128,48,0,48,0,63,0,50,0,48,0,48,0,48, - 0,48,0,252,0,10,12,24,11,1,0,31,128,33,128,65, - 0,64,0,192,0,192,0,192,0,195,192,193,128,65,128,97, - 128,31,0,11,12,24,13,1,0,241,224,96,192,96,192,96, - 192,96,192,127,192,96,192,96,192,96,192,96,192,96,192,241, - 224,4,12,12,6,1,0,240,96,96,96,96,96,96,96,96, - 96,96,240,8,16,16,6,253,252,31,6,6,6,6,6,6, - 6,6,6,6,6,6,68,124,240,11,12,24,12,1,0,243, - 192,99,0,99,0,102,0,108,0,120,0,124,0,110,0,103, - 0,99,0,97,128,241,224,8,12,12,10,1,0,240,96,96, - 96,96,96,96,96,96,97,97,255,15,12,24,16,0,0,112, - 30,56,28,56,28,60,60,44,44,44,108,38,76,38,204,35, - 140,35,140,35,140,241,30,11,12,24,13,1,0,224,224,112, - 64,112,64,120,64,92,64,78,64,78,64,71,64,67,192,65, - 192,65,192,224,192,10,12,24,12,1,0,30,0,33,128,65, - 128,64,192,192,192,192,192,192,192,192,192,192,128,96,128,97, - 0,30,0,9,12,24,11,1,0,254,0,99,0,97,128,97, - 128,97,128,97,0,126,0,96,0,96,0,96,0,96,0,248, - 0,12,15,30,12,1,253,30,0,33,128,65,128,64,192,192, - 192,192,192,192,192,192,192,192,192,96,128,33,0,30,0,3, - 144,1,240,0,96,11,12,24,12,1,0,254,0,99,128,97, - 128,97,128,97,128,127,0,126,0,102,0,99,0,99,128,97, - 192,241,224,8,12,12,10,1,0,62,198,128,128,240,124,30, - 7,3,131,194,252,10,12,24,11,0,0,255,192,140,64,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,30,0,11,12,24,13,1,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,128,48,128,31, - 0,12,12,24,13,0,0,248,240,112,96,48,64,56,64,24, - 192,24,128,28,128,13,128,15,0,7,0,7,0,6,0,16, - 12,24,16,0,0,248,143,49,134,49,196,49,196,51,196,58, - 108,26,108,30,120,28,56,28,56,12,24,8,16,12,12,24, - 12,0,0,249,224,48,192,56,128,29,0,15,0,14,0,15, - 0,11,0,27,128,49,192,32,224,241,240,11,12,24,12,0, - 0,241,224,48,192,24,128,29,128,13,0,15,0,6,0,6, - 0,6,0,6,0,6,0,15,0,10,12,24,10,0,0,127, - 192,67,128,67,0,7,0,6,0,14,0,28,0,24,0,56, - 0,48,64,112,192,255,192,5,18,18,6,1,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,9, - 18,36,9,0,253,192,0,96,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,12,0,12,0,4,0,6,0,6, - 0,2,0,3,0,3,0,1,128,5,18,18,6,0,253,248, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 248,7,9,9,9,1,5,16,24,40,44,44,68,70,130,130, - 9,1,2,9,0,254,255,128,4,4,4,6,0,10,192,96, - 48,16,8,9,9,9,1,0,60,102,198,14,126,198,198,207, - 118,9,14,28,10,0,0,96,0,224,0,96,0,96,0,96, - 0,103,0,127,0,112,128,96,128,96,128,96,128,97,0,126, - 0,60,0,7,9,9,9,1,0,62,70,196,192,192,192,194, - 124,56,9,14,28,11,1,0,7,0,3,0,3,0,3,0, - 3,0,63,0,67,0,195,0,195,0,195,0,195,0,227,0, - 127,128,59,0,7,9,9,9,1,0,60,100,198,198,254,192, - 226,124,56,7,14,14,6,1,0,30,38,96,96,96,252,96, - 96,96,96,96,96,96,248,10,13,26,10,0,252,60,192,67, - 0,195,0,195,0,226,0,60,0,112,0,124,0,127,128,195, - 128,193,128,193,0,62,0,9,14,28,10,1,0,96,0,224, - 0,96,0,96,0,96,0,102,0,127,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,4,12,12,6,1,0,48, - 112,0,96,224,96,96,96,96,96,96,240,7,16,16,5,253, - 252,14,14,0,12,28,12,12,12,12,12,12,12,12,136,248, - 224,10,14,28,10,1,0,96,0,224,0,96,0,96,0,96, - 0,103,128,99,0,100,0,104,0,124,0,110,0,102,0,99, - 0,243,192,5,14,14,6,0,0,48,240,48,48,48,48,48, - 48,48,48,48,48,48,248,14,9,18,16,1,0,110,112,255, - 248,115,152,99,24,99,24,99,24,99,24,99,24,247,188,9, - 9,18,10,1,0,102,0,255,0,115,0,99,0,99,0,99, - 0,99,0,99,0,247,128,8,9,9,10,1,0,60,70,195, - 195,195,195,194,98,60,9,13,26,11,1,252,103,0,255,0, - 97,128,97,128,97,128,97,128,97,0,127,0,110,0,96,0, - 96,0,96,0,248,0,9,13,26,10,1,252,29,0,103,0, - 195,0,195,0,195,0,195,0,199,0,127,0,59,0,3,0, - 3,0,3,0,15,128,8,9,9,8,0,0,55,255,57,49, - 48,48,48,48,252,6,9,9,8,1,0,240,152,144,224,120, - 28,132,196,248,6,12,12,7,1,0,32,96,96,252,96,96, - 96,96,96,100,124,48,10,9,18,11,0,0,227,128,97,128, - 97,128,97,128,97,128,97,128,99,128,127,192,57,128,10,9, - 18,10,0,0,241,192,97,128,49,0,51,0,58,0,26,0, - 30,0,12,0,8,0,14,9,18,14,0,0,241,60,99,24, - 51,144,51,144,53,176,60,224,28,224,24,96,24,64,10,9, - 18,10,0,0,251,192,113,0,58,0,28,0,12,0,30,0, - 55,0,35,128,247,192,11,13,26,10,255,252,121,224,56,128, - 24,128,25,128,13,0,13,0,14,0,6,0,6,0,4,0, - 12,0,120,0,240,0,7,9,9,9,1,0,254,142,156,24, - 56,48,98,226,254,5,18,18,6,1,253,24,48,96,96,96, - 48,48,48,96,224,48,48,48,96,96,96,48,24,1,20,20, - 4,2,252,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,6,18,18,6,0,253,64,224,48, - 48,48,48,48,48,28,24,48,48,48,48,48,48,96,192,9, - 4,8,9,0,4,48,0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14[6044] U8G_FONT_SECTION("u8g_font_gdb14") = { - 0,36,33,244,248,14,3,134,7,177,32,255,251,20,250,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,6,0,0, - 4,16,16,7,1,250,112,240,96,0,32,32,32,112,112,112, - 112,112,112,112,112,96,10,14,28,12,1,0,12,0,12,0, - 31,128,125,192,108,128,204,0,204,0,204,0,204,0,236,192, - 127,128,63,0,12,0,12,0,11,14,28,12,0,0,7,192, - 12,224,24,64,24,64,56,0,56,0,56,0,127,0,184,0, - 56,0,56,32,48,32,127,224,255,224,10,9,18,12,1,2, - 128,64,94,128,51,0,97,128,97,128,97,128,51,128,94,128, - 128,64,12,14,28,12,0,0,241,240,120,192,56,192,29,128, - 29,128,13,0,15,0,6,0,63,192,6,0,6,0,6,0, - 6,0,31,128,2,24,24,5,2,251,192,192,192,192,192,192, - 192,192,192,192,128,0,0,64,192,192,192,192,192,192,192,192, - 192,192,9,16,32,11,1,0,62,0,99,0,99,0,112,0, - 60,0,127,0,199,128,195,128,225,128,121,128,63,0,31,0, - 71,0,67,0,99,0,126,0,7,3,3,9,1,12,198,238, - 198,15,15,30,17,1,0,7,192,24,48,48,24,99,204,108, - 236,200,70,216,6,216,6,216,6,216,6,108,44,103,204,48, - 24,24,48,7,192,6,7,7,6,0,7,120,216,24,248,216, - 252,248,9,10,20,12,1,0,8,128,17,128,51,0,103,0, - 238,0,238,0,103,0,51,0,17,128,8,128,10,5,10,12, - 1,2,255,192,0,192,0,192,0,192,0,192,7,1,1,8, - 1,5,254,8,8,8,8,0,8,60,66,157,149,153,153,86, - 60,9,2,4,11,1,13,255,128,255,128,6,5,5,8,1, - 9,56,76,204,200,112,8,10,10,9,1,2,24,24,24,24, - 255,24,24,24,0,255,6,8,8,8,1,7,120,204,140,24, - 16,32,68,252,6,8,8,8,1,7,56,204,140,56,12,12, - 140,120,6,5,5,7,2,12,56,60,112,96,192,12,15,30, - 13,1,251,96,192,225,192,96,192,96,192,96,192,96,192,96, - 192,113,192,127,240,110,192,96,0,96,0,112,0,112,0,96, - 0,14,17,34,14,0,253,31,252,113,176,225,176,225,176,225, - 176,225,176,113,176,31,176,1,176,1,176,1,176,1,176,1, - 176,1,176,1,176,1,176,7,252,4,3,3,5,0,6,96, - 240,224,4,5,5,5,1,251,32,96,48,48,224,6,8,8, - 8,1,7,48,240,48,48,48,48,48,252,5,7,7,6,0, - 7,112,216,216,216,216,112,248,10,10,20,12,1,0,196,0, - 102,0,99,0,51,128,57,192,61,192,49,128,99,0,102,0, - 196,0,12,14,28,14,1,0,48,16,240,48,48,96,48,192, - 48,128,49,128,255,0,6,96,4,224,13,224,25,96,19,240, - 48,96,96,240,12,14,28,14,1,0,48,48,240,96,48,192, - 48,192,49,128,51,0,254,0,6,240,13,48,26,48,16,96, - 48,192,97,144,195,240,14,14,28,15,0,0,56,8,76,24, - 40,48,60,96,12,64,140,192,121,128,3,24,2,56,6,88, - 12,88,8,252,24,24,48,60,9,16,32,11,1,250,28,0, - 30,0,12,0,0,0,12,0,12,0,12,0,24,0,56,0, - 112,0,96,0,224,0,227,128,227,128,231,0,126,0,14,20, - 40,14,0,0,8,0,28,0,15,0,3,128,0,0,0,0, - 1,0,7,128,7,128,5,128,13,192,12,192,8,224,24,224, - 31,224,16,112,48,112,48,48,32,56,248,124,14,20,40,14, - 0,0,0,128,0,224,3,192,7,0,0,0,0,0,1,0, - 7,128,7,128,5,128,13,192,12,192,8,224,24,224,31,224, - 16,112,48,112,48,48,32,56,248,124,14,20,40,14,0,0, - 3,0,7,128,15,192,12,96,16,0,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,14,19,38,14,0,0,4,32, - 15,240,27,192,0,0,0,0,1,0,7,128,7,128,5,128, - 13,192,12,192,8,224,24,224,31,224,16,112,48,112,48,48, - 32,56,248,124,14,19,38,14,0,0,8,64,28,224,24,224, - 0,0,0,0,1,0,7,128,7,128,5,128,13,192,12,192, - 8,224,24,224,31,224,16,112,48,112,48,48,32,56,248,124, - 14,20,40,14,0,0,1,128,6,192,6,192,7,128,0,0, - 0,0,1,0,7,128,7,128,5,128,13,192,12,192,8,224, - 24,224,31,224,16,112,48,112,48,48,32,56,248,124,18,14, - 42,19,0,0,7,255,128,1,225,128,3,96,128,3,96,128, - 6,96,0,6,96,0,7,255,0,12,98,0,12,96,0,24, - 96,0,24,96,0,48,96,64,48,96,192,249,255,128,11,19, - 38,13,1,251,15,192,49,192,96,128,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,112,96,63,192,31,128, - 4,0,6,0,3,0,3,0,12,0,12,20,40,12,0,0, - 16,0,56,0,30,0,7,0,0,0,0,0,255,224,56,96, - 56,96,56,64,56,0,56,0,63,192,56,128,56,0,56,0, - 56,0,56,48,56,32,255,224,12,20,40,12,0,0,1,0, - 1,192,7,128,14,0,0,0,0,0,255,224,56,96,56,96, - 56,64,56,0,56,0,63,192,56,128,56,0,56,0,56,0, - 56,48,56,32,255,224,12,20,40,12,0,0,6,0,15,0, - 31,128,48,192,0,0,0,0,255,224,56,96,56,96,56,64, - 56,0,56,0,63,192,56,128,56,0,56,0,56,0,56,48, - 56,32,255,224,12,19,38,12,0,0,16,128,49,192,49,192, - 0,0,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 7,20,20,8,0,0,64,224,112,24,4,0,126,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,20,20,8,1,0, - 8,30,60,96,128,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,252,7,20,20,8,0,0,16,56,124,198,0,0, - 126,24,24,24,24,24,24,24,24,24,24,24,24,126,8,19, - 19,8,255,0,65,99,227,0,0,63,12,12,12,12,12,12, - 12,12,12,12,12,12,63,14,14,28,15,0,0,127,192,240, - 240,48,56,48,24,48,28,48,28,254,28,48,28,48,28,48, - 28,48,24,48,56,48,240,255,192,15,19,38,15,0,0,2, - 32,15,240,11,224,16,0,0,0,248,126,56,24,60,24,62, - 24,54,24,55,24,51,152,49,152,49,216,48,248,48,120,48, - 56,48,56,252,24,12,20,40,14,1,0,16,0,60,0,30, - 0,3,0,0,0,0,0,15,128,48,192,96,96,64,96,192, - 48,192,48,192,48,192,48,192,48,192,48,96,96,96,64,48, - 128,31,0,12,20,40,14,1,0,1,0,1,192,7,128,14, - 0,0,0,0,0,15,128,48,192,96,96,64,96,192,48,192, - 48,192,48,192,48,192,48,192,48,96,96,96,64,48,128,31, - 0,12,20,40,14,1,0,6,0,15,0,15,128,24,192,32, - 0,0,0,15,128,48,192,96,96,64,96,192,48,192,48,192, - 48,192,48,192,48,192,48,96,96,96,64,48,128,31,0,12, - 19,38,14,1,0,8,64,31,224,55,128,0,0,0,0,15, - 128,48,192,96,96,64,96,192,48,192,48,192,48,192,48,192, - 48,192,48,96,96,96,64,48,128,31,0,12,19,38,14,1, - 0,16,128,57,192,49,192,0,0,0,0,15,128,48,192,96, - 96,64,96,192,48,192,48,192,48,192,48,192,48,192,48,96, - 96,96,64,48,128,31,0,8,7,7,10,1,3,195,102,60, - 24,60,102,195,12,15,30,14,1,255,15,176,16,224,32,224, - 96,224,193,240,195,112,195,48,198,48,204,48,232,32,120,96, - 112,64,112,128,223,0,128,0,15,20,40,15,0,0,4,0, - 14,0,7,0,1,192,0,0,0,0,252,126,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,24, - 24,48,24,32,7,192,15,20,40,15,0,0,0,64,0,240, - 1,224,3,0,0,0,0,0,252,126,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,24,48, - 24,32,7,192,15,20,40,15,0,0,1,128,3,128,7,192, - 12,96,0,16,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,19,38,15,0,0,4,32,12,112,12,96,0,0, - 0,0,252,126,48,24,48,24,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,24,48,24,32,7,192,13,20, - 40,14,0,0,0,128,0,224,3,192,7,0,0,0,0,0, - 240,120,56,48,28,96,28,96,14,192,6,128,7,128,3,0, - 3,0,3,0,3,0,3,0,3,0,15,192,12,14,28,13, - 0,0,252,0,48,0,48,0,63,192,48,96,48,48,48,48, - 48,48,48,48,48,96,55,192,48,0,48,0,252,0,11,17, - 34,14,1,0,15,128,16,192,32,96,32,96,96,96,96,96, - 97,192,99,0,99,0,99,0,99,192,97,192,96,224,104,96, - 104,96,108,64,239,128,10,17,34,11,1,0,48,0,120,0, - 24,0,12,0,6,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,17, - 34,11,1,0,7,0,7,0,14,0,12,0,24,0,0,0, - 0,0,62,0,99,0,227,0,3,0,63,0,99,0,195,0, - 195,0,255,192,123,0,10,17,34,11,1,0,12,0,30,0, - 62,0,115,0,65,128,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,10,16, - 32,11,1,0,56,128,124,128,127,0,198,0,0,0,0,0, - 62,0,99,0,227,0,3,0,63,0,99,0,195,0,195,0, - 255,192,123,0,10,15,30,11,1,0,99,0,99,128,99,0, - 0,0,0,0,62,0,99,0,227,0,3,0,63,0,99,0, - 195,0,195,0,255,192,123,0,10,16,32,11,1,0,14,0, - 27,0,26,0,28,0,0,0,0,0,62,0,99,0,227,0, - 3,0,63,0,99,0,195,0,195,0,255,192,123,0,15,10, - 20,17,1,0,30,120,119,140,227,6,131,6,31,252,99,0, - 195,0,199,132,253,252,112,240,9,15,30,10,1,251,31,0, - 99,128,65,0,192,0,192,0,192,0,192,0,225,0,126,0, - 60,0,16,0,28,0,12,0,12,0,48,0,9,17,34,11, - 1,0,56,0,56,0,28,0,12,0,6,0,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,17,34,11,1,0,7,0,7,128,14,0, - 12,0,24,0,0,0,0,0,30,0,99,0,65,128,193,128, - 255,128,192,0,192,0,225,128,127,0,62,0,9,17,34,11, - 1,0,12,0,30,0,63,0,51,0,96,128,0,0,0,0, - 30,0,99,0,65,128,193,128,255,128,192,0,192,0,225,128, - 127,0,62,0,9,15,30,11,1,0,97,128,99,128,99,0, - 0,0,0,0,30,0,99,0,65,128,193,128,255,128,192,0, - 192,0,225,128,127,0,62,0,6,17,17,7,0,0,224,112, - 48,24,8,0,0,56,120,24,24,24,24,24,24,24,124,6, - 17,17,7,1,0,28,60,56,96,64,0,0,112,240,48,48, - 48,48,48,48,48,248,7,17,17,7,0,0,56,56,124,198, - 130,0,0,56,120,24,24,24,24,24,24,24,124,8,15,15, - 7,255,0,99,227,195,0,0,28,60,12,12,12,12,12,12, - 12,62,10,17,34,12,1,0,24,0,125,192,15,128,31,0, - 51,128,3,128,1,192,31,192,97,192,64,192,192,192,192,192, - 192,192,192,128,225,128,113,0,30,0,12,16,32,13,1,0, - 28,64,62,64,63,128,99,0,0,0,0,0,51,128,247,192, - 56,192,48,192,48,192,48,192,48,192,48,192,48,192,249,240, - 10,17,34,12,1,0,56,0,56,0,28,0,6,0,2,0, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,17,34,12,1,0,3,128, - 7,0,6,0,12,0,8,0,0,0,0,0,30,0,33,128, - 65,128,192,192,192,192,192,192,192,192,96,128,113,0,30,0, - 10,17,34,12,1,0,12,0,30,0,31,0,49,128,96,128, - 0,0,0,0,30,0,33,128,65,128,192,192,192,192,192,192, - 192,192,96,128,113,0,30,0,10,16,32,12,1,0,24,64, - 60,128,127,128,71,0,0,0,0,0,30,0,33,128,65,128, - 192,192,192,192,192,192,192,192,96,128,113,0,30,0,10,15, - 30,12,1,0,49,128,115,128,97,128,0,0,0,0,30,0, - 33,128,65,128,192,192,192,192,192,192,192,192,96,128,113,0, - 30,0,8,8,8,10,1,2,24,24,16,255,0,24,24,24, - 10,12,24,12,1,255,0,64,30,192,51,128,99,192,199,192, - 196,192,200,192,248,192,113,128,113,0,94,0,128,0,12,17, - 34,13,1,0,56,0,28,0,12,0,6,0,2,0,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,17,34,13,1,0,3,128,7,128, - 6,0,12,0,8,0,0,0,0,0,97,192,224,192,96,192, - 96,192,96,192,96,192,96,192,97,192,127,240,60,192,12,17, - 34,13,1,0,14,0,14,0,31,0,49,128,32,128,0,0, - 0,0,97,192,224,192,96,192,96,192,96,192,96,192,96,192, - 97,192,127,240,60,192,12,15,30,13,1,0,49,128,113,128, - 97,128,0,0,0,0,97,192,224,192,96,192,96,192,96,192, - 96,192,96,192,97,192,127,240,60,192,13,22,44,12,255,251, - 0,192,1,224,1,128,3,0,6,0,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0,11,22,44,13, - 1,251,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 51,128,63,192,56,224,48,96,48,96,48,96,48,96,48,192, - 63,128,55,0,48,0,48,0,48,0,48,0,252,0,13,20, - 40,12,255,251,24,96,28,224,24,192,0,0,0,0,124,120, - 56,32,28,96,28,64,14,192,14,192,6,128,7,128,7,0, - 3,0,3,0,6,0,70,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=11 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14n[464] U8G_FONT_SECTION("u8g_font_gdb14n") = { - 0,36,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,219,0,255,128,60, - 0,62,0,255,0,219,0,24,0,24,0,8,8,8,10,1, - 2,24,24,24,255,24,24,24,24,4,7,7,6,1,252,48, - 240,48,48,32,96,64,7,1,1,8,1,5,254,4,3,3, - 6,1,0,96,240,224,11,22,44,11,0,252,0,96,0,192, - 0,192,1,128,1,128,3,128,3,0,3,0,7,0,6,0, - 6,0,12,0,12,0,28,0,24,0,24,0,56,0,48,0, - 48,0,96,0,96,0,192,0,10,14,28,12,1,0,30,0, - 51,0,97,128,97,128,225,192,225,192,225,192,225,192,225,192, - 225,192,97,128,97,128,51,0,30,0,8,14,14,12,2,0, - 8,120,248,24,24,24,24,24,24,24,24,24,24,255,8,14, - 14,11,2,0,62,103,227,195,3,6,4,12,24,48,33,65, - 255,255,9,14,28,11,1,0,30,0,99,0,227,0,67,0, - 3,0,6,0,31,0,7,128,3,128,1,128,1,128,1,128, - 67,0,190,0,10,14,28,12,1,0,1,0,7,0,7,0, - 15,0,27,0,19,0,51,0,99,0,99,0,255,192,3,0, - 3,0,3,0,15,192,9,14,28,12,1,0,63,128,63,0, - 32,0,96,0,96,0,126,0,67,0,1,128,1,128,1,128, - 1,128,1,128,195,0,62,0,10,14,28,12,1,0,7,0, - 28,0,48,0,96,0,64,0,223,0,225,128,192,192,192,192, - 192,192,192,192,96,128,49,128,30,0,10,14,28,12,1,0, - 127,192,255,128,129,128,129,128,3,0,3,0,2,0,6,0, - 6,0,12,0,12,0,24,0,56,0,48,0,9,14,28,11, - 1,0,62,0,113,128,241,128,241,128,249,128,127,0,63,0, - 63,128,99,128,193,128,193,128,193,128,99,0,62,0,10,14, - 28,12,1,0,31,0,35,128,65,128,192,192,192,192,192,192, - 192,192,97,192,62,192,0,128,1,128,3,0,14,0,56,0, - 4,10,10,6,1,0,224,240,96,0,0,0,0,96,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--23-230-72-72-P-114-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=19 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=60 - Font Bounding box w=36 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb14r[2842] U8G_FONT_SECTION("u8g_font_gdb14r") = { - 0,36,33,244,248,14,3,134,7,177,32,127,251,19,251,18, - 251,0,0,0,6,0,0,4,17,17,7,2,0,96,224,224, - 224,224,224,224,224,224,64,64,64,0,0,96,240,224,7,8, - 8,11,2,9,102,238,206,206,198,198,198,196,11,13,26,12, - 1,1,12,192,12,128,9,128,127,224,25,0,19,0,19,0, - 51,0,255,128,38,0,38,0,100,0,140,0,10,18,36,12, - 1,254,12,0,12,0,63,128,127,192,205,128,204,128,236,0, - 124,0,63,0,15,128,13,192,140,192,140,192,204,192,255,128, - 127,0,12,0,12,0,15,14,28,17,1,0,56,24,76,16, - 198,48,198,96,198,192,199,128,101,128,59,56,6,68,12,198, - 12,198,24,198,48,100,96,56,15,16,32,16,1,0,15,0, - 17,128,49,128,49,128,51,0,62,0,60,0,28,254,124,120, - 126,48,207,48,199,160,195,224,193,240,97,252,62,56,3,8, - 8,6,2,9,96,224,192,192,192,192,192,192,5,22,22,8, - 2,252,8,24,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,96,96,96,48,24,8,5,22,22,8,1,252,128,192, - 96,48,48,48,24,24,24,24,24,24,24,24,24,24,48,48, - 48,96,192,128,9,10,20,10,1,8,24,0,24,0,219,0, - 255,128,60,0,62,0,255,0,219,0,24,0,24,0,8,8, - 8,10,1,2,24,24,24,255,24,24,24,24,4,7,7,6, - 1,252,48,240,48,48,32,96,64,7,1,1,8,1,5,254, - 4,3,3,6,1,0,96,240,224,11,22,44,11,0,252,0, - 96,0,192,0,192,1,128,1,128,3,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,24,0,56, - 0,48,0,48,0,96,0,96,0,192,0,10,14,28,12,1, - 0,30,0,51,0,97,128,97,128,225,192,225,192,225,192,225, - 192,225,192,225,192,97,128,97,128,51,0,30,0,8,14,14, - 12,2,0,8,120,248,24,24,24,24,24,24,24,24,24,24, - 255,8,14,14,11,2,0,62,103,227,195,3,6,4,12,24, - 48,33,65,255,255,9,14,28,11,1,0,30,0,99,0,227, - 0,67,0,3,0,6,0,31,0,7,128,3,128,1,128,1, - 128,1,128,67,0,190,0,10,14,28,12,1,0,1,0,7, - 0,7,0,15,0,27,0,19,0,51,0,99,0,99,0,255, - 192,3,0,3,0,3,0,15,192,9,14,28,12,1,0,63, - 128,63,0,32,0,96,0,96,0,126,0,67,0,1,128,1, - 128,1,128,1,128,1,128,195,0,62,0,10,14,28,12,1, - 0,7,0,28,0,48,0,96,0,64,0,223,0,225,128,192, - 192,192,192,192,192,192,192,96,128,49,128,30,0,10,14,28, - 12,1,0,127,192,255,128,129,128,129,128,3,0,3,0,2, - 0,6,0,6,0,12,0,12,0,24,0,56,0,48,0,9, - 14,28,11,1,0,62,0,113,128,241,128,241,128,249,128,127, - 0,63,0,63,128,99,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,12,1,0,31,0,35,128,65,128,192,192,192, - 192,192,192,192,192,97,192,62,192,0,128,1,128,3,0,14, - 0,56,0,4,10,10,6,1,0,224,240,96,0,0,0,0, - 96,240,224,4,15,15,6,1,252,96,240,224,0,0,0,0, - 0,48,240,48,48,32,96,64,9,7,14,10,1,3,1,128, - 15,128,124,0,224,0,248,0,31,0,3,128,9,4,8,10, - 1,4,255,128,0,0,0,0,255,128,9,7,14,10,1,3, - 192,0,248,0,31,0,3,128,31,0,240,0,128,0,9,16, - 32,10,1,0,63,0,103,128,227,128,227,128,3,128,7,0, - 7,0,14,0,12,0,24,0,24,0,24,0,0,0,28,0, - 60,0,56,0,18,20,60,20,1,251,1,248,0,7,254,0, - 28,15,0,56,3,128,48,1,128,97,233,192,99,24,192,194, - 24,192,198,24,192,198,24,192,198,24,192,198,24,128,199,57, - 128,227,255,0,97,222,0,112,0,0,56,1,0,62,7,0, - 15,252,0,3,240,0,14,14,28,14,0,0,1,0,7,128, - 7,128,5,128,13,192,12,192,8,224,24,224,31,224,16,112, - 48,112,48,48,32,56,248,124,13,14,28,14,0,0,127,128, - 176,192,48,96,48,96,48,96,48,192,63,224,48,112,48,56, - 48,56,48,56,48,56,48,112,255,224,11,14,28,13,1,0, - 15,192,49,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,192,0,224,0,112,96,127,128,31,0,14,14,28,15, - 0,0,127,192,240,240,48,56,48,24,48,28,48,28,48,28, - 48,28,48,28,48,28,48,24,48,56,48,240,255,192,12,14, - 28,12,0,0,255,224,56,96,56,96,56,64,56,0,56,0, - 63,192,56,128,56,0,56,0,56,0,56,48,56,32,255,224, - 11,14,28,12,0,0,255,224,56,96,56,32,56,32,56,0, - 56,0,63,128,57,0,56,0,56,0,56,0,56,0,56,0, - 254,0,12,14,28,14,1,0,15,192,16,224,32,64,96,0, - 64,0,192,0,192,0,192,0,193,240,192,96,96,96,96,96, - 48,96,15,128,16,14,28,16,0,0,252,63,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,252,63,6,14,14,8,1,0,252,48,48,48, - 48,48,48,48,48,48,48,48,48,252,10,19,38,8,253,251, - 15,192,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 38,0,124,0,248,0,13,14,28,14,0,0,252,248,48,224, - 48,192,49,128,51,0,54,0,60,0,62,0,55,0,51,128, - 49,192,48,224,48,120,252,120,11,14,28,12,0,0,252,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,96,48,64,255,192,18,14,42,19,1,0, - 240,7,128,120,15,0,120,15,0,124,15,0,124,31,0,108, - 23,0,110,55,0,102,55,0,103,103,0,99,103,0,99,199, - 0,99,199,0,97,135,0,241,143,192,15,14,28,15,0,0, - 248,126,56,24,60,24,62,24,54,24,55,24,51,152,49,152, - 49,216,48,248,48,120,48,56,48,56,252,24,12,14,28,14, - 1,0,15,128,48,192,96,96,64,96,192,48,192,48,192,48, - 192,48,192,48,192,48,96,96,96,64,48,128,31,0,12,14, - 28,13,0,0,127,192,176,224,48,48,48,48,48,48,48,48, - 48,96,55,128,48,0,48,0,48,0,48,0,48,0,252,0, - 15,18,36,14,1,252,15,128,48,192,96,96,64,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 31,0,1,192,0,228,0,126,0,24,14,14,28,14,0,0, - 127,192,240,224,48,48,48,48,48,48,48,96,63,192,51,128, - 49,192,49,192,48,224,48,112,48,124,252,60,10,14,28,12, - 1,0,31,128,97,192,192,128,192,0,240,0,124,0,63,0, - 15,128,3,192,1,192,128,192,192,128,225,128,254,0,12,14, - 28,13,1,0,255,240,198,48,134,16,134,16,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 15,14,28,15,0,0,252,126,48,24,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,24,48,24,32, - 7,192,15,14,28,15,0,0,252,62,56,8,56,24,56,16, - 28,48,28,48,14,32,14,96,6,96,7,64,7,192,3,128, - 3,128,1,0,19,14,42,20,0,0,252,99,224,48,96,192, - 56,112,192,56,240,128,56,241,128,24,185,128,25,153,128,29, - 29,0,29,29,0,15,15,0,14,15,0,14,7,0,14,6, - 0,4,6,0,14,14,28,14,0,0,252,124,56,48,28,96, - 28,96,14,192,7,128,7,128,7,128,7,192,12,224,24,224, - 24,112,48,56,248,252,13,14,28,14,0,0,240,120,56,48, - 28,96,28,96,14,192,6,128,7,128,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,11,14,28,13,1,0,127,224, - 193,192,195,128,131,128,7,0,15,0,14,0,28,0,28,0, - 56,0,120,32,112,96,224,96,255,224,6,21,21,8,2,253, - 248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,252,10,22,44,11,0,252,192,0,96,0,96, - 0,48,0,48,0,48,0,24,0,24,0,28,0,12,0,12, - 0,6,0,6,0,6,0,3,0,3,0,3,0,1,128,1, - 128,1,192,0,192,0,192,5,21,21,7,1,253,248,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,248,9,11,22,11,1,6,8,0,12,0,28,0,22,0, - 54,0,34,0,35,0,99,0,65,128,65,128,129,128,10,1, - 2,11,1,253,255,192,5,5,5,7,0,12,224,224,112,56, - 8,10,10,20,11,1,0,62,0,99,0,227,0,3,0,63, - 0,99,0,195,0,195,0,255,192,123,0,11,17,34,12,0, - 0,96,0,224,0,96,0,96,0,96,0,96,0,96,0,119, - 128,127,192,112,224,96,96,96,96,96,96,96,64,96,192,127, - 128,30,0,9,10,20,10,1,0,31,0,99,128,65,0,192, - 0,192,0,192,0,192,0,225,0,127,128,60,0,12,17,34, - 13,1,0,0,192,3,192,0,192,0,192,0,192,0,192,0, - 192,31,192,33,192,64,192,192,192,192,192,192,192,192,192,97, - 192,127,240,60,192,9,10,20,11,1,0,30,0,99,0,65, - 128,193,128,255,128,192,0,192,0,225,128,127,0,62,0,9, - 17,34,8,0,0,7,128,25,0,16,0,48,0,48,0,48, - 0,48,0,126,0,176,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,124,0,11,15,30,12,1,251,30,96,35, - 192,97,128,97,128,97,128,115,0,62,0,48,0,124,0,63, - 128,111,192,192,192,192,192,225,128,62,0,12,17,34,13,1, - 0,48,0,240,0,48,0,48,0,48,0,48,0,48,0,51, - 128,63,192,56,192,48,192,48,192,48,192,48,192,48,192,48, - 192,249,240,5,15,15,7,1,0,48,112,48,0,0,112,240, - 48,48,48,48,48,48,48,248,7,20,20,6,254,251,6,14, - 6,0,0,6,14,6,6,6,6,6,6,6,6,6,6,68, - 248,240,12,17,34,13,1,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,49,240,49,192,51,0,54,0,62,0, - 55,0,51,128,49,192,49,224,248,240,6,17,17,7,1,0, - 48,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,18,10,30,19,1,0,103,142,0,255,255,0,112,227,0, - 96,195,0,96,195,0,96,195,0,96,195,0,96,195,0,96, - 195,0,241,231,192,12,10,20,13,1,0,51,128,247,192,56, - 192,48,192,48,192,48,192,48,192,48,192,48,192,249,240,10, - 10,20,12,1,0,30,0,33,128,65,128,192,192,192,192,192, - 192,192,192,96,128,113,0,30,0,11,15,30,13,1,251,51, - 128,255,192,56,224,48,96,48,96,48,96,48,96,48,192,63, - 128,55,0,48,0,48,0,48,0,48,0,252,0,11,15,30, - 13,1,251,30,64,97,192,64,192,192,192,192,192,192,192,192, - 192,225,192,127,192,60,192,0,192,0,192,0,192,0,192,3, - 224,9,10,20,10,1,0,119,128,255,128,121,128,113,0,112, - 0,112,0,112,0,112,0,112,0,252,0,8,10,10,10,1, - 0,126,198,198,240,124,63,135,131,194,252,8,14,14,9,0, - 0,16,48,48,48,127,176,48,48,48,48,48,50,63,24,12, - 10,20,13,1,0,97,192,224,192,96,192,96,192,96,192,96, - 192,96,192,97,192,127,240,60,192,12,10,20,12,0,0,248, - 240,112,64,56,192,56,128,28,128,29,128,13,0,15,0,6, - 0,6,0,16,10,20,17,0,0,248,135,112,194,49,198,57, - 230,59,100,27,124,30,124,14,56,12,56,12,16,12,10,20, - 12,0,0,253,240,56,192,29,128,31,0,14,0,15,0,27, - 128,17,192,33,224,243,240,13,15,30,12,255,251,124,120,56, - 32,28,96,28,64,14,192,14,192,6,128,7,128,7,0,3, - 0,3,0,6,0,70,0,124,0,248,0,9,10,20,11,1, - 0,255,128,199,0,135,0,14,0,28,0,60,0,57,0,112, - 128,225,128,255,128,5,22,22,8,2,252,24,48,96,96,96, - 96,48,48,48,48,96,224,48,48,48,48,96,96,96,96,48, - 24,2,24,24,5,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,5, - 22,22,8,1,252,192,96,48,48,48,48,96,96,96,96,56, - 48,96,96,96,96,48,48,48,48,96,192,10,4,8,11,1, - 5,48,64,124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17[7600] U8G_FONT_SECTION("u8g_font_gdb17") = { - 0,42,39,242,246,17,4,81,9,172,32,255,250,23,249,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,7,0,0,4,19,19,8,2,249, - 112,240,240,224,32,96,96,96,96,96,96,112,112,112,240,240, - 240,240,192,10,17,34,14,2,255,12,0,12,0,15,128,63, - 192,109,192,108,192,204,0,204,0,204,0,204,0,204,0,236, - 64,125,192,63,128,30,0,12,0,12,0,13,16,32,14,0, - 0,3,240,6,56,12,16,28,16,28,16,60,0,60,0,60, - 0,255,192,60,0,60,0,60,16,56,24,56,24,127,248,255, - 240,12,11,22,14,1,2,192,48,239,112,112,224,96,96,96, - 96,96,96,96,96,112,224,111,96,192,48,128,16,15,16,32, - 14,255,0,248,126,120,56,60,48,30,48,30,96,15,96,7, - 192,7,192,7,192,3,128,63,248,3,128,3,128,3,128,3, - 128,15,224,2,27,27,6,2,251,192,192,192,192,192,192,192, - 192,192,192,192,192,128,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,10,19,38,13,2,0,31,0,35,128,97,0, - 113,0,120,0,62,0,127,128,207,128,195,192,225,192,240,192, - 124,192,63,128,31,128,7,128,65,128,65,128,97,0,126,0, - 9,4,8,11,1,14,115,128,247,128,247,128,231,0,18,18, - 54,20,1,0,3,240,0,14,28,0,24,6,0,48,3,0, - 97,241,128,102,57,128,198,16,192,204,0,192,204,0,192,204, - 0,192,204,0,192,204,0,192,102,1,128,103,25,128,49,243, - 0,24,6,0,12,12,0,3,240,0,6,9,9,7,1,8, - 120,216,24,120,216,216,252,0,252,11,12,24,14,1,0,4, - 32,8,96,24,192,49,192,115,128,231,128,231,128,115,128,49, - 192,24,192,8,96,4,32,12,6,12,14,1,2,127,240,128, - 48,0,48,0,48,0,48,0,32,8,1,1,10,1,6,255, - 10,9,18,10,255,10,30,0,97,128,255,128,219,192,222,192, - 220,192,251,192,97,128,30,0,11,2,4,13,1,16,127,224, - 255,224,6,7,7,10,2,10,56,76,204,204,204,200,112,10, - 12,24,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,0,0,0,0,255,192,7,10,10, - 9,1,8,60,102,230,6,12,24,16,50,98,254,7,10,10, - 9,1,8,60,102,70,6,28,6,6,6,142,120,6,6,6, - 9,3,14,56,60,112,96,192,128,15,18,36,15,0,250,24, - 24,248,120,56,56,56,56,56,56,56,56,56,56,56,56,60, - 120,63,248,63,190,55,24,48,0,48,0,56,0,56,0,60, - 0,48,0,15,20,40,17,1,253,15,254,49,248,113,152,225, - 152,225,152,225,152,225,152,113,152,121,152,31,152,1,152,1, - 152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,7, - 254,4,4,4,6,1,7,112,240,240,224,5,6,6,6,1, - 250,32,96,120,56,112,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,7,9,9,8,0,8,56,76,198, - 198,198,228,120,0,254,11,12,24,14,2,0,132,0,198,0, - 99,0,115,128,57,192,61,224,61,224,57,192,115,128,99,0, - 198,0,132,0,15,16,32,17,1,0,48,6,240,12,48,24, - 48,48,48,48,48,96,48,192,253,128,1,140,3,28,6,44, - 12,44,12,76,24,254,48,12,96,62,15,16,32,17,1,0, - 48,6,240,12,48,24,48,24,48,48,48,96,48,192,252,192, - 1,188,3,102,6,70,6,12,12,8,24,16,48,34,112,126, - 15,16,32,17,1,0,56,6,204,12,12,24,56,48,12,48, - 12,96,140,192,121,128,1,140,3,28,6,60,12,44,12,76, - 24,254,48,12,96,62,10,19,38,12,1,249,14,0,30,0, - 30,0,28,0,0,0,6,0,6,0,6,0,14,0,12,0, - 24,0,56,0,112,0,224,0,224,192,225,192,225,192,243,128, - 62,0,17,23,69,17,0,0,6,0,0,15,0,0,7,128, - 0,1,192,0,0,96,0,0,0,0,0,192,0,1,192,0, - 3,192,0,3,224,0,2,224,0,6,240,0,6,112,0,6, - 112,0,12,120,0,12,56,0,15,248,0,24,28,0,24,28, - 0,16,28,0,48,14,0,48,14,0,252,63,128,17,23,69, - 17,0,0,0,48,0,0,120,0,1,224,0,3,128,0,2, - 0,0,0,0,0,0,192,0,1,192,0,3,192,0,3,224, - 0,2,224,0,6,240,0,6,112,0,6,112,0,12,120,0, - 12,56,0,15,248,0,24,28,0,24,28,0,16,28,0,48, - 14,0,48,14,0,252,63,128,17,23,69,17,0,0,1,192, - 0,3,224,0,7,240,0,14,48,0,8,24,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,22,66,17,0,0,7,140,0,15,248,0,15, - 240,0,16,96,0,0,0,0,0,192,0,1,192,0,3,192, - 0,3,224,0,2,224,0,6,240,0,6,112,0,6,112,0, - 12,120,0,12,56,0,15,248,0,24,28,0,24,28,0,16, - 28,0,48,14,0,48,14,0,252,63,128,17,22,66,17,0, - 0,7,56,0,15,120,0,15,120,0,6,48,0,0,0,0, - 0,192,0,1,192,0,3,192,0,3,224,0,2,224,0,6, - 240,0,6,112,0,6,112,0,12,120,0,12,56,0,15,248, - 0,24,28,0,24,28,0,16,28,0,48,14,0,48,14,0, - 252,63,128,17,23,69,17,0,0,3,224,0,6,96,0,6, - 96,0,7,96,0,3,128,0,0,0,0,0,192,0,1,192, - 0,3,192,0,3,224,0,2,224,0,6,240,0,6,112,0, - 6,112,0,12,120,0,12,56,0,15,248,0,24,28,0,24, - 28,0,16,28,0,48,14,0,48,14,0,252,63,128,21,17, - 51,22,0,0,7,255,240,1,248,48,1,248,48,3,184,48, - 3,184,48,3,56,0,7,56,0,6,56,0,7,255,224,12, - 56,64,12,56,0,28,56,0,24,56,0,24,56,8,48,56, - 24,48,56,24,248,255,248,14,23,46,15,1,250,7,240,24, - 120,48,48,112,0,96,0,96,0,224,0,224,0,224,0,224, - 0,224,0,240,0,112,0,120,8,60,60,63,240,15,192,1, - 0,3,128,3,192,1,192,3,128,6,0,13,23,46,14,1, - 0,24,0,60,0,94,0,7,0,1,128,0,0,255,240,120, - 48,120,48,120,32,120,32,120,0,120,0,120,0,127,192,120, - 128,120,0,120,0,120,0,120,16,120,24,120,48,255,240,13, - 23,46,14,1,0,1,192,3,224,7,128,14,0,24,0,0, - 0,255,240,120,48,120,48,120,32,120,32,120,0,120,0,120, - 0,127,192,120,128,120,0,120,0,120,0,120,16,120,24,120, - 48,255,240,13,23,46,14,1,0,7,0,15,0,31,128,56, - 192,32,96,0,0,255,240,120,48,120,48,120,32,120,32,120, - 0,120,0,120,0,127,192,120,128,120,0,120,0,120,0,120, - 16,120,24,120,48,255,240,13,22,44,14,1,0,28,224,61, - 224,61,224,24,192,0,0,255,240,120,48,120,48,120,32,120, - 32,120,0,120,0,120,0,127,192,120,128,120,0,120,0,120, - 0,120,16,120,24,120,48,255,240,8,23,23,9,0,0,96, - 240,120,28,6,0,127,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,127,8,23,23,9,1,0,6,31,60,112, - 64,0,254,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,9,23,46,9,0,0,28,0,62,0,126,0,227, - 0,129,128,0,0,127,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,127,0,9,22,44,9,0,0,115,128,247, - 128,247,128,99,0,0,0,127,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,127,0,16,17,34,17,0,0,63, - 224,248,120,56,60,56,30,56,30,56,15,56,15,56,15,255, - 143,56,15,56,15,56,15,56,30,56,30,56,60,56,120,255, - 224,18,22,66,18,0,0,3,204,0,7,248,0,15,248,0, - 8,112,0,0,0,0,248,15,192,124,3,0,60,3,0,62, - 3,0,63,3,0,55,131,0,51,195,0,51,195,0,49,227, - 0,48,243,0,48,123,0,48,123,0,48,63,0,48,31,0, - 48,15,0,48,7,0,252,3,0,15,23,46,17,1,0,12, - 0,30,0,15,0,3,128,0,64,0,0,7,192,24,112,48, - 56,48,28,96,28,96,14,224,14,224,14,224,14,224,14,224, - 14,224,12,112,28,112,24,56,24,28,32,7,192,15,23,46, - 17,1,0,0,96,0,240,3,224,7,0,4,0,0,0,7, - 192,24,112,48,56,48,28,96,28,96,14,224,14,224,14,224, - 14,224,14,224,14,224,12,112,28,112,24,56,24,28,32,7, - 192,15,23,46,17,1,0,3,128,7,192,15,224,28,96,16, - 48,0,0,7,192,24,112,48,56,48,28,96,28,96,14,224, - 14,224,14,224,14,224,14,224,14,224,12,112,28,112,24,56, - 24,28,32,7,192,15,22,44,17,1,0,15,24,31,240,31, - 224,48,192,0,0,7,192,24,112,48,56,48,28,96,28,96, - 14,224,14,224,14,224,14,224,14,224,14,224,12,112,28,112, - 24,56,24,28,32,7,192,15,22,44,17,1,0,14,112,30, - 240,30,240,12,96,0,0,7,192,24,112,48,56,48,28,96, - 28,96,14,224,14,224,14,224,14,224,14,224,14,224,12,112, - 28,112,24,56,24,28,32,7,192,9,9,18,11,1,3,193, - 128,227,128,119,0,62,0,28,0,62,0,119,0,227,128,193, - 128,15,18,36,17,1,255,7,238,8,124,56,56,48,60,112, - 124,96,254,224,238,225,206,227,142,227,14,231,14,254,12,124, - 28,124,24,56,48,124,32,239,192,128,0,17,23,69,18,0, - 0,3,0,0,7,128,0,3,192,0,0,224,0,0,48,0, - 0,0,0,254,31,128,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,4,0,28,12,0, - 14,24,0,3,224,0,17,23,69,18,0,0,0,56,0,0, - 124,0,0,240,0,1,192,0,3,0,0,0,0,0,254,31, - 128,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,4,0,28,12,0,14,24,0,3,224, - 0,17,23,69,18,0,0,0,224,0,1,224,0,3,240,0, - 7,24,0,4,12,0,0,0,0,254,31,128,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,6,0,56,6, - 0,56,6,0,56,6,0,56,6,0,56,6,0,56,6,0, - 56,4,0,28,12,0,14,24,0,3,224,0,17,22,66,18, - 0,0,3,156,0,7,188,0,7,188,0,3,24,0,0,0, - 0,254,31,128,56,6,0,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,4,0,28,12,0,14,24, - 0,3,224,0,16,23,46,17,0,0,0,48,0,248,1,224, - 3,128,2,0,0,0,248,31,60,14,28,12,14,24,15,24, - 7,48,7,48,3,224,3,224,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,7,240,14,17,34,15,0,0,254,0, - 56,0,56,0,63,192,56,112,56,56,56,28,56,28,56,28, - 56,28,56,56,56,112,59,224,56,0,56,0,56,0,254,0, - 15,20,40,17,0,0,1,240,6,60,12,28,24,14,24,14, - 56,14,56,28,56,56,56,96,56,192,56,192,56,224,56,120, - 56,60,56,30,56,14,57,6,57,134,57,132,249,248,12,20, - 40,13,1,0,56,0,60,0,28,0,14,0,6,0,3,0, - 0,0,0,0,31,128,113,192,241,192,129,192,3,192,63,192, - 113,192,225,192,225,192,227,240,253,224,121,128,12,20,40,13, - 1,0,3,192,3,192,7,128,7,0,14,0,12,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,12,20,40,13,1,0, - 6,0,15,0,31,0,59,128,48,192,96,64,0,0,0,0, - 31,128,113,192,241,192,129,192,3,192,63,192,113,192,225,192, - 225,192,227,240,253,224,121,128,12,19,38,13,1,0,0,32, - 28,96,63,192,71,192,67,128,0,0,0,0,31,128,113,192, - 241,192,129,192,3,192,63,192,113,192,225,192,225,192,227,240, - 253,224,121,128,12,18,36,13,1,0,57,192,61,224,57,192, - 57,192,0,0,0,0,31,128,113,192,241,192,129,192,3,192, - 63,192,113,192,225,192,225,192,227,240,253,224,121,128,12,19, - 38,13,1,0,15,0,27,0,25,128,27,0,30,0,0,0, - 0,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,18,12,36,20,1,0, - 7,158,0,31,227,0,56,225,128,112,193,128,64,193,128,15, - 255,0,56,192,0,96,192,0,224,224,128,227,241,192,254,127, - 0,124,62,0,11,18,36,12,1,250,15,224,48,192,112,192, - 96,64,224,0,224,0,224,0,224,0,240,64,120,192,63,128, - 31,0,4,0,14,0,15,0,7,0,14,0,24,0,11,20, - 40,13,1,0,60,0,60,0,30,0,14,0,7,0,1,0, - 0,0,0,0,15,0,49,192,112,192,96,224,224,224,255,192, - 224,0,224,0,240,64,120,224,63,192,31,0,11,20,40,13, - 1,0,1,192,3,192,3,128,7,0,6,0,12,0,0,0, - 0,0,15,0,49,192,112,192,96,224,224,224,255,192,224,0, - 224,0,240,64,120,224,63,192,31,0,11,20,40,13,1,0, - 6,0,15,0,31,128,29,128,48,192,32,96,0,0,0,0, - 15,0,49,192,112,192,96,224,224,224,255,192,224,0,224,0, - 240,64,120,224,63,192,31,0,11,18,36,13,1,0,24,192, - 61,224,61,224,57,192,0,0,0,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,8,20,20,8,0,0,240,240,120,24,12,4,0,0, - 28,124,28,28,28,28,28,28,28,28,28,127,7,20,20,8, - 1,0,14,30,28,56,48,96,0,0,56,248,56,56,56,56, - 56,56,56,56,56,254,9,20,40,8,0,0,24,0,60,0, - 126,0,118,0,195,0,129,128,0,0,0,0,28,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,127,0,9,18,36,8,0,0,115,128,247,128,247,128, - 231,0,0,0,0,0,28,0,124,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,127,0,12,19, - 38,14,1,0,12,0,126,112,15,224,15,128,61,192,0,224, - 0,224,15,224,49,240,96,240,96,112,224,112,224,112,224,112, - 224,96,224,96,112,192,56,128,31,0,15,19,38,16,1,0, - 0,16,14,48,31,224,51,224,33,192,0,0,0,0,24,240, - 251,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,12,20,40,14,1,0,28,0,60,0, - 14,0,6,0,3,0,1,128,0,0,0,0,15,128,49,192, - 112,224,96,112,224,112,224,112,224,112,224,112,224,96,112,96, - 56,192,31,0,12,20,40,14,1,0,1,192,3,224,3,128, - 7,0,6,0,12,0,0,0,0,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,12,20,40,14,1,0,7,0,15,0,15,128,29,192, - 56,192,32,96,0,0,0,0,15,128,49,192,112,224,96,112, - 224,112,224,112,224,112,224,112,224,96,112,96,56,192,31,0, - 12,19,38,14,1,0,0,48,30,32,63,224,39,192,65,128, - 0,0,0,0,15,128,49,192,112,224,96,112,224,112,224,112, - 224,112,224,112,224,96,112,96,56,192,31,0,12,18,36,14, - 1,0,28,224,61,224,61,224,24,192,0,0,0,0,15,128, - 49,192,112,224,96,112,224,112,224,112,224,112,224,112,224,96, - 112,96,56,192,31,0,10,10,20,11,1,2,12,0,12,0, - 12,0,0,0,255,192,0,0,0,0,12,0,12,0,12,0, - 12,14,28,14,1,255,0,16,15,176,49,224,112,224,97,240, - 227,112,230,112,230,112,236,112,248,96,112,224,120,192,95,0, - 128,0,15,20,40,15,0,0,14,0,15,0,7,0,3,128, - 1,128,0,192,0,0,0,0,56,56,248,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,250,63,190,30,56, - 15,20,40,15,0,0,0,224,0,240,1,192,1,128,3,0, - 2,0,0,0,0,0,56,56,248,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,250,63,190,30,56,15,20, - 40,15,0,0,3,128,3,192,7,192,14,224,28,112,24,16, - 0,0,0,0,56,56,248,248,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,250,63,190,30,56,15,18,36,15, - 0,0,14,112,14,112,30,240,14,112,0,0,0,0,56,56, - 248,248,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,250,63,190,30,56,15,26,52,14,255,250,0,112,0,240, - 0,224,1,192,1,128,3,0,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0, - 13,26,52,15,1,250,24,0,248,0,56,0,56,0,56,0, - 56,0,56,0,56,0,57,224,63,240,60,112,56,56,56,24, - 56,24,56,24,56,24,56,16,60,48,63,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,15,24,48,14,255,250, - 7,56,15,120,15,120,14,112,0,0,0,0,126,62,60,24, - 28,24,30,16,14,48,15,48,7,96,7,96,3,192,3,192, - 3,192,1,128,1,128,3,0,3,0,126,0,124,0,248,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=12 h=25 x= 2 y= 9 dx=14 dy= 0 ascent=21 len=50 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17n[561] U8G_FONT_SECTION("u8g_font_gdb17n") = { - 0,42,39,242,246,16,0,0,0,0,42,58,0,21,251,16, - 0,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--27-270-72-72-P-135-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=23 h=27 x= 3 y=14 dx=23 dy= 0 ascent=22 len=69 - Font Bounding box w=42 h=39 x=-14 y=-10 - Calculated Min Values x=-4 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb17r[3540] U8G_FONT_SECTION("u8g_font_gdb17r") = { - 0,42,39,242,246,17,4,81,9,172,32,127,250,22,250,21, - 250,0,0,0,7,0,0,4,21,21,8,2,255,48,240,240, - 240,240,112,112,96,96,96,96,96,96,96,64,0,0,112,240, - 240,224,9,9,18,13,2,11,113,128,231,128,231,128,231,128, - 227,0,227,0,99,0,99,0,99,0,13,15,30,14,1,2, - 2,32,6,96,6,96,6,96,12,96,63,248,76,192,24,128, - 25,128,255,224,51,0,51,0,51,0,35,0,102,0,11,20, - 40,13,1,254,6,0,6,0,31,128,127,224,230,224,198,96, - 198,0,246,0,126,0,63,128,7,192,6,224,6,96,198,96, - 198,96,246,192,255,192,31,0,6,0,6,0,18,17,51,20, - 1,0,0,1,0,60,6,0,102,14,0,195,12,0,195,24, - 0,195,48,0,195,112,0,195,96,0,102,192,0,61,143,0, - 3,144,128,3,48,192,6,48,192,12,48,192,24,48,192,56, - 25,128,48,15,0,17,19,57,18,1,0,7,128,0,25,224, - 0,16,224,0,48,224,0,48,224,0,49,192,0,63,128,0, - 63,0,0,30,0,0,62,63,128,127,29,0,127,140,0,239, - 140,0,231,204,0,227,248,0,225,248,0,96,252,0,112,255, - 0,31,14,128,4,9,9,7,2,11,112,224,224,224,224,224, - 96,96,96,7,25,25,9,2,252,4,14,28,56,48,112,112, - 112,224,224,224,224,224,224,224,224,224,96,112,112,48,56,28, - 12,6,7,25,25,9,0,252,64,224,112,56,24,28,28,28, - 14,14,14,14,14,14,14,14,14,28,28,28,56,56,112,96, - 192,10,12,24,12,1,9,12,0,12,0,204,128,237,192,255, - 192,63,0,63,0,255,192,237,192,76,128,12,0,12,0,10, - 10,20,11,1,2,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,12,0,5,8,8,7,1,251,48, - 248,120,56,48,48,96,192,8,1,1,10,1,6,255,4,4, - 4,7,2,255,112,240,240,224,12,25,50,13,0,252,0,48, - 0,112,0,112,0,96,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,6,0,14,0,14,0,12,0, - 28,0,24,0,56,0,56,0,48,0,112,0,96,0,224,0, - 12,16,32,14,1,0,15,0,49,192,48,224,96,224,96,96, - 224,112,224,112,224,112,224,112,224,112,224,112,96,96,112,96, - 112,192,56,192,15,0,10,16,32,14,2,0,6,0,62,0, - 254,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,31,0,255,192,11,16,32,14, - 1,0,15,128,57,192,112,224,112,224,128,224,0,192,1,192, - 3,128,3,0,7,0,14,0,28,32,56,32,48,32,127,224, - 255,224,11,16,32,14,1,0,31,0,115,128,113,192,225,192, - 1,192,3,128,7,128,15,192,3,192,1,224,0,224,0,224, - 0,224,128,192,193,192,63,0,11,16,32,14,2,0,0,128, - 3,128,7,128,7,128,13,128,13,128,25,128,49,128,49,128, - 97,128,255,224,1,128,1,128,1,128,3,192,15,224,11,16, - 32,14,1,0,63,224,63,192,32,0,32,0,96,0,96,0, - 127,0,99,192,1,192,0,224,0,224,0,224,0,224,1,192, - 193,192,63,0,12,16,32,14,1,0,1,192,7,0,28,0, - 56,0,112,0,96,0,239,128,240,224,224,224,224,112,224,112, - 224,112,112,112,112,96,56,192,15,128,12,16,32,14,1,0, - 127,240,127,224,192,96,128,192,0,192,1,192,1,128,1,128, - 3,0,3,0,7,0,6,0,14,0,28,0,28,0,56,0, - 11,16,32,13,1,0,15,128,57,192,112,224,112,224,120,224, - 125,192,63,128,31,128,63,192,115,224,225,224,224,224,224,224, - 224,192,113,128,31,0,12,17,34,14,1,255,15,128,49,192, - 96,224,224,224,224,112,224,112,224,112,240,112,112,240,31,112, - 0,96,0,224,0,224,1,192,3,128,30,0,56,0,4,13, - 13,7,2,255,112,240,240,224,0,0,0,0,0,112,240,240, - 224,5,17,17,7,1,251,56,120,120,48,0,0,0,0,0, - 48,248,120,56,48,48,96,192,11,9,18,12,1,3,0,96, - 3,192,31,128,252,0,240,0,248,0,63,0,7,192,0,224, - 11,5,10,12,1,5,255,224,0,0,0,0,0,0,255,224, - 11,9,18,12,1,3,192,0,248,0,63,0,7,192,1,224, - 15,192,126,0,240,0,192,0,9,20,40,12,1,255,63,0, - 119,128,227,128,227,128,195,128,3,128,3,0,7,0,6,0, - 14,0,12,0,12,0,12,0,12,0,0,0,0,0,28,0, - 60,0,60,0,56,0,20,23,69,23,2,251,0,252,0,3, - 255,0,14,7,128,24,1,192,48,0,224,32,0,96,96,242, - 112,97,142,48,195,14,48,195,14,48,199,14,48,199,14,48, - 199,14,48,199,14,96,199,158,96,227,255,192,99,239,128,113, - 199,0,120,0,0,60,0,64,31,3,192,15,255,0,3,252, - 0,17,17,51,17,0,0,0,192,0,1,192,0,3,192,0, - 3,224,0,2,224,0,6,240,0,6,112,0,6,112,0,12, - 120,0,12,56,0,15,248,0,24,28,0,24,28,0,16,28, - 0,48,14,0,48,14,0,252,63,128,13,17,34,16,1,0, - 127,192,248,224,56,112,56,112,56,112,56,112,56,224,63,192, - 56,240,56,112,56,56,56,56,56,56,56,56,56,48,56,112, - 255,192,13,17,34,15,1,0,7,240,24,120,48,48,112,0, - 96,0,96,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,0,120,8,60,56,31,224,15,128,16,17,34,17,0,0, - 127,224,248,120,56,60,56,30,56,30,56,15,56,15,56,15, - 56,15,56,15,56,15,56,15,56,30,56,30,56,60,56,120, - 255,224,13,17,34,14,1,0,255,240,120,48,120,48,120,32, - 120,32,120,0,120,0,120,0,127,192,120,128,120,0,120,0, - 120,0,120,16,120,24,120,48,255,240,12,17,34,14,1,0, - 255,240,120,48,120,48,120,48,120,32,120,0,120,0,120,0, - 127,192,120,128,120,0,120,0,120,0,120,0,120,0,120,0, - 254,0,14,17,34,16,1,0,3,240,12,120,48,48,48,0, - 112,0,96,0,224,0,224,0,224,0,224,252,224,56,224,56, - 112,56,112,56,60,56,31,240,7,192,17,17,51,18,0,0, - 254,63,128,60,30,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,63,254,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 254,63,128,7,17,17,9,1,0,254,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,12,22,44,9,252,251, - 7,240,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,1,192,1,192,1,192,1,192, - 1,192,1,128,1,128,51,0,126,0,252,0,16,17,34,17, - 1,0,254,126,56,56,56,48,56,112,56,224,57,192,59,128, - 63,0,63,0,59,128,57,192,57,224,56,240,56,120,56,60, - 56,31,254,30,13,17,34,14,1,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,8,56,24,56,24,255,240,21,17,51,23, - 1,0,248,1,248,56,1,224,60,1,224,60,3,224,62,3, - 224,62,6,224,63,6,224,55,12,224,39,140,224,35,156,224, - 35,152,224,33,216,224,33,240,224,97,240,224,96,224,224,112, - 224,224,248,67,248,18,17,51,18,0,0,248,15,192,124,3, - 0,60,3,0,62,3,0,63,3,0,55,131,0,51,195,0, - 51,195,0,49,227,0,48,243,0,48,123,0,48,123,0,48, - 63,0,48,31,0,48,15,0,48,7,0,252,3,0,15,17, - 34,17,1,0,7,192,24,112,48,56,48,28,96,28,96,14, - 224,14,224,14,224,14,224,14,224,14,224,12,112,28,112,24, - 56,24,28,32,7,192,14,17,34,15,0,0,127,224,248,120, - 56,56,56,28,56,28,56,28,56,28,56,56,60,112,59,224, - 56,0,56,0,56,0,56,0,56,0,56,0,254,0,18,22, - 66,17,1,251,7,192,0,24,112,0,48,56,0,48,28,0, - 96,28,0,96,14,0,224,14,0,224,14,0,224,14,0,224, - 14,0,224,14,0,224,14,0,112,28,0,112,28,0,56,24, - 0,28,48,0,7,192,0,0,112,0,0,60,64,0,31,192, - 0,15,128,0,3,0,16,17,34,16,0,0,63,192,248,112, - 56,56,56,56,56,56,56,56,56,112,63,240,63,192,57,192, - 56,224,56,224,56,112,56,120,56,60,56,63,254,30,12,17, - 34,14,1,0,15,240,48,240,64,32,192,0,224,0,248,0, - 126,0,63,128,31,192,7,224,0,240,0,112,0,48,192,48, - 192,32,240,64,255,128,15,17,34,16,0,0,255,254,195,134, - 195,134,131,134,131,132,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,7,192,15,224,17,17, - 51,18,0,0,254,31,128,56,6,0,56,6,0,56,6,0, - 56,6,0,56,6,0,56,6,0,56,6,0,56,6,0,56, - 6,0,56,6,0,56,6,0,56,6,0,56,4,0,28,12, - 0,14,24,0,3,224,0,18,17,51,18,0,0,254,15,192, - 56,7,0,60,6,0,28,6,0,28,6,0,30,12,0,14, - 12,0,15,24,0,7,24,0,7,24,0,7,176,0,3,176, - 0,3,176,0,1,224,0,1,224,0,1,224,0,0,128,0, - 23,17,51,23,0,0,254,24,126,56,24,24,56,56,24,56, - 60,16,28,60,48,28,110,48,28,110,48,28,110,48,14,199, - 96,14,199,96,14,135,96,15,131,224,15,131,224,7,1,192, - 7,1,192,7,1,192,6,0,128,17,17,51,17,0,0,255, - 63,0,60,12,0,28,24,0,30,24,0,15,48,0,7,112, - 0,7,224,0,3,192,0,1,192,0,3,224,0,3,240,0, - 6,112,0,12,120,0,12,60,0,24,28,0,56,30,0,252, - 63,128,16,17,34,17,0,0,248,31,60,14,28,12,14,24, - 15,24,7,48,7,48,3,224,3,224,1,192,1,192,1,192, - 1,192,1,192,1,192,1,192,7,240,13,17,34,15,1,0, - 127,248,96,240,64,240,193,224,1,192,3,192,7,128,7,128, - 15,0,15,0,30,0,60,0,60,0,120,24,120,24,240,24, - 255,248,6,25,25,9,3,252,252,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 252,11,25,50,13,1,252,192,0,192,0,224,0,96,0,112, - 0,112,0,48,0,56,0,24,0,24,0,28,0,12,0,14, - 0,6,0,6,0,7,0,3,0,3,0,3,128,1,128,1, - 192,0,192,0,192,0,224,0,96,6,25,25,8,0,252,252, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,252,11,13,26,13,1,7,6,0, - 14,0,14,0,15,0,27,0,19,0,17,128,49,128,33,192, - 96,192,96,192,64,96,192,64,11,1,2,13,1,253,255,224, - 6,6,6,9,0,14,224,240,112,56,24,12,12,12,24,13, - 1,0,31,128,113,192,241,192,129,192,3,192,63,192,113,192, - 225,192,225,192,227,240,253,224,121,128,14,20,40,15,0,0, - 24,0,248,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,240,59,248,62,56,56,28,56,12,56,12,56,12,56,8, - 56,8,60,16,63,224,7,128,11,12,24,12,1,0,15,224, - 48,192,112,192,96,64,224,0,224,0,224,0,224,0,240,64, - 120,224,63,192,31,0,14,20,40,15,1,0,0,48,1,240, - 0,112,0,112,0,112,0,112,0,112,0,112,15,240,48,240, - 96,112,96,112,224,112,224,112,224,112,240,112,248,240,127,244, - 63,124,30,48,11,12,24,13,1,0,15,0,49,192,112,192, - 96,224,224,224,255,192,224,0,224,0,240,64,120,224,63,192, - 31,0,11,19,38,9,1,0,3,224,12,192,24,0,24,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,255,0,14,18, - 36,15,0,250,15,140,16,252,32,112,96,48,96,48,112,48, - 56,96,31,128,28,0,124,0,127,224,63,248,127,252,240,60, - 224,28,224,24,112,48,31,192,15,20,40,16,1,0,24,0, - 248,0,56,0,56,0,56,0,56,0,56,0,56,0,56,240, - 59,248,62,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,254,7,18,18,8,1,0,56,120,112,0, - 0,0,56,248,56,56,56,56,56,56,56,56,56,254,10,24, - 48,8,252,250,1,192,3,192,3,128,0,0,0,0,0,0, - 3,128,15,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,0,102,0, - 252,0,120,0,14,20,40,15,1,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,252,56,112,56,224, - 57,128,59,0,63,0,59,128,57,192,56,224,56,240,56,120, - 252,60,7,20,20,8,1,0,24,248,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,23,12,36,23, - 0,0,25,241,240,251,255,248,62,62,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,254,254,15,12,24,16,1,0,24,240,251,248, - 62,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,254,254,12,12,24,14,1,0,15,128,49,192,112,224, - 96,112,224,112,224,112,224,112,224,112,224,96,112,96,56,192, - 31,0,13,18,36,15,1,250,25,224,251,240,60,112,56,56, - 56,24,56,24,56,24,56,24,56,16,60,48,63,224,59,192, - 56,0,56,0,56,0,56,0,56,0,254,0,14,18,36,15, - 1,250,15,16,48,240,96,112,96,112,224,112,224,112,224,112, - 240,112,248,240,127,240,127,112,28,112,0,112,0,112,0,112, - 0,112,0,112,1,252,11,12,24,12,1,0,49,224,247,224, - 124,192,120,64,120,64,120,0,120,0,120,0,120,0,120,0, - 120,0,254,0,9,12,24,11,1,0,62,0,71,0,194,0, - 224,0,248,0,126,0,63,0,15,128,131,128,193,128,225,0, - 254,0,10,17,34,10,0,0,8,0,24,0,56,0,56,0, - 56,0,255,192,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,128,63,192,30,0,15,12,24,15,0,0, - 56,56,248,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,250,63,190,30,56,14,12,24,14,0,0,252,124, - 120,48,56,48,60,32,28,96,30,96,14,192,14,192,7,128, - 7,128,7,128,3,0,19,12,36,19,0,0,252,33,224,120, - 96,192,56,112,192,56,241,128,28,249,128,28,185,128,29,159, - 0,15,31,0,15,31,0,15,14,0,6,14,0,4,4,0, - 14,12,24,14,0,0,254,252,60,112,28,96,30,192,15,128, - 7,128,7,128,15,192,25,224,24,240,48,120,249,252,15,18, - 36,14,255,250,126,62,60,24,28,24,30,16,14,48,15,48, - 7,96,7,96,3,192,3,192,3,192,1,128,1,128,3,0, - 3,0,126,0,124,0,248,0,11,12,24,13,1,0,127,224, - 67,192,67,192,135,128,15,0,15,0,30,0,60,0,56,32, - 120,96,240,96,255,224,7,25,25,9,1,252,2,14,28,56, - 56,56,56,28,28,28,28,56,240,248,28,28,28,28,56,56, - 56,56,28,14,6,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,7,25,25,9,1,252,192,224,112,56, - 56,56,56,112,112,112,112,62,30,56,112,112,112,112,56,56, - 56,56,112,224,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=18 dx=28 dy= 0 ascent=28 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =28 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20[10077] U8G_FONT_SECTION("u8g_font_gdb20") = { - 0,49,47,240,244,20,5,86,12,137,32,255,248,28,247,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,8,0,0,5,24, - 24,10,2,247,112,248,248,248,112,0,0,48,48,48,48,112, - 112,112,112,120,120,120,120,120,120,120,120,96,13,20,40,16, - 2,255,3,0,3,0,3,0,15,248,31,248,59,56,115,16, - 227,0,227,0,227,0,227,0,227,0,227,0,115,24,123,48, - 63,224,31,192,3,0,3,0,3,0,14,19,38,16,1,0, - 1,252,6,60,14,28,28,12,28,8,60,0,60,0,60,0, - 60,0,255,224,60,0,60,0,60,0,60,4,56,4,56,12, - 127,252,255,252,128,48,12,13,26,16,2,3,192,48,239,112, - 112,224,48,192,96,96,96,96,96,96,96,96,112,224,57,192, - 111,96,192,48,128,16,18,19,57,16,255,0,248,31,192,252, - 15,128,62,6,0,30,14,0,31,12,0,15,156,0,7,152, - 0,7,248,0,3,240,0,3,240,0,3,240,0,1,224,0, - 63,255,0,1,224,0,1,224,0,1,224,0,1,224,0,3, - 240,0,7,248,0,2,32,32,7,3,250,64,192,192,192,192, - 192,192,192,192,192,192,192,192,192,128,0,0,64,192,192,192, - 192,192,192,192,192,192,192,192,192,192,128,12,22,44,16,2, - 0,15,192,49,224,112,224,112,64,124,0,126,0,63,128,127, - 192,99,224,225,240,224,240,240,112,252,112,127,112,63,224,31, - 192,7,224,65,224,64,224,224,224,240,192,127,0,11,5,10, - 13,1,17,112,224,241,224,241,224,241,224,225,192,21,21,63, - 23,1,0,1,252,0,7,7,0,12,1,128,24,0,192,48, - 126,96,96,199,48,97,134,48,195,2,24,199,0,24,199,0, - 24,199,0,24,199,0,24,199,0,24,199,128,24,99,199,48, - 97,252,48,48,248,96,16,0,64,8,1,128,6,3,0,1, - 252,0,7,11,11,9,1,9,60,204,140,60,108,204,206,252, - 0,0,254,14,15,30,16,1,0,2,8,6,28,12,56,28, - 112,56,112,120,224,241,224,243,192,241,224,120,224,56,112,28, - 112,12,56,6,24,2,12,13,7,14,16,2,3,255,248,255, - 248,0,24,0,24,0,24,0,24,0,16,10,2,4,11,1, - 7,255,192,255,128,12,11,22,11,0,11,31,128,48,192,126, - 96,219,48,219,48,222,48,219,48,217,48,100,224,48,192,31, - 128,14,3,6,16,1,18,127,248,127,252,255,248,7,8,8, - 11,2,12,60,126,70,198,198,204,252,120,12,15,30,13,1, - 2,6,0,6,0,6,0,6,0,6,0,127,240,255,224,6, - 0,6,0,6,0,6,0,4,0,0,0,255,240,255,224,8, - 11,11,11,2,10,62,115,227,3,6,6,12,24,49,97,255, - 9,11,22,11,1,10,62,0,231,0,231,0,7,0,28,0, - 63,0,7,128,3,128,3,128,199,0,126,0,8,8,8,10, - 3,16,28,30,63,60,120,112,224,192,18,23,69,19,1,248, - 28,6,0,252,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,62,62,0,63,255,128,63,223,192,51,142,0,48,0,0, - 48,0,0,56,0,0,56,0,0,56,0,0,60,0,0,62, - 0,0,48,0,0,17,24,72,19,1,252,15,255,128,60,127, - 0,120,102,0,112,102,0,240,102,0,240,102,0,240,102,0, - 240,102,0,120,102,0,120,102,0,60,102,0,15,230,0,0, - 102,0,0,102,0,0,102,0,0,102,0,0,102,0,0,102, - 0,0,102,0,0,102,0,0,102,0,0,102,0,0,255,0, - 1,255,128,5,5,5,7,1,8,112,248,248,248,112,7,7, - 7,7,0,249,24,48,60,62,30,60,240,8,11,11,11,2, - 10,8,248,24,24,24,24,24,24,24,24,255,7,11,11,9, - 1,9,56,76,198,198,198,198,198,108,56,0,254,13,15,30, - 16,2,0,129,0,195,128,97,128,112,192,56,224,60,112,30, - 120,30,120,30,120,60,112,56,224,112,192,97,192,193,128,131, - 0,17,19,57,20,2,0,48,3,128,240,3,0,48,6,0, - 48,12,0,48,28,0,48,24,0,48,48,0,48,96,0,120, - 224,0,132,193,0,1,135,0,3,15,0,7,11,0,6,19, - 0,12,51,0,24,63,128,56,67,0,48,3,0,224,15,128, - 17,19,57,20,2,0,48,1,128,240,3,0,48,7,0,48, - 6,0,48,12,0,48,24,0,48,56,0,48,48,0,120,96, - 0,132,192,0,1,207,0,1,153,128,3,49,128,7,1,0, - 14,3,0,12,6,0,24,12,0,56,24,128,112,63,128,18, - 19,57,20,1,0,60,1,192,102,1,128,70,3,0,12,6, - 0,28,14,0,6,12,0,6,24,0,134,48,0,124,112,0, - 0,96,128,0,195,128,1,135,128,3,133,128,3,9,128,6, - 25,128,12,31,192,28,33,128,24,1,128,112,7,192,13,23, - 46,15,1,248,7,0,15,128,15,128,15,128,7,0,0,0, - 0,0,3,0,3,0,3,0,7,0,6,0,14,0,28,0, - 60,0,120,0,112,0,240,24,240,120,240,120,240,120,120,240, - 63,192,20,28,84,20,0,0,3,0,0,7,128,0,7,192, - 0,15,224,0,1,224,0,0,112,0,0,24,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,20,28,84,20, - 0,0,0,8,0,0,30,0,0,62,0,0,124,0,0,240, - 0,1,224,0,1,128,0,0,0,0,0,32,0,0,240,0, - 0,240,0,1,248,0,1,248,0,1,248,0,3,188,0,3, - 60,0,3,60,0,7,30,0,6,30,0,14,31,0,15,255, - 0,12,7,0,28,7,128,24,7,128,24,3,128,56,3,192, - 56,3,192,254,15,240,20,27,81,20,0,0,0,224,0,0, - 240,0,1,248,0,3,252,0,7,14,0,4,6,0,0,0, - 0,0,32,0,0,240,0,0,240,0,1,248,0,1,248,0, - 1,248,0,3,188,0,3,60,0,3,60,0,7,30,0,6, - 30,0,14,31,0,15,255,0,12,7,0,28,7,128,24,7, - 128,24,3,128,56,3,192,56,3,192,254,15,240,20,26,78, - 20,0,0,3,195,0,7,254,0,7,254,0,12,124,0,8, - 0,0,0,0,0,0,32,0,0,240,0,0,240,0,1,248, - 0,1,248,0,1,248,0,3,188,0,3,60,0,3,60,0, - 7,30,0,6,30,0,14,31,0,15,255,0,12,7,0,28, - 7,128,24,7,128,24,3,128,56,3,192,56,3,192,254,15, - 240,20,26,78,20,0,0,6,12,0,15,30,0,15,30,0, - 15,30,0,14,28,0,0,0,0,0,32,0,0,240,0,0, - 240,0,1,248,0,1,248,0,1,248,0,3,188,0,3,60, - 0,3,60,0,7,30,0,6,30,0,14,31,0,15,255,0, - 12,7,0,28,7,128,24,7,128,24,3,128,56,3,192,56, - 3,192,254,15,240,20,27,81,20,0,0,0,112,0,1,152, - 0,1,152,0,1,144,0,0,224,0,0,0,0,0,0,0, - 0,32,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 248,0,3,188,0,3,60,0,3,60,0,7,30,0,6,30, - 0,14,31,0,15,255,0,12,7,0,28,7,128,24,7,128, - 24,3,128,56,3,192,56,3,192,254,15,240,25,20,80,26, - 0,0,3,255,255,0,0,255,3,0,0,255,3,0,0,239, - 3,0,0,239,3,0,1,207,0,0,1,207,0,0,3,143, - 0,0,3,143,0,0,3,255,254,0,7,15,4,0,6,15, - 0,0,14,15,0,0,14,15,0,0,12,15,0,0,28,15, - 0,0,24,15,0,128,24,15,1,128,56,31,1,128,254,63, - 255,128,16,27,54,18,1,249,1,254,6,31,28,14,56,4, - 56,0,112,0,112,0,240,0,240,0,240,0,240,0,240,0, - 240,0,248,0,120,0,124,1,126,7,63,254,31,252,15,240, - 0,192,1,192,1,240,0,240,0,240,1,224,3,128,15,28, - 56,17,1,0,8,0,28,0,62,0,31,0,7,128,1,192, - 0,64,0,0,255,252,124,12,60,12,60,12,60,12,60,0, - 60,0,60,0,60,0,63,240,60,32,60,0,60,0,60,0, - 60,0,60,0,60,2,60,6,124,14,255,254,15,28,56,17, - 1,0,0,96,0,240,1,248,1,240,3,192,7,0,12,0, - 0,0,255,252,124,12,60,12,60,12,60,12,60,0,60,0, - 60,0,60,0,63,240,60,32,60,0,60,0,60,0,60,0, - 60,0,60,2,60,6,124,14,255,254,15,27,54,17,1,0, - 3,128,7,192,15,192,31,224,28,112,48,24,0,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,2, - 60,6,124,14,255,254,15,26,52,17,1,0,56,112,56,112, - 120,240,120,240,48,96,0,0,255,252,124,12,60,12,60,12, - 60,12,60,0,60,0,60,0,60,0,63,240,60,32,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 9,28,56,10,0,0,32,0,240,0,248,0,124,0,30,0, - 15,0,3,0,0,0,127,128,63,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,127,128,10,28, - 56,10,1,0,2,0,7,128,15,192,31,0,62,0,120,0, - 96,0,0,0,255,0,126,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,10,27,54,10, - 0,0,12,0,30,0,63,0,127,128,225,192,192,64,0,0, - 127,128,63,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,127,128,11,26,52,10,255,0,112,224, - 241,224,241,224,241,224,96,192,0,0,63,192,31,128,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,31,128, - 63,192,18,20,60,20,1,0,63,240,0,252,60,0,60,14, - 0,60,15,0,60,7,128,60,7,128,60,3,192,60,3,192, - 60,3,192,255,195,192,60,3,192,60,3,192,60,3,192,60, - 3,128,60,7,128,60,7,128,60,15,0,60,14,0,124,28, - 0,255,240,0,19,26,78,21,1,0,3,195,0,7,254,0, - 15,252,0,12,120,0,24,0,0,0,0,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,28,84,20,1,0,2,0, - 0,15,0,0,15,128,0,7,192,0,3,224,0,0,240,0, - 0,48,0,0,0,0,3,240,0,12,28,0,28,14,0,56, - 7,0,56,7,128,112,7,128,112,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,248,3,128, - 120,7,128,120,7,0,60,15,0,30,30,0,15,248,0,3, - 224,0,18,28,84,20,1,0,0,16,0,0,60,0,0,124, - 0,0,248,0,1,224,0,3,192,0,3,0,0,0,0,0, - 3,240,0,12,28,0,28,14,0,56,7,0,56,7,128,112, - 7,128,112,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,248,3,128,120,7,128,120,7,0, - 60,15,0,30,30,0,15,248,0,3,224,0,18,27,81,20, - 1,0,0,192,0,1,224,0,3,240,0,7,248,0,14,28, - 0,8,12,0,0,0,0,3,240,0,12,28,0,28,14,0, - 56,7,0,56,7,128,112,7,128,112,3,192,240,3,192,240, - 3,192,240,3,192,240,3,192,240,3,192,240,3,192,248,3, - 128,120,7,128,120,7,0,60,15,0,30,30,0,15,248,0, - 3,224,0,18,26,78,20,1,0,3,198,0,15,252,0,15, - 252,0,24,120,0,16,0,0,0,0,0,3,240,0,12,28, - 0,28,14,0,56,7,0,56,7,128,112,7,128,112,3,192, - 240,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,248,3,128,120,7,128,120,7,0,60,15,0,30,30, - 0,15,248,0,3,224,0,18,26,78,20,1,0,14,28,0, - 30,60,0,30,60,0,30,60,0,28,56,0,0,0,0,3, - 240,0,12,28,0,28,14,0,56,7,0,56,7,128,112,7, - 128,112,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,192,248,3,128,120,7,128,120,7,0,60, - 15,0,30,30,0,15,248,0,3,224,0,11,10,20,13,1, - 4,96,96,240,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,96,18,21,63,20,1,255,3,241,192,12,31, - 128,28,15,0,56,15,0,56,31,128,112,63,128,112,63,192, - 240,123,192,240,243,192,240,227,192,241,195,192,241,195,192,243, - 131,192,247,3,128,126,7,128,126,7,0,60,7,0,62,14, - 0,127,248,0,227,224,0,128,0,0,19,28,84,21,1,0, - 3,0,0,7,128,0,15,192,0,7,192,0,1,224,0,0, - 112,0,0,24,0,0,0,0,255,7,224,126,3,192,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,3,0,30,3,0,15,6,0,7,252, - 0,3,240,0,19,28,84,21,1,0,0,8,0,0,30,0, - 0,62,0,0,124,0,0,240,0,1,192,0,1,128,0,0, - 0,0,255,7,224,126,3,192,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 3,0,30,3,0,15,6,0,7,252,0,3,240,0,19,27, - 81,21,1,0,0,224,0,0,240,0,1,248,0,3,252,0, - 7,14,0,12,6,0,0,0,0,255,7,224,126,3,192,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,3,0,30,3,0,15,6,0,7, - 252,0,3,240,0,19,26,78,21,1,0,6,12,0,15,30, - 0,15,30,0,15,30,0,14,28,0,0,0,0,255,7,224, - 126,3,192,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,1, - 128,60,1,128,60,1,128,60,1,128,60,3,0,30,3,0, - 15,6,0,7,252,0,3,240,0,19,28,84,20,0,0,0, - 8,0,0,30,0,0,62,0,0,124,0,0,240,0,1,192, - 0,1,128,0,0,0,0,252,7,224,60,3,192,30,3,128, - 15,3,0,15,7,0,7,134,0,3,142,0,3,204,0,1, - 220,0,1,248,0,0,248,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,1,248,0, - 3,252,0,16,20,40,18,1,0,255,128,126,0,60,0,60, - 0,63,240,60,60,60,30,60,15,60,15,60,15,60,15,60, - 14,60,30,60,60,63,240,60,0,60,0,60,0,126,0,255, - 128,18,24,72,21,1,0,0,248,0,3,254,0,15,31,0, - 14,15,128,28,7,128,28,7,128,60,7,128,60,7,128,60, - 15,0,60,60,0,60,112,0,60,224,0,60,224,0,60,240, - 0,60,252,0,60,127,0,60,63,128,60,15,192,60,7,192, - 61,3,192,60,129,192,60,193,128,124,225,128,252,254,0,14, - 24,48,16,1,0,28,0,62,0,30,0,15,0,7,0,3, - 128,1,128,0,192,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,14,24,48,16,1,0,0,224,1,240,1, - 224,3,192,3,128,3,0,7,0,6,0,0,0,31,192,112, - 224,240,240,192,240,0,240,3,240,31,240,63,240,120,240,240, - 240,240,240,240,240,251,252,126,248,56,96,14,23,46,16,1, - 0,3,128,7,128,15,192,31,224,28,224,56,48,32,16,0, - 0,31,192,112,224,240,240,192,240,0,240,3,240,31,240,63, - 240,120,240,240,240,240,240,240,240,251,252,126,248,56,96,14, - 22,44,16,1,0,14,8,31,24,63,240,99,240,64,224,0, - 0,0,0,31,192,112,224,240,240,192,240,0,240,3,240,31, - 240,63,240,120,240,240,240,240,240,240,240,251,252,126,248,56, - 96,14,22,44,16,1,0,56,112,120,240,120,240,120,240,48, - 96,0,0,0,0,31,192,112,224,240,240,192,240,0,240,3, - 240,31,240,63,240,120,240,240,240,240,240,240,240,251,252,126, - 248,56,96,14,22,44,16,1,0,3,128,4,192,12,192,12, - 192,7,128,0,0,0,0,31,192,112,224,240,240,192,240,0, - 240,3,240,31,240,63,240,120,240,240,240,240,240,240,240,251, - 252,126,248,56,96,22,15,45,23,1,0,3,227,224,31,252, - 112,60,252,56,120,120,60,112,120,60,128,120,60,7,255,248, - 28,120,0,120,120,0,112,120,0,240,124,8,249,254,28,255, - 191,248,127,31,240,60,7,192,14,22,44,15,1,249,3,248, - 12,120,56,48,112,16,112,0,240,0,240,0,240,0,240,0, - 240,0,248,8,124,28,63,248,31,240,15,192,3,0,3,192, - 3,224,5,224,1,224,3,192,14,0,13,24,48,15,1,0, - 14,0,30,0,31,0,15,0,7,128,3,128,1,192,0,192, - 0,0,7,192,24,224,56,112,112,120,112,120,240,120,255,240, - 240,0,240,0,240,0,248,8,124,56,127,240,63,224,15,128, - 13,24,48,15,1,0,0,224,0,240,1,240,1,224,3,192, - 3,128,7,0,6,0,0,0,7,192,24,224,56,112,112,120, - 112,120,240,120,255,240,240,0,240,0,240,0,248,8,124,56, - 127,240,63,224,15,128,13,23,46,15,1,0,3,128,7,192, - 15,192,15,224,28,112,56,48,48,24,0,0,7,192,24,224, - 56,112,112,120,112,120,240,120,255,240,240,0,240,0,240,0, - 248,8,124,56,127,240,63,224,15,128,13,22,44,15,1,0, - 56,112,56,112,120,240,120,240,48,96,0,0,0,0,7,192, - 24,224,56,112,112,120,112,120,240,120,255,240,240,0,240,0, - 240,0,248,8,124,56,127,240,63,224,15,128,9,24,48,10, - 0,0,112,0,248,0,120,0,60,0,28,0,14,0,6,0, - 2,0,0,0,14,0,126,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,63,0, - 127,128,9,24,48,10,1,0,7,0,15,128,15,0,30,0, - 28,0,56,0,48,0,32,0,0,0,28,0,252,0,124,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,0,10,23,46,10,0,0,28,0, - 30,0,63,0,127,0,115,128,193,192,128,64,0,0,14,0, - 126,0,62,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,63,0,127,128,11,22,44,10, - 255,0,112,224,241,224,241,224,241,224,225,192,0,0,0,0, - 7,0,63,0,31,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,31,128,63,192,14,23, - 46,16,1,0,14,0,63,28,95,248,3,224,15,224,60,224, - 0,112,0,56,15,248,24,248,56,124,112,60,112,60,240,60, - 240,60,240,60,240,60,240,56,240,56,120,112,120,112,60,96, - 15,128,17,22,66,19,1,0,7,6,0,15,204,0,31,252, - 0,17,248,0,48,112,0,0,0,0,0,0,0,12,60,0, - 252,252,0,127,254,0,63,30,0,62,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,126,63,0,255,127,128,15,24,48,17,1,0, - 14,0,31,0,15,0,7,0,3,128,1,128,0,192,0,192, - 0,0,7,224,24,112,56,56,112,60,112,30,240,30,240,30, - 240,30,240,30,240,30,240,28,120,28,56,56,28,48,15,192, - 15,24,48,17,1,0,0,240,0,248,0,240,1,224,1,192, - 3,128,3,0,6,0,0,0,7,224,24,112,56,56,112,60, - 112,30,240,30,240,30,240,30,240,30,240,30,240,28,120,28, - 56,56,28,48,15,192,15,23,46,17,1,0,3,128,3,192, - 7,224,15,224,30,112,24,56,48,24,0,0,7,224,24,112, - 56,56,112,60,112,30,240,30,240,30,240,30,240,30,240,30, - 240,28,120,28,56,56,28,48,15,192,15,22,44,17,1,0, - 14,12,31,136,31,248,49,240,32,224,0,0,0,0,7,224, - 24,112,56,56,112,60,112,30,240,30,240,30,240,30,240,30, - 240,30,240,28,120,28,56,56,28,48,15,192,15,22,44,17, - 1,0,24,48,60,120,60,120,56,112,56,112,0,0,0,0, - 7,224,24,112,56,56,112,60,112,30,240,30,240,30,240,30, - 240,30,240,30,240,28,120,28,56,56,28,48,15,192,12,12, - 24,13,1,3,6,0,14,0,14,0,12,0,0,0,255,240, - 255,224,0,0,6,0,14,0,14,0,12,0,15,16,32,17, - 1,255,7,238,24,124,56,60,112,124,112,254,240,254,241,222, - 243,158,243,158,247,30,254,28,124,28,124,56,124,48,111,192, - 128,0,17,24,72,18,0,0,7,0,0,15,128,0,7,128, - 0,3,192,0,1,192,0,0,224,0,0,96,0,0,48,0, - 0,0,0,28,14,0,252,126,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,126,0,63,255,128,31,223,0,15,12,0, - 17,24,72,18,0,0,0,56,0,0,124,0,0,120,0,0, - 240,0,0,224,0,0,192,0,1,128,0,1,128,0,0,0, - 0,28,14,0,252,126,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,126,0,63,255,128,31,223,0,15,12,0,17,23, - 69,18,0,0,0,192,0,1,224,0,3,240,0,7,248,0, - 7,56,0,14,12,0,8,4,0,0,0,0,28,14,0,252, - 126,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,126,0, - 63,255,128,31,223,0,15,12,0,17,22,66,18,0,0,14, - 28,0,30,60,0,30,60,0,30,60,0,12,24,0,0,0, - 0,0,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,17,32,96,16,255,248,0,56,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,224,0,0,192,0,1,128,0,0, - 0,0,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,16,32,64,18,1,248,12,0,252, - 0,124,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 120,61,252,63,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,63,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,30,90, - 16,255,248,6,12,0,15,30,0,15,30,0,14,28,0,14, - 28,0,0,0,0,0,0,0,127,15,128,62,7,0,30,6, - 0,30,6,0,15,14,0,15,12,0,7,140,0,7,152,0, - 7,152,0,3,248,0,3,240,0,1,240,0,1,240,0,1, - 224,0,0,224,0,0,192,0,0,192,0,1,192,0,1,128, - 0,39,128,0,127,0,0,254,0,0,120,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=14 h=30 x= 2 y=11 dx=17 dy= 0 ascent=25 len=60 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20n[646] U8G_FONT_SECTION("u8g_font_gdb20n") = { - 0,49,47,240,244,19,0,0,0,0,42,58,0,25,250,19, - 0,12,13,26,14,1,11,3,0,15,0,70,64,102,112,246, - 240,63,192,15,0,63,224,254,240,230,112,70,32,7,0,14, - 0,12,12,24,13,1,3,6,0,6,0,6,0,6,0,6, - 0,127,240,255,224,6,0,6,0,6,0,6,0,6,0,6, - 10,10,9,2,250,56,252,252,60,60,56,56,112,96,192,10, - 2,4,11,1,7,255,192,255,128,5,5,5,9,2,255,112, - 248,248,248,112,14,30,60,15,1,251,0,28,0,56,0,56, - 0,120,0,112,0,112,0,224,0,224,0,224,1,192,1,192, - 3,128,3,128,3,128,7,0,7,0,7,0,14,0,14,0, - 28,0,28,0,28,0,56,0,56,0,120,0,112,0,112,0, - 224,0,224,0,192,0,14,18,36,16,1,0,7,192,24,224, - 56,112,112,120,112,120,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,240,56,112,56,120,56,56,112,28,96,15,128, - 13,19,38,16,2,0,1,128,15,128,127,128,239,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,63,224,127,248,13,19,38,16, - 1,0,15,224,56,240,120,120,240,120,112,120,0,120,0,240, - 0,240,1,224,1,192,3,128,7,0,14,0,28,8,28,8, - 56,24,127,248,255,248,255,248,13,19,38,16,1,0,31,128, - 121,224,112,240,240,240,64,240,0,240,1,224,7,192,15,192, - 3,240,0,240,0,120,0,120,0,120,0,120,128,240,192,240, - 127,224,31,128,14,19,38,17,1,0,0,48,1,240,1,240, - 3,240,7,240,6,240,12,240,12,240,24,240,56,240,48,240, - 96,240,255,252,255,248,0,240,0,240,0,240,1,248,7,252, - 13,19,38,16,1,0,63,248,63,240,63,224,112,0,112,0, - 96,0,96,0,127,128,127,224,97,240,0,248,0,120,0,120, - 0,120,0,120,0,112,128,240,193,224,127,128,14,20,40,16, - 1,0,0,112,3,240,7,128,15,0,28,0,60,0,120,0, - 120,0,115,224,255,240,252,120,240,124,240,60,240,60,240,60, - 112,60,120,56,56,56,28,112,7,192,13,19,38,16,2,0, - 255,248,255,248,255,240,192,48,128,96,128,96,0,224,0,192, - 1,192,1,128,3,128,3,128,7,0,7,0,14,0,14,0, - 30,0,28,0,56,0,14,19,38,16,1,0,15,192,24,240, - 48,120,112,120,112,120,120,120,126,240,63,192,31,224,15,240, - 63,248,120,252,248,124,240,60,240,60,240,56,112,56,56,112, - 31,192,14,20,40,16,1,255,7,192,24,240,56,120,112,120, - 240,60,240,60,240,60,240,60,248,60,124,124,63,252,31,60, - 0,56,0,120,0,112,0,240,1,224,7,128,63,0,56,0, - 5,16,16,9,2,255,112,248,248,248,112,0,0,0,0,0, - 0,112,248,248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--32-320-72-72-P-159-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=28 dy= 0 ascent=26 len=112 - Font Bounding box w=49 h=47 x=-16 y=-12 - Calculated Min Values x=-5 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb20r[4680] U8G_FONT_SECTION("u8g_font_gdb20r") = { - 0,49,47,240,244,20,5,86,12,137,32,127,248,26,248,25, - 248,0,0,0,8,0,0,5,24,24,10,2,255,24,120,120, - 120,120,120,120,120,120,112,112,112,112,48,48,48,48,0,0, - 112,248,248,248,112,11,10,20,15,2,13,56,224,243,224,241, - 224,241,192,113,192,113,192,113,192,113,192,112,192,96,192,15, - 18,36,16,1,2,1,140,3,152,3,24,3,24,3,56,63, - 254,63,254,6,112,14,96,12,96,12,96,127,252,255,248,24, - 192,24,192,57,128,49,128,49,128,14,25,50,16,1,253,3, - 0,3,0,3,0,31,240,63,248,115,120,227,56,227,16,243, - 0,255,0,127,0,63,224,15,240,3,248,3,124,3,28,195, - 28,195,28,227,28,251,120,255,240,63,224,3,0,3,0,3, - 0,21,20,60,23,1,0,0,0,96,30,0,192,115,129,192, - 97,131,128,225,195,0,225,198,0,225,206,0,225,220,0,97, - 152,0,115,176,0,30,113,224,0,231,112,1,198,48,1,142, - 56,3,142,56,7,14,56,14,14,56,12,6,48,28,7,48, - 56,3,192,21,23,69,22,1,0,1,240,0,7,120,0,14, - 60,0,14,60,0,30,60,0,30,124,0,30,120,0,31,240, - 0,31,224,0,15,192,0,15,128,0,31,143,248,63,195,160, - 123,225,128,123,241,128,241,249,128,240,251,0,240,127,0,240, - 126,0,248,63,0,120,31,240,63,247,240,15,195,192,5,10, - 10,9,2,13,56,240,240,240,112,112,112,112,112,96,9,30, - 60,11,2,251,1,0,3,128,6,0,14,0,28,0,60,0, - 56,0,120,0,120,0,112,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 120,0,56,0,60,0,28,0,30,0,14,0,7,0,1,128, - 9,30,60,11,0,251,64,0,240,0,56,0,60,0,28,0, - 30,0,14,0,15,0,15,0,15,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,0,15,0, - 15,0,15,0,14,0,30,0,28,0,56,0,48,0,96,0, - 192,0,12,13,26,14,1,11,3,0,15,0,70,64,102,112, - 246,240,63,192,15,0,63,224,254,240,230,112,70,32,7,0, - 14,0,12,12,24,13,1,3,6,0,6,0,6,0,6,0, - 6,0,127,240,255,224,6,0,6,0,6,0,6,0,6,0, - 6,10,10,9,2,250,56,252,252,60,60,56,56,112,96,192, - 10,2,4,11,1,7,255,192,255,128,5,5,5,9,2,255, - 112,248,248,248,112,14,30,60,15,1,251,0,28,0,56,0, - 56,0,120,0,112,0,112,0,224,0,224,0,224,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,28,0,28,0,28,0,56,0,56,0,120,0,112,0,112, - 0,224,0,224,0,192,0,14,18,36,16,1,0,7,192,24, - 224,56,112,112,120,112,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,56,112,56,120,56,56,112,28,96,15, - 128,13,19,38,16,2,0,1,128,15,128,127,128,239,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,224,127,248,13,19,38, - 16,1,0,15,224,56,240,120,120,240,120,112,120,0,120,0, - 240,0,240,1,224,1,192,3,128,7,0,14,0,28,8,28, - 8,56,24,127,248,255,248,255,248,13,19,38,16,1,0,31, - 128,121,224,112,240,240,240,64,240,0,240,1,224,7,192,15, - 192,3,240,0,240,0,120,0,120,0,120,0,120,128,240,192, - 240,127,224,31,128,14,19,38,17,1,0,0,48,1,240,1, - 240,3,240,7,240,6,240,12,240,12,240,24,240,56,240,48, - 240,96,240,255,252,255,248,0,240,0,240,0,240,1,248,7, - 252,13,19,38,16,1,0,63,248,63,240,63,224,112,0,112, - 0,96,0,96,0,127,128,127,224,97,240,0,248,0,120,0, - 120,0,120,0,120,0,112,128,240,193,224,127,128,14,20,40, - 16,1,0,0,112,3,240,7,128,15,0,28,0,60,0,120, - 0,120,0,115,224,255,240,252,120,240,124,240,60,240,60,240, - 60,112,60,120,56,56,56,28,112,7,192,13,19,38,16,2, - 0,255,248,255,248,255,240,192,48,128,96,128,96,0,224,0, - 192,1,192,1,128,3,128,3,128,7,0,7,0,14,0,14, - 0,30,0,28,0,56,0,14,19,38,16,1,0,15,192,24, - 240,48,120,112,120,112,120,120,120,126,240,63,192,31,224,15, - 240,63,248,120,252,248,124,240,60,240,60,240,56,112,56,56, - 112,31,192,14,20,40,16,1,255,7,192,24,240,56,120,112, - 120,240,60,240,60,240,60,240,60,248,60,124,124,63,252,31, - 60,0,56,0,120,0,112,0,240,1,224,7,128,63,0,56, - 0,5,16,16,9,2,255,112,248,248,248,112,0,0,0,0, - 0,0,112,248,248,248,112,6,21,21,9,2,250,112,248,248, - 248,112,0,0,0,0,0,0,56,252,252,60,60,56,56,112, - 96,192,13,10,20,15,1,4,0,24,0,240,7,240,63,128, - 252,0,248,0,127,0,15,224,1,248,0,48,13,7,14,15, - 1,5,255,248,255,240,0,0,0,0,0,0,255,248,255,240, - 13,10,20,15,1,4,96,0,252,0,63,128,7,240,0,248, - 1,240,15,224,127,0,248,0,192,0,12,24,48,15,1,255, - 31,192,121,224,240,240,240,240,240,240,192,240,0,240,1,224, - 1,192,3,192,3,128,7,0,7,0,6,0,6,0,6,0, - 0,0,0,0,0,0,14,0,31,0,31,0,31,0,14,0, - 26,28,112,28,1,249,0,31,192,0,0,255,248,0,3,255, - 252,0,7,224,62,0,15,128,15,0,30,0,7,128,60,30, - 35,128,60,49,225,128,120,97,225,192,120,225,224,192,240,225, - 224,192,241,225,224,192,241,225,224,192,241,225,224,192,241,225, - 224,192,241,225,225,128,241,225,225,128,248,243,227,0,120,255, - 254,0,120,125,252,0,124,56,240,0,62,0,0,0,62,0, - 2,0,31,128,6,0,15,224,63,0,7,255,248,0,1,255, - 240,0,0,63,128,0,20,20,60,20,0,0,0,32,0,0, - 240,0,0,240,0,1,248,0,1,248,0,1,248,0,3,188, - 0,3,60,0,3,60,0,7,30,0,6,30,0,14,31,0, - 15,255,0,12,7,0,28,7,128,24,7,128,24,3,128,56, - 3,192,56,3,192,254,15,240,17,20,60,19,1,0,63,224, - 0,252,120,0,60,60,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,60,0,60,120,0,63,248,0,60,30,0,60, - 15,0,60,15,0,60,7,128,60,7,128,60,7,128,60,7, - 128,60,15,0,124,30,0,255,248,0,16,20,40,18,1,0, - 1,254,6,31,28,14,56,4,56,0,112,0,112,0,240,0, - 240,0,240,0,240,0,240,0,240,0,248,0,120,0,124,3, - 63,14,31,252,15,248,3,224,18,20,60,20,1,0,63,240, - 0,252,60,0,60,14,0,60,15,0,60,7,128,60,7,128, - 60,3,192,60,3,192,60,3,192,60,3,192,60,3,192,60, - 3,192,60,3,192,60,3,128,60,7,128,60,7,128,60,15, - 0,60,14,0,124,28,0,255,240,0,15,20,40,17,1,0, - 255,252,124,12,60,12,60,12,60,12,60,0,60,0,60,0, - 60,0,63,240,60,32,60,0,60,0,60,0,60,0,60,0, - 60,2,60,6,124,14,255,254,14,20,40,16,1,0,255,252, - 124,12,60,12,60,12,60,12,60,0,60,0,60,0,60,0, - 63,240,60,32,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,126,0,255,0,18,20,60,19,1,0,1,254,0,6, - 15,0,28,6,0,56,4,0,56,0,0,120,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,127,192,240,127,192, - 240,15,0,240,15,0,120,15,0,120,15,0,60,15,0,30, - 15,0,15,254,0,3,240,0,20,20,60,22,1,0,255,15, - 240,126,7,224,60,3,192,60,3,192,60,3,192,60,3,192, - 60,3,192,60,3,192,60,3,192,63,255,192,60,3,192,60, - 3,192,60,3,192,60,3,192,60,3,192,60,3,192,60,3, - 192,60,3,192,126,7,224,255,15,240,8,20,20,10,1,0, - 255,126,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,126,255,14,27,54,11,252,249,7,252,1,248,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,224,1,224,49,192,127,128,255,0,60,0, - 19,20,60,20,1,0,255,31,192,126,15,0,60,14,0,60, - 28,0,60,56,0,60,112,0,60,224,0,60,224,0,61,192, - 0,63,128,0,63,192,0,61,224,0,60,240,0,60,120,0, - 60,60,0,60,62,0,60,31,0,60,15,128,126,7,224,255, - 3,128,15,20,40,16,1,0,255,0,126,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,2,60,6,124,14,255,254, - 25,20,80,27,1,0,252,0,31,128,62,0,62,0,62,0, - 62,0,62,0,126,0,63,0,126,0,55,0,254,0,55,128, - 222,0,55,129,222,0,51,193,158,0,51,195,158,0,49,195, - 158,0,49,227,30,0,48,231,30,0,48,246,30,0,48,254, - 30,0,48,124,30,0,48,124,30,0,48,56,30,0,120,56, - 63,0,252,24,127,128,19,20,60,21,1,0,248,7,224,124, - 3,192,60,1,128,62,1,128,63,1,128,63,129,128,55,129, - 128,51,193,128,51,225,128,49,225,128,48,241,128,48,249,128, - 48,125,128,48,61,128,48,31,128,48,31,128,48,15,128,48, - 7,128,120,7,128,252,1,128,18,20,60,20,1,0,3,240, - 0,12,28,0,28,14,0,56,7,0,56,7,128,112,7,128, - 112,3,192,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,248,3,128,120,7,128,120,7,0,60,15, - 0,30,30,0,15,248,0,3,224,0,16,20,40,18,1,0, - 63,240,252,60,60,30,60,15,60,15,60,15,60,15,60,15, - 60,14,60,30,62,60,61,240,60,0,60,0,60,0,60,0, - 60,0,60,0,126,0,255,128,21,25,75,20,1,251,3,240, - 0,14,28,0,28,14,0,56,15,0,56,7,128,112,7,128, - 112,3,128,240,3,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,192,240,3,128,120,3,128,120,7,128,60,7, - 0,28,14,0,14,28,0,3,248,0,0,60,0,0,15,8, - 0,7,248,0,3,240,0,0,224,18,20,60,19,1,0,63, - 224,0,252,120,0,60,60,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,60,0,60,252,0,63,240,0,63,224,0, - 60,240,0,60,112,0,60,120,0,60,60,0,60,62,0,60, - 30,0,60,15,0,126,15,192,255,7,128,13,20,40,16,2, - 0,15,224,48,224,96,96,224,0,224,0,240,0,252,0,127, - 0,127,192,31,224,15,240,3,248,0,248,0,120,128,120,192, - 120,192,112,224,224,255,192,63,0,18,20,60,19,0,0,255, - 255,192,193,225,192,193,224,192,193,224,192,129,224,128,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,3,240,0,7,248,0,19,20,60,21,1, - 0,255,7,224,126,3,192,60,1,128,60,1,128,60,1,128, - 60,1,128,60,1,128,60,1,128,60,1,128,60,1,128,60, - 1,128,60,1,128,60,1,128,60,1,128,60,1,128,60,3, - 0,30,3,0,15,6,0,7,252,0,3,240,0,21,20,60, - 21,0,0,255,3,248,60,0,224,60,0,192,30,0,192,30, - 1,128,15,1,128,15,3,128,15,3,0,7,131,0,7,135, - 0,3,198,0,3,198,0,3,206,0,1,236,0,1,236,0, - 0,248,0,0,248,0,0,248,0,0,112,0,0,96,0,27, - 20,80,27,0,0,255,6,15,224,60,6,3,192,28,15,3, - 128,28,15,3,0,28,15,3,0,30,31,131,0,30,27,131, - 0,14,27,199,0,14,59,198,0,15,49,198,0,15,49,230, - 0,7,112,238,0,7,96,252,0,7,224,252,0,7,192,124, - 0,3,192,124,0,3,192,60,0,3,128,56,0,3,128,56, - 0,3,0,16,0,20,20,60,20,0,0,127,143,224,62,3, - 128,30,7,0,15,6,0,15,142,0,7,140,0,3,220,0, - 3,248,0,1,240,0,0,240,0,0,248,0,1,248,0,3, - 188,0,3,190,0,7,30,0,6,15,0,14,15,128,28,7, - 128,60,7,192,254,31,240,19,20,60,20,0,0,252,7,224, - 60,3,192,30,3,128,15,3,0,15,7,0,7,134,0,3, - 142,0,3,204,0,1,220,0,1,248,0,0,248,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,1,248,0,3,252,0,15,20,40,17,1,0,127, - 254,96,62,96,124,64,124,64,248,0,240,1,240,1,224,3, - 224,7,192,7,192,15,128,15,0,31,0,62,0,62,2,124, - 2,124,6,248,6,255,254,9,30,60,11,2,251,255,128,255, - 128,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,255,128,255,128,13,30,60,15,1,251,192, - 0,224,0,224,0,112,0,112,0,48,0,56,0,56,0,28, - 0,28,0,28,0,14,0,14,0,6,0,7,0,7,0,3, - 128,3,128,3,128,1,192,1,192,0,192,0,224,0,224,0, - 112,0,112,0,112,0,56,0,56,0,24,9,30,60,11,0, - 251,255,128,255,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,255,128,255,128,12,15,30, - 16,2,9,2,0,6,0,15,0,15,0,27,0,27,128,17, - 128,49,192,49,192,96,192,96,224,96,96,192,112,192,48,128, - 32,14,2,4,15,1,252,255,252,255,248,7,8,8,10,0, - 16,112,240,120,56,60,28,14,6,14,15,30,16,1,0,31, - 192,112,224,240,240,192,240,0,240,3,240,31,240,63,240,120, - 240,240,240,240,240,240,240,251,252,126,248,56,96,16,24,48, - 17,0,0,12,0,252,0,124,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,120,61,252,63,254,63,30,60,15,60, - 7,60,7,60,7,60,7,60,6,60,14,62,28,63,248,31, - 240,7,192,13,15,30,15,1,0,3,248,12,120,56,48,112, - 16,112,0,240,0,240,0,240,0,240,0,248,0,248,8,124, - 56,63,240,31,224,15,128,16,24,48,18,1,0,0,28,0, - 252,0,60,0,60,0,60,0,60,0,60,0,60,0,60,7, - 252,24,124,56,60,112,60,112,60,240,60,240,60,240,60,240, - 60,248,60,248,60,124,124,127,255,63,190,30,24,13,15,30, - 15,1,0,7,192,24,224,56,112,112,120,112,120,240,120,255, - 240,240,0,240,0,240,0,248,8,124,56,127,240,63,224,15, - 128,13,24,48,11,1,0,1,240,7,248,14,112,28,32,28, - 0,60,0,60,0,60,0,60,0,255,192,60,128,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,127,0,255,128,16,23,46,17,0,248,7,227,28, - 127,56,126,120,60,120,60,120,60,120,60,60,56,60,112,15, - 192,14,0,28,0,31,192,63,252,15,254,31,255,120,127,240, - 15,240,14,240,14,120,28,63,248,15,192,17,24,72,18,1, - 0,12,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,120,0,61, - 252,0,63,254,0,63,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,126,63,0,255,127,128,8,21,21,10,1,0,28, - 62,62,28,0,0,28,252,124,60,60,60,60,60,60,60,60, - 60,60,126,255,12,29,58,9,251,248,0,224,1,240,1,240, - 0,224,0,0,0,0,0,224,7,224,3,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,192,1,192,99,128,255,0, - 254,0,120,0,17,24,72,18,1,0,12,0,0,252,0,0, - 124,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,63,128,60,30,0,60,60,0,60,112, - 0,60,224,0,61,192,0,63,192,0,63,224,0,61,224,0, - 60,240,0,60,120,0,60,60,0,60,62,0,126,31,128,255, - 15,0,8,24,24,10,1,0,12,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 26,15,60,28,1,0,28,120,60,0,252,252,254,0,127,255, - 255,0,63,31,143,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,60,30,15,0,60,30, - 15,0,60,30,15,0,60,30,15,0,126,63,31,128,255,127, - 191,192,17,15,45,18,1,0,12,60,0,252,252,0,127,254, - 0,63,30,0,62,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,15,15,30,17,1,0,7,224,24,112,56, - 56,112,60,112,30,240,30,240,30,240,30,240,30,240,30,240, - 28,120,28,56,56,28,48,15,192,16,23,46,18,1,248,12, - 120,252,252,127,254,62,62,60,31,60,15,60,15,60,15,60, - 15,60,15,60,14,62,30,63,252,61,248,60,240,60,0,60, - 0,60,0,60,0,60,0,60,0,127,0,255,128,17,23,69, - 18,1,248,3,194,0,12,54,0,56,30,0,112,30,0,112, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,248,30, - 0,248,30,0,124,126,0,127,254,0,63,222,0,15,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,63,0,0,255,128,13,15,30,14,1,0,24,240, - 249,248,123,248,62,48,60,48,60,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,126,0,255,0,11,15,30,13, - 1,0,31,192,97,192,225,128,224,128,248,0,254,0,127,128, - 127,192,31,224,7,224,129,224,192,224,192,192,224,192,255,0, - 11,20,40,12,0,0,4,0,28,0,60,0,60,0,60,0, - 255,224,60,64,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,96,63,224,31,128,14,0,17,15, - 45,18,0,0,28,14,0,252,126,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,126,0,63,255,128,31,223,0,15,12, - 0,16,15,30,16,0,0,254,31,124,14,60,12,60,12,30, - 28,30,24,15,24,15,48,7,48,7,240,7,224,3,224,3, - 192,1,192,1,128,23,15,45,23,0,0,254,24,62,124,24, - 28,60,28,24,60,60,24,28,62,48,30,126,48,30,111,48, - 14,111,112,15,199,96,15,199,224,7,195,224,7,131,192,7, - 131,192,3,1,192,2,1,128,16,15,30,17,0,0,255,63, - 62,28,30,24,15,48,15,240,7,224,3,192,3,224,3,224, - 6,240,14,248,28,120,24,60,120,62,252,127,17,23,69,16, - 255,248,127,15,128,62,7,0,30,6,0,30,6,0,15,14, - 0,15,12,0,7,140,0,7,152,0,7,152,0,3,248,0, - 3,240,0,1,240,0,1,240,0,1,224,0,0,224,0,0, - 192,0,0,192,0,1,192,0,1,128,0,39,128,0,127,0, - 0,254,0,0,120,0,0,13,15,30,15,1,0,127,248,96, - 248,65,240,65,224,3,224,7,192,7,128,15,128,15,0,31, - 0,62,16,60,24,124,24,248,24,255,248,9,30,60,12,2, - 251,1,0,7,128,14,0,28,0,60,0,60,0,60,0,60, - 0,62,0,30,0,30,0,30,0,30,0,60,0,120,0,252, - 0,60,0,30,0,30,0,30,0,30,0,62,0,60,0,60, - 0,60,0,60,0,28,0,30,0,7,0,1,128,2,32,32, - 7,3,250,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,128,9,30,60,12,1,251,64,0,240,0,60,0,28, - 0,30,0,30,0,30,0,30,0,62,0,60,0,60,0,60, - 0,60,0,30,0,31,128,15,0,30,0,60,0,60,0,60, - 0,60,0,62,0,30,0,30,0,30,0,30,0,28,0,56, - 0,112,0,192,0,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 4 y=23 dx=35 dy= 0 ascent=34 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25[14643] U8G_FONT_SECTION("u8g_font_gdb25") = { - 0,61,57,236,242,25,7,167,18,92,32,255,247,34,245,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,10,0, - 0,6,29,29,12,3,245,120,252,252,252,248,112,0,16,48, - 56,56,120,120,120,120,120,120,120,120,120,120,120,124,124,252, - 252,252,248,192,16,25,50,20,2,255,0,192,1,192,1,192, - 1,248,7,255,31,255,61,223,121,198,121,198,113,192,241,192, - 241,192,241,192,241,192,241,192,241,192,121,195,125,199,63,206, - 31,252,15,248,3,192,1,192,1,192,1,128,19,25,75,20, - 1,255,0,127,0,1,255,192,3,199,192,7,131,192,7,1, - 192,15,1,128,15,1,128,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,127,252,0,255,248,0,31,0,0,31, - 0,0,31,0,0,31,0,0,30,0,96,30,0,192,30,0, - 192,63,255,192,127,255,192,255,255,192,64,31,128,17,16,48, - 20,1,4,64,0,128,224,1,128,115,243,128,63,255,0,30, - 30,0,28,14,0,56,7,0,56,7,0,56,7,0,56,7, - 0,56,7,0,28,14,0,62,31,0,127,255,128,243,243,128, - 96,1,128,22,24,72,20,254,0,254,3,252,255,3,252,31, - 0,240,31,128,224,15,193,192,7,193,192,7,227,128,3,227, - 128,3,247,128,1,247,0,0,255,0,0,254,0,0,254,0, - 0,124,0,31,255,240,31,255,224,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,3,41,41,9,3,248,96,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,128,0,0,0,64,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,192, - 16,28,56,20,2,0,7,224,31,252,60,124,120,56,120,24, - 124,24,127,0,63,192,63,240,127,248,243,252,240,254,240,63, - 240,31,248,15,126,15,127,15,63,206,15,254,3,252,0,254, - 48,126,48,62,48,30,56,30,60,60,63,248,15,224,14,6, - 12,16,1,21,112,56,120,60,248,124,248,124,240,120,112,56, - 27,26,104,30,1,0,0,63,128,0,1,255,240,0,7,192, - 124,0,15,0,30,0,30,0,15,0,60,31,135,128,56,127, - 227,128,112,225,193,192,113,193,193,192,225,192,193,224,227,128, - 128,224,227,128,0,224,227,128,0,224,227,128,0,224,227,128, - 0,224,227,128,0,224,225,192,1,224,113,224,33,192,112,240, - 113,192,56,127,227,128,60,31,7,128,30,0,15,0,15,0, - 30,0,7,192,124,0,1,255,240,0,0,63,128,0,9,14, - 28,11,1,11,30,0,62,0,103,0,231,0,7,0,63,0, - 103,0,231,0,231,0,255,128,119,0,0,0,255,128,255,128, - 17,18,54,21,1,0,0,128,128,1,129,128,3,3,0,7, - 7,0,14,14,0,30,30,0,60,60,0,124,124,0,248,248, - 0,252,248,0,124,124,0,60,60,0,30,30,0,14,14,0, - 7,7,0,3,3,0,1,129,128,0,128,128,17,9,27,20, - 2,3,255,255,128,255,255,128,0,3,128,0,3,128,0,3, - 128,0,3,128,0,3,128,0,3,128,0,3,0,12,2,4, - 14,1,9,127,240,255,240,13,15,30,14,1,14,15,128,31, - 192,48,96,96,48,95,16,137,136,137,136,143,136,139,8,137, - 8,73,144,124,240,48,96,31,192,15,128,16,3,6,20,2, - 23,255,255,255,255,255,254,10,10,20,14,2,15,15,0,63, - 128,115,192,97,192,225,192,225,192,225,128,243,128,127,0,60, - 0,15,18,36,16,1,3,1,128,3,128,3,128,3,128,3, - 128,3,128,127,254,255,252,3,128,3,128,3,128,3,128,3, - 128,3,0,0,0,0,0,127,254,255,252,11,15,30,13,1, - 12,7,192,31,224,56,224,120,224,112,224,0,192,1,192,3, - 128,3,0,6,0,12,0,24,32,48,96,127,224,255,224,11, - 15,30,13,0,12,7,128,31,224,56,224,56,224,32,224,1, - 192,3,128,7,192,0,224,0,224,0,224,128,224,225,192,127, - 192,31,0,9,10,20,13,4,20,14,0,31,128,31,128,63, - 0,62,0,60,0,120,0,112,0,224,0,64,0,22,27,81, - 23,1,247,14,0,96,254,7,224,254,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,63,7,224,63,143,224,63,255,228, - 63,251,252,59,241,248,57,225,224,56,0,0,56,0,0,60, - 0,0,60,0,0,60,0,0,62,0,0,63,0,0,62,0, - 0,48,0,0,22,30,90,24,1,251,3,255,252,31,255,252, - 63,29,240,124,28,224,124,28,224,248,28,224,248,28,224,248, - 28,224,248,28,224,248,28,224,124,28,224,126,28,224,63,28, - 224,31,252,224,3,252,224,0,28,224,0,28,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,224,0,28,224,0, - 28,224,0,28,224,0,28,224,0,28,224,0,28,224,0,127, - 248,0,255,252,6,6,6,8,1,11,56,124,252,252,252,120, - 8,9,9,9,1,247,24,56,60,63,127,31,30,252,224,10, - 15,30,14,2,12,6,0,62,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,63, - 0,255,192,9,14,28,11,1,11,30,0,63,0,119,0,227, - 128,227,128,227,128,227,128,227,128,119,0,126,0,60,0,0, - 0,255,128,255,128,17,18,54,21,2,0,64,64,0,224,224, - 0,112,112,0,56,56,0,60,60,0,30,30,0,31,31,0, - 15,143,128,15,143,128,15,143,128,15,143,128,31,31,0,30, - 30,0,60,60,0,56,56,0,112,112,0,96,96,0,192,192, - 0,22,24,72,25,2,0,12,0,24,252,0,56,28,0,112, - 28,0,224,28,1,192,28,1,192,28,3,128,28,7,0,28, - 6,0,28,14,0,62,28,0,255,184,0,0,56,112,0,112, - 240,0,225,240,1,193,112,1,195,112,3,134,112,7,4,112, - 14,15,252,14,31,248,28,0,112,56,0,112,112,1,252,21, - 24,72,25,2,0,12,0,56,252,0,112,28,0,112,28,0, - 224,28,1,192,28,3,128,28,3,128,28,7,0,28,14,0, - 28,28,0,62,28,0,255,184,0,0,113,240,0,227,248,0, - 230,56,1,206,56,3,128,48,7,0,96,7,0,224,14,0, - 192,28,1,136,60,7,8,56,15,248,112,15,248,23,24,72, - 25,1,0,31,0,12,63,128,28,115,128,56,227,128,112,7, - 0,224,31,0,224,3,129,192,3,131,128,3,131,0,135,135, - 0,255,14,0,60,28,0,0,28,56,0,56,120,0,112,248, - 0,224,184,0,225,184,1,195,56,3,130,56,7,7,254,7, - 15,252,14,0,56,28,0,56,56,0,254,16,29,58,18,1, - 245,3,192,7,224,7,224,7,224,7,192,3,128,0,0,0, - 0,1,192,1,192,1,192,1,192,3,192,3,128,7,128,15, - 0,31,0,62,0,60,0,124,0,248,0,248,7,248,31,248, - 31,248,31,252,30,126,60,63,248,15,224,25,34,136,25,0, - 0,0,192,0,0,3,224,0,0,3,240,0,0,3,248,0, - 0,0,252,0,0,0,62,0,0,0,15,0,0,0,2,0, - 0,0,0,0,0,0,4,0,0,0,30,0,0,0,62,0, - 0,0,126,0,0,0,127,0,0,0,111,0,0,0,239,128, - 0,0,239,128,0,0,199,128,0,1,199,192,0,1,199,192, - 0,1,131,192,0,3,131,224,0,3,131,224,0,3,255,224, - 0,7,255,240,0,7,0,240,0,6,0,248,0,14,0,248, - 0,14,0,120,0,12,0,124,0,28,0,124,0,28,0,124, - 0,255,129,255,0,255,129,255,128,25,34,136,25,0,0,0, - 1,128,0,0,3,192,0,0,7,224,0,0,15,192,0,0, - 31,0,0,0,124,0,0,0,240,0,0,0,64,0,0,0, - 0,0,0,0,4,0,0,0,30,0,0,0,62,0,0,0, - 126,0,0,0,127,0,0,0,111,0,0,0,239,128,0,0, - 239,128,0,0,199,128,0,1,199,192,0,1,199,192,0,1, - 131,192,0,3,131,224,0,3,131,224,0,3,255,224,0,7, - 255,240,0,7,0,240,0,6,0,248,0,14,0,248,0,14, - 0,120,0,12,0,124,0,28,0,124,0,28,0,124,0,255, - 129,255,0,255,129,255,128,25,34,136,25,0,0,0,28,0, - 0,0,62,0,0,0,127,0,0,0,255,128,0,1,255,128, - 0,1,227,192,0,3,128,224,0,2,0,64,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,33,132,25,0,0,0,248,48,0,1, - 254,240,0,3,255,224,0,3,255,192,0,6,31,128,0,6, - 3,0,0,4,0,0,0,0,0,0,0,0,4,0,0,0, - 30,0,0,0,62,0,0,0,126,0,0,0,127,0,0,0, - 111,0,0,0,239,128,0,0,239,128,0,0,199,128,0,1, - 199,192,0,1,199,192,0,1,131,192,0,3,131,224,0,3, - 131,224,0,3,255,224,0,7,255,240,0,7,0,240,0,6, - 0,248,0,14,0,248,0,14,0,120,0,12,0,124,0,28, - 0,124,0,28,0,124,0,255,129,255,0,255,129,255,128,25, - 32,128,25,0,0,1,192,224,0,3,193,224,0,7,195,224, - 0,7,195,224,0,3,193,224,0,1,129,192,0,0,0,0, - 0,0,4,0,0,0,30,0,0,0,62,0,0,0,126,0, - 0,0,127,0,0,0,111,0,0,0,239,128,0,0,239,128, - 0,0,199,128,0,1,199,192,0,1,199,192,0,1,131,192, - 0,3,131,224,0,3,131,224,0,3,255,224,0,7,255,240, - 0,7,0,240,0,6,0,248,0,14,0,248,0,14,0,120, - 0,12,0,124,0,28,0,124,0,28,0,124,0,255,129,255, - 0,255,129,255,128,25,34,136,25,0,0,0,30,0,0,0, - 127,0,0,0,119,0,0,0,103,0,0,0,231,0,0,0, - 119,0,0,0,126,0,0,0,56,0,0,0,0,0,0,0, - 4,0,0,0,30,0,0,0,62,0,0,0,126,0,0,0, - 127,0,0,0,111,0,0,0,239,128,0,0,239,128,0,0, - 199,128,0,1,199,192,0,1,199,192,0,1,131,192,0,3, - 131,224,0,3,131,224,0,3,255,224,0,7,255,240,0,7, - 0,240,0,6,0,248,0,14,0,248,0,14,0,120,0,12, - 0,124,0,28,0,124,0,28,0,124,0,255,129,255,0,255, - 129,255,128,32,25,100,32,0,0,0,255,255,252,0,255,255, - 252,0,31,240,28,0,61,240,12,0,61,240,12,0,57,240, - 12,0,121,240,12,0,113,240,0,0,241,240,0,0,225,240, - 0,0,225,240,0,1,255,255,240,1,255,255,240,3,193,240, - 32,3,129,240,0,3,129,240,0,7,129,240,0,7,1,240, - 0,15,1,240,0,14,1,240,3,14,1,240,3,30,1,240, - 6,28,1,240,14,255,7,255,254,255,15,255,254,20,34,102, - 22,1,247,0,127,128,3,255,240,7,135,224,15,1,224,30, - 0,192,60,0,64,60,0,0,124,0,0,120,0,0,120,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,252,0,0,124,0,0,126,0,0,127, - 0,96,63,129,224,31,255,192,15,255,0,7,254,0,1,240, - 0,0,224,0,0,248,0,0,252,0,1,252,0,0,124,0, - 0,120,0,1,240,0,1,192,0,19,34,102,21,1,0,6, - 0,0,31,0,0,31,128,0,31,192,0,7,224,0,1,240, - 0,0,120,0,0,16,0,0,0,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,19,34,102,21,1,0,0,12,0,0,31, - 0,0,63,0,0,126,0,0,248,0,1,224,0,3,128,0, - 2,0,0,0,0,0,255,255,192,255,255,192,62,1,192,30, - 1,192,30,1,128,30,1,128,30,0,128,30,0,0,30,0, - 0,30,0,0,30,0,0,31,255,0,31,254,0,30,6,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,96,30,0,96,30,0,224,63,1,224,255,255,224,255,255, - 192,19,34,102,21,1,0,0,224,0,1,240,0,3,248,0, - 7,252,0,15,252,0,15,30,0,28,7,0,16,2,0,0, - 0,0,255,255,192,255,255,192,62,1,192,30,1,192,30,1, - 128,30,1,128,30,0,128,30,0,0,30,0,0,30,0,0, - 30,0,0,31,255,0,31,254,0,30,6,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,96,30,0, - 96,30,0,224,63,1,224,255,255,224,255,255,192,19,32,96, - 21,1,0,14,7,0,30,15,0,31,15,128,30,15,0,30, - 15,0,12,6,0,0,0,0,255,255,192,255,255,192,62,1, - 192,30,1,192,30,1,128,30,1,128,30,0,128,30,0,0, - 30,0,0,30,0,0,30,0,0,31,255,0,31,254,0,30, - 6,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,96,30,0,96,30,0,224,63,1,224,255,255,224, - 255,255,192,12,34,68,13,0,0,48,0,248,0,252,0,254, - 0,63,0,15,128,3,192,0,128,0,0,127,240,63,240,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,63,224,127,240,12,34,68, - 13,1,0,0,192,1,224,3,240,7,224,31,128,62,0,120, - 0,32,0,0,0,255,224,127,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,255,224,13,34,68,13,0,0,7,0,15, - 128,31,192,63,224,127,224,248,240,224,56,128,16,0,0,127, - 240,63,240,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,63,224,127, - 240,14,32,64,13,255,0,56,28,120,60,248,124,248,124,120, - 60,112,56,0,0,63,248,31,248,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,7,192,7,192,7,192,7,192,7,192,7,192,7, - 192,7,192,31,240,63,248,22,25,75,25,1,0,15,252,0, - 255,255,128,255,15,192,31,3,224,31,1,240,31,1,248,31, - 0,248,31,0,248,31,0,124,31,0,124,31,0,124,255,248, - 124,255,248,124,31,0,124,31,0,124,31,0,124,31,0,120, - 31,0,248,31,0,248,31,1,240,31,1,240,31,3,224,31, - 7,192,127,255,128,255,252,0,25,33,132,27,1,0,0,240, - 48,0,1,254,224,0,3,255,224,0,3,255,192,0,6,31, - 128,0,6,3,0,0,4,0,0,0,0,0,0,0,254,0, - 255,128,255,0,127,0,31,0,28,0,31,128,28,0,31,192, - 28,0,31,192,28,0,31,224,28,0,29,240,28,0,29,248, - 28,0,28,248,28,0,28,124,28,0,28,126,28,0,28,62, - 28,0,28,31,28,0,28,15,156,0,28,15,156,0,28,7, - 220,0,28,3,252,0,28,3,252,0,28,1,252,0,28,0, - 252,0,28,0,252,0,28,0,124,0,127,0,60,0,255,128, - 12,0,23,34,102,25,1,0,1,128,0,7,192,0,7,224, - 0,7,240,0,1,248,0,0,124,0,0,30,0,0,4,0, - 0,0,0,0,126,0,3,255,192,7,135,224,14,1,240,30, - 0,248,60,0,248,60,0,124,124,0,124,120,0,126,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,252,0,60,124,0,124,124,0,120,62,0,120,62, - 0,240,31,1,224,15,195,192,7,255,0,0,252,0,23,34, - 102,25,1,0,0,3,0,0,7,192,0,15,192,0,31,128, - 0,62,0,0,120,0,0,224,0,0,128,0,0,0,0,0, - 126,0,3,255,192,7,135,224,14,1,240,30,0,248,60,0, - 248,60,0,124,124,0,124,120,0,126,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,252, - 0,60,124,0,124,124,0,120,62,0,120,62,0,240,31,1, - 224,15,195,192,7,255,0,0,252,0,23,34,102,25,1,0, - 0,56,0,0,124,0,0,254,0,1,255,0,3,255,0,3, - 199,128,7,1,192,4,0,128,0,0,0,0,126,0,3,255, - 192,7,135,224,14,1,240,30,0,248,60,0,248,60,0,124, - 124,0,124,120,0,126,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,252,0,60,124,0, - 124,124,0,120,62,0,120,62,0,240,31,1,224,15,195,192, - 7,255,0,0,252,0,23,33,99,25,1,0,1,240,96,3, - 252,224,7,255,192,7,255,128,14,63,128,12,6,0,8,0, - 0,0,0,0,0,126,0,3,255,192,7,135,224,14,1,240, - 30,0,248,60,0,248,60,0,124,124,0,124,120,0,126,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,252,0,60,124,0,124,124,0,120,62,0,120, - 62,0,240,31,1,224,15,195,192,7,255,0,0,252,0,23, - 32,96,25,1,0,3,129,192,7,131,192,7,195,224,7,131, - 192,7,131,192,3,1,128,0,0,0,0,126,0,3,255,192, - 7,135,224,14,1,240,30,0,248,60,0,248,60,0,124,124, - 0,124,120,0,126,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,248,0,62,248,0,62,252,0,60,124,0,124, - 124,0,120,62,0,120,62,0,240,31,1,224,15,195,192,7, - 255,0,0,252,0,13,12,24,17,2,5,96,48,240,120,120, - 240,61,224,31,192,15,128,15,128,31,192,57,224,120,240,240, - 120,96,48,23,26,78,25,1,255,0,126,30,3,255,252,7, - 135,248,14,3,240,30,1,248,60,1,252,60,3,252,124,7, - 252,120,15,254,248,15,126,248,30,62,248,62,62,248,60,62, - 248,120,62,248,240,62,248,240,62,253,224,60,127,192,124,127, - 128,120,127,128,120,63,0,240,31,129,224,63,195,192,127,255, - 0,240,252,0,192,0,0,25,34,136,27,1,0,0,192,0, - 0,3,224,0,0,3,240,0,0,3,248,0,0,0,252,0, - 0,0,30,0,0,0,7,0,0,0,2,0,0,0,0,0, - 0,255,224,255,128,127,224,255,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,24,0,15,128,56, - 0,15,128,56,0,7,192,112,0,3,224,224,0,1,255,192, - 0,0,127,0,0,25,34,136,27,1,0,0,1,128,0,0, - 3,224,0,0,7,224,0,0,15,192,0,0,31,0,0,0, - 60,0,0,0,112,0,0,0,64,0,0,0,0,0,0,255, - 224,255,128,127,224,255,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,24,0,15,128,56,0,15, - 128,56,0,7,192,112,0,3,224,224,0,1,255,192,0,0, - 127,0,0,25,34,136,27,1,0,0,28,0,0,0,62,0, - 0,0,127,0,0,0,255,128,0,1,255,192,0,1,227,192, - 0,3,128,224,0,2,0,64,0,0,0,0,0,255,224,255, - 128,127,224,255,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,24,0,15,128,56,0,15,128,56, - 0,7,192,112,0,3,224,224,0,1,255,192,0,0,127,0, - 0,25,32,128,27,1,0,1,192,224,0,3,225,240,0,3, - 225,240,0,3,193,224,0,3,193,224,0,1,128,192,0,0, - 0,0,0,255,224,255,128,127,224,255,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,28,0,31, - 0,28,0,31,0,28,0,31,0,28,0,31,0,24,0,15, - 128,56,0,15,128,56,0,7,192,112,0,3,224,224,0,1, - 255,192,0,0,127,0,0,24,34,102,25,0,0,0,1,128, - 0,3,192,0,7,224,0,31,192,0,63,0,0,124,0,0, - 240,0,0,64,0,0,0,0,126,0,255,255,0,255,31,0, - 56,15,128,56,15,192,112,7,192,112,3,224,224,3,224,224, - 1,241,192,1,241,192,0,251,128,0,251,128,0,127,0,0, - 127,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,1,255,192, - 1,255,192,21,25,75,23,1,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,254,0,31,255,192,31,7, - 224,31,3,240,31,1,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,1,240,31,1,240,31,135,224,31, - 127,128,31,62,0,31,0,0,31,0,0,31,0,0,127,224, - 0,255,224,0,23,30,90,25,0,0,0,31,128,0,255,224, - 1,195,240,3,128,248,7,128,248,15,0,124,15,0,124,15, - 0,124,31,0,124,31,0,248,31,1,248,31,7,240,31,15, - 128,31,31,0,31,30,0,31,30,0,31,31,0,31,31,128, - 31,15,224,31,7,248,31,3,252,31,0,252,31,0,126,31, - 48,62,31,48,30,31,48,30,31,56,28,31,60,60,127,63, - 248,255,15,224,19,30,90,20,1,0,7,0,0,31,128,0, - 15,128,0,15,192,0,7,192,0,3,224,0,1,224,0,0, - 224,0,0,112,0,0,48,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,30,90,20,1,0,0,56,0,0,62,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,1, - 192,0,3,128,0,1,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,62,63,0,124,31,0,124,31,0,112,31,0, - 0,31,0,1,255,0,15,255,0,63,31,0,124,31,0,120, - 31,0,248,31,0,248,31,32,248,127,224,255,223,192,127,159, - 128,62,14,0,19,29,87,20,1,0,1,224,0,1,224,0, - 3,240,0,7,248,0,7,252,0,15,60,0,30,30,0,56, - 7,0,16,2,0,0,0,0,0,0,0,1,248,0,15,254, - 0,62,63,0,124,31,0,124,31,0,112,31,0,0,31,0, - 1,255,0,15,255,0,63,31,0,124,31,0,120,31,0,248, - 31,0,248,31,32,248,127,224,255,223,192,127,159,128,62,14, - 0,19,27,81,20,1,0,7,129,128,15,227,0,31,255,0, - 63,254,0,49,252,0,96,56,0,0,0,0,0,0,0,0, - 0,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,19,27,81,20,1,0,12,6, - 0,30,15,0,62,31,0,62,31,0,62,31,0,28,14,0, - 0,0,0,0,0,0,0,0,0,1,248,0,15,254,0,62, - 63,0,124,31,0,124,31,0,112,31,0,0,31,0,1,255, - 0,15,255,0,63,31,0,124,31,0,120,31,0,248,31,0, - 248,31,32,248,127,224,255,223,192,127,159,128,62,14,0,19, - 28,84,20,1,0,0,240,0,3,248,0,3,184,0,7,56, - 0,7,56,0,7,56,0,3,240,0,1,224,0,0,0,0, - 0,0,0,1,248,0,15,254,0,62,63,0,124,31,0,124, - 31,0,112,31,0,0,31,0,1,255,0,15,255,0,63,31, - 0,124,31,0,120,31,0,248,31,0,248,31,32,248,127,224, - 255,223,192,127,159,128,62,14,0,27,18,72,29,1,0,0, - 252,62,0,7,254,255,128,15,191,199,128,30,15,131,192,62, - 15,129,192,124,15,1,224,0,15,1,224,0,255,255,224,15, - 255,255,192,31,15,0,0,124,15,0,0,120,15,0,0,248, - 15,128,0,248,31,128,96,252,127,225,224,255,227,255,192,127, - 193,255,0,63,0,124,0,17,27,81,18,1,247,1,252,0, - 7,255,0,31,31,0,60,15,0,60,7,0,120,6,0,120, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,252,0,0,126,1,0,127,7,128,63,254,0,31,252,0, - 7,240,0,1,192,0,1,192,0,1,240,0,3,248,0,0, - 248,0,0,248,0,1,240,0,3,224,0,7,0,0,17,30, - 90,19,1,0,3,128,0,15,128,0,31,192,0,7,192,0, - 3,192,0,1,224,0,0,224,0,0,112,0,0,48,0,0, - 56,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,30, - 90,19,1,0,0,60,0,0,63,0,0,62,0,0,124,0, - 0,120,0,0,240,0,0,240,0,1,224,0,1,192,0,1, - 128,0,0,0,0,0,0,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,19,1,0,0,224,0,1,240,0,3,248,0,3,248,0, - 7,252,0,15,30,0,14,14,0,28,7,0,24,3,0,0, - 0,0,0,0,0,1,240,0,15,252,0,30,62,0,60,31, - 0,120,15,0,120,15,128,248,15,128,255,255,128,255,254,0, - 248,0,0,248,0,0,248,0,0,252,0,0,126,1,128,127, - 7,0,63,254,0,31,252,0,7,240,0,17,27,81,19,1, - 0,14,7,0,30,15,0,31,15,128,30,15,0,30,15,0, - 28,14,0,0,0,0,0,0,0,0,0,0,1,240,0,15, - 252,0,30,62,0,60,31,0,120,15,0,120,15,128,248,15, - 128,255,255,128,255,254,0,248,0,0,248,0,0,248,0,0, - 252,0,0,126,1,128,127,7,0,63,254,0,31,252,0,7, - 240,0,11,30,60,12,0,0,56,0,252,0,124,0,62,0, - 62,0,31,0,15,0,7,128,3,128,1,128,0,0,0,0, - 7,0,127,0,127,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 127,192,127,224,11,30,60,12,1,0,3,128,3,224,7,224, - 7,192,15,128,15,0,30,0,28,0,24,0,48,0,0,0, - 0,0,14,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,192,14,29,58,12,255,0,7,128,7,192, - 15,192,31,224,31,240,60,240,120,120,112,28,192,8,0,0, - 0,0,3,128,63,128,63,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,63,224,63,240,14,27,54,12,255,0,48,24,120,60, - 248,124,248,124,248,124,112,56,0,0,0,0,0,0,3,128, - 63,128,63,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,63,224, - 63,240,18,29,87,20,1,0,3,0,0,31,192,0,63,231, - 192,3,255,0,0,252,0,3,252,0,15,252,0,30,30,0, - 0,31,0,0,15,0,0,15,128,3,231,128,15,255,128,30, - 63,192,60,31,192,124,15,192,120,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,248,7,128,248,7,128,124,15,128, - 124,15,0,126,14,0,63,28,0,15,248,0,3,224,0,22, - 27,81,23,1,0,1,192,64,3,248,224,7,255,192,15,255, - 128,12,127,0,24,30,0,0,0,0,0,0,0,0,0,0, - 14,15,128,254,63,192,254,255,224,63,255,224,63,199,224,63, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 255,143,248,255,223,252,19,30,90,21,1,0,3,128,0,15, - 192,0,15,192,0,7,192,0,3,224,0,1,224,0,0,240, - 0,0,112,0,0,56,0,0,16,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,30,90,21,1,0,0,28,0,0, - 63,0,0,63,0,0,62,0,0,124,0,0,120,0,0,240, - 0,0,224,0,1,192,0,0,128,0,0,0,0,0,0,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,19,29,87,21,1,0,0,240,0,0, - 240,0,1,248,0,3,252,0,7,252,0,7,158,0,15,15, - 0,28,3,0,8,1,128,0,0,0,0,0,0,1,248,0, - 7,254,0,30,31,128,60,15,128,124,7,192,120,7,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 192,124,3,192,124,7,128,62,7,128,63,15,0,15,252,0, - 3,240,0,19,27,81,21,1,0,3,128,128,7,241,192,15, - 255,128,31,255,0,24,254,0,48,60,0,0,0,0,0,0, - 0,0,0,0,1,248,0,7,254,0,30,31,128,60,15,128, - 124,7,192,120,7,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,192,124,3,192,124,7,128,62,7, - 128,63,15,0,15,252,0,3,240,0,19,27,81,21,1,0, - 14,7,0,15,7,128,31,15,128,31,15,128,30,15,0,14, - 7,0,0,0,0,0,0,0,0,0,0,1,248,0,7,254, - 0,30,31,128,60,15,128,124,7,192,120,7,192,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,192,124, - 3,192,124,7,128,62,7,128,63,15,0,15,252,0,3,240, - 0,15,15,30,17,1,3,3,0,7,0,7,0,7,0,6, - 0,0,0,127,254,255,252,0,0,0,0,3,0,7,0,7, - 0,7,0,6,0,19,20,60,21,1,255,0,0,32,1,248, - 224,7,255,192,30,31,128,60,15,192,60,31,192,120,31,224, - 120,59,224,248,115,224,248,227,224,249,227,224,249,195,224,251, - 131,192,127,3,192,126,7,128,62,7,128,63,15,0,63,252, - 0,99,240,0,192,0,0,22,30,90,23,1,0,3,128,0, - 7,192,0,15,192,0,3,224,0,1,224,0,0,240,0,0, - 240,0,0,120,0,0,56,0,0,24,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,30,90,23,1,0,0,30,0, - 0,31,0,0,63,128,0,62,0,0,124,0,0,120,0,0, - 112,0,0,224,0,0,224,0,1,192,0,0,0,0,0,0, - 0,14,0,224,254,31,224,126,7,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,7,224,63,31,252,31,251, - 252,31,243,240,15,193,192,22,29,87,23,1,0,0,112,0, - 0,248,0,1,248,0,3,252,0,3,254,0,7,158,0,15, - 7,0,14,3,128,8,1,0,0,0,0,0,0,0,14,0, - 224,254,31,224,126,7,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,7,224,63,31,252,31,251,252,31,243, - 240,15,193,192,22,27,81,23,1,0,7,3,128,15,7,128, - 31,15,128,31,15,128,31,15,128,14,7,0,0,0,0,0, - 0,0,0,0,0,14,0,224,254,31,224,126,7,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,62,7,224,63, - 31,252,31,251,252,31,243,240,15,193,192,21,39,117,20,255, - 247,0,7,0,0,15,192,0,15,128,0,31,0,0,31,0, - 0,62,0,0,60,0,0,120,0,0,112,0,0,96,0,0, - 0,0,0,0,0,127,193,248,63,129,248,31,0,224,15,128, - 224,15,129,192,7,193,192,7,193,128,7,195,128,3,227,128, - 3,231,0,1,247,0,1,246,0,0,254,0,0,254,0,0, - 252,0,0,124,0,0,120,0,0,56,0,0,56,0,0,112, - 0,0,112,0,0,224,0,33,224,0,127,192,0,127,128,0, - 255,0,0,124,0,0,20,39,117,22,1,247,6,0,0,254, - 0,0,254,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,31,0,62,127,128,62,255,192,63,135,224,63,3,224,62, - 1,240,62,0,240,62,0,240,62,0,240,62,0,240,62,0, - 240,62,0,224,62,0,224,62,1,192,63,195,192,63,255,128, - 62,255,0,62,60,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,255,192,0,255,192, - 0,21,36,108,20,255,247,3,129,192,7,195,224,7,195,224, - 7,195,224,7,131,192,7,3,128,0,0,0,0,0,0,0, - 0,0,127,193,248,63,129,248,31,0,224,15,128,224,15,129, - 192,7,193,192,7,193,128,7,195,128,3,227,128,3,231,0, - 1,247,0,1,246,0,0,254,0,0,254,0,0,252,0,0, - 124,0,0,120,0,0,56,0,0,56,0,0,112,0,0,112, - 0,0,224,0,33,224,0,127,192,0,127,128,0,255,0,0, - 124,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=18 h=38 x= 3 y=14 dx=21 dy= 0 ascent=31 len=114 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25n[985] U8G_FONT_SECTION("u8g_font_gdb25n") = { - 0,61,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,0,192,3,192,3,192,99,140,123, - 158,125,191,127,252,15,224,7,224,63,252,253,190,249,158,51, - 142,3,192,3,192,3,0,15,14,28,17,1,4,1,128,3, - 128,3,128,3,128,3,128,3,128,127,254,255,252,3,128,3, - 128,3,128,3,128,3,128,3,0,8,12,12,11,2,249,30, - 127,255,127,31,31,30,30,60,56,112,96,12,2,4,14,1, - 9,127,240,255,240,6,6,6,11,3,255,56,124,252,252,252, - 120,17,38,114,19,1,249,0,1,128,0,7,128,0,7,128, - 0,15,0,0,15,0,0,15,0,0,30,0,0,30,0,0, - 28,0,0,60,0,0,60,0,0,120,0,0,120,0,0,120, - 0,0,240,0,0,240,0,0,224,0,1,224,0,1,224,0, - 3,192,0,3,192,0,3,192,0,7,128,0,7,128,0,7, - 0,0,15,0,0,15,0,0,30,0,0,30,0,0,30,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,120,0,0, - 240,0,0,240,0,0,192,0,0,18,24,72,20,1,0,3, - 240,0,7,252,0,30,62,0,28,31,0,60,15,0,120,15, - 128,120,15,128,120,7,128,248,7,192,248,7,192,248,7,192, - 248,7,192,248,7,192,248,7,192,248,7,192,248,7,192,120, - 7,128,124,7,128,124,15,128,60,15,0,62,14,0,31,30, - 0,15,248,0,3,224,0,16,24,48,20,2,0,0,96,3, - 224,31,224,255,224,99,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,7,240,127,255,127,255,16,24,48, - 20,2,0,3,248,15,252,60,62,124,63,120,31,248,31,112, - 31,0,31,0,62,0,60,0,124,0,120,0,240,1,224,3, - 224,3,192,7,128,15,1,30,3,60,3,120,3,127,255,255, - 255,255,255,16,24,48,20,2,0,7,240,31,248,60,124,120, - 62,248,62,248,62,64,62,0,60,0,124,0,240,7,240,7, - 252,0,254,0,62,0,63,0,31,0,31,0,31,0,31,0, - 30,192,62,240,124,127,248,15,192,17,24,72,20,1,0,0, - 12,0,0,124,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,188,0,7,188,0,7,60,0,14,60,0,14,60,0, - 28,60,0,56,60,0,56,60,0,112,60,0,255,255,128,255, - 255,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,3,255,128,3,255,128,17,24,72,20,1,0,31,255,0, - 31,255,128,31,254,0,31,252,0,24,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,63,240,0,63,252,0,48,126, - 0,96,31,0,0,31,0,0,15,128,0,15,128,0,15,128, - 0,15,128,0,15,128,0,31,0,96,31,0,248,126,0,63, - 252,0,7,224,0,17,24,72,20,2,0,0,14,0,0,126, - 0,1,240,0,7,192,0,15,128,0,30,0,0,62,0,0, - 60,0,0,124,0,0,121,248,0,127,254,0,254,63,0,252, - 31,0,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,124,15,128,124,15,0,60,31,0,31,30,0,15,252,0, - 3,240,0,17,24,72,20,2,0,127,255,128,127,255,0,255, - 255,0,255,255,0,224,6,0,192,14,0,128,12,0,0,28, - 0,0,28,0,0,56,0,0,56,0,0,112,0,0,112,0, - 0,240,0,0,224,0,1,224,0,1,192,0,3,192,0,3, - 192,0,7,128,0,7,128,0,15,128,0,31,0,0,28,0, - 0,17,24,72,21,2,0,3,240,0,15,252,0,28,62,0, - 24,31,0,56,31,0,56,31,0,56,31,0,60,62,0,63, - 60,0,31,248,0,15,240,0,7,252,0,14,254,0,62,63, - 0,124,31,128,120,31,128,248,15,128,248,15,128,248,15,128, - 248,15,0,124,31,0,126,62,0,63,252,0,7,224,0,17, - 25,75,20,2,255,3,240,0,15,252,0,30,62,0,60,30, - 0,120,31,0,120,31,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,128,126,63,128,63,255,128,15, - 207,0,0,15,0,0,31,0,0,30,0,0,62,0,0,124, - 0,0,248,0,1,240,0,15,192,0,63,0,0,56,0,0, - 6,19,19,11,3,255,56,124,252,252,252,120,0,0,0,0, - 0,0,0,56,124,252,252,252,120}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--40-400-72-72-P-200-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=34 h=41 x= 3 y=20 dx=35 dy= 0 ascent=33 len=136 - Font Bounding box w=61 h=57 x=-20 y=-14 - Calculated Min Values x=-6 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb25r[6779] U8G_FONT_SECTION("u8g_font_gdb25r") = { - 0,61,57,236,242,25,7,167,18,92,32,127,247,33,247,31, - 247,0,0,0,10,0,0,6,30,30,12,3,255,12,60,252, - 252,252,124,120,120,120,120,120,120,120,120,120,120,120,120,56, - 48,48,32,0,0,56,124,252,252,252,120,13,13,26,19,3, - 16,24,56,248,248,248,248,248,248,248,248,248,248,248,240,112, - 240,112,112,112,112,112,112,112,112,112,112,19,23,69,20,1, - 2,0,97,192,0,227,128,0,227,128,0,195,128,1,195,0, - 1,199,0,31,255,224,31,255,224,35,142,0,3,142,0,3, - 14,0,7,12,0,7,28,0,7,28,0,127,255,128,255,255, - 128,14,56,0,12,56,0,28,48,0,28,112,0,24,112,0, - 24,112,0,32,224,0,17,30,90,21,2,253,0,192,0,1, - 192,0,1,192,0,3,240,0,31,254,0,63,255,128,113,223, - 0,225,207,0,225,199,0,225,194,0,241,192,0,255,192,0, - 127,192,0,63,248,0,15,252,0,3,254,0,1,255,0,1, - 223,128,1,207,128,193,199,128,193,199,128,225,199,128,241,207, - 0,253,207,0,255,254,0,63,252,0,7,224,0,1,192,0, - 1,192,0,1,128,0,26,25,100,28,1,0,0,0,3,0, - 15,128,15,0,63,192,14,0,113,224,28,0,112,224,56,0, - 224,112,120,0,224,112,112,0,224,112,224,0,224,113,192,0, - 224,115,192,0,96,103,128,0,112,103,0,0,48,206,62,0, - 31,28,99,0,0,60,195,128,0,56,193,128,0,113,193,192, - 0,225,193,192,1,225,193,192,1,193,193,192,3,129,193,192, - 7,0,225,128,15,0,227,128,14,0,127,0,28,0,62,0, - 27,28,112,28,1,0,0,126,0,0,1,255,128,0,3,143, - 128,0,7,7,192,0,7,7,192,0,15,7,192,0,15,7, - 192,0,15,15,128,0,15,159,0,0,15,191,0,0,7,254, - 0,0,7,248,0,0,7,240,0,0,15,240,255,224,31,241, - 255,192,63,248,61,128,125,252,60,0,124,254,28,0,248,254, - 28,0,248,127,28,0,248,63,184,0,248,31,248,0,248,15, - 240,0,252,7,248,0,124,3,252,0,63,7,255,192,31,254, - 127,128,7,240,28,0,5,13,13,11,3,16,24,248,248,248, - 248,248,248,112,112,112,112,112,112,11,37,74,13,2,250,0, - 64,1,224,3,192,7,128,15,0,15,0,30,0,30,0,60, - 0,60,0,124,0,124,0,120,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,120, - 0,124,0,124,0,124,0,60,0,62,0,30,0,31,0,15, - 0,7,128,3,192,1,224,0,64,11,37,74,13,0,250,64, - 0,240,0,120,0,60,0,30,0,31,0,15,0,15,128,7, - 128,7,192,7,192,7,192,7,192,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,192,7, - 192,7,192,7,192,7,128,15,128,15,0,15,0,30,0,30, - 0,60,0,120,0,240,0,64,0,16,16,32,18,1,14,0, - 192,3,192,3,192,99,140,123,158,125,191,127,252,15,224,7, - 224,63,252,253,190,249,158,51,142,3,192,3,192,3,0,15, - 14,28,17,1,4,1,128,3,128,3,128,3,128,3,128,3, - 128,127,254,255,252,3,128,3,128,3,128,3,128,3,128,3, - 0,8,12,12,11,2,249,30,127,255,127,31,31,30,30,60, - 56,112,96,12,2,4,14,1,9,127,240,255,240,6,6,6, - 11,3,255,56,124,252,252,252,120,17,38,114,19,1,249,0, - 1,128,0,7,128,0,7,128,0,15,0,0,15,0,0,15, - 0,0,30,0,0,30,0,0,28,0,0,60,0,0,60,0, - 0,120,0,0,120,0,0,120,0,0,240,0,0,240,0,0, - 224,0,1,224,0,1,224,0,3,192,0,3,192,0,3,192, - 0,7,128,0,7,128,0,7,0,0,15,0,0,15,0,0, - 30,0,0,30,0,0,30,0,0,60,0,0,60,0,0,56, - 0,0,120,0,0,120,0,0,240,0,0,240,0,0,192,0, - 0,18,24,72,20,1,0,3,240,0,7,252,0,30,62,0, - 28,31,0,60,15,0,120,15,128,120,15,128,120,7,128,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,248,7,192,120,7,128,124,7,128,124,15,128, - 60,15,0,62,14,0,31,30,0,15,248,0,3,224,0,16, - 24,48,20,2,0,0,96,3,224,31,224,255,224,99,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,3, - 224,3,224,3,224,3,224,3,224,3,224,3,224,3,224,7, - 240,127,255,127,255,16,24,48,20,2,0,3,248,15,252,60, - 62,124,63,120,31,248,31,112,31,0,31,0,62,0,60,0, - 124,0,120,0,240,1,224,3,224,3,192,7,128,15,1,30, - 3,60,3,120,3,127,255,255,255,255,255,16,24,48,20,2, - 0,7,240,31,248,60,124,120,62,248,62,248,62,64,62,0, - 60,0,124,0,240,7,240,7,252,0,254,0,62,0,63,0, - 31,0,31,0,31,0,31,0,30,192,62,240,124,127,248,15, - 192,17,24,72,20,1,0,0,12,0,0,124,0,0,124,0, - 0,252,0,1,252,0,1,252,0,3,188,0,7,188,0,7, - 60,0,14,60,0,14,60,0,28,60,0,56,60,0,56,60, - 0,112,60,0,255,255,128,255,255,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,3,255,128,3,255,128,17, - 24,72,20,1,0,31,255,0,31,255,128,31,254,0,31,252, - 0,24,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 63,240,0,63,252,0,48,126,0,96,31,0,0,31,0,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,31, - 0,96,31,0,248,126,0,63,252,0,7,224,0,17,24,72, - 20,2,0,0,14,0,0,126,0,1,240,0,7,192,0,15, - 128,0,30,0,0,62,0,0,60,0,0,124,0,0,121,248, - 0,127,254,0,254,63,0,252,31,0,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,124,15,128,124,15,0,60, - 31,0,31,30,0,15,252,0,3,240,0,17,24,72,20,2, - 0,127,255,128,127,255,0,255,255,0,255,255,0,224,6,0, - 192,14,0,128,12,0,0,28,0,0,28,0,0,56,0,0, - 56,0,0,112,0,0,112,0,0,240,0,0,224,0,1,224, - 0,1,192,0,3,192,0,3,192,0,7,128,0,7,128,0, - 15,128,0,31,0,0,28,0,0,17,24,72,21,2,0,3, - 240,0,15,252,0,28,62,0,24,31,0,56,31,0,56,31, - 0,56,31,0,60,62,0,63,60,0,31,248,0,15,240,0, - 7,252,0,14,254,0,62,63,0,124,31,128,120,31,128,248, - 15,128,248,15,128,248,15,128,248,15,0,124,31,0,126,62, - 0,63,252,0,7,224,0,17,25,75,20,2,255,3,240,0, - 15,252,0,30,62,0,60,30,0,120,31,0,120,31,0,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 128,126,63,128,63,255,128,15,207,0,0,15,0,0,31,0, - 0,30,0,0,62,0,0,124,0,0,248,0,1,240,0,15, - 192,0,63,0,0,56,0,0,6,19,19,11,3,255,56,124, - 252,252,252,120,0,0,0,0,0,0,0,56,124,252,252,252, - 120,8,26,26,11,2,249,8,62,126,126,126,124,0,0,0, - 0,0,0,0,0,30,127,255,127,31,31,30,30,60,56,112, - 96,16,13,26,18,1,5,0,3,0,31,0,255,3,252,31, - 224,127,128,252,0,254,0,127,192,15,248,1,255,0,63,0, - 6,16,8,16,18,1,7,127,255,255,255,0,0,0,0,0, - 0,0,0,127,255,255,255,16,13,26,18,1,5,112,0,252, - 0,255,128,31,240,3,254,0,127,0,63,0,255,7,248,63, - 224,127,0,248,0,192,0,15,30,60,18,1,255,7,240,31, - 248,60,124,120,126,248,62,248,62,248,62,224,62,0,62,0, - 124,0,124,0,248,0,240,1,240,1,224,1,192,3,192,3, - 128,3,128,3,128,3,128,0,0,0,0,0,0,3,128,7, - 192,15,192,15,192,15,192,7,128,31,34,136,35,2,248,0, - 7,248,0,0,63,255,0,0,255,255,192,1,248,15,224,3, - 192,1,240,7,128,0,248,15,0,0,120,30,0,0,60,60, - 3,195,60,56,15,238,28,120,30,126,30,120,60,62,14,112, - 120,62,14,240,120,62,14,240,248,62,14,240,248,62,14,240, - 248,62,14,240,248,62,14,240,248,62,12,240,248,62,28,240, - 252,62,28,248,124,126,56,120,127,255,240,120,127,191,224,124, - 63,159,192,60,30,15,0,62,0,0,0,31,0,0,0,31, - 128,0,48,15,224,0,240,7,248,7,224,1,255,255,192,0, - 127,255,0,0,15,248,0,25,25,100,25,0,0,0,4,0, - 0,0,30,0,0,0,62,0,0,0,126,0,0,0,127,0, - 0,0,111,0,0,0,239,128,0,0,239,128,0,0,199,128, - 0,1,199,192,0,1,199,192,0,1,131,192,0,3,131,224, - 0,3,131,224,0,3,255,224,0,7,255,240,0,7,0,240, - 0,6,0,248,0,14,0,248,0,14,0,120,0,12,0,124, - 0,28,0,124,0,28,0,124,0,255,129,255,0,255,129,255, - 128,22,25,75,24,0,0,15,254,0,255,255,128,223,15,224, - 31,3,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,224,31,15,128,31,255,0,31,255,224,31,3, - 240,31,1,248,31,0,248,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,248,31,3,240,127,255,224,255, - 255,0,20,25,75,22,1,0,0,127,128,3,255,240,7,135, - 224,15,1,224,30,0,192,60,0,64,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,252,0,0,124,0,0,124,0, - 0,126,0,32,63,0,112,31,193,224,15,255,192,7,255,0, - 1,252,0,22,25,75,25,1,0,15,252,0,255,255,128,255, - 15,192,31,3,224,31,1,240,31,1,248,31,0,248,31,0, - 248,31,0,124,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,120,31,0,248,31, - 0,248,31,1,240,31,1,240,31,3,224,31,7,192,127,255, - 128,255,252,0,19,25,75,21,1,0,255,255,192,255,255,192, - 62,1,192,30,1,192,30,1,128,30,1,128,30,0,128,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,0,31,254, - 0,30,6,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,96,30,0,96,30,0,224,63,1,224,255, - 255,224,255,255,192,18,25,75,20,1,0,255,255,192,255,255, - 192,62,1,192,30,1,192,30,1,192,30,0,192,30,0,128, - 30,0,0,30,0,0,30,0,0,30,0,0,31,254,0,31, - 254,0,30,4,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,62,0,0, - 255,192,0,255,224,0,22,25,75,24,1,0,0,127,128,1, - 255,240,7,131,240,15,1,224,30,0,224,60,0,64,60,0, - 0,124,0,0,120,0,0,248,0,0,248,0,0,248,0,0, - 248,15,252,248,15,252,248,1,240,248,1,240,252,1,240,124, - 1,240,124,1,240,126,1,240,63,1,240,31,129,240,15,255, - 192,7,255,128,0,252,0,25,25,100,27,1,0,255,227,255, - 128,127,227,255,128,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,255,252,0,31,255,252, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,31,0,124,0,31,0,124, - 0,31,0,124,0,31,0,124,0,127,195,255,128,255,227,255, - 128,11,25,50,13,1,0,255,224,127,224,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,127,192,255,224,18,33,99,13,251,248,3, - 255,192,1,255,128,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,60,0,0,60,0, - 0,56,0,16,120,0,56,112,0,127,224,0,255,128,0,62, - 0,0,24,25,75,25,0,0,255,227,254,127,193,254,31,0, - 240,31,1,224,31,3,192,31,7,128,31,15,0,31,14,0, - 31,28,0,31,60,0,31,120,0,31,240,0,31,248,0,31, - 124,0,31,60,0,31,62,0,31,31,0,31,15,128,31,7, - 192,31,3,224,31,3,240,31,1,248,31,0,255,127,224,127, - 255,224,60,20,25,75,20,0,0,255,224,0,127,224,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,48,31,0,96,31,0,96,31,128,224,127,255, - 224,255,255,224,31,25,100,34,1,0,255,0,1,254,127,0, - 1,254,31,128,1,240,31,128,3,240,31,192,3,240,31,192, - 7,240,31,192,7,240,31,224,14,240,29,224,14,240,29,240, - 30,240,28,240,28,240,28,248,28,240,28,248,56,240,28,124, - 56,248,28,124,112,248,28,60,112,248,28,62,224,248,28,30, - 224,248,28,31,224,248,28,31,192,248,28,15,192,248,28,15, - 128,248,28,7,128,248,255,7,7,254,255,3,7,254,25,25, - 100,27,1,0,254,0,255,128,255,0,127,0,31,0,28,0, - 31,128,28,0,31,192,28,0,31,192,28,0,31,224,28,0, - 29,240,28,0,29,248,28,0,28,248,28,0,28,124,28,0, - 28,126,28,0,28,62,28,0,28,31,28,0,28,15,156,0, - 28,15,156,0,28,7,220,0,28,3,252,0,28,3,252,0, - 28,1,252,0,28,0,252,0,28,0,252,0,28,0,124,0, - 127,0,60,0,255,128,12,0,23,25,75,25,1,0,0,126, - 0,3,255,192,7,135,224,14,1,240,30,0,248,60,0,248, - 60,0,124,124,0,124,120,0,126,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,252,0, - 60,124,0,124,124,0,120,62,0,120,62,0,240,31,1,224, - 15,195,192,7,255,0,0,252,0,21,25,75,23,1,0,15, - 254,0,255,255,192,255,7,224,31,3,240,31,1,248,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,1,240, - 31,1,240,31,135,224,31,127,128,31,62,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,127,224,0,255,224,0,27,31,124,25,1,250, - 0,126,0,0,3,255,192,0,7,135,224,0,14,1,240,0, - 30,0,248,0,60,0,248,0,60,0,124,0,124,0,124,0, - 120,0,124,0,248,0,62,0,248,0,62,0,248,0,62,0, - 248,0,62,0,248,0,62,0,248,0,62,0,248,0,62,0, - 252,0,60,0,124,0,124,0,124,0,120,0,62,0,120,0, - 62,0,240,0,31,1,224,0,15,195,192,0,7,255,128,0, - 0,255,0,0,0,7,224,0,0,1,248,96,0,0,255,224, - 0,0,127,192,0,0,31,128,0,0,7,0,23,25,75,24, - 1,0,15,252,0,255,255,128,255,15,192,31,7,192,31,3, - 224,31,3,224,31,3,224,31,3,224,31,3,224,31,7,192, - 31,7,128,31,255,0,31,254,0,31,124,0,31,30,0,31, - 15,0,31,15,0,31,7,128,31,7,192,31,3,224,31,3, - 224,31,1,240,31,1,254,127,192,254,255,224,248,17,25,75, - 21,2,0,3,252,0,31,255,0,60,63,0,112,14,0,240, - 6,0,240,0,0,248,0,0,252,0,0,254,0,0,127,128, - 0,63,224,0,31,248,0,7,254,0,1,255,0,0,127,0, - 0,31,128,0,15,128,0,7,128,192,7,128,192,7,128,224, - 7,0,240,14,0,252,28,0,255,248,0,31,224,0,23,25, - 75,23,0,0,127,255,252,127,255,254,96,124,14,224,124,12, - 192,124,12,192,124,12,192,124,12,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,0,124,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,0,124,0,3,255,128,3,255,128,25, - 25,100,27,1,0,255,224,255,128,127,224,255,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,28, - 0,31,0,28,0,31,0,28,0,31,0,28,0,31,0,24, - 0,15,128,56,0,15,128,56,0,7,192,112,0,3,224,224, - 0,1,255,192,0,0,127,0,0,26,25,100,27,0,0,255, - 192,63,192,127,192,63,192,31,0,14,0,31,0,14,0,15, - 128,28,0,15,128,28,0,15,128,28,0,7,192,56,0,7, - 192,56,0,3,224,48,0,3,224,112,0,3,224,112,0,1, - 240,224,0,1,240,224,0,0,240,224,0,0,249,192,0,0, - 249,192,0,0,125,192,0,0,127,128,0,0,63,128,0,0, - 63,0,0,0,63,0,0,0,31,0,0,0,30,0,0,0, - 8,0,0,34,25,125,34,0,0,255,192,224,127,192,127,128, - 224,63,192,30,0,224,14,0,31,1,240,14,0,31,1,240, - 12,0,15,1,248,28,0,15,3,248,28,0,15,131,248,28, - 0,15,131,252,28,0,7,135,60,24,0,7,135,60,56,0, - 7,134,62,56,0,7,206,30,56,0,3,206,31,56,0,3, - 204,15,48,0,3,220,15,112,0,3,252,15,240,0,3,248, - 7,240,0,1,248,7,224,0,1,248,7,224,0,1,240,3, - 224,0,1,240,3,224,0,0,240,1,224,0,0,224,1,192, - 0,0,192,1,128,0,25,25,100,25,0,0,127,225,255,0, - 127,225,255,0,31,128,124,0,15,128,112,0,15,192,240,0, - 7,224,224,0,3,225,192,0,1,243,192,0,1,251,128,0, - 0,255,0,0,0,127,0,0,0,126,0,0,0,62,0,0, - 0,127,0,0,0,127,128,0,0,239,192,0,1,231,192,0, - 1,195,224,0,3,131,240,0,7,129,240,0,7,0,248,0, - 14,0,252,0,30,0,254,0,255,131,255,128,255,131,255,128, - 24,25,75,25,0,0,126,0,255,255,0,255,31,0,56,15, - 128,56,15,192,112,7,192,112,3,224,224,3,224,224,1,241, - 192,1,241,192,0,251,128,0,251,128,0,127,0,0,127,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,1,255,192,1,255, - 192,19,25,75,22,1,0,63,255,224,63,255,224,120,7,192, - 112,15,192,96,15,128,96,31,128,32,63,0,0,62,0,0, - 126,0,0,124,0,0,252,0,1,248,0,1,240,0,3,240, - 0,3,224,0,7,224,0,15,192,0,15,128,0,31,128,32, - 31,0,96,63,0,96,126,0,96,124,0,224,255,255,224,255, - 255,224,11,37,74,14,2,250,255,224,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,255,224, - 255,224,17,38,114,19,1,249,192,0,0,240,0,0,112,0, - 0,112,0,0,120,0,0,56,0,0,60,0,0,60,0,0, - 28,0,0,30,0,0,30,0,0,14,0,0,15,0,0,7, - 0,0,7,128,0,7,128,0,3,128,0,3,192,0,3,192, - 0,1,192,0,1,224,0,0,224,0,0,224,0,0,240,0, - 0,112,0,0,120,0,0,120,0,0,56,0,0,60,0,0, - 60,0,0,28,0,0,30,0,0,14,0,0,15,0,0,15, - 0,0,7,0,0,7,128,0,1,128,10,37,74,13,1,250, - 255,192,255,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,255,192,255,192,16,19,38,20,2,11, - 0,128,3,128,3,192,3,192,7,224,6,224,14,224,12,112, - 12,112,28,120,24,56,24,56,48,28,48,28,112,28,96,14, - 96,14,224,7,128,6,17,2,6,19,1,251,127,255,128,255, - 255,128,9,10,20,13,0,20,56,0,248,0,252,0,124,0, - 62,0,30,0,15,0,7,0,3,128,1,0,19,18,54,20, - 1,0,1,248,0,15,254,0,62,63,0,124,31,0,124,31, - 0,112,31,0,0,31,0,1,255,0,15,255,0,63,31,0, - 124,31,0,120,31,0,248,31,0,248,31,32,248,127,224,255, - 223,192,127,159,128,62,14,0,20,30,90,21,0,0,6,0, - 0,254,0,0,254,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,62, - 0,0,62,31,0,62,127,192,63,255,192,63,199,224,63,1, - 224,62,1,240,62,0,240,62,0,240,62,0,240,62,0,240, - 62,0,240,62,0,224,62,1,224,62,1,192,63,131,128,63, - 255,0,15,252,0,1,240,0,16,18,36,18,1,0,1,252, - 7,255,31,31,60,15,60,7,120,6,120,0,248,0,248,0, - 248,0,248,0,248,0,124,0,126,3,63,7,63,254,15,252, - 3,240,21,30,90,22,1,0,0,1,192,0,63,192,0,63, - 192,0,7,192,0,7,192,0,7,192,0,7,192,0,7,192, - 0,7,192,0,7,192,0,7,192,0,7,192,3,247,192,15, - 255,192,30,31,192,60,15,192,124,7,192,120,7,192,248,7, - 192,248,7,192,248,7,192,248,7,192,248,7,192,252,7,192, - 252,15,192,126,31,192,127,255,248,63,247,248,31,231,224,7, - 131,128,17,18,54,19,1,0,1,240,0,15,252,0,30,62, - 0,60,31,0,120,15,0,120,15,128,248,15,128,255,255,128, - 255,254,0,248,0,0,248,0,0,248,0,0,252,0,0,126, - 1,128,127,7,0,63,254,0,31,252,0,7,240,0,17,29, - 87,14,0,0,0,63,0,0,255,128,3,143,0,7,134,0, - 7,0,0,15,0,0,15,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,252,0,255,248,0,31,16,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,127,240,0,255,240,0,21,27,81,22,0, - 247,1,248,24,15,255,248,30,31,240,60,15,128,124,7,192, - 124,7,192,124,7,192,124,7,192,62,7,128,63,15,0,31, - 254,0,3,248,0,7,128,0,15,128,0,31,192,0,31,255, - 0,31,255,224,7,255,240,30,255,248,124,3,248,120,0,248, - 248,0,248,248,0,240,252,1,224,127,3,192,31,255,0,3, - 248,0,22,30,90,23,1,0,6,0,0,254,0,0,254,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,15,128,62, - 63,192,62,127,224,62,255,224,63,199,224,63,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,3,224, - 62,3,224,62,3,224,62,3,224,62,3,224,255,143,248,255, - 223,252,10,27,54,12,1,0,30,0,63,0,63,0,63,0, - 30,0,0,0,0,0,0,0,0,0,14,0,254,0,254,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,15,36, - 72,11,250,247,0,60,0,126,0,126,0,126,0,60,0,0, - 0,0,0,0,0,0,0,28,3,252,3,252,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124, - 0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,120, - 0,120,32,240,120,224,255,192,255,128,60,0,21,30,90,22, - 1,0,6,0,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,15,240,62,7,240,62,7,128,62, - 15,0,62,62,0,62,120,0,62,240,0,63,224,0,63,240, - 0,62,248,0,62,124,0,62,62,0,62,31,0,62,31,128, - 62,15,192,62,7,224,255,131,248,255,129,224,10,30,60,12, - 1,0,6,0,254,0,254,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,128,255,192,34,18, - 90,34,0,0,6,15,192,248,0,255,63,227,252,0,255,127, - 255,254,0,31,227,252,126,0,31,129,248,62,0,31,1,240, - 62,0,31,1,240,62,0,31,1,240,62,0,31,1,240,62, - 0,31,1,240,62,0,31,1,240,62,0,31,1,240,62,0, - 31,1,240,62,0,31,1,240,62,0,31,1,240,62,0,31, - 1,240,62,0,127,199,252,255,128,255,199,252,255,192,22,18, - 54,23,1,0,14,15,128,254,63,192,254,255,224,63,255,224, - 63,199,224,63,3,224,62,3,224,62,3,224,62,3,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,255,143,248,255,223,252,19,18,54,21,1,0, - 1,248,0,7,254,0,30,31,128,60,15,128,124,7,192,120, - 7,192,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,192,124,3,192,124,7,128,62,7,128,63,15,0, - 15,252,0,3,240,0,20,27,81,22,1,247,14,31,0,254, - 127,128,254,255,192,63,135,224,63,3,224,62,1,240,62,0, - 240,62,0,240,62,0,240,62,0,240,62,0,240,62,0,224, - 62,0,224,62,1,192,63,195,192,63,255,128,62,255,0,62, - 60,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,255,192,0,255,192,0,21,27,81, - 22,1,247,1,240,64,7,252,224,14,31,192,60,15,192,60, - 7,192,120,7,192,248,7,192,248,7,192,248,7,192,248,7, - 192,248,7,192,252,7,192,252,15,192,126,31,192,127,255,192, - 63,247,192,31,231,192,7,135,192,0,7,192,0,7,192,0, - 7,192,0,7,192,0,7,192,0,7,192,0,7,192,0,63, - 240,0,63,248,16,18,36,18,1,0,14,30,254,127,254,255, - 63,255,63,207,31,135,31,6,30,6,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,62,0,255,192,255,224,14,18, - 36,17,2,0,15,192,63,248,120,248,240,112,240,48,248,48, - 254,0,127,128,63,224,15,248,3,248,192,252,192,124,224,60, - 224,60,248,120,255,240,63,192,15,25,50,15,0,0,3,0, - 7,0,15,0,31,0,31,0,31,0,31,0,127,254,255,252, - 31,8,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,140,31,254,31,248,15,224,7,128, - 22,18,54,23,1,0,14,0,224,254,31,224,126,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,62,3,224,62,3,224,62,3,224,62,3,224,62,7,224, - 63,31,252,31,251,252,31,243,240,15,193,192,20,18,54,20, - 0,0,255,131,240,127,3,240,62,1,192,31,1,192,31,1, - 128,15,3,128,15,131,0,15,135,0,7,199,0,7,206,0, - 3,238,0,3,236,0,1,252,0,1,252,0,0,248,0,0, - 248,0,0,240,0,0,96,0,28,18,72,29,0,0,255,131, - 3,240,127,3,129,240,62,3,128,192,30,7,193,192,31,7, - 193,192,31,15,193,192,15,15,227,128,15,157,227,128,15,157, - 243,128,7,153,243,0,7,248,255,0,7,240,255,0,3,240, - 126,0,3,240,126,0,3,224,62,0,1,224,60,0,1,192, - 28,0,1,128,24,0,21,18,54,21,0,0,255,199,240,255, - 199,240,63,131,192,15,131,128,15,199,0,7,238,0,3,252, - 0,1,248,0,1,248,0,0,252,0,1,254,0,3,190,0, - 7,31,0,6,31,128,12,15,192,28,7,224,127,31,248,255, - 31,248,21,27,81,20,255,247,127,193,248,63,129,248,31,0, - 224,15,128,224,15,129,192,7,193,192,7,193,128,7,195,128, - 3,227,128,3,231,0,1,247,0,1,246,0,0,254,0,0, - 254,0,0,252,0,0,124,0,0,120,0,0,56,0,0,56, - 0,0,112,0,0,112,0,0,224,0,33,224,0,127,192,0, - 127,128,0,255,0,0,124,0,0,16,18,36,19,1,0,63, - 255,63,255,112,62,112,126,96,124,96,248,1,248,1,240,3, - 224,7,224,7,192,15,128,31,129,31,3,62,3,124,3,127, - 255,255,255,11,37,74,14,2,250,0,96,1,224,3,192,7, - 128,15,0,31,0,31,0,31,0,31,0,31,0,31,128,15, - 128,15,128,15,128,15,128,15,0,31,0,62,0,252,0,255, - 0,31,0,15,128,15,128,15,128,15,128,15,128,31,128,31, - 0,31,0,31,0,31,0,31,0,15,0,15,128,7,192,1, - 224,0,96,3,41,41,9,3,248,96,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,192,11,37,74,14,1,250,192,0,240,0,124,0,62,0, - 30,0,31,0,31,0,31,0,31,0,31,0,63,0,62,0, - 62,0,62,0,62,0,62,0,31,0,31,224,7,224,15,128, - 31,0,30,0,62,0,62,0,62,0,62,0,63,0,31,0, - 31,0,31,0,31,0,31,0,30,0,60,0,120,0,240,0, - 192,0,18,6,18,20,1,9,15,0,192,31,192,128,63,225, - 0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 5 y=27 dx=42 dy= 0 ascent=42 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30[19508] U8G_FONT_SECTION("u8g_font_gdb30") = { - 0,74,69,232,239,30,10,50,24,78,32,255,245,42,243,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,12,0,0,8,35, - 35,15,3,243,62,127,255,255,255,254,124,0,0,12,28,28, - 28,60,60,60,60,60,62,62,62,62,62,62,62,62,126,126, - 126,126,126,127,126,120,96,21,30,90,24,2,255,0,24,0, - 0,56,0,0,56,0,0,56,0,0,127,192,3,255,240,7, - 255,248,31,187,240,62,56,240,60,56,96,124,56,32,120,56, - 0,248,56,0,248,56,0,248,56,0,248,56,0,248,56,0, - 248,56,0,252,56,0,124,56,16,126,56,56,63,56,240,31, - 251,224,15,255,192,7,255,128,1,252,0,0,56,0,0,56, - 0,0,56,0,0,48,0,22,29,87,24,1,0,0,31,192, - 0,255,248,1,225,248,3,192,248,7,192,120,7,128,112,15, - 128,48,15,128,48,15,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,255,0,255,255,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,16,31,0,12,31, - 0,24,30,0,56,62,0,120,63,255,248,127,255,248,255,255, - 248,128,15,240,20,20,60,24,2,4,64,0,32,224,0,96, - 113,248,240,63,255,192,31,15,128,30,7,128,28,3,128,56, - 1,192,56,1,192,56,1,192,56,1,192,56,1,192,60,3, - 192,30,7,128,31,15,128,31,255,128,57,249,192,112,0,224, - 224,0,112,64,0,32,27,28,112,24,254,0,127,0,127,224, - 255,128,127,224,127,192,15,0,15,224,30,0,15,224,30,0, - 7,240,60,0,3,240,60,0,3,248,56,0,1,252,120,0, - 0,252,112,0,0,254,240,0,0,126,224,0,0,127,224,0, - 0,63,192,0,0,63,192,0,0,31,192,0,0,31,128,0, - 15,255,255,0,15,255,254,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,63,192,0,1,255,248,0,1,255,248,0,4,49,49,11, - 4,246,48,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,224,0,0,0,0,0,112,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,192,18,34,102,23,3,0,3,252,0,15,255,0,30, - 31,0,60,15,0,124,7,0,124,6,0,126,2,0,127,128, - 0,63,224,0,63,240,0,63,252,0,127,254,0,123,255,0, - 240,255,128,240,63,128,240,31,192,240,7,192,248,7,192,124, - 3,192,127,3,192,63,195,192,31,243,128,15,255,128,7,255, - 0,1,255,0,0,127,128,96,63,128,96,31,128,112,15,128, - 112,15,128,120,15,0,126,30,0,127,252,0,15,240,0,17, - 7,21,19,1,26,56,7,0,124,15,128,252,31,128,252,31, - 128,252,31,128,248,31,0,112,14,0,31,31,124,35,2,0, - 0,31,224,0,0,127,252,0,1,240,31,0,7,192,7,128, - 15,0,1,224,30,0,0,224,28,3,240,112,56,31,254,56, - 56,60,124,56,112,120,60,28,112,240,28,28,240,240,24,28, - 224,224,0,14,225,224,0,14,225,224,0,14,225,224,0,14, - 225,224,0,14,225,224,0,14,225,240,0,14,240,240,0,30, - 112,248,6,28,112,126,30,28,56,127,252,56,56,31,240,56, - 28,7,192,112,14,0,0,224,15,0,1,224,7,192,7,128, - 1,240,31,0,0,127,252,0,0,31,240,0,12,16,32,13, - 1,14,15,0,63,128,99,192,227,192,131,192,7,192,63,192, - 123,192,243,192,243,192,247,224,255,240,115,128,0,0,255,224, - 255,224,20,22,66,25,2,0,0,192,32,1,192,112,1,192, - 224,3,129,224,7,131,192,15,7,192,31,15,128,62,15,128, - 126,31,0,252,63,0,252,126,0,252,126,0,252,63,0,126, - 31,0,62,15,128,31,15,128,15,7,192,7,131,192,3,129, - 224,1,192,224,0,192,112,0,192,32,21,11,33,24,2,4, - 127,255,248,255,255,248,255,255,248,0,0,120,0,0,120,0, - 0,120,0,0,120,0,0,120,0,0,120,0,0,120,0,0, - 96,15,3,6,17,1,11,127,254,127,252,255,252,17,17,51, - 17,0,17,3,224,0,15,248,0,60,30,0,48,6,0,103, - 227,0,99,51,0,195,49,128,195,49,128,195,225,128,195,65, - 128,195,97,128,99,35,0,99,51,0,55,158,0,60,30,0, - 15,248,0,3,224,0,20,4,12,24,2,27,127,255,240,255, - 255,240,255,255,224,255,255,224,11,13,26,17,3,17,15,0, - 31,192,63,192,123,224,113,224,241,224,241,224,241,224,241,192, - 251,192,127,128,127,0,30,0,18,22,66,20,1,3,0,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,127,255,192,255,255,192,255,255,128,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,192, - 0,0,0,0,0,0,0,127,255,192,127,255,192,255,255,128, - 13,17,34,17,2,15,7,224,31,240,120,248,120,120,248,120, - 0,120,0,240,0,224,1,224,3,192,7,128,15,0,30,8, - 60,8,120,24,255,248,255,248,13,18,36,17,1,14,7,224, - 31,240,60,248,120,120,124,120,0,120,0,240,1,224,7,240, - 5,240,0,120,0,120,0,120,0,120,128,120,224,240,127,224, - 31,128,11,11,22,15,5,24,15,0,15,192,31,224,31,128, - 63,0,62,0,124,0,120,0,240,0,224,0,64,0,27,33, - 132,28,1,245,3,0,6,0,255,128,254,0,255,128,126,0, - 63,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,192,254,0,31,227,254,0,31,255,254,64,31,255,127,224, - 30,254,127,192,30,124,63,128,30,56,28,0,30,0,0,0, - 30,0,0,0,31,0,0,0,31,0,0,0,31,0,0,0, - 31,0,0,0,31,128,0,0,31,128,0,0,31,192,0,0, - 31,0,0,0,24,0,0,0,26,36,144,29,1,250,1,255, - 255,192,7,255,255,192,31,195,255,0,63,3,222,0,126,3, - 222,0,124,3,222,0,252,3,222,0,252,3,222,0,252,3, - 222,0,252,3,222,0,252,3,222,0,126,3,222,0,127,3, - 222,0,63,3,222,0,31,195,222,0,7,255,222,0,1,255, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,3,222,0,0,3,222,0,0,3,222,0,0,3, - 222,0,0,7,255,0,0,31,255,192,0,31,255,192,7,7, - 7,10,1,13,60,126,254,254,254,252,120,10,10,20,11,1, - 246,14,0,28,0,30,0,63,128,63,192,15,192,15,192,31, - 128,254,0,112,0,13,17,34,17,2,15,1,128,15,128,255, - 128,71,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,63,240,127,248,11,16,32, - 13,1,14,15,0,63,128,123,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,192,123,192,63,128,30,0,0,0,255, - 224,255,224,20,22,66,25,3,0,64,32,0,224,112,0,112, - 56,0,120,28,0,56,30,0,60,15,0,30,15,128,31,7, - 192,31,135,224,15,199,240,15,227,240,15,227,240,15,199,240, - 31,135,224,31,7,192,30,15,128,60,15,0,56,30,0,120, - 28,0,112,56,0,224,48,0,64,96,0,27,29,116,30,2, - 0,3,0,1,192,63,0,3,128,255,0,7,128,15,0,15, - 0,15,0,14,0,15,0,28,0,15,0,60,0,15,0,120, - 0,15,0,112,0,15,0,240,0,15,1,224,0,15,1,192, - 0,31,131,128,0,255,231,128,0,0,15,0,0,0,14,1, - 0,0,28,15,128,0,60,15,128,0,120,31,128,0,112,55, - 128,0,224,55,128,1,224,103,128,3,192,199,128,3,129,199, - 128,7,129,255,224,15,3,255,192,30,0,7,128,28,0,7, - 128,60,0,63,224,26,29,116,30,2,0,3,0,1,192,63, - 0,7,128,255,0,7,128,15,0,15,0,15,0,30,0,15, - 0,60,0,15,0,60,0,15,0,120,0,15,0,240,0,15, - 0,224,0,15,1,224,0,15,3,192,0,31,135,128,0,255, - 231,0,0,0,15,0,0,0,30,63,0,0,60,127,192,0, - 56,231,192,0,121,195,192,0,241,131,192,1,224,3,128,1, - 192,7,0,3,192,14,0,7,128,28,0,15,0,56,0,14, - 0,112,64,30,0,224,64,60,1,255,192,120,3,255,192,28, - 29,116,30,1,0,15,128,0,224,63,192,1,192,115,224,3, - 192,241,224,7,128,129,192,7,0,3,128,14,0,15,192,30, - 0,15,224,60,0,1,240,56,0,0,240,120,0,0,240,240, - 0,0,240,224,0,225,225,192,0,127,195,192,0,31,7,128, - 0,0,7,0,128,0,14,7,192,0,30,7,192,0,60,11, - 192,0,56,27,192,0,112,19,192,0,240,51,192,1,224,99, - 192,1,192,227,192,3,192,255,240,7,129,255,224,15,0,3, - 192,14,0,3,192,30,0,31,240,18,35,105,22,2,243,0, - 248,0,1,252,0,3,252,0,3,252,0,3,252,0,3,248, - 0,1,240,0,0,0,0,0,0,0,0,0,0,0,112,0, - 0,240,0,0,240,0,0,240,0,0,240,0,1,240,0,1, - 224,0,3,224,0,7,192,0,15,192,0,15,128,0,31,0, - 0,63,0,0,126,0,0,126,0,0,252,0,0,252,3,192, - 252,15,192,252,15,192,252,15,192,252,15,128,126,31,128,127, - 31,0,63,254,0,15,240,0,30,42,168,30,0,0,0,32, - 0,0,0,112,0,0,0,248,0,0,1,252,0,0,1,254, - 0,0,0,255,0,0,0,63,128,0,0,15,192,0,0,3, - 224,0,0,0,224,0,0,0,64,0,0,0,0,0,0,1, - 128,0,0,7,128,0,0,15,192,0,0,31,192,0,0,31, - 224,0,0,31,224,0,0,63,224,0,0,63,240,0,0,59, - 240,0,0,121,240,0,0,121,248,0,0,113,248,0,0,240, - 252,0,0,240,252,0,0,224,252,0,1,224,126,0,1,224, - 126,0,1,192,126,0,3,255,255,0,3,255,255,0,3,128, - 31,0,7,128,31,128,7,0,31,128,7,0,15,192,15,0, - 15,192,14,0,15,192,14,0,7,224,30,0,7,224,255,192, - 63,252,255,192,63,252,30,42,168,30,0,0,0,0,32,0, - 0,0,48,0,0,0,124,0,0,0,254,0,0,1,254,0, - 0,3,248,0,0,7,224,0,0,15,128,0,0,31,0,0, - 0,60,0,0,0,16,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,41,164,30,0,0,0,7,0,0,0,7, - 128,0,0,15,192,0,0,31,224,0,0,63,240,0,0,127, - 248,0,0,248,248,0,1,240,60,0,1,192,14,0,1,0, - 8,0,0,0,0,0,0,1,128,0,0,7,128,0,0,15, - 192,0,0,31,192,0,0,31,224,0,0,31,224,0,0,63, - 224,0,0,63,240,0,0,59,240,0,0,121,240,0,0,121, - 248,0,0,113,248,0,0,240,252,0,0,240,252,0,0,224, - 252,0,1,224,126,0,1,224,126,0,1,192,126,0,3,255, - 255,0,3,255,255,0,3,128,31,0,7,128,31,128,7,0, - 31,128,7,0,15,192,15,0,15,192,14,0,15,192,14,0, - 7,224,30,0,7,224,255,192,63,252,255,192,63,252,30,40, - 160,30,0,0,0,16,4,0,0,127,7,0,0,255,254,0, - 1,255,254,0,1,255,252,0,3,255,248,0,3,3,240,0, - 2,0,64,0,0,0,0,0,0,0,0,0,0,1,128,0, - 0,7,128,0,0,15,192,0,0,31,192,0,0,31,224,0, - 0,31,224,0,0,63,224,0,0,63,240,0,0,59,240,0, - 0,121,240,0,0,121,248,0,0,113,248,0,0,240,252,0, - 0,240,252,0,0,224,252,0,1,224,126,0,1,224,126,0, - 1,192,126,0,3,255,255,0,3,255,255,0,3,128,31,0, - 7,128,31,128,7,0,31,128,7,0,15,192,15,0,15,192, - 14,0,15,192,14,0,7,224,30,0,7,224,255,192,63,252, - 255,192,63,252,30,40,160,30,0,0,0,64,16,0,0,240, - 60,0,1,248,126,0,1,248,126,0,1,248,126,0,1,240, - 124,0,1,240,124,0,0,64,32,0,0,0,0,0,0,0, - 0,0,0,1,128,0,0,7,128,0,0,15,192,0,0,31, - 192,0,0,31,224,0,0,31,224,0,0,63,224,0,0,63, - 240,0,0,59,240,0,0,121,240,0,0,121,248,0,0,113, - 248,0,0,240,252,0,0,240,252,0,0,224,252,0,1,224, - 126,0,1,224,126,0,1,192,126,0,3,255,255,0,3,255, - 255,0,3,128,31,0,7,128,31,128,7,0,31,128,7,0, - 15,192,15,0,15,192,14,0,15,192,14,0,7,224,30,0, - 7,224,255,192,63,252,255,192,63,252,30,42,168,30,0,0, - 0,1,0,0,0,15,224,0,0,31,224,0,0,28,240,0, - 0,60,240,0,0,60,240,0,0,60,224,0,0,63,224,0, - 0,31,128,0,0,4,0,0,0,0,0,0,0,0,0,0, - 0,1,128,0,0,7,128,0,0,15,192,0,0,31,192,0, - 0,31,224,0,0,31,224,0,0,63,224,0,0,63,240,0, - 0,59,240,0,0,121,240,0,0,121,248,0,0,113,248,0, - 0,240,252,0,0,240,252,0,0,224,252,0,1,224,126,0, - 1,224,126,0,1,192,126,0,3,255,255,0,3,255,255,0, - 3,128,31,0,7,128,31,128,7,0,31,128,7,0,15,192, - 15,0,15,192,14,0,15,192,14,0,7,224,30,0,7,224, - 255,192,63,252,255,192,63,252,38,30,150,39,0,0,0,127, - 255,255,240,0,127,255,255,248,0,15,255,0,112,0,7,255, - 0,112,0,15,63,0,112,0,15,63,0,48,0,15,63,0, - 48,0,30,63,0,48,0,30,63,0,0,0,60,63,0,0, - 0,60,63,0,0,0,60,63,0,0,0,120,63,0,0,0, - 127,255,255,192,0,255,255,255,128,0,240,63,1,128,0,224, - 63,0,0,1,224,63,0,0,1,224,63,0,0,3,192,63, - 0,0,3,192,63,0,0,3,128,63,0,0,7,128,63,0, - 0,7,128,63,0,12,15,0,63,0,12,15,0,63,0,28, - 14,0,63,0,28,31,0,127,128,124,255,193,255,255,248,255, - 193,255,255,248,24,40,120,27,1,246,0,31,224,0,255,252, - 1,255,254,7,224,254,15,192,126,31,128,60,31,0,28,62, - 0,0,62,0,0,126,0,0,124,0,0,124,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,0,63, - 128,2,63,128,7,31,224,15,15,252,254,7,255,248,3,255, - 240,0,255,192,0,30,0,0,28,0,0,31,0,0,63,192, - 0,63,192,0,15,192,0,15,128,0,31,128,0,254,0,0, - 112,0,23,42,126,25,1,0,1,0,0,3,128,0,15,192, - 0,15,224,0,31,240,0,7,248,0,1,252,0,0,126,0, - 0,31,0,0,7,0,0,2,0,0,0,0,255,255,248,255, - 255,252,63,128,56,31,128,56,31,128,24,31,128,24,31,128, - 24,31,128,24,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,255,224,31,255,224,31,128,192,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,6,31,128,6,31,128,14,31,128,14,63,192,30, - 255,255,254,255,255,252,23,42,126,25,1,0,0,2,0,0, - 3,128,0,7,224,0,15,240,0,31,240,0,63,192,0,127, - 0,0,252,0,1,240,0,1,192,0,1,0,0,0,0,0, - 255,255,248,255,255,252,63,128,56,31,128,56,31,128,24,31, - 128,24,31,128,24,31,128,24,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,255,224,31,255,224,31,128,192, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,6,31,128,6,31,128,14,31,128, - 14,63,192,30,255,255,254,255,255,252,23,41,123,25,1,0, - 0,56,0,0,124,0,0,254,0,0,255,0,1,255,0,3, - 255,128,7,199,192,15,1,224,14,0,224,8,0,64,0,0, - 0,255,255,248,255,255,252,63,128,56,31,128,56,31,128,24, - 31,128,24,31,128,24,31,128,24,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,255,224,31,255,224,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,6,31,128,6,31,128,14,31, - 128,14,63,192,30,255,255,254,255,255,252,23,40,120,25,1, - 0,2,0,128,7,129,224,15,195,240,15,195,240,15,195,240, - 15,131,224,15,3,192,4,1,0,0,0,0,0,0,0,255, - 255,248,255,255,252,63,128,56,31,128,56,31,128,24,31,128, - 24,31,128,24,31,128,24,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,255,224,31,255,224,31,128,192,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,6,31,128,6,31,128,14,31,128,14, - 63,192,30,255,255,254,255,255,252,15,42,84,16,255,0,8, - 0,28,0,62,0,127,0,127,128,191,192,15,224,3,240,0, - 248,0,56,0,16,0,0,31,254,31,254,7,248,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,3,240,3, - 240,3,240,3,240,3,240,3,240,3,240,3,240,7,248,31, - 254,31,254,14,42,84,16,2,0,0,128,0,224,1,248,3, - 252,7,252,15,240,31,192,63,0,124,0,112,0,32,0,0, - 0,255,240,255,240,63,192,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,63,192,255,240,255,240,16,41,82, - 16,0,0,3,128,7,192,15,224,15,240,31,240,63,248,124, - 124,240,30,224,15,128,4,0,0,63,252,63,252,15,240,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,15, - 240,63,252,63,252,16,40,80,16,0,0,32,8,120,30,252, - 63,252,63,252,63,248,62,240,60,64,16,0,0,0,0,63, - 252,63,252,15,240,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,7,224,7,224,7,224,7,224,7,224,7, - 224,7,224,7,224,15,240,63,252,63,252,29,30,120,31,0, - 0,3,255,192,0,255,255,248,0,127,192,254,0,143,192,63, - 128,15,192,31,192,15,192,15,192,15,192,7,224,15,192,7, - 240,15,192,3,240,15,192,3,240,15,192,3,248,15,192,1, - 248,15,192,1,248,127,255,1,248,255,255,1,248,15,192,1, - 248,15,192,1,248,15,192,1,248,15,192,1,248,15,192,1, - 240,15,192,3,240,15,192,3,240,15,192,7,224,15,192,7, - 224,15,192,15,192,15,192,31,128,15,192,63,0,31,224,254, - 0,127,255,248,0,127,255,192,0,30,40,160,32,1,0,0, - 16,4,0,0,127,7,0,0,255,255,0,0,255,254,0,1, - 255,252,0,3,255,252,0,3,3,248,0,2,0,64,0,0, - 0,0,0,0,0,0,0,255,0,15,252,255,128,15,252,63, - 192,3,240,31,192,1,224,31,224,1,224,31,240,1,224,31, - 240,1,224,31,248,1,224,31,252,1,224,30,254,1,224,30, - 126,1,224,30,63,1,224,30,63,129,224,30,31,129,224,30, - 15,193,224,30,7,225,224,30,7,225,224,30,3,241,224,30, - 1,249,224,30,1,253,224,30,0,253,224,30,0,127,224,30, - 0,63,224,30,0,63,224,30,0,31,224,30,0,15,224,30, - 0,7,224,63,0,7,224,255,192,3,224,255,192,0,224,27, - 42,168,30,1,0,0,64,0,0,0,224,0,0,1,240,0, - 0,3,248,0,0,3,252,0,0,1,254,0,0,0,127,0, - 0,0,31,128,0,0,7,192,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,31,192,0,0,255,240,0,3,225,252, - 0,7,128,126,0,15,0,63,0,31,0,31,0,30,0,31, - 128,62,0,15,128,126,0,15,192,124,0,15,192,124,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,254,0,7,192,126,0,15,192,126,0,15,128,127,0,15, - 128,63,0,31,0,31,128,31,0,31,192,62,0,15,240,252, - 0,7,255,240,0,1,255,224,0,0,127,0,0,27,42,168, - 30,1,0,0,0,64,0,0,0,96,0,0,0,248,0,0, - 1,252,0,0,3,252,0,0,7,240,0,0,15,192,0,0, - 31,128,0,0,62,0,0,0,120,0,0,0,32,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,41,164,30,1, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,127,224,0,0,255,240,0,1,249,248,0,3,224,120, - 0,3,128,28,0,2,0,8,0,0,0,0,0,0,31,192, - 0,0,255,240,0,3,225,252,0,7,128,126,0,15,0,63, - 0,31,0,31,0,30,0,31,128,62,0,15,128,126,0,15, - 192,124,0,15,192,124,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,254,0,7,192,126,0,15, - 192,126,0,15,128,127,0,15,128,63,0,31,0,31,128,31, - 0,31,192,62,0,15,240,252,0,7,255,240,0,1,255,224, - 0,0,127,0,0,27,40,160,30,1,0,0,32,8,0,0, - 254,14,0,1,255,254,0,1,255,252,0,3,255,248,0,7, - 255,248,0,6,7,240,0,2,0,128,0,0,0,0,0,0, - 0,0,0,0,31,192,0,0,255,240,0,3,225,252,0,7, - 128,126,0,15,0,63,0,31,0,31,0,30,0,31,128,62, - 0,15,128,126,0,15,192,124,0,15,192,124,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,252, - 0,7,224,252,0,7,224,252,0,7,224,252,0,7,224,254, - 0,7,192,126,0,15,192,126,0,15,128,127,0,15,128,63, - 0,31,0,31,128,31,0,31,192,62,0,15,240,252,0,7, - 255,240,0,1,255,224,0,0,127,0,0,27,40,160,30,1, - 0,0,128,32,0,1,240,124,0,1,240,124,0,3,240,252, - 0,3,240,252,0,3,240,252,0,3,224,248,0,0,128,32, - 0,0,0,0,0,0,0,0,0,0,31,192,0,0,255,240, - 0,3,225,252,0,7,128,126,0,15,0,63,0,31,0,31, - 0,30,0,31,128,62,0,15,128,126,0,15,192,124,0,15, - 192,124,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,252,0,7,224,252,0,7,224,252,0,7, - 224,252,0,7,224,254,0,7,192,126,0,15,192,126,0,15, - 128,127,0,15,128,63,0,31,0,31,128,31,0,31,192,62, - 0,15,240,252,0,7,255,240,0,1,255,224,0,0,127,0, - 0,16,15,30,20,2,6,96,6,240,15,120,31,60,62,30, - 124,15,248,7,240,3,192,7,224,15,248,30,124,60,62,120, - 31,240,15,96,6,27,31,124,30,1,255,0,31,195,224,0, - 255,247,192,3,225,255,128,7,128,127,0,15,0,63,0,31, - 0,63,128,30,0,127,128,62,0,255,192,126,0,255,192,124, - 1,255,192,124,3,239,224,252,3,231,224,252,7,199,224,252, - 15,135,224,252,15,7,224,252,31,7,224,252,62,7,224,252, - 60,7,224,252,120,7,192,254,248,7,192,127,240,15,192,127, - 224,15,128,127,192,15,128,63,128,31,0,63,128,31,0,31, - 192,62,0,31,240,252,0,63,255,240,0,121,255,224,0,248, - 127,0,0,192,0,0,0,29,42,168,32,1,0,0,32,0, - 0,0,48,0,0,0,248,0,0,1,252,0,0,1,254,0, - 0,0,127,0,0,0,31,128,0,0,15,192,0,0,3,224, - 0,0,0,240,0,0,0,64,0,0,0,0,0,255,240,31, - 248,255,240,31,248,63,192,7,224,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,128,31,192,7,128,15,192,7,128,15,224,7, - 0,7,224,15,0,3,248,62,0,1,255,252,0,0,255,240, - 0,0,31,192,0,29,42,168,32,1,0,0,0,32,0,0, - 0,56,0,0,0,124,0,0,0,254,0,0,1,254,0,0, - 3,252,0,0,7,240,0,0,15,192,0,0,31,0,0,0, - 28,0,0,0,16,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,41,164,32,1,0,0,3,128,0,0,7,128, - 0,0,15,192,0,0,31,224,0,0,63,240,0,0,127,248, - 0,0,124,124,0,0,240,62,0,1,192,14,0,0,128,4, - 0,0,0,0,0,255,240,31,248,255,240,31,248,63,192,7, - 224,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,192,31,128,3, - 192,31,128,3,192,31,128,3,192,31,128,3,128,31,192,7, - 128,15,192,7,128,15,224,7,0,7,224,15,0,3,248,62, - 0,1,255,252,0,0,255,240,0,0,31,192,0,29,40,160, - 32,1,0,0,32,8,0,0,248,62,0,0,248,62,0,1, - 248,126,0,1,248,126,0,1,248,126,0,0,240,60,0,0, - 64,16,0,0,0,0,0,0,0,0,0,255,240,31,248,255, - 240,31,248,63,192,7,224,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,192,31,128,3,192,31,128,3,192,31,128,3,192,31, - 128,3,128,31,192,7,128,15,192,7,128,15,224,7,0,7, - 224,15,0,3,248,62,0,1,255,252,0,0,255,240,0,0, - 31,192,0,29,42,168,29,0,0,0,0,32,0,0,0,48, - 0,0,0,124,0,0,1,254,0,0,3,254,0,0,7,248, - 0,0,15,224,0,0,31,128,0,0,62,0,0,0,60,0, - 0,0,16,0,0,0,0,0,0,127,0,31,248,255,128,31, - 248,31,192,3,192,15,192,3,128,7,224,7,128,3,240,7, - 0,3,240,15,0,1,248,14,0,1,248,30,0,0,252,28, - 0,0,124,60,0,0,126,56,0,0,63,120,0,0,63,240, - 0,0,31,240,0,0,31,224,0,0,15,224,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,15,192,0,0,15,192,0,0,15,192, - 0,0,15,192,0,0,31,224,0,0,255,252,0,0,255,252, - 0,24,30,90,27,1,0,255,248,0,255,248,0,63,192,0, - 31,128,0,31,128,0,31,128,0,31,255,128,31,255,240,31, - 131,248,31,128,252,31,128,126,31,128,127,31,128,63,31,128, - 63,31,128,63,31,128,63,31,128,63,31,128,62,31,128,126, - 31,128,252,31,129,248,31,191,240,31,191,128,31,128,0,31, - 128,0,31,128,0,31,128,0,63,192,0,255,248,0,255,248, - 0,28,36,144,31,1,0,0,7,240,0,0,63,252,0,0, - 255,254,0,1,240,255,0,3,224,63,128,7,192,31,128,7, - 192,31,192,15,128,15,192,15,128,15,192,31,128,15,192,31, - 128,15,192,31,128,31,128,31,128,63,0,31,128,126,0,31, - 129,248,0,31,135,224,0,31,135,128,0,31,143,128,0,31, - 143,128,0,31,143,192,0,31,143,224,0,31,135,248,0,31, - 135,254,0,31,131,255,128,31,128,255,192,31,128,63,224,31, - 128,31,240,31,128,7,240,31,140,3,240,31,142,1,240,31, - 142,1,240,31,142,1,240,31,143,1,224,63,143,195,192,255, - 143,255,128,255,129,254,0,23,35,105,24,1,0,1,192,0, - 15,192,0,15,224,0,7,240,0,3,240,0,1,248,0,0, - 248,0,0,124,0,0,60,0,0,30,0,0,12,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,35,105,24,1,0,0,15,0,0, - 15,192,0,31,224,0,31,128,0,63,0,0,62,0,0,124, - 0,0,120,0,0,240,0,0,224,0,0,192,0,0,0,0, - 0,0,0,0,255,0,15,255,128,31,15,192,62,7,224,126, - 7,224,252,7,224,96,7,224,0,7,224,0,31,224,1,255, - 224,7,255,224,31,231,224,63,135,224,63,7,224,126,7,224, - 126,7,224,126,7,224,126,31,228,127,63,252,63,247,254,63, - 231,240,15,131,128,23,35,105,24,1,0,0,120,0,0,252, - 0,0,252,0,1,254,0,3,255,0,3,255,0,7,207,128, - 15,135,192,15,1,192,28,0,224,8,0,64,0,0,0,0, - 0,0,0,255,0,15,255,128,31,15,192,62,7,224,126,7, - 224,252,7,224,96,7,224,0,7,224,0,31,224,1,255,224, - 7,255,224,31,231,224,63,135,224,63,7,224,126,7,224,126, - 7,224,126,7,224,126,31,228,127,63,252,63,247,254,63,231, - 240,15,131,128,23,33,99,24,1,0,3,192,48,7,240,48, - 15,252,96,31,255,224,31,255,192,56,127,128,48,15,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,0,15,255, - 128,31,15,192,62,7,224,126,7,224,252,7,224,96,7,224, - 0,7,224,0,31,224,1,255,224,7,255,224,31,231,224,63, - 135,224,63,7,224,126,7,224,126,7,224,126,7,224,126,31, - 228,127,63,252,63,247,254,63,231,240,15,131,128,23,33,99, - 24,1,0,7,1,192,15,131,224,31,135,224,31,135,224,31, - 135,224,31,7,192,14,3,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,23,34,102,24,1,0,0,60,0,0, - 254,0,1,239,0,3,207,0,3,207,0,3,207,0,3,238, - 0,1,252,0,0,248,0,0,0,0,0,0,0,0,0,0, - 0,255,0,15,255,128,31,15,192,62,7,224,126,7,224,252, - 7,224,96,7,224,0,7,224,0,31,224,1,255,224,7,255, - 224,31,231,224,63,135,224,63,7,224,126,7,224,126,7,224, - 126,7,224,126,31,228,127,63,252,63,247,254,63,231,240,15, - 131,128,33,22,110,35,1,0,0,63,3,224,0,1,255,159, - 248,0,7,255,252,62,0,15,135,248,30,0,31,3,240,31, - 0,63,3,240,15,0,127,3,224,15,128,120,3,224,15,128, - 0,3,224,15,128,0,127,255,255,128,3,255,255,254,0,15, - 195,224,0,0,63,3,224,0,0,126,3,224,0,0,124,3, - 240,0,0,252,3,240,1,0,252,7,248,7,0,254,31,252, - 31,0,255,252,255,254,0,127,248,127,252,0,127,224,63,240, - 0,31,128,15,192,0,20,32,96,22,2,246,0,127,128,1, - 255,240,7,135,224,15,3,224,30,1,224,62,0,192,124,0, - 192,124,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,0,127,0,96,127, - 129,224,63,255,192,31,255,128,15,254,0,3,252,0,0,240, - 0,0,224,0,0,252,0,1,254,0,0,254,0,0,126,0, - 0,124,0,0,252,0,3,240,0,1,128,0,19,35,105,23, - 2,0,3,128,0,15,192,0,31,224,0,7,224,0,3,240, - 0,1,240,0,0,248,0,0,120,0,0,60,0,0,28,0, - 0,8,0,0,0,0,0,0,0,0,252,0,7,255,0,15, - 31,128,30,15,128,62,15,192,124,7,192,124,7,224,124,7, - 224,252,7,224,255,255,224,255,255,128,252,0,0,252,0,0, - 252,0,0,254,0,0,126,0,64,127,0,224,63,131,192,63, - 255,128,31,255,0,15,254,0,3,248,0,19,35,105,23,2, - 0,0,14,0,0,31,192,0,31,192,0,63,128,0,63,0, - 0,126,0,0,124,0,0,248,0,0,240,0,1,224,0,0, - 192,0,0,0,0,0,0,0,0,252,0,7,255,0,15,31, - 128,30,15,128,62,15,192,124,7,192,124,7,224,124,7,224, - 252,7,224,255,255,224,255,255,128,252,0,0,252,0,0,252, - 0,0,254,0,0,126,0,64,127,0,224,63,131,192,63,255, - 128,31,255,0,15,254,0,3,248,0,19,35,105,23,2,0, - 0,120,0,0,248,0,1,252,0,1,254,0,3,254,0,7, - 255,0,15,223,128,15,7,128,30,3,192,60,1,224,24,0, - 64,0,0,0,0,0,0,0,252,0,7,255,0,15,31,128, - 30,15,128,62,15,192,124,7,192,124,7,224,124,7,224,252, - 7,224,255,255,224,255,255,128,252,0,0,252,0,0,252,0, - 0,254,0,0,126,0,64,127,0,224,63,131,192,63,255,128, - 31,255,0,15,254,0,3,248,0,19,33,99,23,2,0,15, - 3,192,31,7,192,31,135,224,31,135,224,31,7,192,31,7, - 192,14,3,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,252,0,7,255,0,15,31,128,30,15,128,62,15,192,124, - 7,192,124,7,224,124,7,224,252,7,224,255,255,224,255,255, - 128,252,0,0,252,0,0,252,0,0,254,0,0,126,0,64, - 127,0,224,63,131,192,63,255,128,31,255,0,15,254,0,3, - 248,0,13,35,70,14,0,0,28,0,126,0,254,0,127,0, - 31,0,15,128,7,128,3,192,1,192,0,224,0,64,0,0, - 0,0,1,192,63,192,127,192,63,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,31,224,127,248,127,248,14,35, - 70,14,1,0,0,224,1,252,1,252,3,248,3,240,7,224, - 7,192,15,128,15,0,30,0,8,0,0,0,0,0,3,128, - 127,128,255,128,127,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,16,35,70,14,255,0, - 3,192,3,224,7,240,15,240,15,248,31,252,62,124,60,30, - 120,15,240,7,64,3,0,0,0,0,0,224,31,224,63,224, - 31,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 15,240,63,252,63,252,16,33,66,14,255,0,56,14,124,31, - 124,31,252,63,252,63,124,31,120,30,0,0,0,0,0,0, - 0,0,0,224,31,224,63,224,31,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,7,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,240,63,252,63,252,21,34, - 102,25,2,0,1,192,0,15,224,0,63,240,248,31,255,248, - 0,255,192,0,126,0,1,255,0,7,239,128,31,143,128,2, - 7,192,0,3,224,0,3,224,1,251,240,7,253,240,15,255, - 240,31,15,248,62,7,248,62,3,248,124,3,248,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,240,252, - 1,240,252,1,240,126,3,224,126,3,224,63,3,192,63,7, - 128,31,143,0,7,254,0,1,248,0,26,33,132,28,1,0, - 0,240,12,0,1,252,12,0,3,255,28,0,3,255,248,0, - 7,255,240,0,14,31,224,0,12,3,192,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,3,1,240,0, - 127,135,252,0,255,159,252,0,63,191,254,0,31,248,254,0, - 31,224,126,0,31,192,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,31,128,126,0,31,128,126,0, - 31,128,126,0,31,128,126,0,63,192,255,0,255,243,255,192, - 255,243,255,192,21,35,105,25,2,0,1,192,0,15,224,0, - 15,224,0,7,240,0,3,240,0,1,248,0,0,248,0,0, - 124,0,0,60,0,0,30,0,0,12,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,21,35,105,25,2,0,0,15,0,0,15,192,0, - 31,224,0,31,128,0,63,0,0,62,0,0,124,0,0,120, - 0,0,240,0,0,224,0,0,192,0,0,0,0,0,0,0, - 0,252,0,3,255,0,15,15,192,30,7,224,62,7,224,62, - 3,240,124,3,240,124,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,252,1,248,252,1,240,126,1,240, - 126,3,224,62,3,224,63,3,192,31,135,128,7,254,0,1, - 248,0,21,35,105,25,2,0,0,120,0,0,252,0,0,252, - 0,1,254,0,3,255,0,3,255,0,7,207,128,15,135,192, - 15,1,192,28,0,224,8,0,64,0,0,0,0,0,0,0, - 252,0,3,255,0,15,15,192,30,7,224,62,7,224,62,3, - 240,124,3,240,124,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,248,252,1,240,126,1,240,126, - 3,224,62,3,224,63,3,192,31,135,128,7,254,0,1,248, - 0,21,33,99,25,2,0,3,192,48,7,240,48,15,252,96, - 31,255,224,31,255,192,56,127,128,48,15,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,252,0,3,255,0,15,15, - 192,30,7,224,62,7,224,62,3,240,124,3,240,124,1,248, - 252,1,248,252,1,248,252,1,248,252,1,248,252,1,248,252, - 1,248,252,1,240,126,1,240,126,3,224,62,3,224,63,3, - 192,31,135,128,7,254,0,1,248,0,21,33,99,25,2,0, - 7,1,192,15,131,224,31,135,224,31,135,224,31,135,224,31, - 7,192,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,252,0,3,255,0,15,15,192,30,7,224,62,7,224, - 62,3,240,124,3,240,124,1,248,252,1,248,252,1,248,252, - 1,248,252,1,248,252,1,248,252,1,248,252,1,240,126,1, - 240,126,3,224,62,3,224,63,3,192,31,135,128,7,254,0, - 1,248,0,18,18,54,20,1,4,0,192,0,1,224,0,1, - 224,0,1,224,0,1,224,0,0,192,0,0,0,0,127,255, - 192,127,255,192,255,255,128,0,0,0,0,0,0,0,192,0, - 1,224,0,1,224,0,1,224,0,1,224,0,0,192,0,21, - 24,72,25,2,255,0,0,24,0,252,56,3,255,240,15,15, - 224,30,7,224,62,3,240,60,7,240,124,15,240,124,31,248, - 252,29,248,252,57,248,252,121,248,252,241,248,252,225,248,253, - 193,248,255,193,240,127,129,240,127,1,224,62,3,224,63,3, - 192,63,135,128,127,254,0,113,248,0,192,0,0,26,35,140, - 27,1,0,0,224,0,0,3,240,0,0,7,240,0,0,1, - 248,0,0,0,248,0,0,0,124,0,0,0,62,0,0,0, - 30,0,0,0,15,0,0,0,7,0,0,0,2,0,0,0, - 0,0,0,0,0,0,0,3,128,28,0,255,135,252,0,255, - 135,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,129,252,0,31,199,252,128,31, - 255,255,128,15,254,255,192,7,248,126,0,3,224,112,0,26, - 35,140,27,1,0,0,3,128,0,0,7,240,0,0,7,240, - 0,0,15,224,0,0,15,192,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,60,0,0,0,120,0,0,0,48,0, - 0,0,0,0,0,0,0,0,0,3,128,28,0,255,135,252, - 0,255,135,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,129,252,0,31,199,252, - 128,31,255,255,128,15,254,255,192,7,248,126,0,3,224,112, - 0,26,35,140,27,1,0,0,30,0,0,0,62,0,0,0, - 127,0,0,0,255,128,0,0,255,128,0,1,255,192,0,3, - 247,224,0,3,193,224,0,7,128,240,0,15,0,112,0,6, - 0,48,0,0,0,0,0,0,0,0,0,3,128,28,0,255, - 135,252,0,255,135,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,128,252,0,31, - 128,252,0,31,128,252,0,31,128,252,0,31,129,252,0,31, - 199,252,128,31,255,255,128,15,254,255,192,7,248,126,0,3, - 224,112,0,26,33,132,27,1,0,3,192,240,0,7,193,240, - 0,7,225,248,0,7,225,248,0,7,193,240,0,7,193,240, - 0,7,129,224,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,3,128,28,0,255,135,252,0,255,135,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,128,252,0,31,128,252,0,31,128,252, - 0,31,128,252,0,31,129,252,0,31,199,252,128,31,255,255, - 128,15,254,255,192,7,248,126,0,3,224,112,0,25,46,184, - 24,255,245,0,1,224,0,0,3,248,0,0,3,248,0,0, - 3,240,0,0,7,224,0,0,7,192,0,0,15,128,0,0, - 15,0,0,0,30,0,0,0,28,0,0,0,56,0,0,0, - 0,0,0,0,0,0,0,127,240,127,128,127,240,127,128,31, - 192,30,0,15,192,28,0,15,192,28,0,7,224,60,0,7, - 224,56,0,3,240,56,0,3,240,112,0,1,240,112,0,1, - 248,240,0,1,248,224,0,0,252,224,0,0,253,224,0,0, - 125,192,0,0,127,192,0,0,127,128,0,0,63,128,0,0, - 63,128,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,30,0,0,0,28,0,0,0,60,0,0,0, - 120,0,0,32,248,0,0,63,240,0,0,127,224,0,0,255, - 192,0,0,255,128,0,0,126,0,0,0,24,47,141,27,1, - 245,3,0,0,63,128,0,255,128,0,255,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,131,224,31,143, - 248,31,191,252,31,255,252,31,240,254,31,192,126,31,128,63, - 31,128,63,31,128,31,31,128,31,31,128,31,31,128,31,31, - 128,31,31,128,30,31,128,30,31,128,62,31,192,60,31,240, - 124,31,255,248,31,255,240,31,159,224,31,135,128,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,63,192,0,255,248,0,255,248,0,25,44, - 176,24,255,245,0,224,56,0,1,240,124,0,3,240,252,0, - 3,240,252,0,3,240,252,0,3,224,248,0,1,192,112,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 127,240,127,128,127,240,127,128,31,192,30,0,15,192,28,0, - 15,192,28,0,7,224,60,0,7,224,56,0,3,240,56,0, - 3,240,112,0,1,240,112,0,1,248,240,0,1,248,224,0, - 0,252,224,0,0,253,224,0,0,125,192,0,0,127,192,0, - 0,127,128,0,0,63,128,0,0,63,128,0,0,31,0,0, - 0,31,0,0,0,14,0,0,0,14,0,0,0,30,0,0, - 0,28,0,0,0,60,0,0,0,120,0,0,32,248,0,0, - 63,240,0,0,127,224,0,0,255,192,0,0,255,128,0,0, - 126,0,0,0}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=22 h=46 x= 3 y=17 dx=25 dy= 0 ascent=38 len=138 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30n[1304] U8G_FONT_SECTION("u8g_font_gdb30n") = { - 0,74,69,232,239,29,0,0,0,0,42,58,0,38,247,29, - 0,19,20,60,21,1,17,0,48,0,1,240,0,1,240,0, - 32,240,0,112,225,128,120,227,192,126,231,224,127,255,224,31, - 255,0,3,248,0,3,248,0,31,255,0,127,255,192,254,231, - 192,124,227,192,48,225,192,0,240,128,0,240,0,1,240,0, - 0,192,0,18,18,54,20,1,4,0,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,127,255, - 192,255,255,192,255,255,128,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,192,0,10, - 15,30,13,1,247,7,0,63,128,255,192,127,192,63,192,15, - 192,15,192,15,128,15,128,15,0,31,0,30,0,60,0,120, - 0,48,0,15,3,6,17,1,11,127,254,127,252,255,252,8, - 7,7,13,3,255,62,127,255,255,255,254,124,21,46,138,23, - 1,248,0,0,56,0,0,248,0,0,240,0,1,240,0,1, - 240,0,1,224,0,3,224,0,3,224,0,3,192,0,7,192, - 0,7,128,0,15,128,0,15,128,0,15,0,0,31,0,0, - 31,0,0,30,0,0,62,0,0,60,0,0,124,0,0,124, - 0,0,120,0,0,248,0,0,248,0,0,240,0,1,240,0, - 1,224,0,3,224,0,3,224,0,3,192,0,7,192,0,7, - 192,0,7,128,0,15,128,0,15,0,0,31,0,0,31,0, - 0,30,0,0,62,0,0,62,0,0,60,0,0,124,0,0, - 120,0,0,248,0,0,248,0,0,192,0,0,22,29,87,24, - 1,0,0,252,0,3,255,0,7,143,192,15,7,224,30,3, - 224,62,1,240,62,1,240,124,1,248,124,1,248,124,0,248, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,126,0,248,62,1,240,62,1,240,31,1,224,31,3,192, - 15,135,128,3,255,0,0,252,0,19,29,87,24,3,0,0, - 16,0,0,248,0,7,248,0,63,248,0,255,248,0,225,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,15,255,0, - 127,255,224,127,255,224,20,29,87,24,1,0,0,255,0,7, - 255,192,15,143,224,63,7,224,62,3,240,126,3,240,126,3, - 240,120,3,240,0,3,240,0,7,224,0,7,224,0,15,192, - 0,15,128,0,31,128,0,31,0,0,62,0,0,124,0,0, - 248,0,0,248,0,1,240,0,3,224,32,7,192,48,15,128, - 48,15,0,48,30,0,112,63,255,240,127,255,240,255,255,240, - 127,255,240,20,29,87,24,1,0,1,254,0,7,255,128,31, - 31,192,63,15,192,62,7,224,126,7,224,60,7,224,0,7, - 224,0,7,192,0,15,192,0,31,128,0,127,0,1,254,0, - 1,255,128,2,63,192,0,15,224,0,7,224,0,3,240,0, - 3,240,0,3,240,0,3,240,0,3,240,0,3,240,64,7, - 224,96,15,224,252,31,192,63,255,128,31,254,0,3,248,0, - 21,29,87,25,2,0,0,1,128,0,15,128,0,31,128,0, - 63,128,0,63,128,0,127,128,0,255,128,0,239,128,1,239, - 128,3,207,128,3,143,128,7,143,128,7,15,128,14,15,128, - 30,15,128,28,15,128,56,15,128,56,15,128,127,255,248,255, - 255,240,255,255,224,0,15,128,0,15,128,0,15,128,0,15, - 128,0,15,128,0,31,192,1,255,240,1,255,240,20,29,87, - 24,2,0,0,0,32,31,255,240,31,255,192,31,255,192,31, - 255,128,28,0,0,28,0,0,28,0,0,60,0,0,60,0, - 0,56,0,0,59,252,0,63,255,0,63,255,128,120,31,192, - 32,15,224,0,7,224,0,7,240,0,3,240,0,3,240,0, - 3,240,0,3,240,0,3,240,0,7,224,64,7,224,224,15, - 192,252,31,128,63,254,0,7,248,0,20,29,87,24,2,0, - 0,1,128,0,31,192,0,127,0,1,252,0,3,240,0,7, - 192,0,15,128,0,31,128,0,63,0,0,62,0,0,126,0, - 0,124,126,0,125,255,128,255,255,192,255,15,224,254,7,224, - 252,7,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,240,126,3,224,126,3,224,62,3,192,31,7,192,15,143, - 128,7,255,0,1,248,0,21,28,84,24,2,0,127,255,240, - 127,255,248,127,255,240,127,255,224,112,1,224,224,1,224,192, - 1,192,64,3,192,0,3,128,0,7,128,0,7,0,0,15, - 0,0,15,0,0,30,0,0,30,0,0,60,0,0,60,0, - 0,124,0,0,120,0,0,248,0,0,240,0,1,240,0,1, - 240,0,3,224,0,3,224,0,7,224,0,15,192,0,6,0, - 0,20,29,87,24,2,0,0,252,0,7,255,128,15,31,192, - 30,15,192,28,7,224,60,7,224,60,7,224,60,7,224,62, - 15,192,63,143,128,31,255,0,31,254,0,15,252,0,3,255, - 0,7,255,128,15,255,192,31,31,224,62,15,240,126,7,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,224,126, - 3,224,126,7,192,63,15,128,31,254,0,3,248,0,20,29, - 87,24,2,255,1,252,0,7,255,0,15,31,128,30,15,192, - 62,7,224,124,7,224,124,7,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,254,3,240,126,7,240,127,15, - 240,63,255,240,31,251,224,7,227,224,0,7,224,0,7,192, - 0,7,192,0,15,128,0,31,0,0,62,0,0,252,0,3, - 248,0,15,224,0,63,128,0,56,0,0,8,23,23,13,3, - 255,62,127,255,255,255,254,124,0,0,0,0,0,0,0,0, - 0,62,127,255,255,255,254,124}; -/* - Fontname: -FreeType-Gentium Basic-Bold-R-Normal--48-480-72-72-P-238-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=41 h=49 x= 4 y=24 dx=42 dy= 0 ascent=39 len=210 - Font Bounding box w=74 h=69 x=-24 y=-17 - Calculated Min Values x=-7 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdb30r[9112] U8G_FONT_SECTION("u8g_font_gdb30r") = { - 0,74,69,232,239,30,10,50,24,78,32,127,245,39,245,38, - 245,0,0,0,12,0,0,8,36,36,15,3,255,6,31,127, - 126,126,126,126,126,126,126,62,62,62,62,62,62,62,60,60, - 60,60,60,60,28,28,24,0,0,0,62,127,255,255,255,254, - 124,16,16,32,23,3,19,14,3,126,31,254,63,254,63,124, - 63,124,63,124,63,124,63,124,30,124,30,124,30,60,30,60, - 30,56,30,56,30,56,14,22,27,81,24,2,3,0,56,48, - 0,120,112,0,112,240,0,112,224,0,240,224,0,225,224,0, - 225,192,31,255,252,31,255,252,63,255,252,3,195,128,3,195, - 128,3,135,128,3,135,0,7,135,0,7,135,0,255,255,240, - 255,255,240,255,255,224,14,30,0,14,28,0,30,28,0,28, - 60,0,28,60,0,28,56,0,60,56,0,56,112,0,20,36, - 108,24,2,252,0,48,0,0,112,0,0,112,0,0,112,0, - 3,255,0,15,255,224,63,255,240,124,119,240,120,115,224,240, - 113,224,240,112,192,248,112,0,252,112,0,255,112,0,127,240, - 0,63,248,0,31,254,0,7,255,128,0,255,192,0,127,224, - 0,119,224,0,113,240,0,113,240,224,112,240,224,112,240,240, - 112,240,248,112,224,252,113,224,255,119,192,255,255,192,63,255, - 0,7,252,0,0,112,0,0,112,0,0,112,0,0,96,0, - 31,30,120,34,2,0,0,0,0,16,7,192,0,240,31,224, - 1,224,56,240,3,192,120,120,3,128,112,120,7,128,240,60, - 15,0,240,60,30,0,240,60,28,0,240,60,60,0,240,60, - 120,0,240,60,240,0,112,57,224,0,120,57,224,0,56,115, - 192,0,31,231,131,224,15,143,12,48,0,15,24,56,0,30, - 56,28,0,60,56,28,0,120,120,30,0,120,120,30,0,240, - 120,30,1,224,120,30,3,192,120,30,3,192,120,28,7,128, - 60,60,15,0,30,56,30,0,15,240,28,0,7,192,31,34, - 136,33,2,0,0,31,128,0,0,127,224,0,0,227,240,0, - 1,225,248,0,3,193,248,0,3,193,248,0,7,193,248,0, - 7,193,248,0,7,195,240,0,7,195,240,0,7,231,224,0, - 7,239,192,0,3,255,128,0,3,255,0,0,3,252,0,0, - 1,248,0,0,7,252,63,252,15,252,127,254,31,254,31,184, - 63,127,15,128,62,127,7,128,126,63,135,128,252,31,199,128, - 252,31,231,128,252,15,247,0,252,7,255,0,252,3,254,0, - 252,1,252,0,254,0,255,0,127,0,127,128,127,129,255,248, - 63,255,223,248,15,255,15,244,3,252,7,128,7,16,16,13, - 3,19,14,126,254,254,124,124,124,124,124,124,124,60,60,56, - 56,56,13,45,90,16,3,249,0,16,0,120,0,240,1,224, - 3,224,7,192,7,128,15,128,31,0,31,0,63,0,62,0, - 62,0,126,0,126,0,126,0,124,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,126,0,126,0,126,0,126,0,62,0,63,0,63,0, - 31,0,15,128,15,128,7,192,3,192,1,224,0,240,0,120, - 0,16,13,44,88,16,0,249,64,0,240,0,120,0,60,0, - 30,0,31,0,15,128,15,192,7,192,7,224,7,224,3,224, - 3,240,3,240,3,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 3,240,3,240,3,240,3,224,3,224,7,224,7,192,7,192, - 15,128,15,0,31,0,62,0,60,0,120,0,240,0,64,0, - 19,20,60,21,1,17,0,48,0,1,240,0,1,240,0,32, - 240,0,112,225,128,120,227,192,126,231,224,127,255,224,31,255, - 0,3,248,0,3,248,0,31,255,0,127,255,192,254,231,192, - 124,227,192,48,225,192,0,240,128,0,240,0,1,240,0,0, - 192,0,18,18,54,20,1,4,0,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,127,255,192, - 255,255,192,255,255,128,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,192,0,10,15, - 30,13,1,247,7,0,63,128,255,192,127,192,63,192,15,192, - 15,192,15,128,15,128,15,0,31,0,30,0,60,0,120,0, - 48,0,15,3,6,17,1,11,127,254,127,252,255,252,8,7, - 7,13,3,255,62,127,255,255,255,254,124,21,46,138,23,1, - 248,0,0,56,0,0,248,0,0,240,0,1,240,0,1,240, - 0,1,224,0,3,224,0,3,224,0,3,192,0,7,192,0, - 7,128,0,15,128,0,15,128,0,15,0,0,31,0,0,31, - 0,0,30,0,0,62,0,0,60,0,0,124,0,0,124,0, - 0,120,0,0,248,0,0,248,0,0,240,0,1,240,0,1, - 224,0,3,224,0,3,224,0,3,192,0,7,192,0,7,192, - 0,7,128,0,15,128,0,15,0,0,31,0,0,31,0,0, - 30,0,0,62,0,0,62,0,0,60,0,0,124,0,0,120, - 0,0,248,0,0,248,0,0,192,0,0,22,29,87,24,1, - 0,0,252,0,3,255,0,7,143,192,15,7,224,30,3,224, - 62,1,240,62,1,240,124,1,248,124,1,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,124,0,248,124,0,248, - 126,0,248,62,1,240,62,1,240,31,1,224,31,3,192,15, - 135,128,3,255,0,0,252,0,19,29,87,24,3,0,0,16, - 0,0,248,0,7,248,0,63,248,0,255,248,0,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,15,255,0,127, - 255,224,127,255,224,20,29,87,24,1,0,0,255,0,7,255, - 192,15,143,224,63,7,224,62,3,240,126,3,240,126,3,240, - 120,3,240,0,3,240,0,7,224,0,7,224,0,15,192,0, - 15,128,0,31,128,0,31,0,0,62,0,0,124,0,0,248, - 0,0,248,0,1,240,0,3,224,32,7,192,48,15,128,48, - 15,0,48,30,0,112,63,255,240,127,255,240,255,255,240,127, - 255,240,20,29,87,24,1,0,1,254,0,7,255,128,31,31, - 192,63,15,192,62,7,224,126,7,224,60,7,224,0,7,224, - 0,7,192,0,15,192,0,31,128,0,127,0,1,254,0,1, - 255,128,2,63,192,0,15,224,0,7,224,0,3,240,0,3, - 240,0,3,240,0,3,240,0,3,240,0,3,240,64,7,224, - 96,15,224,252,31,192,63,255,128,31,254,0,3,248,0,21, - 29,87,25,2,0,0,1,128,0,15,128,0,31,128,0,63, - 128,0,63,128,0,127,128,0,255,128,0,239,128,1,239,128, - 3,207,128,3,143,128,7,143,128,7,15,128,14,15,128,30, - 15,128,28,15,128,56,15,128,56,15,128,127,255,248,255,255, - 240,255,255,224,0,15,128,0,15,128,0,15,128,0,15,128, - 0,15,128,0,31,192,1,255,240,1,255,240,20,29,87,24, - 2,0,0,0,32,31,255,240,31,255,192,31,255,192,31,255, - 128,28,0,0,28,0,0,28,0,0,60,0,0,60,0,0, - 56,0,0,59,252,0,63,255,0,63,255,128,120,31,192,32, - 15,224,0,7,224,0,7,240,0,3,240,0,3,240,0,3, - 240,0,3,240,0,3,240,0,7,224,64,7,224,224,15,192, - 252,31,128,63,254,0,7,248,0,20,29,87,24,2,0,0, - 1,128,0,31,192,0,127,0,1,252,0,3,240,0,7,192, - 0,15,128,0,31,128,0,63,0,0,62,0,0,126,0,0, - 124,126,0,125,255,128,255,255,192,255,15,224,254,7,224,252, - 7,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 240,126,3,224,126,3,224,62,3,192,31,7,192,15,143,128, - 7,255,0,1,248,0,21,28,84,24,2,0,127,255,240,127, - 255,248,127,255,240,127,255,224,112,1,224,224,1,224,192,1, - 192,64,3,192,0,3,128,0,7,128,0,7,0,0,15,0, - 0,15,0,0,30,0,0,30,0,0,60,0,0,60,0,0, - 124,0,0,120,0,0,248,0,0,240,0,1,240,0,1,240, - 0,3,224,0,3,224,0,7,224,0,15,192,0,6,0,0, - 20,29,87,24,2,0,0,252,0,7,255,128,15,31,192,30, - 15,192,28,7,224,60,7,224,60,7,224,60,7,224,62,15, - 192,63,143,128,31,255,0,31,254,0,15,252,0,3,255,0, - 7,255,128,15,255,192,31,31,224,62,15,240,126,7,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,224,126,3, - 224,126,7,192,63,15,128,31,254,0,3,248,0,20,29,87, - 24,2,255,1,252,0,7,255,0,15,31,128,30,15,192,62, - 7,224,124,7,224,124,7,224,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,254,3,240,126,7,240,127,15,240, - 63,255,240,31,251,224,7,227,224,0,7,224,0,7,192,0, - 7,192,0,15,128,0,31,0,0,62,0,0,252,0,3,248, - 0,15,224,0,63,128,0,56,0,0,8,23,23,13,3,255, - 62,127,255,255,255,254,124,0,0,0,0,0,0,0,0,0, - 62,127,255,255,255,254,124,10,31,62,13,1,247,15,128,31, - 192,63,192,63,192,63,192,31,128,14,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,63, - 128,255,192,127,192,63,192,15,192,15,192,15,128,15,128,15, - 0,31,0,30,0,60,0,120,0,48,0,20,16,48,22,1, - 6,0,0,96,0,1,240,0,15,224,0,127,224,3,255,128, - 15,252,0,127,224,0,127,0,0,254,0,0,255,192,0,63, - 248,0,7,254,0,1,255,192,0,63,224,0,7,240,0,0, - 192,20,10,30,22,1,8,127,255,224,127,255,240,255,255,224, - 0,0,0,0,0,0,0,0,0,0,0,0,127,255,224,127, - 255,240,255,255,224,20,16,48,22,1,6,48,0,0,126,0, - 0,255,192,0,63,240,0,15,254,0,1,255,192,0,63,224, - 0,7,240,0,31,224,0,127,224,3,255,0,31,248,0,127, - 224,0,127,0,0,248,0,0,64,0,0,19,35,105,22,2, - 255,1,254,0,15,255,128,63,31,192,126,15,192,124,7,224, - 252,7,224,252,7,224,252,7,224,240,7,224,0,7,192,0, - 15,192,0,15,128,0,31,128,0,63,0,0,126,0,0,124, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,128,0,0,0,0,0, - 0,0,0,0,0,1,240,0,3,248,0,7,248,0,7,248, - 0,7,248,0,7,240,0,3,224,0,38,42,210,42,2,246, - 0,0,255,192,0,0,7,255,248,0,0,31,255,254,0,0, - 127,255,255,0,0,255,0,255,128,1,248,0,31,192,3,224, - 0,7,224,7,192,0,3,224,15,128,0,1,240,31,0,0, - 1,240,31,0,252,24,248,62,3,254,120,248,60,7,255,240, - 120,124,15,135,240,124,124,31,3,240,124,120,31,3,240,60, - 120,62,3,240,60,248,62,3,240,60,248,126,3,240,60,248, - 126,3,240,60,248,126,3,240,60,248,126,3,240,60,248,126, - 3,240,56,248,126,3,240,56,248,126,3,240,120,252,127,3, - 240,112,252,63,7,240,224,124,63,143,249,224,124,31,255,255, - 192,126,31,251,255,128,62,15,241,254,0,63,3,224,248,0, - 63,128,0,0,0,31,192,0,0,0,15,224,0,0,128,15, - 240,0,1,192,7,252,0,7,192,3,255,128,127,128,0,255, - 255,254,0,0,127,255,252,0,0,31,255,240,0,0,1,255, - 0,0,30,30,120,30,0,0,0,1,128,0,0,7,128,0, - 0,15,192,0,0,31,192,0,0,31,224,0,0,31,224,0, - 0,63,224,0,0,63,240,0,0,59,240,0,0,121,240,0, - 0,121,248,0,0,113,248,0,0,240,252,0,0,240,252,0, - 0,224,252,0,1,224,126,0,1,224,126,0,1,192,126,0, - 3,255,255,0,3,255,255,0,3,128,31,0,7,128,31,128, - 7,0,31,128,7,0,15,192,15,0,15,192,14,0,15,192, - 14,0,7,224,30,0,7,224,255,192,63,252,255,192,63,252, - 26,30,120,29,0,0,3,255,128,0,255,255,240,0,127,193, - 252,0,15,192,126,0,15,192,127,0,15,192,63,0,15,192, - 63,0,15,192,63,0,15,192,63,0,15,192,62,0,15,192, - 126,0,15,192,252,0,15,195,248,0,15,255,224,0,15,255, - 252,0,15,192,254,0,15,192,63,0,15,192,31,128,15,192, - 31,128,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,128,15,192,31,128,15,192, - 63,0,31,192,254,0,127,255,252,0,127,255,224,0,24,30, - 90,27,1,0,0,31,224,0,255,252,1,255,254,7,224,254, - 15,128,126,31,128,60,31,0,28,62,0,0,62,0,0,126, - 0,0,124,0,0,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 126,0,0,126,0,0,127,0,0,63,128,2,63,192,15,31, - 240,62,15,255,248,7,255,240,1,255,192,0,127,0,29,30, - 120,31,0,0,3,255,192,0,255,255,248,0,127,192,254,0, - 143,192,63,128,15,192,31,192,15,192,15,192,15,192,7,224, - 15,192,7,240,15,192,3,240,15,192,3,240,15,192,3,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,248,15,192,1,248,15,192,1,248,15,192,1,248, - 15,192,1,240,15,192,3,240,15,192,3,240,15,192,7,224, - 15,192,7,224,15,192,15,192,15,192,31,128,15,192,63,0, - 31,224,254,0,127,255,248,0,127,255,192,0,23,30,90,25, - 1,0,255,255,248,255,255,252,63,128,56,31,128,56,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,224,31,255,224,31, - 128,192,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,6,31,128,6,31,128,14, - 31,128,14,63,192,30,255,255,254,255,255,252,22,30,90,24, - 1,0,255,255,248,255,255,252,63,128,60,31,128,28,31,128, - 24,31,128,24,31,128,24,31,128,24,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,255,192,31,255,224,31, - 129,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,63,192,0,255,248,0,255,248,0,27,30,120,29, - 1,0,0,15,248,0,0,127,255,128,1,240,127,128,3,192, - 63,0,7,128,15,0,15,0,14,0,31,0,0,0,62,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,124,0, - 0,0,252,0,0,0,252,0,0,0,252,1,255,224,252,1, - 255,224,252,0,127,192,252,0,31,128,252,0,31,128,254,0, - 31,128,126,0,31,128,127,0,31,128,127,0,31,128,63,128, - 31,128,63,192,31,128,31,240,63,0,15,255,254,0,7,255, - 252,0,1,255,240,0,0,63,128,0,30,30,120,33,1,0, - 255,240,63,252,255,240,63,252,63,192,15,240,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,255,255,224,31,255,255,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,31,128,7,224, - 31,128,7,224,31,128,7,224,31,128,7,224,63,192,15,240, - 255,240,63,252,255,240,63,252,12,30,60,16,2,0,255,240, - 255,240,63,192,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,63,192,255,240,255,240,21,40,120,16,249,246, - 0,255,248,0,255,248,0,31,224,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,192,0,15,192, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,0,15,128,0,15,128, - 0,15,128,0,31,0,24,30,0,62,62,0,127,248,0,255, - 240,0,127,224,0,31,128,0,29,30,120,30,1,0,255,240, - 255,224,255,240,255,224,63,192,31,0,31,128,62,0,31,128, - 124,0,31,128,248,0,31,129,240,0,31,129,224,0,31,131, - 192,0,31,135,128,0,31,143,0,0,31,159,0,0,31,190, - 0,0,31,188,0,0,31,252,0,0,31,254,0,0,31,191, - 0,0,31,159,128,0,31,143,192,0,31,135,224,0,31,135, - 240,0,31,131,248,0,31,129,252,0,31,128,254,0,31,128, - 126,0,31,128,127,0,31,128,63,192,63,192,31,240,255,240, - 15,248,255,240,7,128,23,30,90,24,1,0,255,240,0,255, - 240,0,63,192,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,4,31,128,6,31,128,14,31,128,30,63,192,60, - 255,255,252,255,255,252,38,30,150,41,1,0,255,128,0,15, - 248,255,192,0,15,248,15,192,0,31,192,15,224,0,31,192, - 15,224,0,31,192,15,240,0,63,192,15,240,0,63,192,15, - 248,0,127,192,15,248,0,119,192,14,252,0,247,192,14,252, - 0,247,192,14,124,1,231,192,14,126,1,231,192,14,62,1, - 199,192,14,63,3,199,192,14,31,3,135,192,14,31,135,135, - 192,14,31,135,135,192,14,15,143,7,192,14,15,207,7,192, - 30,7,222,7,192,30,7,254,7,192,30,3,252,7,192,30, - 3,252,7,192,30,3,248,7,192,30,1,248,7,224,30,1, - 248,7,224,31,0,240,15,224,255,192,240,63,252,255,192,96, - 63,252,30,30,120,32,1,0,255,0,15,252,255,128,15,252, - 63,192,3,240,31,192,1,224,31,224,1,224,31,240,1,224, - 31,240,1,224,31,248,1,224,31,252,1,224,30,254,1,224, - 30,126,1,224,30,63,1,224,30,63,129,224,30,31,129,224, - 30,15,193,224,30,7,225,224,30,7,225,224,30,3,241,224, - 30,1,249,224,30,1,253,224,30,0,253,224,30,0,127,224, - 30,0,63,224,30,0,63,224,30,0,31,224,30,0,15,224, - 30,0,7,224,63,0,7,224,255,192,3,224,255,192,0,224, - 27,30,120,30,1,0,0,31,192,0,0,255,240,0,3,225, - 252,0,7,128,126,0,15,0,63,0,31,0,31,0,30,0, - 31,128,62,0,15,128,126,0,15,192,124,0,15,192,124,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,254,0,7,192,126,0,15,192,126,0,15,128,127,0, - 15,128,63,0,31,0,31,128,31,0,31,192,62,0,15,240, - 252,0,7,255,240,0,1,255,224,0,0,127,0,0,25,30, - 120,27,0,0,3,255,192,0,255,255,248,0,127,193,252,0, - 143,192,126,0,15,192,63,0,15,192,63,0,15,192,31,128, - 15,192,31,128,15,192,31,128,15,192,31,128,15,192,31,128, - 15,192,31,0,15,192,63,0,15,192,62,0,15,192,126,0, - 15,208,252,0,15,223,240,0,15,207,192,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 15,192,0,0,15,192,0,0,15,192,0,0,15,192,0,0, - 31,224,0,0,127,252,0,0,127,252,0,0,32,38,152,30, - 1,248,0,31,192,0,0,255,240,0,3,225,252,0,7,128, - 126,0,15,0,63,0,31,0,31,0,30,0,31,128,62,0, - 15,128,126,0,15,192,124,0,15,192,124,0,7,192,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,252,0, - 7,224,252,0,7,224,252,0,7,224,252,0,7,224,254,0, - 7,192,126,0,15,192,126,0,15,128,127,0,15,128,63,0, - 31,0,31,128,31,0,31,192,62,0,15,240,252,0,7,255, - 248,0,1,255,224,0,0,127,240,0,0,1,252,0,0,0, - 254,2,0,0,63,135,0,0,31,255,0,0,15,254,0,0, - 3,252,0,0,1,252,0,0,0,120,29,30,120,29,0,0, - 7,255,128,0,255,255,240,0,127,193,252,0,143,192,126,0, - 15,192,126,0,15,192,63,0,15,192,63,0,15,192,63,0, - 15,192,63,0,15,192,63,0,15,192,126,0,15,192,126,0, - 15,192,252,0,15,255,248,0,15,255,240,0,15,255,192,0, - 15,199,192,0,15,195,224,0,15,193,240,0,15,193,240,0, - 15,192,248,0,15,192,252,0,15,192,126,0,15,192,126,0, - 15,192,63,0,15,192,63,128,15,192,31,192,31,224,31,248, - 127,248,15,248,127,248,15,128,20,30,90,25,3,0,1,255, - 0,15,255,192,30,15,224,60,7,192,120,3,192,248,1,128, - 248,0,0,252,0,0,254,0,0,255,0,0,127,192,0,127, - 240,0,63,252,0,31,255,0,7,255,128,1,255,192,0,127, - 224,0,31,224,0,7,240,0,3,240,0,1,240,192,1,240, - 224,1,240,224,1,224,240,3,224,248,3,192,254,15,128,255, - 255,0,127,254,0,15,240,0,27,30,120,28,0,0,127,255, - 255,224,127,255,255,224,112,31,128,224,112,31,128,224,96,31, - 128,224,96,31,128,224,224,31,128,96,64,31,128,96,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,63,192,0,1,255, - 248,0,1,255,248,0,29,30,120,32,1,0,255,240,31,248, - 255,240,31,248,63,192,7,224,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,192,31,128,3,192,31,128,3,192,31,128,3,192, - 31,128,3,128,31,192,7,128,15,192,7,128,15,224,7,0, - 7,224,15,0,3,248,62,0,1,255,252,0,0,255,240,0, - 0,31,192,0,31,30,120,32,0,0,255,240,7,254,255,240, - 7,254,31,128,0,240,15,192,0,224,15,192,0,224,15,192, - 1,224,7,224,1,192,7,224,3,192,3,240,3,192,3,240, - 3,128,3,240,7,128,1,248,7,128,1,248,7,0,0,248, - 15,0,0,252,14,0,0,252,14,0,0,126,30,0,0,126, - 28,0,0,62,28,0,0,63,60,0,0,63,56,0,0,31, - 248,0,0,31,240,0,0,15,240,0,0,15,240,0,0,15, - 224,0,0,7,224,0,0,7,224,0,0,3,192,0,0,3, - 0,0,41,30,180,41,0,0,255,240,12,3,255,128,255,240, - 30,3,255,128,31,128,30,0,124,0,15,128,30,0,56,0, - 15,128,63,0,120,0,15,128,63,0,120,0,15,192,63,128, - 112,0,7,192,127,128,112,0,7,192,127,128,112,0,7,192, - 127,192,240,0,7,224,247,192,224,0,3,224,231,224,224,0, - 3,224,227,224,224,0,3,225,227,225,224,0,3,241,195,241, - 224,0,3,241,193,241,192,0,1,243,193,241,192,0,1,243, - 128,249,192,0,1,251,128,251,192,0,1,255,128,255,192,0, - 0,255,0,127,128,0,0,255,0,127,128,0,0,254,0,127, - 128,0,0,254,0,63,128,0,0,126,0,63,0,0,0,124, - 0,31,0,0,0,124,0,31,0,0,0,124,0,31,0,0, - 0,120,0,14,0,0,0,48,0,12,0,0,29,30,120,30, - 1,0,255,240,127,240,255,240,127,240,63,192,31,128,31,192, - 15,0,15,192,30,0,7,224,60,0,7,240,60,0,3,240, - 120,0,1,248,240,0,1,252,240,0,0,255,224,0,0,127, - 192,0,0,127,192,0,0,63,128,0,0,31,128,0,0,31, - 192,0,0,63,224,0,0,127,224,0,0,127,240,0,0,243, - 248,0,1,241,248,0,1,225,252,0,3,192,254,0,7,192, - 126,0,7,128,63,0,15,0,63,128,31,0,31,192,63,0, - 63,224,255,192,255,248,255,192,255,248,29,30,120,29,0,0, - 127,0,31,248,255,128,31,248,31,192,3,192,15,192,3,128, - 7,224,7,128,3,240,7,0,3,240,15,0,1,248,14,0, - 1,248,30,0,0,252,28,0,0,124,60,0,0,126,56,0, - 0,63,120,0,0,63,240,0,0,31,240,0,0,31,224,0, - 0,15,224,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,15,192,0, - 0,15,192,0,0,15,192,0,0,15,192,0,0,31,224,0, - 0,255,252,0,0,255,252,0,23,30,90,26,1,0,63,255, - 254,63,255,254,60,0,254,56,1,252,56,1,248,48,3,248, - 48,7,240,64,7,240,0,15,224,0,15,192,0,31,192,0, - 63,128,0,63,128,0,127,0,0,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,248,0,7,240,0,15,224,0, - 15,224,4,31,192,6,31,192,6,63,128,14,127,0,14,127, - 0,30,255,255,254,127,255,254,12,45,90,16,3,248,255,240, - 255,240,255,240,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,255,240,255,240,255,240,21,46,138,23,1,248,224,0, - 0,248,0,0,120,0,0,120,0,0,124,0,0,60,0,0, - 60,0,0,62,0,0,30,0,0,31,0,0,15,0,0,15, - 0,0,15,128,0,7,128,0,7,128,0,7,192,0,3,192, - 0,3,192,0,3,224,0,1,224,0,1,240,0,0,240,0, - 0,240,0,0,248,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,60,0,0,62,0,0,30,0,0,31,0,0,15, - 0,0,15,0,0,15,128,0,7,128,0,7,128,0,7,192, - 0,3,192,0,3,192,0,1,224,0,1,224,0,1,240,0, - 0,240,0,0,240,0,0,56,12,45,90,16,1,248,255,240, - 255,240,255,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240, - 1,240,255,240,255,240,255,240,19,23,69,24,2,13,0,32, - 0,0,112,0,0,240,0,1,240,0,1,248,0,1,248,0, - 3,188,0,3,188,0,7,60,0,7,30,0,6,30,0,14, - 14,0,14,15,0,12,15,0,28,7,128,28,7,128,24,3, - 128,56,3,192,48,3,192,112,1,224,112,1,224,96,0,224, - 192,0,192,21,3,9,23,1,250,127,255,248,127,255,248,255, - 255,240,11,11,22,15,0,24,60,0,252,0,254,0,126,0, - 63,0,31,0,15,128,7,128,3,192,1,192,0,224,23,22, - 66,24,1,0,0,255,0,15,255,128,31,15,192,62,7,224, - 126,7,224,252,7,224,96,7,224,0,7,224,0,31,224,1, - 255,224,7,255,224,31,231,224,63,135,224,63,7,224,126,7, - 224,126,7,224,126,7,224,126,31,228,127,63,252,63,247,254, - 63,231,240,15,131,128,24,36,108,26,0,0,3,0,0,63, - 128,0,255,128,0,127,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,131,224,31,143,248,31,191,252,31, - 255,252,31,240,254,31,192,126,31,128,63,31,128,63,31,128, - 31,31,128,31,31,128,31,31,128,31,31,128,31,31,128,30, - 31,128,30,31,128,60,31,128,56,31,240,248,31,255,240,15, - 255,192,3,255,128,0,126,0,20,22,66,22,1,0,0,127, - 128,1,255,240,7,135,224,15,3,224,30,1,224,62,0,192, - 124,0,192,124,0,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,0,254,0,0,126,0,32,127,0, - 112,63,193,224,63,255,192,31,255,128,7,255,0,1,252,0, - 25,36,144,27,2,0,0,0,56,0,0,15,248,0,0,15, - 248,0,0,3,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,1, - 248,0,0,1,248,0,0,1,248,0,0,1,248,0,0,249, - 248,0,7,255,248,0,15,255,248,0,31,135,248,0,63,3, - 248,0,62,1,248,0,126,1,248,0,124,1,248,0,252,1, - 248,0,252,1,248,0,252,1,248,0,252,1,248,0,252,1, - 248,0,252,1,248,0,254,1,248,0,126,1,248,0,127,3, - 248,0,127,135,253,0,63,255,255,128,31,253,254,0,15,248, - 252,0,3,224,224,0,19,22,66,23,2,0,0,252,0,7, - 255,0,15,31,128,30,15,128,62,15,192,124,7,192,124,7, - 224,124,7,224,252,7,224,255,255,224,255,255,128,252,0,0, - 252,0,0,252,0,0,254,0,0,126,0,64,127,0,224,63, - 131,192,63,255,128,31,255,0,15,254,0,3,248,0,20,37, - 111,16,1,0,0,15,128,0,63,224,0,255,240,1,255,224, - 3,227,224,7,193,192,7,193,0,15,128,0,15,128,0,15, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,127,255,0,255,254,0,31,132,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,63,224,0,255,252,0, - 255,252,0,25,33,132,25,0,245,0,126,1,128,3,255,223, - 128,7,135,255,0,15,3,254,0,30,1,240,0,30,0,248, - 0,62,0,248,0,62,0,248,0,62,0,248,0,62,0,248, - 0,63,0,240,0,31,129,224,0,15,195,192,0,7,255,128, - 0,1,254,0,0,3,224,0,0,7,192,0,0,15,192,0, - 0,31,254,0,0,31,255,240,0,15,255,252,0,7,255,254, - 0,15,159,255,0,62,0,127,0,124,0,63,0,252,0,31, - 0,252,0,30,0,254,0,30,0,255,0,60,0,127,192,248, - 0,63,255,240,0,15,255,192,0,1,254,0,0,26,36,144, - 28,1,0,1,128,0,0,63,128,0,0,255,128,0,0,255, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,128,0,0,31, - 128,0,0,31,128,0,0,31,128,0,0,31,129,240,0,31, - 143,252,0,31,159,252,0,31,255,254,0,31,248,254,0,31, - 224,126,0,31,192,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,31,128,126,0,31,128,126,0,31, - 128,126,0,31,128,126,0,63,192,255,0,255,243,255,192,255, - 243,255,192,12,32,64,14,1,0,7,128,15,192,31,192,31, - 192,31,128,15,0,0,0,0,0,0,0,0,0,3,128,127, - 128,255,128,127,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,63,192,255,240,255,240,17,43,129,14,250,245,0, - 15,0,0,31,128,0,63,128,0,63,128,0,63,0,0,30, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,128, - 0,127,128,0,255,128,0,127,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,0,0,31,0,0,62,0,16,62, - 0,60,124,0,127,248,0,255,224,0,255,192,0,63,0,0, - 26,36,144,26,1,0,1,128,0,0,63,128,0,0,255,128, - 0,0,255,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,128, - 0,0,31,128,0,0,31,128,0,0,31,128,0,0,31,129, - 255,128,31,129,255,128,31,128,252,0,31,128,248,0,31,131, - 224,0,31,135,192,0,31,143,128,0,31,158,0,0,31,188, - 0,0,31,252,0,0,31,190,0,0,31,191,0,0,31,159, - 128,0,31,143,192,0,31,135,224,0,31,135,240,0,31,131, - 248,0,31,129,252,0,31,128,252,0,63,128,255,192,255,240, - 127,192,255,240,62,0,12,36,72,14,1,0,1,128,63,128, - 255,128,255,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,192, - 255,240,255,240,39,22,110,41,1,0,3,3,224,31,128,127, - 143,248,127,192,255,159,249,255,224,127,255,255,255,240,31,241, - 255,135,240,31,224,255,3,240,31,128,252,3,240,31,128,252, - 3,240,31,128,252,3,240,31,128,252,3,240,31,128,252,3, - 240,31,128,252,3,240,31,128,252,3,240,31,128,252,3,240, - 31,128,252,3,240,31,128,252,3,240,31,128,252,3,240,31, - 128,252,3,240,31,128,252,3,240,63,128,252,3,248,255,247, - 255,159,254,255,247,255,159,254,26,22,88,28,1,0,3,1, - 240,0,127,135,252,0,255,159,252,0,63,191,254,0,31,248, - 254,0,31,224,126,0,31,192,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,63,192,255,0,255,243, - 255,192,255,243,255,192,21,22,66,25,2,0,0,252,0,3, - 255,0,15,15,192,30,7,224,62,7,224,62,3,240,124,3, - 240,124,1,248,252,1,248,252,1,248,252,1,248,252,1,248, - 252,1,248,252,1,248,252,1,240,126,1,240,126,3,224,62, - 3,224,63,3,192,31,135,128,7,254,0,1,248,0,24,33, - 99,27,1,245,3,3,224,127,143,248,255,159,252,63,255,252, - 31,240,254,31,192,126,31,128,63,31,128,63,31,128,31,31, - 128,31,31,128,31,31,128,31,31,128,31,31,128,30,31,128, - 30,31,128,62,31,192,60,31,240,124,31,255,248,31,255,240, - 31,159,224,31,135,128,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,63,192, - 0,255,248,0,255,248,0,24,33,99,26,2,245,0,124,8, - 1,255,28,7,255,248,15,135,248,30,3,248,62,1,248,124, - 1,248,124,1,248,252,1,248,252,1,248,252,1,248,252,1, - 248,252,1,248,252,1,248,254,1,248,126,1,248,127,3,248, - 127,143,248,63,255,248,31,253,248,15,249,248,3,225,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,3,248,0,31,255,0,31,255, - 20,22,66,21,1,0,3,7,192,127,143,240,255,191,240,63, - 255,224,31,241,224,31,224,224,31,192,224,31,128,192,31,128, - 192,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 192,0,255,248,0,255,248,0,16,22,44,20,2,0,7,248, - 31,254,60,62,120,30,248,14,248,12,252,0,255,0,127,192, - 127,240,63,248,15,254,3,254,0,255,128,127,192,63,224,31, - 224,31,240,30,248,60,255,248,63,224,18,30,90,18,255,0, - 0,192,0,1,192,0,7,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,63,255,192,255,255,128,15,193, - 0,15,192,0,15,192,0,15,192,0,15,192,0,15,192,0, - 15,192,0,15,192,0,15,192,0,15,192,0,15,192,0,15, - 192,0,15,192,0,15,192,0,15,192,128,15,227,192,15,255, - 128,7,255,0,3,252,0,1,240,0,26,22,88,27,1,0, - 3,128,28,0,255,135,252,0,255,135,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,129,252,0,31,199,252,128,31,255,255,128,15,254,255,192, - 7,248,126,0,3,224,112,0,24,22,66,24,0,0,255,224, - 255,255,224,255,63,128,60,31,128,60,31,128,56,15,192,120, - 15,192,112,7,192,112,7,224,240,7,224,224,3,241,224,3, - 241,192,1,249,192,1,251,128,0,255,128,0,255,128,0,127, - 0,0,127,0,0,126,0,0,62,0,0,60,0,0,24,0, - 34,22,110,34,0,0,255,224,96,63,192,255,224,112,63,192, - 63,0,240,7,0,31,0,248,15,0,31,128,248,14,0,15, - 129,252,14,0,15,129,252,30,0,15,195,252,28,0,7,195, - 254,28,0,7,195,190,28,0,7,231,63,60,0,3,231,31, - 56,0,3,239,31,184,0,3,254,31,248,0,1,254,15,240, - 0,1,252,15,240,0,1,252,7,240,0,0,252,7,224,0, - 0,248,3,224,0,0,248,3,224,0,0,112,1,192,0,0, - 96,1,128,0,25,22,88,25,0,0,127,241,255,0,127,241, - 255,0,31,192,124,0,15,224,112,0,7,224,224,0,7,241, - 224,0,3,251,192,0,1,255,128,0,0,255,0,0,0,254, - 0,0,0,127,0,0,0,127,0,0,0,127,128,0,0,255, - 192,0,1,207,224,0,3,199,224,0,7,131,240,0,7,3, - 248,0,14,1,252,0,30,1,254,0,255,135,255,128,255,135, - 255,128,25,33,132,24,255,245,127,240,127,128,127,240,127,128, - 31,192,30,0,15,192,28,0,15,192,28,0,7,224,60,0, - 7,224,56,0,3,240,56,0,3,240,112,0,1,240,112,0, - 1,248,240,0,1,248,224,0,0,252,224,0,0,253,224,0, - 0,125,192,0,0,127,192,0,0,127,128,0,0,63,128,0, - 0,63,128,0,0,31,0,0,0,31,0,0,0,14,0,0, - 0,14,0,0,0,30,0,0,0,28,0,0,0,60,0,0, - 0,120,0,0,32,248,0,0,63,240,0,0,127,224,0,0, - 255,192,0,0,255,128,0,0,126,0,0,0,20,22,66,22, - 1,0,63,255,240,63,255,240,56,15,224,56,15,192,48,31, - 192,48,31,128,32,63,0,0,127,0,0,126,0,0,252,0, - 1,252,0,1,248,0,3,240,0,7,240,0,7,224,0,15, - 224,48,31,192,48,31,128,112,63,128,112,127,0,240,127,255, - 240,255,255,224,14,45,90,17,2,249,0,8,0,60,0,248, - 1,240,3,224,7,224,7,192,15,192,15,192,15,192,15,192, - 15,192,15,224,7,224,7,224,7,224,7,224,7,224,7,192, - 15,192,15,128,63,0,254,0,255,128,31,192,7,192,7,224, - 7,224,7,224,7,224,7,224,7,224,15,224,15,192,15,192, - 15,192,15,192,15,192,15,192,7,192,7,224,3,240,0,248, - 0,124,0,8,4,49,49,11,4,246,48,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,192,14,44,88,17,1, - 249,64,0,248,0,124,0,63,0,31,128,15,128,15,192,15, - 192,15,192,15,192,15,192,15,192,31,192,31,128,31,128,31, - 128,31,128,31,128,31,128,15,192,15,252,7,252,1,248,7, - 224,15,192,15,128,31,128,31,128,31,128,31,128,31,128,31, - 192,15,192,15,192,15,192,15,192,15,192,15,128,31,128,31, - 0,62,0,124,0,240,0,64,0,21,8,24,23,1,11,7, - 128,8,15,224,24,31,240,16,63,252,48,49,255,224,96,127, - 192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=15 len=30 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =15 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10[3670] U8G_FONT_SECTION("u8g_font_gdr10") = { - 0,25,24,247,250,10,2,30,4,177,32,255,252,15,251,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,4,0, - 0,2,13,13,5,1,251,64,64,0,0,64,64,64,64,64, - 64,64,192,192,6,10,10,8,1,0,16,28,116,144,144,144, - 144,116,56,16,7,11,11,8,1,255,60,68,68,64,64,240, - 64,64,66,134,252,4,6,6,8,2,2,144,240,144,144,240, - 144,9,10,20,8,255,0,231,128,34,0,22,0,20,0,8, - 0,62,0,8,0,8,0,8,0,28,0,1,17,17,4,2, - 253,128,128,128,128,128,128,128,128,0,128,128,128,128,128,128, - 128,128,6,12,12,8,1,0,112,152,128,96,184,140,196,100, - 24,136,200,112,5,2,2,7,1,9,136,136,10,10,20,12, - 1,0,30,0,127,128,114,128,160,64,160,64,160,64,176,64, - 94,128,97,128,30,0,4,6,6,4,0,5,96,160,96,160, - 240,240,6,8,8,8,1,0,36,72,72,144,144,72,72,36, - 7,3,3,8,0,2,254,2,2,4,1,1,6,1,4,240, - 6,6,6,6,0,6,120,132,180,180,180,120,6,1,1,8, - 1,9,252,4,4,4,6,1,6,112,144,144,224,6,8,8, - 7,1,1,32,32,32,252,32,32,64,248,4,7,7,6,1, - 5,112,144,16,32,64,144,240,4,7,7,5,0,5,112,144, - 16,48,16,144,224,3,3,3,5,2,9,96,64,128,9,12, - 24,9,0,252,195,0,65,0,65,0,65,0,65,0,65,0, - 99,0,125,128,64,0,64,0,96,0,96,0,8,12,12,10, - 1,254,63,202,138,138,202,122,10,10,10,10,10,31,1,2, - 2,2,1,5,128,128,2,4,4,4,1,252,128,192,64,128, - 4,6,6,6,0,5,96,160,32,32,32,112,4,6,6,5, - 0,5,96,144,144,144,96,240,7,8,8,8,1,0,144,72, - 108,36,54,108,72,144,9,10,20,10,1,0,193,0,66,0, - 66,0,68,0,72,0,169,0,23,0,37,0,39,128,67,128, - 8,10,10,10,1,0,193,66,68,68,72,171,21,34,37,79, - 10,11,22,10,0,0,112,0,80,128,33,0,18,0,18,0, - 228,0,8,128,11,128,18,128,19,192,33,192,6,13,13,8, - 1,251,32,32,0,32,32,32,64,64,128,128,132,136,112,10, - 15,30,10,0,0,32,0,24,0,12,0,0,0,0,0,4, - 0,12,0,20,0,18,0,18,0,30,0,33,0,33,0,65, - 128,227,192,10,15,30,10,0,0,2,0,7,0,12,0,16, - 0,0,0,4,0,12,0,20,0,18,0,18,0,30,0,33, - 0,33,0,65,128,227,192,10,15,30,10,0,0,12,0,12, - 0,18,0,33,0,0,0,4,0,12,0,20,0,18,0,18, - 0,30,0,33,0,33,0,65,128,227,192,10,14,28,10,0, - 0,10,0,25,0,38,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,13,26, - 10,0,0,34,0,34,0,0,0,4,0,12,0,20,0,18, - 0,18,0,30,0,33,0,33,0,65,128,227,192,10,15,30, - 10,0,0,12,0,20,0,28,0,0,0,0,0,4,0,12, - 0,20,0,18,0,18,0,30,0,33,0,33,0,65,128,227, - 192,12,10,20,13,1,0,31,224,10,32,10,0,18,0,31, - 224,50,0,34,0,34,0,66,16,231,240,7,14,14,9,1, - 252,62,66,128,128,128,128,128,128,66,102,24,24,8,16,7, - 15,15,8,1,0,64,224,16,8,0,252,68,64,64,124,64, - 64,64,66,254,7,15,15,8,1,0,8,28,48,0,0,252, - 68,64,64,124,64,64,64,66,254,7,15,15,8,1,0,16, - 56,72,4,0,252,68,64,64,124,64,64,64,66,254,7,13, - 13,8,1,0,136,136,0,252,68,64,64,124,64,64,64,66, - 254,4,15,15,5,0,0,128,192,32,16,0,112,32,32,32, - 32,32,32,32,32,112,4,15,15,5,1,0,32,48,64,128, - 0,224,64,64,64,64,64,64,64,64,224,5,15,15,5,0, - 0,32,112,136,0,0,112,32,32,32,32,32,32,32,32,112, - 5,13,13,5,0,0,136,136,0,112,32,32,32,32,32,32, - 32,32,112,8,10,10,10,1,0,252,70,65,65,241,65,65, - 66,66,252,9,14,28,11,1,0,18,0,58,0,4,0,0, - 0,195,128,97,0,97,0,81,0,73,0,77,0,69,0,67, - 0,67,0,225,0,8,15,15,10,1,0,32,112,8,4,0, - 60,66,129,129,129,129,129,130,66,60,8,15,15,10,1,0, - 4,14,24,0,0,60,66,129,129,129,129,129,130,66,60,8, - 15,15,10,1,0,8,28,36,66,0,60,66,129,129,129,129, - 129,130,66,60,8,14,14,10,1,0,18,50,76,0,60,66, - 129,129,129,129,129,130,66,60,8,13,13,10,1,0,68,68, - 0,60,66,129,129,129,129,129,130,66,60,5,5,5,7,1, - 2,136,80,32,80,136,8,10,10,10,1,0,29,98,131,133, - 137,145,161,194,66,188,9,15,30,11,1,0,32,0,48,0, - 12,0,0,0,0,0,227,128,65,0,65,0,65,0,65,0, - 65,0,65,0,65,0,34,0,60,0,9,15,30,11,1,0, - 2,0,6,0,8,0,16,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,65,0,34,0,60,0,9,15, - 30,11,1,0,8,0,28,0,34,0,0,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,13,26,11,1,0,34,0,34,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,65,0,34,0, - 60,0,9,15,30,10,1,0,4,0,14,0,24,0,0,0, - 0,0,195,128,97,0,50,0,22,0,28,0,8,0,8,0, - 8,0,8,0,28,0,7,10,10,9,1,0,224,64,124,70, - 66,66,66,124,64,224,8,13,13,10,1,0,28,38,66,66, - 68,72,80,88,78,67,81,81,206,7,12,12,8,1,0,64, - 32,16,0,28,100,4,28,100,132,140,118,7,12,12,8,1, - 0,8,16,32,0,28,100,4,28,100,132,140,118,7,12,12, - 8,1,0,48,72,136,4,28,100,4,28,100,132,140,118,7, - 11,11,8,1,0,100,152,0,28,100,4,28,100,132,140,118, - 7,11,11,8,1,0,136,136,0,28,100,4,28,100,132,140, - 118,7,12,12,8,1,0,48,80,112,0,28,100,4,28,100, - 132,140,118,10,8,16,12,1,0,59,128,204,64,136,64,63, - 192,72,0,136,0,156,192,231,0,6,12,12,7,1,252,60, - 72,128,128,128,128,196,120,32,48,16,32,6,12,12,8,1, - 0,96,32,16,0,56,68,132,252,128,128,68,120,6,12,12, - 8,1,0,12,24,32,0,56,68,132,252,128,128,68,120,6, - 12,12,8,1,0,48,72,132,0,56,68,132,252,128,128,68, - 120,6,11,11,8,1,0,132,136,0,56,68,132,252,128,128, - 68,120,4,12,12,5,0,0,192,64,32,0,32,96,32,32, - 32,32,32,112,4,12,12,5,1,0,48,96,64,0,64,192, - 64,64,64,64,64,224,5,12,12,5,0,0,32,80,136,0, - 32,96,32,32,32,32,32,112,5,11,11,5,0,0,136,136, - 0,32,96,32,32,32,32,32,112,6,12,12,8,1,0,104, - 28,120,8,52,204,132,132,132,132,72,112,8,11,11,9,1, - 0,54,76,0,78,210,98,66,66,66,66,231,7,12,12,9, - 1,0,96,32,16,0,56,68,130,130,130,130,68,56,7,12, - 12,9,1,0,12,8,16,0,56,68,130,130,130,130,68,56, - 7,12,12,9,1,0,16,40,68,0,56,68,130,130,130,130, - 68,56,7,11,11,9,1,0,52,216,0,56,68,130,130,130, - 130,68,56,7,11,11,9,1,0,132,132,0,56,68,130,130, - 130,130,68,56,5,6,6,7,1,2,32,32,0,248,32,32, - 7,8,8,9,1,0,62,68,142,146,146,226,68,248,9,12, - 24,9,0,0,48,0,24,0,8,0,0,0,195,0,65,0, - 65,0,65,0,65,0,65,0,67,0,61,128,9,12,24,9, - 0,0,6,0,4,0,8,0,0,0,195,0,65,0,65,0, - 65,0,65,0,65,0,67,0,61,128,9,12,24,9,0,0, - 8,0,20,0,34,0,0,0,195,0,65,0,65,0,65,0, - 65,0,65,0,67,0,61,128,9,11,22,9,0,0,34,0, - 66,0,0,0,195,0,65,0,65,0,65,0,65,0,65,0, - 67,0,61,128,8,16,16,8,0,252,6,12,8,0,231,98, - 34,36,52,20,24,8,8,16,160,192,7,17,17,9,1,252, - 64,192,64,64,64,92,102,66,66,66,66,100,120,64,64,64, - 224,8,15,15,8,0,252,66,66,0,231,98,34,36,52,20, - 24,8,8,16,160,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 10 - Calculated Max Values w= 8 h=16 x= 2 y= 6 dx= 8 dy= 0 ascent=13 len=16 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10n[263] U8G_FONT_SECTION("u8g_font_gdr10n") = { - 0,25,24,247,250,10,0,0,0,0,42,58,0,13,253,10, - 0,6,7,7,8,1,6,32,168,236,48,252,164,32,6,6, - 6,7,1,2,32,32,32,252,32,32,2,4,4,4,1,253, - 192,64,64,128,4,1,1,6,1,4,240,1,2,2,4,2, - 0,128,128,8,16,16,8,0,253,3,2,6,4,4,12,8, - 8,16,16,48,32,32,96,64,192,6,10,10,8,1,0,56, - 72,132,132,132,132,132,132,72,112,5,10,10,8,2,0,32, - 224,32,32,32,32,32,32,32,248,5,10,10,8,2,0,56, - 200,136,8,16,32,32,64,136,248,6,10,10,8,1,0,112, - 136,136,16,48,8,4,4,140,120,6,10,10,8,1,0,8, - 24,40,40,72,136,252,8,8,60,6,10,10,8,1,0,124, - 64,64,120,140,4,4,4,132,120,6,10,10,8,1,0,24, - 32,64,128,248,132,132,132,72,56,6,10,10,8,1,0,252, - 132,8,8,8,16,16,32,32,64,6,10,10,8,1,0,120, - 196,196,200,56,204,132,132,132,120,6,10,10,8,1,0,56, - 200,132,132,132,124,4,8,16,96,1,8,8,4,2,0,128, - 128,0,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--17-170-72-72-P-77-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=14 h=17 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=25 h=24 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =10 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr10r[1723] U8G_FONT_SECTION("u8g_font_gdr10r") = { - 0,25,24,247,250,10,2,30,4,177,32,127,252,14,252,13, - 252,0,0,0,4,0,0,2,12,12,5,1,0,64,192,64, - 64,64,64,64,64,64,0,64,64,5,5,5,7,1,7,216, - 216,88,72,72,7,9,9,8,1,1,20,36,126,40,72,252, - 80,80,144,7,12,12,8,0,255,16,56,84,80,112,56,30, - 18,146,212,120,16,10,10,20,12,1,0,96,128,145,0,146, - 0,150,0,164,0,105,128,18,64,50,64,34,64,65,128,10, - 12,24,11,1,0,28,0,36,0,36,0,36,0,40,0,51, - 192,81,0,153,0,141,0,134,0,135,0,121,192,2,5,5, - 4,1,7,192,192,64,64,64,3,16,16,5,1,253,32,64, - 64,128,128,128,128,128,128,128,128,128,128,64,64,32,3,16, - 16,5,1,253,128,64,64,32,32,32,32,32,32,32,32,32, - 32,64,64,128,6,7,7,8,1,6,32,168,236,48,252,164, - 32,6,6,6,7,1,2,32,32,32,252,32,32,2,4,4, - 4,1,253,192,64,64,128,4,1,1,6,1,4,240,1,2, - 2,4,2,0,128,128,8,16,16,8,0,253,3,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,10,10,8, - 1,0,56,72,132,132,132,132,132,132,72,112,5,10,10,8, - 2,0,32,224,32,32,32,32,32,32,32,248,5,10,10,8, - 2,0,56,200,136,8,16,32,32,64,136,248,6,10,10,8, - 1,0,112,136,136,16,48,8,4,4,140,120,6,10,10,8, - 1,0,8,24,40,40,72,136,252,8,8,60,6,10,10,8, - 1,0,124,64,64,120,140,4,4,4,132,120,6,10,10,8, - 1,0,24,32,64,128,248,132,132,132,72,56,6,10,10,8, - 1,0,252,132,8,8,8,16,16,32,32,64,6,10,10,8, - 1,0,120,196,196,200,56,204,132,132,132,120,6,10,10,8, - 1,0,56,200,132,132,132,124,4,8,16,96,1,8,8,4, - 2,0,128,128,0,0,0,0,128,128,2,11,11,4,1,253, - 64,64,0,0,0,0,0,192,64,64,128,6,5,5,7,1, - 2,12,112,128,112,12,6,3,3,7,1,3,252,0,252,6, - 5,5,7,1,2,192,56,12,112,128,6,12,12,7,1,0, - 56,68,132,4,4,8,16,32,32,32,32,32,12,14,28,14, - 1,253,15,128,16,64,96,32,71,144,136,144,144,144,144,144, - 144,144,144,144,137,160,78,192,96,0,48,96,15,128,10,10, - 20,10,0,0,4,0,12,0,20,0,18,0,18,0,30,0, - 33,0,33,0,65,128,227,192,7,10,10,9,1,0,248,68, - 68,68,124,70,66,66,66,252,7,10,10,9,1,0,62,66, - 128,128,128,128,128,128,66,60,8,10,10,10,1,0,252,70, - 65,65,65,65,65,66,66,252,7,10,10,8,1,0,252,68, - 64,64,124,64,64,64,66,254,7,10,10,8,1,0,254,68, - 64,64,120,64,64,64,64,224,9,10,20,10,1,0,30,0, - 99,0,128,0,128,0,128,0,135,128,129,0,129,0,97,0, - 62,0,9,10,20,11,1,0,227,128,65,0,65,0,65,0, - 127,0,65,0,65,0,65,0,65,0,227,128,3,10,10,5, - 1,0,224,64,64,64,64,64,64,64,64,224,6,13,13,5, - 254,253,60,8,8,8,8,8,8,8,8,8,8,16,224,9, - 10,20,10,1,0,231,0,68,0,72,0,80,0,96,0,80, - 0,88,0,76,0,70,0,227,128,7,10,10,8,1,0,224, - 64,64,64,64,64,64,64,66,254,12,10,20,14,1,0,192, - 112,96,96,96,224,112,224,81,96,89,32,74,32,78,32,68, - 32,228,240,9,10,20,11,1,0,195,128,97,0,97,0,81, - 0,73,0,77,0,69,0,67,0,67,0,225,0,8,10,10, - 10,1,0,60,66,129,129,129,129,129,130,66,60,7,10,10, - 9,1,0,252,70,66,66,70,120,64,64,64,224,10,12,24, - 10,1,254,60,0,66,0,129,0,129,0,129,0,129,0,129, - 0,130,0,66,0,60,0,6,128,3,192,9,10,20,10,1, - 0,252,0,70,0,66,0,66,0,68,0,120,0,76,0,68, - 0,70,0,227,128,6,10,10,8,1,0,120,140,128,192,112, - 8,4,132,132,248,9,10,20,9,0,0,255,128,136,128,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,28,0,9, - 10,20,11,1,0,227,128,65,0,65,0,65,0,65,0,65, - 0,65,0,65,0,34,0,60,0,11,10,20,11,0,0,241, - 224,32,128,32,128,49,0,17,0,25,0,10,0,10,0,14, - 0,4,0,14,10,20,14,0,0,241,28,99,8,35,16,35, - 144,36,144,52,144,20,80,24,96,24,96,24,32,10,10,20, - 10,0,0,243,192,33,0,51,0,26,0,12,0,12,0,18, - 0,49,0,33,128,243,192,9,10,20,10,1,0,195,128,97, - 0,50,0,22,0,28,0,8,0,8,0,8,0,8,0,28, - 0,8,10,10,9,0,0,127,66,70,4,8,24,16,33,97, - 255,4,16,16,5,1,253,240,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,16,16,8,0,253,192,64,64, - 32,32,48,16,16,8,8,12,4,4,6,2,3,4,16,16, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,240,7,8,8,8,1,5,16,48,56,72,72,76,132, - 134,6,1,1,8,1,254,252,4,3,3,5,0,9,192,96, - 48,7,8,8,8,1,0,28,100,4,28,100,132,140,118,8, - 13,13,9,0,0,64,192,64,64,64,78,115,65,65,65,65, - 66,60,6,8,8,7,1,0,60,72,128,128,128,128,196,120, - 8,13,13,9,1,0,6,2,2,2,2,62,66,130,130,130, - 130,70,59,6,8,8,8,1,0,56,68,132,252,128,128,68, - 120,6,13,13,5,1,0,28,40,64,64,64,240,64,64,64, - 64,64,64,240,8,12,12,8,0,252,63,70,130,130,196,56, - 96,60,195,129,194,124,8,13,13,9,1,0,64,192,64,64, - 64,78,82,98,66,66,66,66,231,3,11,11,5,1,0,64, - 192,0,64,192,64,64,64,64,64,224,5,15,15,4,254,252, - 8,24,0,8,24,8,8,8,8,8,8,8,8,16,224,8, - 13,13,9,1,0,64,192,64,64,64,78,72,80,96,80,72, - 76,231,3,13,13,5,1,0,64,192,64,64,64,64,64,64, - 64,64,64,64,224,11,8,16,12,1,0,221,192,102,64,68, - 64,68,64,68,64,68,64,68,64,238,224,8,8,8,9,1, - 0,78,210,98,66,66,66,66,231,7,8,8,9,1,0,56, - 68,130,130,130,130,68,56,7,12,12,9,1,252,92,230,66, - 66,66,66,68,120,64,64,64,224,8,12,12,9,1,252,62, - 66,130,130,130,130,70,58,2,2,2,7,6,8,8,7,1, - 0,220,104,64,64,64,64,64,224,5,8,8,7,1,0,112, - 136,128,96,24,136,136,240,5,10,10,6,1,0,64,64,248, - 64,64,64,64,64,64,120,9,8,16,9,0,0,195,0,65, - 0,65,0,65,0,65,0,65,0,67,0,61,128,8,8,8, - 8,0,0,227,98,34,36,52,20,24,8,12,8,16,12,0, - 0,226,112,102,32,38,32,39,64,41,64,57,64,24,128,16, - 128,8,8,8,9,0,0,247,34,52,24,28,36,66,231,8, - 12,12,8,0,252,231,98,34,36,52,20,24,8,8,16,160, - 192,6,8,8,8,1,0,252,136,16,48,32,64,196,252,4, - 16,16,6,1,253,48,64,64,64,96,32,32,64,224,32,32, - 96,64,64,64,32,1,17,17,4,2,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,16,16,5, - 0,253,64,32,32,32,32,32,32,56,48,32,32,32,32,32, - 32,192,8,2,2,8,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y=10 dx=15 dy= 0 ascent=16 len=34 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11[3977] U8G_FONT_SECTION("u8g_font_gdr11") = { - 0,26,25,247,250,11,2,61,5,21,32,255,252,16,251,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,4, - 0,0,2,13,13,5,1,251,64,192,0,64,64,64,64,64, - 64,64,64,64,64,7,11,11,8,1,0,16,24,118,144,144, - 144,144,212,126,16,16,7,11,11,8,1,0,60,68,68,64, - 64,240,64,64,66,130,254,6,6,6,8,1,2,248,76,72, - 72,120,132,9,11,22,8,0,0,231,128,98,0,50,0,20, - 0,28,0,8,0,127,0,8,0,8,0,8,0,28,0,1, - 19,19,4,2,252,128,128,128,128,128,128,128,128,0,0,0, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,248,142,130,66,60,12,132,196,120,5,2,2,7,1, - 10,136,136,11,11,22,13,1,0,31,0,32,128,94,64,162, - 32,160,32,160,32,160,32,177,32,94,64,32,128,31,0,5, - 6,6,5,0,5,48,80,112,144,248,240,7,8,8,9,1, - 0,38,36,72,152,152,72,36,38,7,3,3,8,1,2,254, - 2,2,5,1,1,6,1,4,248,6,7,7,6,0,6,120, - 72,188,188,180,104,120,6,1,1,9,1,10,252,4,4,4, - 6,1,7,112,144,144,224,7,8,8,7,0,1,16,16,254, - 16,16,16,0,126,4,7,7,6,1,5,112,144,16,32,64, - 144,240,5,7,7,6,0,5,56,72,8,24,8,136,112,3, - 4,4,6,2,9,32,96,64,128,8,12,12,10,1,252,198, - 66,66,66,66,66,102,123,64,64,64,96,8,13,13,10,1, - 254,63,202,138,138,138,202,122,10,10,10,10,10,31,1,2, - 2,3,1,5,128,128,2,4,4,4,1,252,192,64,192,128, - 4,7,7,6,1,5,32,224,32,32,32,32,240,4,6,6, - 5,0,5,96,144,144,144,96,240,7,8,8,9,1,0,144, - 72,100,54,54,100,72,144,10,11,22,11,1,0,192,128,65, - 0,65,0,66,0,70,0,164,0,8,128,27,128,18,128,35, - 192,101,192,9,11,22,11,1,0,193,0,65,0,66,0,68, - 0,68,0,168,0,11,128,20,128,33,0,34,128,71,128,10, - 11,22,10,0,0,96,128,144,128,33,0,17,0,18,0,228, - 0,4,128,11,128,18,128,19,192,37,192,6,13,13,8,1, - 251,16,48,0,16,16,16,32,64,128,132,132,136,112,11,15, - 30,11,0,0,16,0,56,0,4,0,2,0,4,0,12,0, - 14,0,18,0,18,0,19,0,31,0,33,0,33,128,32,128, - 241,224,11,15,30,11,0,0,1,0,7,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,11,15,30,11,0,0,4,0,14,0, - 17,0,32,0,4,0,12,0,14,0,18,0,18,0,19,0, - 31,0,33,0,33,128,32,128,241,224,11,15,30,11,0,0, - 9,0,29,0,34,0,0,0,4,0,12,0,14,0,18,0, - 18,0,19,0,31,0,33,0,33,128,32,128,241,224,11,14, - 28,11,0,0,33,0,33,0,0,0,4,0,12,0,14,0, - 18,0,18,0,19,0,31,0,33,0,33,128,32,128,241,224, - 11,16,32,11,0,0,4,0,10,0,18,0,12,0,0,0, - 4,0,12,0,14,0,18,0,18,0,19,0,31,0,33,0, - 33,128,32,128,241,224,13,11,22,14,0,0,15,248,5,8, - 5,0,9,0,15,240,17,0,17,0,17,0,33,8,33,8, - 243,248,9,15,30,10,1,252,62,0,66,0,128,0,128,0, - 128,0,128,0,128,0,128,0,192,0,97,128,62,0,8,0, - 12,0,4,0,8,0,7,15,15,9,1,0,64,224,24,0, - 254,66,64,64,124,64,64,64,66,66,254,7,15,15,9,1, - 0,4,12,48,0,254,66,64,64,124,64,64,64,66,66,254, - 7,15,15,9,1,0,16,40,68,0,254,66,64,64,124,64, - 64,64,66,66,254,7,14,14,9,1,0,68,68,0,254,66, - 64,64,124,64,64,64,66,66,254,4,15,15,5,0,0,128, - 192,48,0,112,32,32,32,32,32,32,32,32,32,112,5,15, - 15,5,1,0,16,56,192,0,224,64,64,64,64,64,64,64, - 64,64,224,5,15,15,5,0,0,32,80,136,0,112,32,32, - 32,32,32,32,32,32,32,112,5,14,14,5,0,0,136,136, - 0,112,32,32,32,32,32,32,32,32,32,112,9,11,22,11, - 1,0,252,0,67,0,65,0,64,128,64,128,240,128,64,128, - 64,128,65,0,67,0,252,0,10,15,30,12,1,0,25,0, - 57,0,38,0,0,0,193,192,96,128,112,128,80,128,72,128, - 76,128,70,128,66,128,65,128,65,128,224,128,9,15,30,11, - 1,0,32,0,112,0,12,0,0,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,65,0,98,0,60,0, - 9,15,30,11,1,0,2,0,6,0,24,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,9,15,30,11,1,0,8,0,20,0,34,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,65,0,98,0,60,0,9,15,30,11,1,0,18,0, - 58,0,68,0,0,0,30,0,99,0,129,0,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,14,28,11, - 1,0,34,0,34,0,0,0,30,0,99,0,129,0,128,128, - 128,128,128,128,128,128,128,128,65,0,98,0,60,0,6,6, - 6,7,1,2,140,88,48,48,88,140,9,11,22,11,1,0, - 30,128,35,0,67,0,134,128,132,128,136,128,144,128,176,128, - 97,0,98,0,188,0,10,15,30,12,1,0,32,0,24,0, - 4,0,2,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,1,0, - 2,0,7,0,8,0,16,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,15, - 30,12,1,0,12,0,30,0,34,0,1,0,225,192,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,33,0, - 30,0,10,14,28,12,1,0,34,0,34,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 33,0,30,0,10,15,30,11,0,0,1,0,7,0,12,0, - 0,0,225,192,48,128,17,0,25,0,10,0,14,0,4,0, - 4,0,4,0,4,0,14,0,7,11,11,9,1,0,240,64, - 124,70,66,66,66,68,124,64,240,8,14,14,10,1,0,28, - 38,66,66,66,76,80,80,76,71,65,81,81,222,7,13,13, - 8,1,0,64,96,48,16,0,60,68,132,28,100,132,140,118, - 7,13,13,8,1,0,12,8,16,32,0,60,68,132,28,100, - 132,140,118,7,13,13,8,1,0,48,56,72,132,0,60,68, - 132,28,100,132,140,118,7,12,12,8,1,0,116,152,0,0, - 60,68,132,28,100,132,140,118,7,12,12,8,1,0,132,132, - 0,0,60,68,132,28,100,132,140,118,7,13,13,8,1,0, - 48,72,72,48,0,60,68,132,28,100,132,140,118,11,8,16, - 12,1,0,29,192,102,32,68,32,159,224,100,0,132,0,142, - 32,115,192,7,12,12,8,1,252,60,68,128,128,128,128,194, - 124,16,24,8,16,6,13,13,8,1,0,96,32,16,16,0, - 56,68,132,252,128,128,68,120,6,13,13,8,1,0,12,8, - 16,16,0,56,68,132,252,128,128,68,120,6,13,13,8,1, - 0,16,56,108,68,0,56,68,132,252,128,128,68,120,6,12, - 12,8,1,0,68,68,0,0,56,68,132,252,128,128,68,120, - 4,13,13,5,0,0,192,64,32,32,16,32,96,32,32,32, - 32,32,112,4,13,13,5,1,0,48,32,64,64,0,64,192, - 64,64,64,64,64,224,5,13,13,5,0,0,32,112,216,136, - 0,32,96,32,32,32,32,32,112,5,12,12,5,0,0,136, - 136,0,0,32,96,32,32,32,32,32,112,7,13,13,9,1, - 0,96,30,56,68,4,62,198,130,130,130,132,68,56,8,12, - 12,10,1,0,50,76,0,0,78,210,98,66,66,66,66,231, - 7,13,13,9,1,0,96,32,16,8,0,56,196,130,130,130, - 130,68,56,7,13,13,9,1,0,4,12,24,16,0,56,196, - 130,130,130,130,68,56,7,13,13,9,1,0,16,56,36,68, - 0,56,196,130,130,130,130,68,56,7,12,12,9,1,0,50, - 92,0,0,56,196,130,130,130,130,68,56,7,12,12,9,1, - 0,68,68,0,0,56,196,130,130,130,130,68,56,6,6,6, - 7,1,2,32,32,0,252,32,32,7,9,9,9,1,0,2, - 62,68,138,146,162,226,68,248,8,13,13,10,1,0,96,48, - 16,8,0,198,66,66,66,66,66,70,59,8,13,13,10,1, - 0,4,12,8,16,0,198,66,66,66,66,66,70,59,8,13, - 13,10,1,0,24,56,36,66,0,198,66,66,66,66,66,70, - 59,8,12,12,10,1,0,68,68,0,0,198,66,66,66,66, - 66,70,59,9,17,34,9,0,252,2,0,4,0,12,0,8, - 0,0,0,243,128,97,0,34,0,50,0,20,0,20,0,28, - 0,8,0,8,0,16,0,176,0,224,0,8,18,18,10,1, - 252,64,192,64,64,64,64,78,115,65,65,65,65,98,124,64, - 64,64,240,9,16,32,9,0,252,34,0,34,0,0,0,0, - 0,243,128,97,0,34,0,50,0,20,0,20,0,28,0,8, - 0,8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=17 x= 1 y= 6 dx= 9 dy= 0 ascent=14 len=17 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11n[276] U8G_FONT_SECTION("u8g_font_gdr11n") = { - 0,26,25,247,250,11,0,0,0,0,42,58,0,14,253,11, - 0,6,8,8,8,1,6,48,16,164,120,120,164,16,48,7, - 6,6,7,0,2,16,16,16,254,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,2,2, - 4,1,0,192,128,8,17,17,8,0,253,1,2,2,6,4, - 4,12,8,8,16,16,48,32,32,96,64,192,6,11,11,8, - 1,0,48,72,132,132,132,132,132,132,132,72,48,6,11,11, - 8,1,0,16,240,16,16,16,16,16,16,16,16,124,6,11, - 11,8,1,0,28,100,68,4,8,8,16,32,68,68,252,6, - 11,11,7,0,0,56,68,68,4,24,12,4,4,4,140,120, - 7,11,11,8,0,0,4,12,12,20,36,36,68,254,4,4, - 30,6,11,11,8,1,0,124,64,64,64,120,132,4,4,4, - 132,120,6,11,11,8,1,0,12,48,64,192,184,196,132,132, - 132,72,56,7,11,11,8,1,0,254,132,4,8,8,8,16, - 16,32,32,96,7,11,11,9,1,0,120,196,196,196,120,60, - 194,130,130,130,124,6,11,11,8,1,0,56,200,132,132,132, - 132,124,4,8,16,224,2,8,8,4,1,0,192,128,0,0, - 0,0,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--18-180-72-72-P-81-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=19 x= 2 y= 9 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=26 h=25 x=-9 y=-6 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr11r[1868] U8G_FONT_SECTION("u8g_font_gdr11r") = { - 0,26,25,247,250,11,2,61,5,21,32,127,252,15,252,14, - 252,0,0,0,4,0,0,2,13,13,5,1,0,64,64,64, - 64,64,64,64,64,64,64,0,192,128,5,6,6,8,1,7, - 200,200,72,72,72,72,8,10,10,8,1,1,18,20,20,127, - 36,40,254,72,80,144,7,14,14,8,1,254,16,16,126,148, - 144,240,56,28,20,148,148,248,16,16,11,11,22,13,1,0, - 96,192,161,128,145,0,146,0,166,0,101,192,10,32,18,32, - 50,32,34,32,65,192,11,13,26,12,1,0,28,0,34,0, - 34,0,34,0,36,0,56,0,49,224,216,128,156,128,142,128, - 135,0,135,128,124,224,2,6,6,5,1,7,192,192,64,64, - 64,64,3,17,17,6,1,253,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,64,64,32,3,17,17,6,1,253,128, - 64,64,32,32,32,32,32,32,32,32,32,32,32,64,64,128, - 6,8,8,8,1,6,48,16,164,120,120,164,16,48,7,6, - 6,7,0,2,16,16,16,254,16,16,2,5,5,4,1,253, - 64,192,64,64,128,5,1,1,6,1,4,248,2,2,2,4, - 1,0,192,128,8,17,17,8,0,253,1,2,2,6,4,4, - 12,8,8,16,16,48,32,32,96,64,192,6,11,11,8,1, - 0,48,72,132,132,132,132,132,132,132,72,48,6,11,11,8, - 1,0,16,240,16,16,16,16,16,16,16,16,124,6,11,11, - 8,1,0,28,100,68,4,8,8,16,32,68,68,252,6,11, - 11,7,0,0,56,68,68,4,24,12,4,4,4,140,120,7, - 11,11,8,0,0,4,12,12,20,36,36,68,254,4,4,30, - 6,11,11,8,1,0,124,64,64,64,120,132,4,4,4,132, - 120,6,11,11,8,1,0,12,48,64,192,184,196,132,132,132, - 72,56,7,11,11,8,1,0,254,132,4,8,8,8,16,16, - 32,32,96,7,11,11,9,1,0,120,196,196,196,120,60,194, - 130,130,130,124,6,11,11,8,1,0,56,200,132,132,132,132, - 124,4,8,16,224,2,8,8,4,1,0,192,128,0,0,0, - 0,192,128,2,11,11,4,1,253,192,128,0,0,0,0,64, - 192,64,64,128,6,6,6,8,1,2,4,56,224,192,56,12, - 6,4,4,8,1,3,252,0,0,252,6,6,6,8,1,2, - 192,112,12,28,112,128,6,13,13,8,1,0,56,68,132,132, - 4,8,16,32,32,32,0,48,32,13,15,30,15,1,253,7, - 192,24,96,32,16,64,16,135,136,136,136,144,136,144,136,144, - 136,144,144,137,144,78,224,96,16,48,32,15,192,11,11,22, - 11,0,0,4,0,12,0,14,0,18,0,18,0,19,0,31, - 0,33,0,33,128,32,128,241,224,8,11,11,10,1,0,252, - 66,66,68,126,67,65,65,65,67,254,8,11,11,10,1,0, - 62,66,128,128,128,128,128,128,128,67,60,9,11,22,11,1, - 0,252,0,67,0,65,0,64,128,64,128,64,128,64,128,64, - 128,65,0,67,0,252,0,7,11,11,9,1,0,254,66,64, - 64,124,64,64,64,66,66,254,7,11,11,9,1,0,254,66, - 64,64,124,64,64,64,64,64,240,10,11,22,11,1,0,15, - 0,49,128,64,0,128,0,128,0,128,0,131,192,128,128,64, - 128,96,128,31,0,10,11,22,12,1,0,225,192,64,128,64, - 128,64,128,64,128,127,128,64,128,64,128,64,128,64,128,225, - 192,3,11,11,5,1,0,224,64,64,64,64,64,64,64,64, - 64,224,6,14,14,6,254,253,60,8,8,8,8,8,8,8, - 8,8,8,8,144,224,9,11,22,10,1,0,231,128,70,0, - 76,0,72,0,80,0,112,0,88,0,72,0,68,0,70,0, - 227,128,7,11,11,9,1,0,224,64,64,64,64,64,64,64, - 66,66,254,13,11,22,15,1,0,224,56,96,96,96,96,80, - 160,80,160,88,160,73,32,77,48,70,48,70,48,228,120,10, - 11,22,12,1,0,193,192,96,128,112,128,80,128,72,128,76, - 128,70,128,66,128,65,128,65,128,224,128,9,11,22,11,1, - 0,30,0,99,0,129,0,128,128,128,128,128,128,128,128,128, - 128,65,0,98,0,60,0,7,11,11,9,1,0,252,66,66, - 66,66,92,96,64,64,64,240,10,14,28,11,1,253,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,65,0, - 98,0,60,0,6,0,3,64,1,192,9,11,22,10,1,0, - 252,0,70,0,66,0,66,0,68,0,72,0,120,0,76,0, - 70,0,66,0,227,128,7,11,11,9,1,0,60,198,128,128, - 112,28,6,2,130,196,248,9,11,22,10,0,0,255,128,136, - 128,136,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,28,0,10,11,22,12,1,0,225,192,64,128,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,33,0,30,0,11, - 11,22,12,0,0,240,224,32,64,32,128,48,128,16,128,25, - 0,9,0,9,0,14,0,6,0,4,0,15,11,22,15,0, - 0,241,30,33,8,33,136,34,136,50,136,50,200,20,80,20, - 112,20,48,24,48,8,32,11,11,22,11,0,0,243,192,32, - 128,49,0,26,0,14,0,4,0,14,0,19,0,49,128,32, - 192,241,224,10,11,22,11,0,0,225,192,48,128,17,0,25, - 0,10,0,14,0,4,0,4,0,4,0,4,0,14,0,8, - 11,11,9,1,0,255,134,132,12,24,16,48,32,65,193,255, - 4,17,17,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,240,8,17,17,8,0,253,192,64,96, - 32,32,48,16,16,8,8,12,4,4,6,2,2,1,4,17, - 17,5,0,253,240,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,48,56,40,76, - 76,68,134,130,7,1,1,8,1,254,254,4,4,4,6,0, - 9,192,96,32,16,7,8,8,8,1,0,60,68,132,28,100, - 132,140,118,8,14,14,9,0,0,64,192,64,64,64,64,78, - 115,65,65,65,65,66,60,6,8,8,8,1,0,60,68,128, - 128,128,128,196,120,7,14,14,9,1,0,12,4,4,4,4, - 4,60,196,132,132,132,132,76,118,6,8,8,8,1,0,56, - 68,132,252,128,128,68,120,6,14,14,6,1,0,28,40,64, - 64,64,64,248,64,64,64,64,64,64,240,9,12,24,8,0, - 252,61,128,194,0,130,0,194,0,124,0,32,0,112,0,63, - 0,193,0,129,0,130,0,124,0,8,14,14,10,1,0,64, - 192,64,64,64,64,78,114,98,66,66,66,66,231,3,12,12, - 5,1,0,192,192,0,0,64,192,64,64,64,64,64,224,5, - 16,16,5,254,252,24,24,0,0,8,24,8,8,8,8,8, - 8,8,8,16,224,8,14,14,9,1,0,64,192,64,64,64, - 64,79,72,80,112,80,72,68,231,3,14,14,5,1,0,64, - 192,64,64,64,64,64,64,64,64,64,64,64,224,13,8,16, - 15,1,0,206,112,115,144,98,16,66,16,66,16,66,16,66, - 16,231,56,8,8,8,10,1,0,78,210,98,66,66,66,66, - 231,7,8,8,9,1,0,56,196,130,130,130,130,68,56,8, - 12,12,10,1,252,206,115,65,65,65,65,98,92,64,64,64, - 224,8,12,12,9,1,252,62,66,130,130,130,130,70,58,2, - 2,2,15,6,8,8,7,1,0,220,100,64,64,64,64,64, - 224,5,8,8,7,1,0,112,136,128,96,24,136,136,240,5, - 11,11,6,1,0,64,64,64,248,64,64,64,64,64,64,120, - 8,8,8,10,1,0,198,66,66,66,66,66,70,59,9,8, - 16,9,0,0,243,128,98,0,34,0,50,0,20,0,20,0, - 28,0,8,0,13,8,16,13,0,0,242,56,98,32,39,32, - 37,32,53,160,24,192,24,192,16,192,9,8,16,9,0,0, - 247,128,34,0,20,0,24,0,28,0,38,0,35,0,247,128, - 9,12,24,9,0,252,243,128,97,0,34,0,50,0,20,0, - 20,0,28,0,8,0,8,0,16,0,176,0,224,0,6,8, - 8,8,1,0,252,136,24,16,32,64,196,252,5,17,17,6, - 1,253,24,32,32,32,32,32,32,32,192,32,32,32,32,32, - 32,32,24,1,19,19,4,2,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,5,17,17,6, - 0,253,64,160,32,32,32,32,32,32,24,32,32,32,32,32, - 32,64,192,8,2,2,9,0,4,57,206,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=11 dx=16 dy= 0 ascent=17 len=36 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =17 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12[4200] U8G_FONT_SECTION("u8g_font_gdr12") = { - 0,28,28,246,249,12,2,80,5,85,32,255,252,17,251,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,0,2,14, - 14,5,2,251,64,192,64,128,128,128,128,128,128,128,128,128, - 128,128,7,12,12,9,1,0,16,16,62,212,144,144,144,144, - 210,124,16,16,7,12,12,9,1,0,60,70,68,64,64,64, - 240,64,64,66,66,254,7,6,6,9,1,3,132,126,68,68, - 68,254,9,11,22,9,0,0,231,128,99,0,50,0,20,0, - 28,0,8,0,127,0,8,0,8,0,8,0,62,0,1,20, - 20,4,2,252,128,128,128,128,128,128,128,128,128,0,0,128, - 128,128,128,128,128,128,128,128,7,13,13,9,1,0,112,152, - 128,224,184,134,130,98,60,12,132,196,120,5,2,2,7,1, - 10,136,136,12,12,24,14,1,0,15,0,48,192,94,32,146, - 32,160,16,160,16,160,16,160,16,144,160,79,32,32,64,31, - 128,5,7,7,5,0,5,48,208,112,208,176,72,240,7,8, - 8,9,1,0,34,36,76,216,216,76,36,34,8,4,4,9, - 0,2,255,1,1,1,5,1,1,6,1,4,248,7,6,6, - 7,0,7,56,238,170,178,238,56,6,1,1,9,2,11,252, - 5,5,5,7,1,7,112,136,136,136,112,7,9,9,8,0, - 1,16,16,16,254,16,16,16,0,126,4,7,7,6,1,6, - 112,144,16,32,64,144,240,5,8,8,6,0,5,56,72,8, - 16,8,8,136,112,4,4,4,6,2,10,48,96,64,128,8, - 13,13,10,1,252,194,70,66,66,66,66,102,126,91,64,64, - 64,96,8,14,14,10,1,254,63,70,134,134,134,70,62,6, - 6,6,6,6,6,15,1,2,2,3,1,5,128,128,2,4, - 4,4,2,252,192,192,64,128,5,7,7,6,1,6,32,224, - 32,32,32,32,248,4,7,7,5,0,5,96,144,144,144,144, - 96,240,7,8,8,9,1,0,136,72,36,50,50,36,72,136, - 10,11,22,11,1,0,192,128,65,0,65,0,66,0,68,0, - 228,0,9,128,18,128,18,128,39,192,65,192,9,11,22,11, - 1,0,192,128,65,0,66,0,66,0,68,0,239,128,12,128, - 17,0,49,0,34,128,71,128,10,12,24,11,1,0,96,0, - 144,128,33,0,18,0,146,0,228,0,8,0,9,128,18,128, - 50,128,39,192,65,192,6,14,14,8,1,251,16,48,16,16, - 16,16,32,32,64,128,132,132,136,112,11,16,32,11,0,0, - 16,0,60,0,2,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,16,32,11,0,0,1,0,7,128,8,0,0,0,4,0, - 6,0,14,0,10,0,11,0,17,0,17,0,31,128,33,128, - 32,128,32,192,241,224,11,16,32,11,0,0,4,0,10,0, - 17,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,11,15,30,11, - 0,0,29,128,39,0,0,0,4,0,6,0,14,0,10,0, - 11,0,17,0,17,0,31,128,33,128,32,128,32,192,241,224, - 11,15,30,11,0,0,33,0,33,0,0,0,4,0,6,0, - 14,0,10,0,11,0,17,0,17,0,31,128,33,128,32,128, - 32,192,241,224,11,17,34,11,0,0,14,0,18,0,18,0, - 12,0,0,0,4,0,6,0,14,0,10,0,11,0,17,0, - 17,0,31,128,33,128,32,128,32,192,241,224,14,12,24,15, - 0,0,31,248,5,8,5,0,9,0,9,0,31,240,17,32, - 17,0,33,0,33,8,97,12,243,248,9,16,32,10,1,252, - 30,0,99,0,128,0,128,0,128,0,128,0,128,0,128,0, - 128,0,65,0,97,128,62,0,8,0,12,0,4,0,8,0, - 8,16,16,9,1,0,64,48,8,0,254,66,64,64,64,124, - 72,64,64,66,67,254,8,16,16,9,1,0,4,14,48,0, - 254,66,64,64,64,124,72,64,64,66,67,254,8,16,16,9, - 1,0,24,44,68,2,254,66,64,64,64,124,72,64,64,66, - 67,254,8,15,15,9,1,0,132,132,0,254,66,64,64,64, - 124,72,64,64,66,67,254,4,16,16,6,0,0,128,96,16, - 0,112,32,32,32,32,32,32,32,32,32,32,112,5,16,16, - 6,1,0,24,48,192,0,224,64,64,64,64,64,64,64,64, - 64,64,224,6,16,16,6,0,0,48,88,132,0,112,32,32, - 32,32,32,32,32,32,32,32,112,6,15,15,6,0,0,132, - 136,0,112,32,32,32,32,32,32,32,32,32,32,112,10,12, - 24,11,0,0,126,0,33,128,32,128,32,64,32,64,124,64, - 160,64,32,64,32,64,32,128,33,0,126,0,10,15,30,12, - 1,0,25,0,38,0,0,0,193,192,96,128,112,128,80,128, - 88,128,76,128,68,128,70,128,67,128,65,128,65,128,224,128, - 9,16,32,11,1,0,32,0,24,0,4,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,16,32,11,1,0,3,0,6,0, - 24,0,0,0,30,0,99,0,129,0,128,128,128,128,128,128, - 128,128,128,128,128,128,65,0,98,0,60,0,9,16,32,11, - 1,0,12,0,22,0,34,0,1,0,30,0,99,0,129,0, - 128,128,128,128,128,128,128,128,128,128,128,128,65,0,98,0, - 60,0,9,15,30,11,1,0,25,0,110,0,0,0,30,0, - 99,0,129,0,128,128,128,128,128,128,128,128,128,128,128,128, - 65,0,98,0,60,0,9,15,30,11,1,0,66,0,66,0, - 0,0,30,0,99,0,129,0,128,128,128,128,128,128,128,128, - 128,128,128,128,65,0,98,0,60,0,6,6,6,8,1,2, - 132,72,48,48,72,132,9,12,24,11,1,0,30,128,35,0, - 67,0,131,128,132,128,136,128,136,128,144,128,225,0,97,0, - 98,0,188,0,10,16,32,12,1,0,48,0,24,0,6,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,16,32,12,1,0, - 1,0,6,0,8,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 10,16,32,12,1,0,12,0,26,0,33,0,0,0,225,192, - 64,128,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,1,0,33,0,33,0, - 0,0,225,192,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,11,16,32,11,0,0, - 1,0,3,128,12,0,0,0,225,224,48,128,49,128,25,0, - 10,0,14,0,4,0,4,0,4,0,4,0,4,0,31,0, - 8,12,12,10,1,0,240,64,124,66,65,65,65,65,98,92, - 64,240,9,14,28,11,1,0,30,0,35,0,65,0,65,0, - 65,0,70,0,72,0,72,0,70,0,67,128,64,128,72,128, - 72,128,207,0,7,14,14,9,1,0,96,32,16,16,8,60, - 68,132,4,60,196,132,140,118,7,14,14,9,1,0,12,8, - 16,16,0,60,68,132,4,60,196,132,140,118,7,14,14,9, - 1,0,16,56,76,132,0,60,68,132,4,60,196,132,140,118, - 7,13,13,9,1,0,34,116,152,0,60,68,132,4,60,196, - 132,140,118,7,12,12,9,1,0,132,132,0,60,68,132,4, - 60,196,132,140,118,7,14,14,9,1,0,56,72,72,48,0, - 60,68,132,4,60,196,132,140,118,11,9,18,13,1,0,57, - 192,70,64,196,32,4,32,31,224,100,0,132,0,142,32,115, - 192,7,13,13,8,1,252,60,68,128,128,128,128,128,98,60, - 16,24,8,16,7,14,14,9,1,0,96,32,16,8,0,60, - 68,130,130,254,128,128,66,60,7,14,14,9,1,0,4,14, - 8,16,0,60,68,130,130,254,128,128,66,60,7,14,14,9, - 1,0,24,56,36,66,0,60,68,130,130,254,128,128,66,60, - 7,12,12,9,1,0,130,132,0,60,68,130,130,254,128,128, - 66,60,4,14,14,5,0,0,192,64,32,16,0,32,96,32, - 32,32,32,32,32,112,4,14,14,5,1,0,16,48,96,64, - 0,64,192,64,64,64,64,64,64,224,6,14,14,5,0,0, - 32,112,200,132,0,32,96,32,32,32,32,32,32,112,6,12, - 12,5,255,0,132,132,0,16,48,16,16,16,16,16,16,56, - 7,13,13,9,1,0,96,30,56,68,60,70,130,130,130,130, - 132,68,56,8,13,13,10,1,0,51,58,76,0,76,210,98, - 66,66,66,66,66,231,8,14,14,10,1,0,96,48,16,8, - 0,60,66,129,129,129,129,130,66,60,8,14,14,10,1,0, - 6,12,8,16,0,60,66,129,129,129,129,130,66,60,8,14, - 14,10,1,0,24,56,36,66,0,60,66,129,129,129,129,130, - 66,60,8,13,13,10,1,0,50,122,76,0,60,66,129,129, - 129,129,130,66,60,8,12,12,10,1,0,130,130,0,60,66, - 129,129,129,129,130,66,60,6,6,6,8,1,2,32,32,252, - 0,32,32,8,9,9,10,1,0,29,102,135,137,153,145,226, - 98,252,8,14,14,10,1,0,96,48,16,8,0,198,66,66, - 66,66,66,66,70,59,8,14,14,10,1,0,6,12,8,16, - 0,198,66,66,66,66,66,66,70,59,8,14,14,10,1,0, - 24,28,36,66,0,198,66,66,66,66,66,66,70,59,8,12, - 12,10,1,0,130,130,0,198,66,66,66,66,66,66,70,59, - 9,18,36,9,0,252,3,0,6,0,4,0,8,0,0,0, - 243,128,97,0,33,0,50,0,18,0,20,0,28,0,12,0, - 8,0,8,0,16,0,176,0,224,0,8,18,18,10,1,252, - 64,192,64,64,64,78,114,65,65,65,65,66,98,124,64,64, - 64,240,9,16,32,9,0,252,65,0,65,0,0,0,243,128, - 97,0,33,0,50,0,18,0,20,0,28,0,12,0,8,0, - 8,0,16,0,176,0,224,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=18 x= 2 y= 7 dx= 9 dy= 0 ascent=15 len=18 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12n[286] U8G_FONT_SECTION("u8g_font_gdr12n") = { - 0,28,28,246,249,12,0,0,0,0,42,58,0,15,253,12, - 0,7,7,7,8,1,7,16,148,222,48,252,146,16,7,7, - 7,8,0,2,16,16,16,254,16,16,16,2,5,5,4,1, - 253,64,192,64,64,128,5,1,1,6,1,4,248,2,3,3, - 4,1,255,192,192,128,8,18,18,9,0,253,1,1,3,2, - 6,4,4,12,8,8,24,16,48,32,32,96,64,192,7,11, - 11,9,1,0,56,68,130,130,130,130,130,130,132,68,56,6, - 12,12,9,1,0,16,112,144,16,16,16,16,16,16,16,16, - 252,6,12,12,8,1,0,60,68,196,4,4,8,16,16,32, - 68,132,252,7,12,12,8,0,0,28,38,98,2,4,28,2, - 2,2,2,134,124,7,12,12,9,1,0,4,12,12,20,20, - 36,68,68,254,4,4,30,6,11,11,9,2,0,124,64,64, - 64,120,132,4,4,4,132,120,7,12,12,9,1,0,12,48, - 64,64,128,252,198,130,130,130,68,56,7,11,11,9,1,0, - 254,130,4,4,8,8,24,16,48,32,96,7,12,12,9,1, - 0,120,196,196,196,232,60,78,130,130,130,194,124,7,11,11, - 9,1,0,56,68,130,130,130,198,122,2,4,8,112,2,10, - 10,4,1,255,128,192,128,0,0,0,0,192,192,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--19-190-72-72-P-84-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=20 x= 2 y=10 dx=16 dy= 0 ascent=16 len=30 - Font Bounding box w=28 h=28 x=-10 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =15 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr12r[1992] U8G_FONT_SECTION("u8g_font_gdr12r") = { - 0,28,28,246,249,12,2,80,5,85,32,127,252,16,252,15, - 252,0,0,0,4,0,0,2,15,15,5,2,255,128,128,128, - 128,128,128,128,128,128,128,0,0,192,192,128,6,6,6,8, - 1,8,204,76,72,72,72,72,8,11,11,9,1,1,26,18, - 18,127,36,36,36,254,72,72,80,7,15,15,9,1,254,16, - 16,126,148,144,208,112,28,22,18,146,146,252,16,16,11,11, - 22,13,1,0,112,64,144,128,137,128,139,0,146,0,117,192, - 10,32,26,32,18,32,34,32,65,192,11,13,26,12,1,0, - 28,0,34,0,34,0,34,0,36,0,56,0,49,224,216,128, - 140,128,140,128,135,0,199,128,60,224,2,6,6,5,1,8, - 192,64,64,64,64,64,4,18,18,6,1,253,48,96,64,64, - 128,128,128,128,128,128,128,128,128,128,192,64,96,48,4,18, - 18,6,1,253,192,96,32,48,16,16,16,16,16,16,16,16, - 16,16,32,32,96,128,7,7,7,8,1,7,16,148,222,48, - 252,146,16,7,7,7,8,0,2,16,16,16,254,16,16,16, - 2,5,5,4,1,253,64,192,64,64,128,5,1,1,6,1, - 4,248,2,3,3,4,1,255,192,192,128,8,18,18,9,0, - 253,1,1,3,2,6,4,4,12,8,8,24,16,48,32,32, - 96,64,192,7,11,11,9,1,0,56,68,130,130,130,130,130, - 130,132,68,56,6,12,12,9,1,0,16,112,144,16,16,16, - 16,16,16,16,16,252,6,12,12,8,1,0,60,68,196,4, - 4,8,16,16,32,68,132,252,7,12,12,8,0,0,28,38, - 98,2,4,28,2,2,2,2,134,124,7,12,12,9,1,0, - 4,12,12,20,20,36,68,68,254,4,4,30,6,11,11,9, - 2,0,124,64,64,64,120,132,4,4,4,132,120,7,12,12, - 9,1,0,12,48,64,64,128,252,198,130,130,130,68,56,7, - 11,11,9,1,0,254,130,4,4,8,8,24,16,48,32,96, - 7,12,12,9,1,0,120,196,196,196,232,60,78,130,130,130, - 194,124,7,11,11,9,1,0,56,68,130,130,130,198,122,2, - 4,8,112,2,10,10,4,1,255,128,192,128,0,0,0,0, - 192,192,128,2,12,12,4,1,253,128,192,128,0,0,0,0, - 64,192,64,64,128,7,6,6,8,1,2,6,28,224,192,56, - 6,7,4,4,8,1,3,254,0,0,254,7,6,6,8,1, - 2,192,112,14,28,112,128,6,15,15,8,1,255,56,68,132, - 132,4,8,16,16,32,32,32,0,48,48,32,14,15,30,16, - 1,253,7,224,24,48,32,8,71,200,136,68,144,68,144,68, - 144,68,144,68,144,72,136,200,71,112,32,8,24,48,15,192, - 11,12,24,11,0,0,4,0,6,0,14,0,10,0,11,0, - 17,0,17,0,31,128,33,128,32,128,32,192,241,224,8,12, - 12,10,1,0,252,66,66,66,68,126,67,65,65,65,67,254, - 8,12,12,10,1,0,30,99,128,128,128,128,128,128,128,192, - 99,60,9,12,24,11,1,0,252,0,67,0,65,0,64,128, - 64,128,64,128,64,128,64,128,64,128,65,0,66,0,252,0, - 8,12,12,9,1,0,254,66,64,64,64,124,72,64,64,66, - 67,254,7,12,12,9,1,0,254,66,64,64,64,124,72,64, - 64,64,64,240,10,12,24,11,1,0,15,0,49,128,64,0, - 128,0,128,0,128,0,131,192,128,128,128,128,64,128,96,128, - 31,0,10,12,24,12,1,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,64,128,225,192, - 3,12,12,6,1,0,224,64,64,64,64,64,64,64,64,64, - 64,224,6,15,15,6,255,253,60,8,8,8,8,8,8,8, - 8,8,8,8,8,144,224,10,12,24,11,1,0,231,128,66, - 0,68,0,72,0,80,0,96,0,80,0,88,0,76,0,70, - 0,67,0,225,192,7,12,12,9,1,0,224,64,64,64,64, - 64,64,64,64,66,66,254,14,12,24,15,1,0,224,56,96, - 48,112,112,80,80,80,80,88,144,72,144,77,16,69,16,71, - 16,66,16,226,124,10,12,24,12,1,0,193,192,96,128,112, - 128,80,128,88,128,76,128,68,128,70,128,67,128,65,128,65, - 128,224,128,9,12,24,11,1,0,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,8,12,12,10,1,0,252,66,65,65,65,66,92,64,64, - 64,64,240,11,15,30,11,1,253,30,0,99,0,129,0,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,98,0,60, - 0,6,0,3,32,0,192,10,12,24,11,1,0,252,0,67, - 0,65,0,65,0,65,0,66,0,124,0,76,0,70,0,67, - 0,67,0,225,192,7,12,12,9,1,0,60,198,128,128,224, - 56,12,2,2,130,196,248,9,12,24,10,1,0,255,128,136, - 128,136,128,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,62,0,10,12,24,12,1,0,225,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,33, - 0,30,0,12,12,24,12,0,0,240,240,32,64,48,64,48, - 64,16,128,24,128,9,128,9,0,13,0,7,0,6,0,6, - 0,16,12,24,16,0,0,241,15,33,132,33,132,33,132,50, - 196,50,72,18,104,20,104,28,40,28,56,8,48,8,16,11, - 12,24,12,0,0,249,224,32,128,49,128,25,0,14,0,6, - 0,6,0,11,0,25,128,48,128,32,192,241,224,11,12,24, - 11,0,0,225,224,48,128,49,128,25,0,10,0,14,0,4, - 0,4,0,4,0,4,0,4,0,31,0,8,12,12,10,1, - 0,255,130,134,4,12,24,16,48,96,65,193,255,4,18,18, - 6,1,253,240,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,240,7,18,18,9,1,253,128,128,192,64,64, - 32,32,48,16,16,24,8,8,4,4,6,2,2,4,18,18, - 5,0,253,240,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,240,7,9,9,9,1,5,16,24,40,44,44, - 68,70,130,130,7,1,1,9,1,254,254,4,4,4,6,0, - 10,192,96,32,16,7,9,9,9,1,0,60,68,132,4,60, - 196,132,140,118,9,14,28,10,0,0,64,0,192,0,64,0, - 64,0,64,0,70,0,89,0,96,128,64,128,64,128,64,128, - 65,0,97,0,62,0,6,9,9,8,1,0,60,68,128,128, - 128,128,128,196,120,8,14,14,10,1,0,6,2,2,2,2, - 62,66,130,130,130,130,130,70,59,7,9,9,9,1,0,60, - 68,130,130,254,128,128,66,60,6,14,14,6,1,0,28,36, - 64,64,64,248,64,64,64,64,64,64,64,240,10,13,26,10, - 0,252,62,192,67,0,129,0,129,0,194,0,60,0,48,0, - 120,0,39,128,192,128,128,128,193,0,62,0,8,14,14,10, - 1,0,64,192,64,64,64,76,82,98,66,66,66,66,66,231, - 3,12,12,5,1,0,192,192,0,64,192,64,64,64,64,64, - 64,224,5,16,16,5,254,252,24,24,0,8,24,8,8,8, - 8,8,8,8,8,8,16,224,8,14,14,10,1,0,64,192, - 64,64,64,79,68,72,112,112,88,76,70,231,3,14,14,5, - 1,0,64,192,64,64,64,64,64,64,64,64,64,64,64,224, - 13,9,18,15,1,0,204,96,82,144,99,16,66,16,66,16, - 66,16,66,16,66,16,231,56,8,9,9,10,1,0,76,210, - 98,66,66,66,66,66,231,8,9,9,10,1,0,60,66,129, - 129,129,129,130,66,60,8,13,13,10,1,252,206,114,65,65, - 65,65,66,98,92,64,64,64,240,9,13,26,10,1,252,29, - 0,99,0,129,0,129,0,129,0,129,0,129,0,71,0,57, - 0,1,0,1,0,1,0,7,128,6,9,9,8,1,0,92, - 228,96,64,64,64,64,64,240,5,9,9,7,1,0,112,136, - 128,192,48,8,136,136,240,5,12,12,7,1,0,64,64,64, - 248,64,64,64,64,64,64,72,112,8,9,9,10,1,0,198, - 66,66,66,66,66,66,70,59,9,9,18,9,0,0,243,128, - 97,0,33,0,50,0,18,0,18,0,28,0,12,0,8,0, - 13,9,18,13,0,0,242,56,99,16,35,16,37,16,53,160, - 20,160,24,224,24,192,24,64,9,9,18,10,0,0,243,128, - 33,0,50,0,28,0,12,0,22,0,34,0,33,0,243,128, - 9,13,26,9,0,252,243,128,97,0,33,0,50,0,18,0, - 20,0,28,0,12,0,8,0,8,0,16,0,176,0,224,0, - 7,9,9,8,1,0,254,132,8,24,48,32,98,194,254,5, - 18,18,6,1,253,8,16,32,32,32,32,32,32,64,224,32, - 32,32,32,32,32,32,24,1,20,20,4,2,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,5,18,18,6,0,253,192,32,32,32,32,32,32,32,56, - 16,32,32,32,32,32,32,64,128,9,4,8,9,0,4,48, - 0,125,128,79,0,134,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=13 dx=20 dy= 0 ascent=20 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14[5942] U8G_FONT_SECTION("u8g_font_gdr14") = { - 0,35,33,244,248,14,3,95,7,136,32,255,251,20,250,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,0,2,16,16, - 6,2,250,192,192,128,64,192,192,192,192,192,192,192,192,192, - 192,192,128,9,14,28,11,1,0,12,0,12,0,31,128,109, - 128,76,0,204,0,204,0,204,0,204,0,236,128,125,128,63, - 0,12,0,12,0,10,14,28,11,0,0,7,128,24,192,16, - 128,48,128,48,0,48,0,48,0,126,0,48,0,48,0,48, - 0,32,64,32,64,255,192,9,7,14,11,1,3,221,128,119, - 0,99,0,99,0,115,0,127,0,128,128,12,14,28,11,255, - 0,225,240,48,64,48,192,25,128,29,128,15,0,7,0,6, - 0,63,192,6,0,6,0,6,0,6,0,31,128,2,24,24, - 5,2,251,192,192,192,192,192,192,192,192,192,192,128,0,0, - 64,192,192,192,192,192,192,192,192,192,192,9,16,32,11,1, - 0,30,0,99,0,98,0,112,0,56,0,94,0,199,0,195, - 128,225,128,113,128,63,0,15,0,7,0,67,0,99,0,62, - 0,7,3,3,9,1,12,198,198,198,15,14,28,16,0,0, - 7,192,24,48,49,248,98,44,198,6,204,6,204,6,204,6, - 204,6,206,38,102,76,51,152,24,48,7,192,6,8,8,6, - 0,6,112,152,24,56,120,124,0,124,9,10,20,11,1,0, - 17,128,17,0,34,0,102,0,204,0,204,0,102,0,34,0, - 17,0,17,128,10,5,10,11,0,2,255,192,0,192,0,192, - 0,192,0,192,6,1,1,8,1,5,252,8,8,8,8,0, - 8,60,66,189,149,153,153,86,60,7,1,1,11,2,13,254, - 4,5,5,8,2,9,96,240,240,240,96,8,10,10,9,1, - 2,24,24,24,24,255,24,24,24,0,255,6,8,8,8,1, - 7,120,140,140,8,16,32,68,252,7,8,8,7,255,7,60, - 102,6,28,6,6,134,120,5,5,5,7,2,12,24,48,32, - 64,192,12,15,30,13,1,251,96,192,224,192,96,192,96,192, - 96,192,96,192,96,192,113,192,127,208,92,224,64,0,64,0, - 96,0,96,0,112,0,13,17,34,14,0,253,31,248,99,96, - 195,96,195,96,195,96,227,96,115,96,63,96,3,96,3,96, - 3,96,3,96,3,96,3,96,3,96,3,96,15,248,2,3, - 3,3,1,6,192,192,192,4,5,5,5,1,251,96,96,112, - 48,192,6,8,8,8,1,7,48,240,48,48,48,48,48,252, - 4,8,8,6,1,6,96,240,240,240,240,96,0,240,8,10, - 10,11,2,0,136,140,68,98,51,51,102,68,140,136,12,14, - 28,13,0,0,24,96,120,192,24,192,25,128,27,0,27,0, - 126,0,4,96,12,224,25,96,18,96,51,240,96,96,192,240, - 13,14,28,14,0,0,48,16,240,32,48,96,48,64,48,128, - 48,128,249,0,3,120,2,152,4,24,12,48,8,32,16,72, - 49,248,12,14,28,14,1,0,112,32,152,64,24,64,56,128, - 77,128,141,0,114,0,6,96,4,224,9,96,25,96,19,240, - 32,96,96,240,8,16,16,10,1,250,24,24,16,4,12,12, - 12,24,48,96,96,192,195,195,230,124,13,20,40,14,0,0, - 16,0,28,0,14,0,3,0,0,128,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,13,20,40,14,0,0,0,128, - 0,192,3,160,6,0,0,0,0,0,2,0,3,0,5,0, - 5,128,5,128,8,128,8,192,8,192,31,192,16,96,16,96, - 32,48,32,48,248,120,13,20,40,14,0,0,2,0,7,0, - 13,128,8,64,16,0,0,0,2,0,3,0,5,0,5,128, - 5,128,8,128,8,192,8,192,31,192,16,96,16,96,32,48, - 32,48,248,120,13,19,38,14,0,0,4,64,14,96,19,192, - 0,0,0,0,2,0,3,0,5,0,5,128,5,128,8,128, - 8,192,8,192,31,192,16,96,16,96,32,48,32,48,248,120, - 13,18,36,14,0,0,8,64,12,96,8,64,0,0,2,0, - 3,0,5,0,5,128,5,128,8,128,8,192,8,192,31,192, - 16,96,16,96,32,48,32,48,248,120,13,20,40,14,0,0, - 2,0,7,0,7,128,7,0,0,0,0,0,2,0,3,0, - 5,0,5,128,5,128,8,128,8,192,8,192,31,192,16,96, - 16,96,32,48,32,48,248,120,18,14,42,18,0,0,7,255, - 128,1,96,128,3,96,128,2,96,0,6,96,0,6,96,0, - 7,255,0,12,98,0,8,96,0,24,96,0,16,96,0,16, - 96,64,48,96,64,249,255,128,11,19,38,12,1,251,7,192, - 24,96,32,0,96,0,64,0,192,0,192,0,192,0,192,0, - 192,0,224,0,96,128,113,192,62,0,8,0,4,0,14,0, - 6,0,24,0,11,20,40,11,0,0,32,0,56,0,28,0, - 6,0,1,0,0,0,255,192,48,64,48,64,48,0,48,0, - 48,0,63,128,49,0,48,0,48,0,48,0,48,32,48,96, - 255,192,11,20,40,11,0,0,1,0,1,128,7,0,12,0, - 0,0,0,0,255,192,48,64,48,64,48,0,48,0,48,0, - 63,128,49,0,48,0,48,0,48,0,48,32,48,96,255,192, - 11,20,40,11,0,0,4,0,14,0,27,0,48,128,0,0, - 0,0,255,192,48,64,48,64,48,0,48,0,48,0,63,128, - 49,0,48,0,48,0,48,0,48,32,48,96,255,192,11,18, - 36,11,0,0,16,128,49,128,49,128,0,0,255,192,48,64, - 48,64,48,0,48,0,48,0,63,128,49,0,48,0,48,0, - 48,0,48,32,48,96,255,192,6,20,20,7,0,0,128,192, - 112,24,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,252,7,20,20,7,0,0,4,14,28,48,64,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,252,7,20,20,7, - 0,0,16,56,108,134,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,252,7,18,18,7,0,0,66,198,198,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,13,14, - 28,14,0,0,127,128,176,224,48,112,48,48,48,24,48,24, - 254,24,48,24,48,24,48,24,48,48,48,112,48,224,255,128, - 15,19,38,15,0,0,2,32,7,32,9,192,0,0,0,0, - 240,126,48,24,56,24,60,24,52,24,50,24,51,24,49,152, - 48,152,48,216,48,120,48,56,48,56,252,24,12,20,40,14, - 1,0,16,0,56,0,12,0,2,0,1,0,0,0,15,128, - 48,192,32,96,96,96,192,48,192,48,192,48,192,48,192,48, - 192,48,96,96,96,64,48,128,31,0,12,20,40,14,1,0, - 1,0,1,192,3,0,12,0,0,0,0,0,15,128,48,192, - 32,96,96,96,192,48,192,48,192,48,192,48,192,48,192,48, - 96,96,96,64,48,128,31,0,12,20,40,14,1,0,6,0, - 14,0,11,0,16,128,32,0,0,0,15,128,48,192,32,96, - 96,96,192,48,192,48,192,48,192,48,192,48,192,48,96,96, - 96,64,48,128,31,0,12,19,38,14,1,0,8,128,28,64, - 55,128,0,0,0,0,15,128,48,192,32,96,96,96,192,48, - 192,48,192,48,192,48,192,48,192,48,96,96,96,64,48,128, - 31,0,12,18,36,14,1,0,16,128,24,192,16,128,0,0, - 15,128,48,192,32,96,96,96,192,48,192,48,192,48,192,48, - 192,48,192,48,96,96,96,64,48,128,31,0,7,7,7,9, - 1,3,194,102,60,24,60,102,194,12,15,30,14,1,255,15, - 48,48,224,32,224,64,224,193,176,195,48,194,48,198,48,204, - 48,200,48,88,32,112,64,112,128,207,0,128,0,15,20,40, - 15,0,0,8,0,14,0,7,0,1,128,0,64,0,0,252, - 126,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,24,48,28,96,7,192,15,20,40,15,0, - 0,0,64,0,96,1,192,3,0,0,0,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,24,48,28,96,7,192,15,20,40,15,0,0,1, - 0,3,128,6,192,12,96,0,0,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,15,18,36,15,0,0,4,32,12, - 96,12,96,0,0,252,126,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,24,48,28,96,7, - 192,14,20,40,14,0,0,0,128,0,224,1,128,6,0,0, - 0,0,0,224,124,48,48,24,32,24,96,12,64,6,192,7, - 128,3,0,3,0,3,0,3,0,3,0,3,0,15,192,11, - 14,28,12,0,0,252,0,48,0,48,0,63,128,48,192,48, - 96,48,96,48,96,48,96,48,192,63,128,48,0,48,0,252, - 0,13,17,34,13,0,0,7,128,8,192,16,96,48,96,48, - 96,48,224,51,192,55,0,54,0,55,0,51,192,48,240,48, - 56,48,24,52,24,50,16,243,224,10,17,34,11,1,0,96, - 0,48,0,16,0,8,0,4,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,17,34,11,1,0,3,0,6,0,12,0,8,0,16, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,17,34,11,1,0,24, - 0,28,0,54,0,98,0,65,0,0,0,0,0,30,0,99, - 0,195,0,3,0,31,0,99,0,195,0,195,0,199,0,123, - 192,10,15,30,11,1,0,57,0,78,0,0,0,0,0,0, - 0,30,0,99,0,195,0,3,0,31,0,99,0,195,0,195, - 0,199,0,123,192,10,15,30,11,1,0,33,0,99,0,99, - 0,0,0,0,0,30,0,99,0,195,0,3,0,31,0,99, - 0,195,0,195,0,199,0,123,192,10,16,32,11,1,0,28, - 0,60,0,60,0,24,0,0,0,0,0,30,0,99,0,195, - 0,3,0,31,0,99,0,195,0,195,0,199,0,123,192,14, - 10,20,16,1,0,30,112,99,152,195,12,131,12,31,252,115, - 0,195,0,195,0,197,132,120,248,9,15,30,10,1,251,15, - 0,49,128,96,0,192,0,192,0,192,0,192,0,192,0,99, - 0,124,0,16,0,8,0,28,0,12,0,48,0,9,17,34, - 11,1,0,48,0,112,0,24,0,8,0,4,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,17,34,11,1,0,3,0,6,0,6, - 0,12,0,8,0,0,0,0,0,30,0,33,0,65,128,255, - 128,192,0,192,0,192,0,224,0,113,128,62,0,9,17,34, - 11,1,0,12,0,28,0,54,0,35,0,65,0,0,0,0, - 0,30,0,33,0,65,128,255,128,192,0,192,0,192,0,224, - 0,113,128,62,0,9,15,30,11,1,0,33,0,49,128,33, - 0,0,0,0,0,30,0,33,0,65,128,255,128,192,0,192, - 0,192,0,224,0,113,128,62,0,6,17,17,6,0,0,192, - 96,32,48,16,0,0,48,240,48,48,48,48,48,48,48,252, - 7,17,17,6,0,0,12,14,24,16,32,0,0,48,240,48, - 48,48,48,48,48,48,252,7,17,17,6,0,0,48,56,104, - 196,130,0,0,48,240,48,48,48,48,48,48,48,252,7,15, - 15,6,0,0,198,198,198,0,0,48,240,48,48,48,48,48, - 48,48,252,9,16,32,11,1,0,48,0,91,128,12,0,50, - 0,3,0,1,0,31,128,99,128,67,128,193,128,193,128,193, - 128,193,0,227,0,98,0,60,0,13,15,30,13,0,0,14, - 64,19,128,0,0,0,0,0,0,113,192,182,96,56,96,48, - 96,48,96,48,96,48,96,48,96,48,96,253,248,10,17,34, - 12,1,0,48,0,48,0,24,0,12,0,4,0,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,17,34,12,1,0,3,0,3,0,6, - 0,4,0,8,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,10,17,34, - 12,1,0,12,0,30,0,18,0,33,0,64,128,0,0,0, - 0,30,0,35,128,65,128,192,192,192,192,192,192,192,192,224, - 128,113,0,30,0,10,15,30,12,1,0,56,128,71,0,0, - 0,0,0,0,0,30,0,35,128,65,128,192,192,192,192,192, - 192,192,192,224,128,113,0,30,0,10,15,30,12,1,0,49, - 128,49,128,33,0,0,0,0,0,30,0,35,128,65,128,192, - 192,192,192,192,192,192,192,224,128,113,0,30,0,8,7,7, - 9,1,3,24,24,0,255,0,24,24,10,12,24,12,1,255, - 0,64,30,192,35,128,67,192,194,192,196,192,200,192,216,192, - 240,128,113,0,222,0,128,0,11,17,34,12,1,0,48,0, - 24,0,24,0,12,0,4,0,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,17,34,12,1,0,3,0,3,128,6,0,4,0,8,0, - 0,0,0,0,97,128,231,128,97,128,97,128,97,128,97,128, - 97,128,97,128,103,160,57,192,11,17,34,12,1,0,12,0, - 14,0,26,0,49,0,32,128,0,0,0,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,15,30,12,1,0,49,128,49,128,49,128,0,0,0,0, - 97,128,231,128,97,128,97,128,97,128,97,128,97,128,97,128, - 103,160,57,192,12,22,44,11,255,251,0,192,0,192,1,128, - 3,0,2,0,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0,11,22,44,12,0,251,48,0,240,0, - 48,0,48,0,48,0,48,0,48,0,51,128,60,192,56,224, - 48,96,48,96,48,96,48,96,48,64,56,128,55,0,48,0, - 48,0,48,0,48,0,252,0,12,20,40,11,255,251,12,96, - 12,96,8,64,0,0,0,0,124,240,16,32,24,64,24,64, - 12,192,12,128,4,128,7,0,3,0,3,0,2,0,6,0, - 4,0,120,0,240,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 14 - Calculated Max Values w=10 h=22 x= 2 y= 8 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14n[462] U8G_FONT_SECTION("u8g_font_gdr14n") = { - 0,35,33,244,248,14,0,0,0,0,42,58,0,18,252,14, - 0,9,10,20,10,1,8,24,0,24,0,137,0,235,128,60, - 0,60,0,235,0,137,0,24,0,24,0,8,8,8,9,1, - 2,24,24,24,255,24,24,24,24,4,6,6,5,0,253,112, - 240,48,48,32,64,6,1,1,8,1,5,252,2,3,3,5, - 2,0,192,192,192,9,22,44,11,1,252,0,128,1,128,1, - 0,3,0,3,0,2,0,6,0,6,0,12,0,12,0,8, - 0,24,0,24,0,16,0,48,0,48,0,96,0,96,0,64, - 0,192,0,192,0,128,0,9,14,28,11,1,0,28,0,39, - 0,99,0,67,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,0,97,0,98,0,28,0,8,14,14,11,2,0,24, - 120,152,24,24,24,24,24,24,24,24,24,24,255,8,14,14, - 11,1,0,60,103,195,131,3,6,6,12,24,24,48,97,193, - 255,9,14,28,12,1,0,30,0,103,0,195,0,3,0,2, - 0,4,0,30,0,3,0,1,128,1,128,1,128,1,128,195, - 0,60,0,10,14,28,11,0,0,3,0,7,0,7,0,11, - 0,27,0,19,0,35,0,99,0,67,0,255,192,3,0,3, - 0,3,0,15,192,9,14,28,11,0,0,0,128,63,0,32, - 0,32,0,96,0,126,0,67,0,1,128,1,128,1,128,1, - 128,1,0,195,0,60,0,9,14,28,11,1,0,3,0,12, - 0,48,0,32,0,96,0,222,0,227,0,193,128,193,128,193, - 128,193,128,97,0,99,0,30,0,9,13,26,11,1,0,127, - 128,129,0,129,0,3,0,2,0,6,0,4,0,12,0,8, - 0,24,0,24,0,48,0,32,0,9,14,28,11,1,0,62, - 0,71,0,195,0,195,0,195,0,118,0,30,0,39,0,99, - 128,193,128,193,128,193,128,99,0,60,0,9,14,28,11,1, - 0,30,0,99,0,67,0,193,128,193,128,193,128,193,128,99, - 128,61,128,1,0,3,0,6,0,8,0,112,0,2,11,11, - 5,2,0,192,192,192,0,0,0,0,0,192,192,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--23-230-72-72-P-110-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=24 x= 2 y=12 dx=20 dy= 0 ascent=19 len=57 - Font Bounding box w=35 h=33 x=-12 y=-8 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr14r[2791] U8G_FONT_SECTION("u8g_font_gdr14r") = { - 0,35,33,244,248,14,3,95,7,136,32,127,251,19,251,18, - 251,0,0,0,5,0,0,2,17,17,6,2,0,64,192,192, - 192,192,192,192,192,192,192,192,192,128,0,192,192,192,6,8, - 8,10,2,9,204,204,204,204,204,204,204,140,10,13,26,11, - 1,1,12,128,9,128,9,0,9,0,127,192,19,0,18,0, - 50,0,255,128,36,0,100,0,68,0,76,0,9,18,36,11, - 1,254,12,0,12,0,63,128,109,128,205,0,204,0,236,0, - 124,0,63,0,15,0,13,128,13,128,141,128,205,128,239,0, - 126,0,12,0,12,0,14,14,28,16,1,0,56,24,72,48, - 204,96,204,64,204,192,205,128,75,0,114,56,6,76,12,204, - 8,204,16,204,48,200,96,112,14,16,32,16,1,0,15,0, - 25,128,49,128,49,128,49,0,51,0,60,0,60,252,124,112, - 102,48,199,48,195,176,193,224,192,224,96,176,63,28,2,8, - 8,6,2,9,192,192,192,192,192,192,192,128,6,22,22,7, - 1,252,12,24,16,32,96,96,64,192,192,192,192,192,192,192, - 192,64,96,96,32,48,24,12,6,22,22,7,0,252,192,96, - 48,16,24,24,8,12,12,12,12,12,12,12,12,8,24,24, - 16,32,96,192,9,10,20,10,1,8,24,0,24,0,137,0, - 235,128,60,0,60,0,235,0,137,0,24,0,24,0,8,8, - 8,9,1,2,24,24,24,255,24,24,24,24,4,6,6,5, - 0,253,112,240,48,48,32,64,6,1,1,8,1,5,252,2, - 3,3,5,2,0,192,192,192,9,22,44,11,1,252,0,128, - 1,128,1,0,3,0,3,0,2,0,6,0,6,0,12,0, - 12,0,8,0,24,0,24,0,16,0,48,0,48,0,96,0, - 96,0,64,0,192,0,192,0,128,0,9,14,28,11,1,0, - 28,0,39,0,99,0,67,128,193,128,193,128,193,128,193,128, - 193,128,193,128,193,0,97,0,98,0,28,0,8,14,14,11, - 2,0,24,120,152,24,24,24,24,24,24,24,24,24,24,255, - 8,14,14,11,1,0,60,103,195,131,3,6,6,12,24,24, - 48,97,193,255,9,14,28,12,1,0,30,0,103,0,195,0, - 3,0,2,0,4,0,30,0,3,0,1,128,1,128,1,128, - 1,128,195,0,60,0,10,14,28,11,0,0,3,0,7,0, - 7,0,11,0,27,0,19,0,35,0,99,0,67,0,255,192, - 3,0,3,0,3,0,15,192,9,14,28,11,0,0,0,128, - 63,0,32,0,32,0,96,0,126,0,67,0,1,128,1,128, - 1,128,1,128,1,0,195,0,60,0,9,14,28,11,1,0, - 3,0,12,0,48,0,32,0,96,0,222,0,227,0,193,128, - 193,128,193,128,193,128,97,0,99,0,30,0,9,13,26,11, - 1,0,127,128,129,0,129,0,3,0,2,0,6,0,4,0, - 12,0,8,0,24,0,24,0,48,0,32,0,9,14,28,11, - 1,0,62,0,71,0,195,0,195,0,195,0,118,0,30,0, - 39,0,99,128,193,128,193,128,193,128,99,0,60,0,9,14, - 28,11,1,0,30,0,99,0,67,0,193,128,193,128,193,128, - 193,128,99,128,61,128,1,0,3,0,6,0,8,0,112,0, - 2,11,11,5,2,0,192,192,192,0,0,0,0,0,192,192, - 192,4,14,14,5,0,253,48,48,48,0,0,0,0,0,112, - 240,48,48,32,64,8,7,7,10,1,3,1,15,120,192,112, - 30,3,8,4,4,10,1,4,255,0,0,255,8,7,7,10, - 1,3,192,120,15,3,30,240,128,8,17,17,10,1,0,62, - 103,195,195,3,3,6,12,12,24,24,24,16,0,24,24,24, - 17,19,57,19,1,252,1,240,0,6,28,0,24,6,0,48, - 3,0,32,3,0,97,211,128,66,49,128,196,49,128,204,49, - 128,204,49,128,204,49,128,204,49,0,236,51,0,102,114,0, - 99,156,0,48,0,0,56,2,0,14,15,0,3,240,0,13, - 14,28,14,0,0,2,0,3,0,5,0,5,128,5,128,8, - 128,8,192,8,192,31,192,16,96,16,96,32,48,32,48,248, - 120,11,14,28,12,0,0,127,0,177,192,48,192,48,192,48, - 192,49,128,63,128,49,192,48,224,48,96,48,96,48,96,48, - 192,255,128,11,14,28,12,1,0,7,192,24,96,32,0,96, - 0,64,0,192,0,192,0,192,0,192,0,192,0,96,0,96, - 32,56,64,15,128,13,14,28,14,0,0,127,128,176,224,48, - 112,48,48,48,24,48,24,48,24,48,24,48,24,48,24,48, - 48,48,112,48,224,255,128,11,14,28,11,0,0,255,192,48, - 64,48,64,48,0,48,0,48,0,63,128,49,0,48,0,48, - 0,48,0,48,32,48,96,255,192,10,14,28,11,0,0,255, - 192,48,64,48,64,48,0,48,0,48,0,63,128,49,0,48, - 0,48,0,48,0,48,0,48,0,252,0,11,14,28,13,1, - 0,15,128,16,192,32,0,96,0,192,0,192,0,192,0,195, - 224,192,192,192,192,96,192,96,192,48,192,31,0,15,14,28, - 15,0,0,252,126,48,24,48,24,48,24,48,24,48,24,63, - 248,48,24,48,24,48,24,48,24,48,24,48,24,252,126,6, - 14,14,7,0,0,252,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,18,36,7,254,252,31,128,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,4,0,72,0,240,0,13,14,28, - 13,0,0,252,240,48,64,48,128,49,0,50,0,54,0,60, - 0,54,0,54,0,51,0,49,128,48,192,48,96,252,56,11, - 14,28,11,0,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,32,48,64,255, - 192,17,14,42,19,1,0,240,7,0,112,14,0,112,14,0, - 120,30,0,104,22,0,108,22,0,108,38,0,102,38,0,102, - 102,0,99,70,0,99,198,0,97,134,0,97,134,0,241,15, - 128,15,14,28,15,0,0,240,126,48,24,56,24,60,24,52, - 24,50,24,51,24,49,152,48,152,48,216,48,120,48,56,48, - 56,252,24,12,14,28,14,1,0,15,128,48,192,32,96,96, - 96,192,48,192,48,192,48,192,48,192,48,192,48,96,96,96, - 64,48,128,31,0,11,14,28,12,0,0,127,128,176,192,48, - 96,48,96,48,96,48,96,48,192,63,0,48,0,48,0,48, - 0,48,0,48,0,252,0,14,17,34,14,1,253,15,128,48, - 192,32,96,96,96,192,48,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,31,0,1,128,0,196,0,56,13, - 14,28,13,0,0,127,0,177,128,48,192,48,192,48,192,48, - 128,49,0,62,0,51,0,49,0,49,128,48,192,48,192,252, - 120,9,14,28,11,1,0,62,0,99,0,192,0,192,0,224, - 0,120,0,62,0,15,0,3,128,1,128,129,128,129,0,195, - 0,124,0,12,14,28,13,0,0,255,240,134,16,134,16,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,31,128,15,14,28,15,0,0,252,126,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,24,48,28,96,7,192,14,14,28,15,0,0,248,60,48, - 24,48,16,24,16,24,48,24,32,12,96,12,64,4,64,6, - 192,6,128,3,128,3,128,1,0,19,14,42,20,0,0,248, - 67,224,48,96,128,48,96,128,48,224,128,16,177,128,16,177, - 0,25,145,0,25,25,0,25,25,0,11,11,0,14,14,0, - 14,14,0,14,6,0,4,6,0,14,14,28,14,0,0,252, - 248,48,48,24,96,28,192,12,128,7,128,3,0,3,128,5, - 128,12,192,24,96,16,112,48,48,248,124,14,14,28,14,0, - 0,224,124,48,48,24,32,24,96,12,64,6,192,7,128,3, - 0,3,0,3,0,3,0,3,0,3,0,15,192,10,14,28, - 12,1,0,127,192,65,128,129,128,3,0,6,0,6,0,12, - 0,28,0,24,0,48,0,48,0,96,64,192,64,255,192,5, - 22,22,7,1,252,248,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,248,9,22,44,11,1, - 252,128,0,192,0,192,0,64,0,96,0,32,0,48,0,48, - 0,16,0,24,0,24,0,8,0,12,0,4,0,4,0,6, - 0,2,0,3,0,3,0,1,0,1,128,0,128,5,22,22, - 8,1,252,248,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,248,9,11,22,11,1,6,8, - 0,12,0,28,0,22,0,54,0,34,0,35,0,99,0,65, - 128,65,128,129,128,9,1,2,11,1,253,255,128,5,5,5, - 7,0,12,224,96,48,16,8,10,10,20,11,1,0,30,0, - 99,0,195,0,3,0,31,0,99,0,195,0,195,0,199,0, - 123,192,10,17,34,12,1,0,96,0,224,0,96,0,96,0, - 96,0,96,0,96,0,103,0,121,128,113,192,96,192,96,192, - 96,192,96,192,96,128,113,0,30,0,9,10,20,10,1,0, - 15,0,49,128,96,0,192,0,192,0,192,0,192,0,96,0, - 113,128,30,0,11,17,34,12,1,0,1,128,7,128,1,128, - 1,128,1,128,1,128,1,128,31,128,35,128,65,128,193,128, - 193,128,193,128,193,128,225,128,103,160,57,192,9,10,20,11, - 1,0,30,0,33,0,65,128,255,128,192,0,192,0,192,0, - 224,0,113,128,62,0,9,17,34,7,0,0,7,128,9,0, - 16,0,48,0,48,0,48,0,48,0,126,0,176,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,252,0,12,15, - 30,12,0,251,31,48,49,192,96,192,96,192,96,192,49,128, - 31,0,24,0,56,0,31,192,96,112,192,48,192,48,96,96, - 63,128,13,17,34,13,0,0,48,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,96,56,96,48,96,48,96, - 48,96,48,96,48,96,48,96,253,248,6,15,15,6,0,0, - 48,48,48,0,0,48,240,48,48,48,48,48,48,48,252,7, - 20,20,6,253,251,6,6,6,0,0,6,30,6,6,6,6, - 6,6,6,6,6,6,4,8,240,12,17,34,12,0,0,48, - 0,240,0,48,0,48,0,48,0,48,0,48,0,49,224,49, - 128,51,0,52,0,60,0,54,0,51,0,49,128,48,192,248, - 240,6,17,17,6,0,0,48,240,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,10,30,20,0,0,113,199, - 128,182,104,192,56,112,192,48,96,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,253,251,240,13,10,20,13, - 0,0,113,192,182,96,56,96,48,96,48,96,48,96,48,96, - 48,96,48,96,253,248,10,10,20,12,1,0,30,0,35,128, - 65,128,192,192,192,192,192,192,192,192,224,128,113,0,30,0, - 11,15,30,12,0,251,115,128,188,192,56,224,48,96,48,96, - 48,96,48,96,48,64,56,192,55,0,48,0,48,0,48,0, - 48,0,252,0,11,15,30,12,1,251,30,128,35,128,97,128, - 193,128,193,128,193,128,193,128,225,128,99,128,61,128,1,128, - 1,128,1,128,1,128,7,224,9,10,20,9,0,0,51,128, - 252,128,56,0,48,0,48,0,48,0,48,0,48,0,48,0, - 252,0,7,10,10,9,1,0,124,204,192,224,120,30,6,134, - 134,248,8,14,14,8,0,0,16,48,48,48,127,176,48,48, - 48,48,48,48,49,30,11,10,20,12,1,0,97,128,231,128, - 97,128,97,128,97,128,97,128,97,128,97,128,103,160,57,192, - 11,10,20,11,0,0,249,224,32,64,48,128,48,128,25,128, - 25,0,9,0,14,0,6,0,4,0,16,10,20,16,0,0, - 248,143,33,130,49,196,49,196,19,100,26,108,26,40,12,56, - 12,56,12,16,11,10,20,12,0,0,249,224,48,128,25,0, - 15,0,6,0,14,0,11,0,17,128,32,192,241,224,12,15, - 30,11,255,251,124,240,16,32,24,64,24,64,12,192,12,128, - 4,128,7,0,3,0,3,0,2,0,6,0,4,0,120,0, - 240,0,8,10,10,10,1,0,255,131,134,12,8,24,48,97, - 65,255,6,22,22,8,1,252,4,24,16,48,48,48,56,24, - 24,24,48,240,24,24,24,24,48,48,48,48,24,4,2,24, - 24,5,2,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,6,22,22,8, - 1,252,128,96,48,48,48,48,96,96,96,96,60,16,32,96, - 96,112,48,48,48,32,96,128,10,4,8,11,1,5,48,64, - 124,128,159,0,135,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 3 y=16 dx=23 dy= 0 ascent=23 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17[7056] U8G_FONT_SECTION("u8g_font_gdr17") = { - 0,40,38,242,247,17,4,64,9,46,32,255,250,23,249,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,6,0,0,3,19,19,7,2,249, - 96,224,224,192,64,64,64,64,64,96,96,96,96,224,224,224, - 224,224,192,11,17,34,13,1,255,6,0,6,0,7,128,31, - 224,38,64,102,0,198,0,198,0,198,0,198,0,198,0,230, - 32,118,64,63,128,15,0,6,0,6,0,11,16,32,13,1, - 0,7,192,24,224,16,64,48,64,48,0,48,0,48,0,48, - 0,255,0,48,0,48,0,48,0,48,32,32,32,96,96,255, - 224,9,8,16,13,2,4,128,128,93,0,119,0,99,0,99, - 0,119,0,93,0,128,128,14,16,32,13,255,0,240,124,48, - 48,24,96,28,96,12,192,14,192,7,128,3,128,3,0,63, - 240,3,0,3,0,3,0,3,0,3,0,15,192,2,27,27, - 6,2,251,192,192,192,192,192,192,192,192,192,192,192,192,128, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,31,0,35,128,97,0,96,0,112,0,60,0, - 127,0,199,128,195,192,193,192,224,192,120,192,63,128,15,0, - 3,128,65,128,65,128,97,0,62,0,9,3,6,11,1,15, - 193,128,193,128,193,128,17,17,51,19,1,0,3,224,0,12, - 24,0,48,6,0,48,246,0,99,27,0,102,1,0,204,1, - 128,204,1,128,204,1,128,204,1,128,204,1,128,70,19,0, - 103,19,0,49,230,0,48,6,0,12,24,0,3,224,0,7, - 8,8,7,0,8,56,76,140,60,108,108,126,126,10,12,24, - 13,1,0,8,64,24,192,16,128,49,128,99,0,230,0,231, - 0,99,0,49,128,16,128,8,192,8,64,11,6,12,13,1, - 2,255,224,0,96,0,96,0,96,0,96,0,96,7,1,1, - 9,1,6,254,9,9,18,10,0,10,62,0,99,0,255,128, - 146,128,156,128,152,128,213,128,107,0,62,0,9,1,2,13, - 2,16,255,128,6,6,6,10,2,10,56,76,204,204,200,112, - 10,12,24,11,1,2,12,0,12,0,12,0,12,0,255,192, - 12,0,12,0,12,0,12,0,0,0,0,0,255,128,7,10, - 10,9,1,8,60,70,198,6,12,24,16,32,66,254,8,10, - 10,9,255,8,30,35,67,2,14,3,3,3,198,60,5,6, - 6,9,3,14,24,56,48,96,192,128,14,18,36,14,0,250, - 48,48,240,112,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,240,63,188,55,56,48,0,48,0,48,0,48,0, - 56,0,48,0,13,20,40,15,1,253,31,248,49,224,97,224, - 193,224,193,224,193,224,193,224,97,224,113,224,31,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 7,248,2,3,3,4,1,8,192,192,192,5,6,6,6,0, - 250,48,32,56,88,16,224,7,10,10,9,1,8,24,248,24, - 24,24,24,24,24,24,126,6,8,8,8,1,8,56,76,204, - 204,204,200,112,252,10,12,24,13,2,0,132,0,198,0,98, - 0,35,0,49,128,24,192,25,192,49,128,35,0,98,0,198, - 0,132,0,14,16,32,16,1,0,48,24,240,56,48,48,48, - 96,48,192,48,192,49,128,255,0,3,24,6,56,12,88,12, - 88,24,152,17,252,48,24,96,60,13,16,32,15,1,0,48, - 8,240,16,48,48,48,32,48,96,48,192,48,128,253,128,3, - 112,2,152,7,24,4,16,8,48,24,96,16,200,49,248,14, - 16,32,16,1,0,56,24,204,16,12,48,56,32,12,64,12, - 192,140,128,113,128,3,24,2,56,6,88,12,88,8,152,25, - 252,16,24,48,60,10,19,38,12,1,249,6,0,14,0,14, - 0,12,0,2,0,6,0,6,0,6,0,12,0,28,0,56, - 0,112,0,96,0,192,0,192,192,192,192,192,192,97,128,62, - 0,16,23,46,16,0,0,12,0,30,0,7,0,1,128,0, - 64,0,0,0,128,1,128,3,128,3,192,2,192,6,192,6, - 96,4,96,12,112,12,48,15,240,24,24,24,24,16,24,48, - 12,48,12,248,63,16,23,46,16,0,0,0,48,0,112,1, - 192,3,128,2,0,0,0,0,128,1,128,3,128,3,192,2, - 192,6,192,6,96,4,96,12,112,12,48,15,240,24,24,24, - 24,16,24,48,12,48,12,248,63,16,22,44,16,0,0,3, - 128,6,192,12,32,8,16,0,0,0,128,1,128,3,128,3, - 192,2,192,6,192,6,96,4,96,12,112,12,48,15,240,24, - 24,24,24,16,24,48,12,48,12,248,63,16,22,44,16,0, - 0,0,16,7,176,9,224,16,192,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,21,42, - 16,0,0,12,48,12,48,8,32,0,0,0,128,1,128,3, - 128,3,192,2,192,6,192,6,96,4,96,12,112,12,48,15, - 240,24,24,24,24,16,24,48,12,48,12,248,63,16,23,46, - 16,0,0,1,192,3,96,3,96,3,192,1,128,0,0,0, - 128,1,128,3,128,3,192,2,192,6,192,6,96,4,96,12, - 112,12,48,15,240,24,24,24,24,16,24,48,12,48,12,248, - 63,20,17,51,21,0,0,7,255,224,1,176,32,1,176,32, - 1,48,0,3,48,0,3,48,0,6,48,0,7,255,192,4, - 48,128,12,48,0,12,48,0,24,48,0,24,48,0,16,48, - 0,48,48,16,48,48,48,248,255,240,12,23,46,14,1,250, - 7,224,24,112,48,0,32,0,96,0,64,0,192,0,192,0, - 192,0,192,0,192,0,192,0,224,0,96,32,112,32,61,192, - 31,128,4,0,4,0,7,0,3,0,2,0,28,0,12,23, - 46,13,1,0,48,0,120,0,28,0,6,0,1,0,0,0, - 255,224,48,32,48,32,48,0,48,0,48,0,48,0,63,192, - 48,128,48,0,48,0,48,0,48,0,48,0,48,16,48,48, - 255,224,12,23,46,13,1,0,0,192,3,192,7,0,12,0, - 16,0,0,0,255,224,48,32,48,32,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,16,48,48,255,224,12,22,44,13,1,0,14,0,27,0, - 48,128,64,64,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,12,21,42,13,1,0,32,128, - 97,128,32,128,0,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,8,23,23,8,255,0,96,240, - 56,12,2,0,63,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,63,7,23,23,8,1,0,6,14,56,112,64, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,8,22,22,8,0,0,56,108,194,129,0,126,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,126,8,21, - 21,8,0,0,195,195,130,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,126,14,17,34,16,1,0,127, - 128,176,224,48,48,48,24,48,24,48,12,48,12,48,12,255, - 12,48,12,48,12,48,12,48,24,48,24,48,48,48,96,255, - 128,16,22,44,18,1,0,0,16,7,176,9,224,16,192,0, - 0,240,63,48,12,56,12,60,12,52,12,54,12,51,12,51, - 12,49,140,48,204,48,204,48,108,48,60,48,60,48,28,48, - 28,252,12,14,23,46,16,1,0,24,0,28,0,7,0,3, - 128,0,128,0,0,7,192,24,96,48,48,96,24,96,24,64, - 12,192,12,192,12,192,12,192,12,192,12,192,8,96,24,96, - 16,48,48,24,96,15,128,14,23,46,16,1,0,0,96,0, - 240,1,192,3,0,4,0,0,0,7,192,24,96,48,48,96, - 24,96,24,64,12,192,12,192,12,192,12,192,12,192,12,192, - 8,96,24,96,16,48,48,24,96,15,128,14,22,44,16,1, - 0,3,128,4,192,8,96,16,32,0,0,7,192,24,96,48, - 48,96,24,96,24,64,12,192,12,192,12,192,12,192,12,192, - 12,192,8,96,24,96,16,48,48,24,96,15,128,14,22,44, - 16,1,0,0,32,15,48,19,224,32,128,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,14, - 21,42,16,1,0,24,96,24,96,16,64,0,0,7,192,24, - 96,48,48,96,24,96,24,64,12,192,12,192,12,192,12,192, - 12,192,12,192,8,96,24,96,16,48,48,24,96,15,128,9, - 9,18,11,1,3,193,128,99,0,54,0,28,0,28,0,28, - 0,54,0,99,0,193,128,14,18,36,16,1,255,7,204,24, - 120,48,48,32,120,96,120,64,220,193,204,193,140,195,12,199, - 12,198,12,204,8,104,24,120,16,48,48,120,96,207,128,128, - 0,16,23,46,18,1,0,12,0,30,0,7,0,1,192,0, - 64,0,0,252,63,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,24,24, - 24,12,48,7,224,16,23,46,18,1,0,0,48,0,112,1, - 192,3,128,2,0,0,0,252,63,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,24,24,24,12,48,7,224,16,22,44,18,1,0,1, - 128,2,64,4,32,8,16,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,16,21,42,18,1, - 0,12,48,12,48,8,32,0,0,252,63,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,48,12,48,12,48, - 12,48,12,48,24,24,24,12,48,7,224,15,23,46,16,0, - 0,0,48,0,112,0,192,3,128,2,0,0,0,240,62,56, - 12,24,24,28,24,14,48,6,32,7,96,3,192,3,192,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,7,224,12, - 17,34,14,1,0,252,0,48,0,48,0,63,128,48,224,48, - 96,48,48,48,48,48,48,48,48,48,48,48,96,56,192,55, - 128,48,0,48,0,252,0,14,20,40,15,1,0,3,192,12, - 224,24,112,16,48,48,48,48,48,48,96,49,192,51,0,54, - 0,54,0,55,128,51,224,48,248,48,60,48,28,50,12,50, - 12,51,24,243,240,11,20,40,12,1,0,48,0,120,0,24, - 0,12,0,4,0,2,0,0,0,0,0,31,0,97,128,225, - 128,1,128,1,128,31,128,121,128,225,128,193,128,193,128,199, - 128,121,224,11,20,40,12,1,0,1,128,3,128,3,0,6, - 0,4,0,8,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,12,0,30,0,19,0,33,128,64, - 192,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,11,18,36, - 12,1,0,24,64,60,128,71,0,0,0,0,0,0,0,31, - 0,97,128,225,128,1,128,1,128,31,128,121,128,225,128,193, - 128,193,128,199,128,121,224,11,18,36,12,1,0,97,128,97, - 128,97,128,0,0,0,0,0,0,31,0,97,128,225,128,1, - 128,1,128,31,128,121,128,225,128,193,128,193,128,199,128,121, - 224,11,19,38,12,1,0,14,0,11,0,27,0,27,0,14, - 0,0,0,0,0,31,0,97,128,225,128,1,128,1,128,31, - 128,121,128,225,128,193,128,193,128,199,128,121,224,17,12,36, - 19,1,0,31,62,0,97,195,0,97,193,128,193,129,128,15, - 255,128,57,128,0,97,128,0,193,128,0,193,128,0,193,193, - 0,198,227,0,120,124,0,10,18,36,12,1,250,15,192,48, - 192,96,128,64,0,192,0,192,0,192,0,192,0,224,0,96, - 64,120,192,63,0,12,0,4,0,7,0,3,0,2,0,28, - 0,10,20,40,12,1,0,48,0,56,0,24,0,12,0,6, - 0,2,0,0,0,0,0,15,0,49,128,96,192,64,192,255, - 192,192,0,192,0,192,0,224,0,96,64,48,128,31,0,10, - 20,40,12,1,0,1,192,1,128,3,0,2,0,4,0,12, - 0,0,0,0,0,15,0,49,128,96,192,64,192,255,192,192, - 0,192,0,192,0,224,0,96,64,48,128,31,0,10,19,38, - 12,1,0,6,0,15,0,25,0,48,128,32,64,0,0,0, - 0,15,0,49,128,96,192,64,192,255,192,192,0,192,0,192, - 0,224,0,96,64,48,128,31,0,10,18,36,12,1,0,32, - 128,48,192,32,128,0,0,0,0,0,0,15,0,49,128,96, - 192,64,192,255,192,192,0,192,0,192,0,224,0,96,64,48, - 128,31,0,7,20,20,7,0,0,192,224,112,48,24,8,0, - 0,24,120,24,24,24,24,24,24,24,24,24,126,7,20,20, - 7,1,0,14,12,24,16,48,96,0,0,48,240,48,48,48, - 48,48,48,48,48,48,252,8,19,19,7,0,0,24,60,100, - 194,129,0,0,24,120,24,24,24,24,24,24,24,24,24,126, - 8,18,18,7,0,0,130,195,130,0,0,0,24,120,24,24, - 24,24,24,24,24,24,24,126,11,19,38,13,1,0,24,0, - 60,224,7,128,31,0,49,128,0,192,0,192,15,192,49,224, - 96,224,64,96,192,96,192,96,192,96,192,64,224,192,96,192, - 49,128,30,0,14,18,36,15,1,0,12,32,31,64,35,128, - 0,0,0,0,0,0,113,224,178,48,52,48,56,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,12,20, - 40,14,1,0,56,0,24,0,12,0,4,0,6,0,3,0, - 0,0,0,0,15,128,48,192,96,96,64,112,192,48,192,48, - 192,48,192,48,224,32,96,96,48,192,31,0,12,20,40,14, - 1,0,0,192,1,128,3,128,3,0,6,0,4,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,12,19,38,14,1,0, - 6,0,15,0,25,128,16,128,32,64,0,0,0,0,15,128, - 48,192,96,96,64,112,192,48,192,48,192,48,192,48,224,32, - 96,96,48,192,31,0,12,18,36,14,1,0,28,96,62,64, - 35,128,0,0,0,0,0,0,15,128,48,192,96,96,64,112, - 192,48,192,48,192,48,192,48,224,32,96,96,48,192,31,0, - 12,18,36,14,1,0,48,192,48,192,48,192,0,0,0,0, - 0,0,15,128,48,192,96,96,64,112,192,48,192,48,192,48, - 192,48,224,32,96,96,48,192,31,0,9,9,18,11,1,3, - 12,0,12,0,0,0,0,0,255,128,0,0,0,0,12,0, - 12,0,12,14,28,14,1,255,0,16,15,176,49,224,96,224, - 65,240,195,48,198,48,198,48,204,48,248,32,112,96,120,192, - 223,0,128,0,14,20,40,14,0,0,28,0,12,0,6,0, - 3,0,1,0,1,128,0,0,0,0,48,48,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,112,56,188, - 31,48,14,20,40,14,0,0,0,96,0,224,0,192,1,128, - 3,0,2,0,0,0,0,0,48,48,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,112,56,188,31,48, - 14,19,38,14,0,0,3,0,7,128,4,192,8,96,16,32, - 0,0,0,0,48,48,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,112,56,188,31,48,14,18,36,14, - 0,0,24,96,24,96,24,96,0,0,0,0,0,0,48,48, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,112,56,188,31,48,14,26,52,13,255,250,0,112,0,96, - 0,224,0,192,1,128,1,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0, - 12,26,52,14,1,250,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,51,192,52,224,56,96,48,48,48,48, - 48,48,48,48,48,48,48,32,48,96,56,64,55,128,48,0, - 48,0,48,0,48,0,48,0,252,0,14,24,48,13,255,250, - 12,48,12,48,8,32,0,0,0,0,0,0,124,60,24,24, - 24,16,12,48,12,32,14,32,6,96,6,64,3,192,3,128, - 3,128,1,128,1,0,3,0,2,0,6,0,124,0,240,0 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 16 - Calculated Max Values w=11 h=25 x= 2 y= 9 dx=13 dy= 0 ascent=21 len=50 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =16 descent= 0 - X Font ascent =16 descent= 0 - Max Font ascent =21 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17n[559] U8G_FONT_SECTION("u8g_font_gdr17n") = { - 0,40,38,242,247,16,0,0,0,0,42,58,0,21,252,16, - 0,10,12,24,12,1,9,12,0,12,0,140,0,204,192,119, - 128,30,0,30,0,119,128,204,192,12,128,12,0,12,0,10, - 9,18,11,1,3,12,0,12,0,12,0,12,0,255,192,12, - 0,12,0,12,0,12,0,4,7,7,6,1,252,112,240,48, - 48,32,96,64,7,1,1,9,1,6,254,3,4,4,6,2, - 255,96,224,224,192,11,25,50,13,1,252,0,96,0,96,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,6,0,6, - 0,6,0,12,0,12,0,12,0,24,0,24,0,48,0,48, - 0,48,0,96,0,96,0,224,0,192,0,192,0,11,16,32, - 13,1,0,15,0,49,128,96,192,64,192,64,224,192,96,192, - 96,192,96,192,96,192,96,192,96,192,64,96,64,96,192,49, - 128,30,0,9,16,32,13,2,0,12,0,60,0,252,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,255,128,10,16,32,13,1,0,15, - 0,49,128,96,192,96,192,0,192,0,192,1,128,1,128,3, - 0,6,0,12,0,28,0,24,0,48,64,96,64,255,192,10, - 16,32,13,1,0,30,0,99,0,97,128,193,128,1,128,3, - 0,6,0,31,0,3,128,1,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,1,128,3,128,7, - 128,5,128,13,128,25,128,17,128,49,128,97,128,65,128,255, - 224,1,128,1,128,1,128,1,128,15,224,10,16,32,13,1, - 0,63,192,32,0,32,0,32,0,96,0,96,0,127,0,67, - 128,1,192,0,192,0,192,0,192,0,192,1,128,193,128,62, - 0,11,16,32,13,1,0,3,128,14,0,24,0,48,0,96, - 0,96,0,207,0,241,192,192,224,192,96,192,96,192,96,96, - 96,96,64,48,128,31,0,11,16,32,13,1,0,127,224,64, - 192,128,192,0,128,1,128,1,128,3,0,3,0,6,0,6, - 0,4,0,12,0,12,0,24,0,24,0,48,0,11,16,32, - 13,1,0,31,0,113,128,224,192,224,192,224,192,241,128,63, - 0,15,128,51,192,96,224,192,96,192,96,192,96,192,64,96, - 128,31,0,11,17,34,13,1,255,31,0,49,128,96,192,192, - 192,192,96,192,96,192,96,224,96,113,224,30,96,0,224,0, - 192,0,192,1,128,3,0,14,0,48,0,3,14,14,6,2, - 255,64,224,224,224,0,0,0,0,0,0,96,224,224,192}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--27-270-72-72-P-125-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 17, '1' Height: 16 - Calculated Max Values w=22 h=27 x= 2 y=14 dx=23 dy= 0 ascent=22 len=66 - Font Bounding box w=40 h=38 x=-14 y=-9 - Calculated Min Values x=-3 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =21 descent=-6 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr17r[3380] U8G_FONT_SECTION("u8g_font_gdr17r") = { - 0,40,38,242,247,17,4,64,9,46,32,127,250,22,250,21, - 250,0,0,0,6,0,0,3,21,21,7,2,255,96,224,224, - 224,224,96,96,96,96,96,64,64,64,64,64,0,0,96,224, - 224,192,7,9,9,11,2,11,102,230,230,198,198,70,70,70, - 70,12,15,30,13,1,2,6,96,6,96,4,64,4,64,12, - 192,63,240,8,128,25,128,17,0,255,224,51,0,34,0,34, - 0,102,0,68,0,11,20,40,12,0,254,6,0,6,0,15, - 128,55,224,102,64,102,0,102,0,118,0,62,0,31,128,7, - 192,6,224,6,96,134,96,198,96,230,192,127,192,31,0,6, - 0,6,0,17,16,48,19,1,0,56,6,0,108,12,0,198, - 24,0,198,24,0,198,48,0,198,96,0,198,192,0,108,192, - 0,57,158,0,3,51,0,6,97,128,6,97,128,12,97,128, - 24,97,128,48,51,0,32,30,0,17,19,57,18,1,0,3, - 192,0,12,224,0,8,96,0,24,96,0,24,96,0,24,192, - 0,29,192,0,31,128,0,14,0,0,62,63,128,119,29,0, - 103,12,0,195,140,0,193,204,0,193,232,0,192,248,0,96, - 120,0,112,222,0,31,7,128,3,9,9,7,2,11,96,224, - 224,192,192,64,64,64,64,6,25,25,9,2,252,4,8,24, - 48,32,96,96,96,192,192,192,192,192,192,192,192,192,224,96, - 96,96,48,24,8,4,6,25,25,9,1,252,128,64,96,48, - 24,24,24,24,12,12,12,12,12,12,12,12,12,24,24,24, - 48,48,96,64,128,10,12,24,12,1,9,12,0,12,0,140, - 0,204,192,119,128,30,0,30,0,119,128,204,192,12,128,12, - 0,12,0,10,9,18,11,1,3,12,0,12,0,12,0,12, - 0,255,192,12,0,12,0,12,0,12,0,4,7,7,6,1, - 252,112,240,48,48,32,96,64,7,1,1,9,1,6,254,3, - 4,4,6,2,255,96,224,224,192,11,25,50,13,1,252,0, - 96,0,96,0,192,0,192,1,128,1,128,1,128,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,224,0,192,0,192, - 0,11,16,32,13,1,0,15,0,49,128,96,192,64,192,64, - 224,192,96,192,96,192,96,192,96,192,96,192,96,192,64,96, - 64,96,192,49,128,30,0,9,16,32,13,2,0,12,0,60, - 0,252,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,255,128,10,16,32, - 13,1,0,15,0,49,128,96,192,96,192,0,192,0,192,1, - 128,1,128,3,0,6,0,12,0,28,0,24,0,48,64,96, - 64,255,192,10,16,32,13,1,0,30,0,99,0,97,128,193, - 128,1,128,3,0,6,0,31,0,3,128,1,192,0,192,0, - 192,0,192,1,128,193,128,62,0,11,16,32,13,1,0,1, - 128,3,128,7,128,5,128,13,128,25,128,17,128,49,128,97, - 128,65,128,255,224,1,128,1,128,1,128,1,128,15,224,10, - 16,32,13,1,0,63,192,32,0,32,0,32,0,96,0,96, - 0,127,0,67,128,1,192,0,192,0,192,0,192,0,192,1, - 128,193,128,62,0,11,16,32,13,1,0,3,128,14,0,24, - 0,48,0,96,0,96,0,207,0,241,192,192,224,192,96,192, - 96,192,96,96,96,96,64,48,128,31,0,11,16,32,13,1, - 0,127,224,64,192,128,192,0,128,1,128,1,128,3,0,3, - 0,6,0,6,0,4,0,12,0,12,0,24,0,24,0,48, - 0,11,16,32,13,1,0,31,0,113,128,224,192,224,192,224, - 192,241,128,63,0,15,128,51,192,96,224,192,96,192,96,192, - 96,192,64,96,128,31,0,11,17,34,13,1,255,31,0,49, - 128,96,192,192,192,192,96,192,96,192,96,224,96,113,224,30, - 96,0,224,0,192,0,192,1,128,3,0,14,0,48,0,3, - 14,14,6,2,255,64,224,224,224,0,0,0,0,0,0,96, - 224,224,192,4,17,17,6,1,252,32,112,112,112,0,0,0, - 0,0,0,112,240,48,48,32,96,64,10,9,18,12,1,3, - 0,192,3,192,31,0,120,0,224,0,248,0,30,0,7,192, - 0,192,10,5,10,12,1,5,255,192,0,0,0,0,0,0, - 255,192,10,9,18,12,1,3,192,0,248,0,30,0,7,192, - 1,192,7,128,60,0,240,0,128,0,10,20,40,12,1,255, - 31,0,97,128,192,192,192,192,192,192,0,192,1,128,1,128, - 3,0,6,0,6,0,12,0,12,0,12,0,8,0,0,0, - 12,0,28,0,28,0,24,0,20,22,66,22,1,251,0,252, - 0,3,7,0,12,1,192,24,0,192,48,0,96,32,244,96, - 97,28,112,67,12,48,194,12,48,198,12,48,198,12,48,198, - 12,48,198,12,32,198,12,96,227,12,64,99,60,128,97,199, - 0,48,0,0,56,0,0,28,0,64,7,3,128,1,252,0, - 16,17,34,16,0,0,0,128,1,128,3,128,3,192,2,192, - 6,192,6,96,4,96,12,112,12,48,15,240,24,24,24,24, - 16,24,48,12,48,12,248,63,12,17,34,14,1,0,127,128, - 176,192,48,96,48,96,48,96,48,64,49,128,63,192,48,224, - 48,96,48,48,48,48,48,48,48,48,48,96,48,224,255,128, - 12,17,34,14,1,0,7,224,24,112,48,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,48,16,24,32,15,192,14,17,34,16,1,0,127,128, - 176,224,48,48,48,24,48,24,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,24,48,24,48,48,48,96,255,128, - 12,17,34,13,1,0,255,224,48,32,48,32,48,0,48,0, - 48,0,48,0,63,192,48,128,48,0,48,0,48,0,48,0, - 48,0,48,16,48,48,255,224,11,17,34,13,1,0,255,224, - 48,32,48,32,48,0,48,0,48,0,48,0,63,128,49,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 14,17,34,16,1,0,3,240,12,56,16,0,32,0,96,0, - 64,0,192,0,192,0,192,0,192,252,192,24,192,24,96,24, - 96,24,48,24,24,24,7,224,16,17,34,18,1,0,252,63, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,63,252, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,252,63, - 6,17,17,8,1,0,252,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,10,22,44,8,253,251,31,192,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,2,0,6,0,68,0,248,0,15,17,34,16,1,0,252, - 252,48,48,48,96,48,192,49,128,51,0,54,0,52,0,62, - 0,54,0,51,0,49,128,49,192,48,224,48,112,48,56,252, - 30,12,17,34,13,1,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,16,48,48,255,224,20,17,51,22,1,0,240, - 1,224,56,1,192,56,3,192,44,2,192,44,6,192,44,6, - 192,38,4,192,38,12,192,35,8,192,35,24,192,35,152,192, - 33,144,192,33,176,192,32,224,192,32,224,192,32,64,192,248, - 67,240,16,17,34,18,1,0,240,63,48,12,56,12,60,12, - 52,12,54,12,51,12,51,12,49,140,48,204,48,204,48,108, - 48,60,48,60,48,28,48,28,252,12,14,17,34,16,1,0, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,8,96,24,96,16,48,48,24,96, - 15,128,12,17,34,14,1,0,127,128,176,224,48,96,48,48, - 48,48,48,48,48,48,48,96,48,192,63,128,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,16,21,42,16,1,252, - 7,192,24,96,48,48,96,24,96,24,64,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,96,24,48,48,24,96, - 15,192,0,192,0,96,0,49,0,14,14,17,34,15,1,0, - 127,0,177,192,48,96,48,96,48,96,48,96,48,192,49,192, - 63,0,51,0,49,128,49,128,48,192,48,224,48,96,48,112, - 252,60,10,17,34,13,2,0,31,0,99,128,193,0,192,0, - 224,0,240,0,124,0,126,0,31,128,7,128,1,192,0,192, - 0,192,128,192,128,128,193,0,126,0,14,17,34,15,0,0, - 255,252,131,4,131,4,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 15,192,16,17,34,18,1,0,252,63,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,24,24,24,12,48,7,224,17,17,51,18,0,0, - 252,15,128,48,6,0,24,6,0,24,4,0,24,12,0,12, - 12,0,12,8,0,14,24,0,6,24,0,6,16,0,3,48, - 0,3,32,0,3,96,0,1,224,0,1,192,0,1,192,0, - 0,128,0,22,17,51,23,0,0,252,16,124,48,16,16,48, - 56,16,24,56,48,24,56,48,24,108,48,24,108,32,24,76, - 32,12,198,96,12,198,96,12,134,96,13,131,64,7,131,64, - 7,3,192,7,1,192,7,1,192,6,1,128,16,17,34,17, - 0,0,124,63,56,28,24,24,12,48,14,48,7,96,3,192, - 3,192,1,192,3,192,3,224,6,112,12,48,12,24,24,28, - 56,14,252,63,15,17,34,16,0,0,240,62,56,12,24,24, - 28,24,14,48,6,32,7,96,3,192,3,192,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,7,224,12,17,34,14, - 1,0,127,240,64,96,64,224,128,192,1,192,3,128,3,0, - 7,0,6,0,14,0,28,0,24,0,56,0,48,16,112,16, - 224,48,255,240,6,25,25,8,2,252,252,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,252,11,25,50,13,1,252,128,0,192,0,64,0,96, - 0,96,0,48,0,48,0,48,0,24,0,24,0,8,0,12, - 0,12,0,6,0,6,0,2,0,3,0,3,0,1,128,1, - 128,1,128,0,192,0,192,0,64,0,96,6,25,25,9,1, - 252,252,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,252,11,13,26,13,1,7, - 6,0,14,0,14,0,15,0,27,0,19,0,17,128,49,128, - 33,192,96,192,96,192,64,96,192,64,11,1,2,13,1,253, - 255,224,6,6,6,9,0,14,96,224,48,24,8,4,11,12, - 24,12,1,0,31,0,97,128,225,128,1,128,1,128,31,128, - 121,128,225,128,193,128,193,128,199,128,121,224,13,20,40,14, - 0,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,54,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,16,48,48,56,96,15,128,10,12,24,12,1,0, - 15,192,48,192,96,128,64,0,192,0,192,0,192,0,192,0, - 192,0,96,64,48,192,31,0,13,20,40,14,1,0,0,96, - 1,224,0,96,0,96,0,96,0,96,0,96,0,96,15,224, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,120,30,96,10,12,24,12,1,0,15,0,49,128, - 96,192,64,192,255,192,192,0,192,0,192,0,224,0,96,64, - 48,128,31,0,10,20,40,8,1,0,3,192,12,128,24,0, - 16,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,13,18,36,13,0,250,15,24,48,240,32,96,96,96, - 96,96,96,96,56,192,31,0,24,0,56,0,63,128,31,240, - 48,120,192,24,192,24,192,16,112,96,31,128,14,20,40,15, - 1,0,48,0,240,0,48,0,48,0,48,0,48,0,48,0, - 48,0,49,224,50,48,52,48,56,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,252,6,18,18,7,1,0, - 48,112,48,0,0,0,48,240,48,48,48,48,48,48,48,48, - 48,252,8,24,24,7,253,250,3,7,3,0,0,0,3,15, - 3,3,3,3,3,3,3,3,3,3,3,3,2,2,4,248, - 13,20,40,14,1,0,48,0,240,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,240,48,192,49,128,51,0,52,0, - 60,0,54,0,51,0,49,128,48,192,48,224,248,120,6,20, - 20,7,1,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,20,12,36,21,1,0,113,195, - 128,182,108,192,56,112,192,56,112,192,48,96,192,48,96,192, - 48,96,192,48,96,192,48,96,192,48,96,192,48,96,192,253, - 251,240,14,12,24,15,1,0,113,224,178,48,52,48,56,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,252, - 12,12,24,14,1,0,15,128,48,192,96,96,64,112,192,48, - 192,48,192,48,192,48,224,32,96,96,48,192,31,0,12,18, - 36,14,1,250,113,192,182,224,56,96,48,48,48,48,48,48, - 48,48,48,48,48,32,48,96,56,64,55,128,48,0,48,0, - 48,0,48,0,48,0,252,0,13,18,36,14,1,250,15,32, - 48,224,96,96,64,96,192,96,192,96,192,96,192,96,192,96, - 96,224,49,96,30,96,0,96,0,96,0,96,0,96,0,96, - 1,248,10,12,24,11,1,0,51,192,244,128,56,128,56,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 8,12,12,10,1,0,62,70,194,224,240,124,30,7,131,131, - 198,124,9,17,34,9,0,0,16,0,48,0,48,0,48,0, - 48,0,255,128,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,49,0,30,128,14,12,24,14,0,0, - 48,48,240,240,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,112,56,188,31,48,13,12,24,13,0,0,248,120, - 48,48,48,32,24,96,24,64,28,64,12,192,12,128,7,128, - 7,0,7,0,2,0,19,12,36,19,0,0,248,99,224,48, - 96,128,48,96,128,48,241,128,24,177,128,25,177,0,25,153, - 0,13,27,0,15,26,0,14,14,0,6,14,0,4,4,0, - 13,12,24,14,0,0,252,248,56,96,24,64,12,128,7,128, - 7,0,7,128,13,128,8,192,16,96,48,112,248,248,14,18, - 36,13,255,250,124,60,24,24,24,16,12,48,12,32,14,32, - 6,96,6,64,3,192,3,128,3,128,1,128,1,0,3,0, - 2,0,6,0,124,0,240,0,10,12,24,12,1,0,127,192, - 65,128,131,128,3,0,6,0,12,0,28,0,24,0,48,0, - 112,64,96,64,255,192,6,25,25,9,2,252,4,8,24,48, - 48,48,48,24,24,24,24,48,224,56,24,24,24,24,48,48, - 48,48,16,24,4,2,27,27,6,2,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,6,25,25,9,1,252,128,96,32,48, - 48,48,48,96,96,96,96,48,28,48,96,96,96,96,48,48, - 48,48,96,64,128,12,4,8,13,1,6,56,48,126,32,143, - 192,131,128,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=19 dx=27 dy= 0 ascent=27 len=81 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =27 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20[9119] U8G_FONT_SECTION("u8g_font_gdr20") = { - 0,47,44,240,246,20,4,220,11,144,32,255,248,27,247,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,0,4,24, - 24,9,2,247,112,240,240,224,0,0,32,96,96,96,96,96, - 96,96,96,96,112,112,112,112,112,112,112,64,12,20,40,15, - 2,255,6,0,6,0,6,0,15,224,54,224,102,96,102,0, - 198,0,198,0,198,0,198,0,198,0,198,0,230,32,118,48, - 63,192,31,128,6,0,6,0,6,0,13,19,38,15,1,0, - 7,224,8,112,16,48,16,32,48,32,48,0,48,0,48,0, - 48,0,255,0,48,0,48,0,48,0,48,0,48,8,32,24, - 96,48,127,240,131,240,11,10,20,15,2,4,192,96,127,192, - 49,192,96,192,96,192,96,192,113,192,63,128,64,64,128,32, - 16,19,38,15,255,0,240,63,56,28,28,24,28,56,14,48, - 6,112,7,96,3,192,3,192,1,128,1,128,63,252,1,128, - 1,128,1,128,1,128,1,128,1,128,15,240,2,32,32,7, - 3,250,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 128,0,0,64,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,22,44,15,2,0,31,128,49,192,96,128,96,0, - 112,0,120,0,62,0,111,128,199,192,193,224,192,224,224,96, - 240,96,124,96,63,192,15,128,3,192,1,192,64,192,64,192, - 96,128,63,0,9,4,8,13,2,17,97,128,227,128,227,128, - 195,0,21,20,60,24,1,0,1,252,0,6,3,0,24,0, - 192,48,0,96,48,124,96,97,134,48,99,0,48,194,0,24, - 198,0,24,198,0,24,198,0,24,198,0,24,199,0,24,99, - 0,48,97,198,48,48,248,96,48,0,96,24,0,192,6,3, - 0,1,252,0,7,10,10,8,1,9,56,204,140,28,108,204, - 220,238,0,254,12,14,28,16,1,0,6,16,4,48,8,96, - 24,96,48,192,113,192,227,128,227,128,113,192,48,192,24,96, - 8,96,4,48,6,16,13,6,12,15,1,3,255,248,0,24, - 0,24,0,24,0,24,0,24,9,1,2,11,1,8,255,128, - 10,11,22,11,1,11,30,0,97,0,126,128,147,64,151,64, - 156,64,148,64,146,64,105,128,33,0,30,0,10,1,2,16, - 3,19,255,192,7,7,7,11,2,12,60,110,198,198,198,236, - 120,12,14,28,13,1,2,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,4,0,0,0,0, - 0,255,224,8,11,11,10,1,10,62,99,195,3,6,6,12, - 24,50,97,255,9,12,24,11,0,9,31,0,51,128,97,128, - 1,128,3,0,15,0,1,128,1,128,1,128,1,128,195,0, - 62,0,7,7,7,10,3,16,12,30,24,48,48,96,192,15, - 23,46,17,1,248,48,8,240,56,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,56,56,56,120,63,248,55, - 222,51,152,48,0,48,0,48,0,48,0,56,0,56,0,56, - 0,48,0,15,24,48,18,1,252,15,254,48,252,96,216,64, - 216,192,216,192,216,192,216,192,216,224,216,112,216,56,216,15, - 216,0,216,0,216,0,216,0,216,0,216,0,216,0,216,0, - 216,0,216,0,216,0,216,3,254,3,4,4,5,1,9,96, - 224,224,192,5,7,7,7,1,249,48,32,48,120,24,48,224, - 8,11,11,11,2,10,24,248,24,24,24,24,24,24,24,24, - 255,7,10,10,9,1,9,56,108,198,198,198,198,108,56,0, - 254,12,14,28,16,2,0,130,0,65,0,97,128,48,192,56, - 224,28,96,12,112,28,112,30,96,56,224,48,192,97,128,65, - 0,130,0,16,19,38,19,2,0,48,6,240,14,48,12,48, - 24,48,56,48,48,48,96,48,224,48,192,205,130,1,142,3, - 30,6,22,6,38,12,70,24,127,24,134,48,6,96,31,15, - 19,38,18,2,0,48,6,240,12,48,8,48,24,48,48,48, - 48,48,96,48,192,48,192,205,128,1,28,3,102,6,70,4, - 6,12,12,24,24,24,48,48,98,96,254,17,19,57,19,1, - 0,60,3,0,70,6,0,6,4,0,28,12,0,6,24,0, - 6,16,0,6,48,0,142,96,0,120,96,0,0,193,0,1, - 135,0,1,143,0,3,11,0,2,19,0,6,35,0,12,63, - 128,12,67,0,24,3,0,48,15,128,10,24,48,13,2,247, - 14,0,30,0,30,0,28,0,0,0,0,0,0,0,12,0, - 12,0,12,0,12,0,28,0,24,0,48,0,48,0,96,0, - 96,0,192,0,192,64,192,192,192,192,224,128,97,128,62,0, - 19,27,81,19,0,0,6,0,0,15,0,0,7,128,0,1, - 192,0,0,96,0,0,16,0,0,0,0,0,64,0,0,224, - 0,0,224,0,1,224,0,1,240,0,1,176,0,3,48,0, - 3,56,0,3,24,0,6,28,0,6,28,0,6,12,0,15, - 254,0,12,6,0,8,6,0,24,7,0,24,3,0,16,3, - 0,48,3,128,254,15,224,19,27,81,19,0,0,0,8,0, - 0,30,0,0,60,0,0,112,0,1,192,0,1,0,0,0, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,19,27, - 81,19,0,0,0,224,0,1,224,0,1,240,0,3,56,0, - 6,12,0,12,4,0,0,0,0,0,64,0,0,224,0,0, - 224,0,1,224,0,1,240,0,1,176,0,3,48,0,3,56, - 0,3,24,0,6,28,0,6,28,0,6,12,0,15,254,0, - 12,6,0,8,6,0,24,7,0,24,3,0,16,3,0,48, - 3,128,254,15,224,19,26,78,19,0,0,3,132,0,7,230, - 0,4,252,0,8,56,0,0,0,0,0,0,0,0,64,0, - 0,224,0,0,224,0,1,224,0,1,240,0,1,176,0,3, - 48,0,3,56,0,3,24,0,6,28,0,6,28,0,6,12, - 0,15,254,0,12,6,0,8,6,0,24,7,0,24,3,0, - 16,3,0,48,3,128,254,15,224,19,25,75,19,0,0,6, - 12,0,6,12,0,14,28,0,6,12,0,0,0,0,0,64, - 0,0,224,0,0,224,0,1,224,0,1,240,0,1,176,0, - 3,48,0,3,56,0,3,24,0,6,28,0,6,28,0,6, - 12,0,15,254,0,12,6,0,8,6,0,24,7,0,24,3, - 0,16,3,0,48,3,128,254,15,224,19,27,81,19,0,0, - 0,224,0,1,176,0,1,48,0,3,48,0,1,176,0,1, - 224,0,0,0,0,0,64,0,0,224,0,0,224,0,1,224, - 0,1,240,0,1,176,0,3,48,0,3,56,0,3,24,0, - 6,28,0,6,28,0,6,12,0,15,254,0,12,6,0,8, - 6,0,24,7,0,24,3,0,16,3,0,48,3,128,254,15, - 224,23,20,60,25,0,0,3,255,252,0,124,4,0,108,4, - 0,236,4,0,204,0,1,204,0,1,140,0,1,140,0,3, - 140,0,3,255,248,7,12,16,6,12,0,6,12,0,12,12, - 0,12,12,0,28,12,0,24,12,2,24,12,2,48,12,6, - 252,63,254,15,27,54,17,1,249,3,248,12,28,16,8,48, - 0,96,0,96,0,64,0,192,0,192,0,192,0,192,0,192, - 0,192,0,224,0,96,0,112,0,120,2,60,12,31,248,15, - 240,0,128,0,128,1,224,0,224,0,96,0,192,3,0,13, - 27,54,16,1,0,16,0,56,0,28,0,15,0,3,128,0, - 192,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,13,27,54,16,1, - 0,0,32,0,240,1,224,3,128,7,0,12,0,0,0,255, - 240,48,16,48,16,48,16,48,0,48,0,48,0,48,0,48, - 0,63,224,48,64,48,0,48,0,48,0,48,0,48,0,48, - 8,48,8,48,24,255,248,13,27,54,16,1,0,3,0,7, - 128,15,192,28,192,56,96,32,48,0,0,255,240,48,16,48, - 16,48,16,48,0,48,0,48,0,48,0,48,0,63,224,48, - 64,48,0,48,0,48,0,48,0,48,0,48,8,48,8,48, - 24,255,248,13,25,50,16,1,0,24,48,56,112,56,112,48, - 96,0,0,255,240,48,16,48,16,48,16,48,0,48,0,48, - 0,48,0,48,0,63,224,48,64,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,24,255,248,9,27,54,10,255, - 0,96,0,240,0,120,0,28,0,7,0,1,0,0,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,31,128,8,27,27,10,2,0,6,15,30, - 56,96,128,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,252,10,27,54,10,0,0,28,0, - 30,0,62,0,115,0,193,128,128,192,0,0,63,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,63,0,10,25,50,10,0,0,193,128,225,192,225,192, - 193,128,0,0,63,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,63,0,18,20,60,19, - 0,0,31,240,0,120,28,0,24,6,0,24,3,0,24,1, - 128,24,1,128,24,1,192,24,0,192,24,0,192,255,128,192, - 24,0,192,24,0,192,24,0,192,24,1,128,24,1,128,24, - 1,128,24,3,0,24,6,0,24,28,0,127,240,0,19,26, - 78,21,1,0,3,132,0,7,230,0,4,124,0,8,56,0, - 0,0,0,0,0,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,27,81,19,1,0,12,0,0,30,0,0,15,0, - 0,3,128,0,0,224,0,0,32,0,0,0,0,3,240,0, - 12,24,0,16,12,0,48,6,0,32,3,0,96,3,0,64, - 3,128,192,1,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,224,1,0,96,3,0,96,2,0,48,6,0, - 56,4,0,12,24,0,7,224,0,17,27,81,19,1,0,0, - 24,0,0,60,0,0,120,0,0,224,0,1,128,0,2,0, - 0,0,0,0,3,240,0,12,24,0,16,12,0,48,6,0, - 32,3,0,96,3,0,64,3,128,192,1,128,192,1,128,192, - 1,128,192,1,128,192,1,128,192,1,128,224,1,0,96,3, - 0,96,2,0,48,6,0,56,4,0,12,24,0,7,224,0, - 17,27,81,19,1,0,1,192,0,1,224,0,3,224,0,7, - 48,0,12,24,0,8,12,0,0,0,0,3,240,0,12,24, - 0,16,12,0,48,6,0,32,3,0,96,3,0,64,3,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,192, - 1,128,224,1,0,96,3,0,96,2,0,48,6,0,56,4, - 0,12,24,0,7,224,0,17,26,78,19,1,0,3,4,0, - 7,204,0,8,248,0,16,112,0,0,0,0,0,0,0,3, - 240,0,12,24,0,16,12,0,48,6,0,32,3,0,96,3, - 0,64,3,128,192,1,128,192,1,128,192,1,128,192,1,128, - 192,1,128,192,1,128,224,1,0,96,3,0,96,2,0,48, - 6,0,56,4,0,12,24,0,7,224,0,17,25,75,19,1, - 0,12,24,0,14,28,0,14,28,0,12,24,0,0,0,0, - 3,240,0,12,24,0,16,12,0,48,6,0,32,3,0,96, - 3,0,64,3,128,192,1,128,192,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,0,96,3,0,96,2,0, - 48,6,0,56,4,0,12,24,0,7,224,0,11,10,20,13, - 1,4,192,96,96,192,49,128,27,0,14,0,14,0,27,0, - 49,128,96,192,192,96,17,21,63,19,1,255,3,241,128,4, - 31,0,24,14,0,48,30,0,32,31,0,96,63,0,64,59, - 128,192,115,128,192,225,128,192,225,128,193,193,128,195,129,128, - 195,1,128,231,1,0,110,3,0,124,2,0,124,6,0,56, - 4,0,124,24,0,199,224,0,128,0,0,19,27,81,21,1, - 0,6,0,0,15,0,0,7,128,0,1,192,0,0,96,0, - 0,16,0,0,0,0,252,7,224,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,0,24,3,0,28,6,0,14,12,0,3, - 240,0,19,27,81,21,1,0,0,12,0,0,30,0,0,60, - 0,0,112,0,0,192,0,1,0,0,0,0,0,252,7,224, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,0,24,3,0, - 28,6,0,14,12,0,3,240,0,19,27,81,21,1,0,0, - 224,0,0,240,0,1,240,0,3,152,0,6,12,0,4,6, - 0,0,0,0,252,7,224,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,0,24,3,0,28,6,0,14,12,0,3,240,0, - 19,25,75,21,1,0,6,12,0,7,14,0,7,14,0,6, - 12,0,0,0,0,252,7,224,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,0,24,3,0,28,6,0,14,12,0,3,240, - 0,18,27,81,19,0,0,0,12,0,0,30,0,0,60,0, - 0,112,0,0,192,0,1,0,0,0,0,0,240,31,192,56, - 7,0,28,6,0,12,12,0,14,12,0,7,24,0,7,24, - 0,3,48,0,3,176,0,1,224,0,1,224,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,7,248,0,15,20,40,17,1,0,254,0, - 48,0,48,0,48,0,63,224,48,120,48,28,48,14,48,6, - 48,6,48,6,48,6,48,12,48,12,52,56,51,224,48,0, - 48,0,48,0,254,0,16,24,48,18,1,0,1,224,6,56, - 8,24,16,28,16,12,48,12,48,12,48,28,48,56,48,240, - 49,192,49,128,49,128,49,192,48,240,48,124,48,62,48,15, - 48,7,48,3,49,3,49,3,49,134,241,248,13,23,46,15, - 1,0,56,0,56,0,28,0,14,0,6,0,3,0,1,0, - 0,0,15,192,48,224,112,96,96,96,0,96,0,96,15,224, - 63,224,126,96,240,96,224,96,192,96,192,96,65,224,62,120, - 13,23,46,15,1,0,0,224,0,224,1,192,1,128,3,0, - 2,0,4,0,0,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,13,23,46,15,1,0,7,0,7,0,15,128, - 29,192,24,192,48,96,32,32,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,28,16, - 63,32,35,192,64,0,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,21,42,15,1,0,48,96, - 56,112,48,96,48,96,0,0,0,0,15,192,48,224,112,96, - 96,96,0,96,0,96,15,224,63,224,126,96,240,96,224,96, - 192,96,192,96,65,224,62,120,13,22,44,15,1,0,7,128, - 13,128,12,192,12,128,13,128,15,0,0,0,15,192,48,224, - 112,96,96,96,0,96,0,96,15,224,63,224,126,96,240,96, - 224,96,192,96,192,96,65,224,62,120,19,15,45,22,2,0, - 31,143,0,113,176,192,96,224,192,224,224,96,128,192,96,0, - 192,96,7,255,192,28,192,0,112,192,0,96,192,0,192,192, - 0,192,224,0,193,96,64,194,112,224,124,31,0,12,22,44, - 14,1,249,7,224,24,96,32,32,96,0,64,0,192,0,192, - 0,192,0,192,0,192,0,224,0,112,16,120,96,63,192,31, - 128,2,0,2,0,7,128,3,128,1,128,3,0,12,0,13, - 23,46,15,1,0,24,0,60,0,12,0,6,0,3,0,1, - 0,1,128,0,0,7,192,24,96,32,48,96,24,64,24,192, - 24,255,240,192,0,192,0,192,0,224,0,96,0,112,8,56, - 48,15,192,13,23,46,15,1,0,0,96,0,240,0,192,1, - 128,1,128,3,0,6,0,0,0,7,192,24,96,32,48,96, - 24,64,24,192,24,255,240,192,0,192,0,192,0,224,0,96, - 0,112,8,56,48,15,192,13,23,46,15,1,0,3,0,7, - 128,15,128,12,192,24,96,16,32,32,16,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,13,21,42,15,1, - 0,24,48,56,112,56,112,48,96,0,0,0,0,7,192,24, - 96,32,48,96,24,64,24,192,24,255,240,192,0,192,0,192, - 0,224,0,96,0,112,8,56,48,15,192,7,23,23,9,0, - 0,224,224,112,48,24,12,4,0,24,120,24,24,24,24,24, - 24,24,24,24,24,24,24,126,8,23,23,9,1,0,7,7, - 14,12,24,48,32,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,252,9,23,46,9,0,0,28,0,28,0,62, - 0,119,0,99,0,193,128,128,128,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,10,21,42,9,0,0,193, - 128,193,128,227,192,193,128,0,0,0,0,24,0,120,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,126,0,14,23,46,16,1,0,12, - 0,62,24,3,240,3,192,30,224,48,96,0,112,0,56,7, - 152,24,120,32,60,96,28,64,12,192,12,192,12,192,12,192, - 12,192,8,224,24,96,16,112,48,56,96,15,128,16,21,42, - 18,1,0,7,8,15,144,24,224,16,0,0,0,0,0,112, - 112,177,136,54,12,56,12,56,12,48,12,48,12,48,12,48, - 12,48,12,48,12,48,12,48,12,48,12,252,63,14,23,46, - 16,1,0,28,0,28,0,14,0,6,0,3,0,1,128,0, - 128,0,0,7,192,24,112,32,56,96,24,64,28,192,12,192, - 12,192,12,192,12,192,12,224,8,96,24,112,16,56,32,15, - 192,14,23,46,16,1,0,0,112,0,112,0,224,1,192,1, - 128,3,0,2,0,0,0,7,192,24,112,32,56,96,24,64, - 28,192,12,192,12,192,12,192,12,192,12,224,8,96,24,112, - 16,56,32,15,192,14,23,46,16,1,0,3,128,3,128,7, - 192,14,192,12,96,24,48,48,16,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,14, - 8,31,144,17,224,32,0,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,14,21,42,16,1,0,24, - 48,24,48,56,112,24,48,0,0,0,0,7,192,24,112,32, - 56,96,24,64,28,192,12,192,12,192,12,192,12,192,12,224, - 8,96,24,112,16,56,32,15,192,11,10,20,13,1,4,6, - 0,6,0,6,0,0,0,0,0,255,224,0,0,6,0,6, - 0,6,0,14,16,32,16,1,255,7,204,24,120,32,120,96, - 120,64,252,193,220,193,140,195,140,199,12,198,12,236,8,124, - 24,120,16,120,32,207,192,128,0,15,23,46,17,1,0,28, - 0,28,0,14,0,7,0,3,0,1,128,0,128,0,0,48, - 24,240,120,48,24,48,24,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,56,24,222,15,24,15,23,46, - 17,1,0,0,112,0,112,0,224,0,192,1,128,1,0,2, - 0,0,0,48,24,240,120,48,24,48,24,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,56,24,222,15, - 24,15,23,46,17,1,0,3,128,3,128,7,192,14,224,12, - 96,24,48,16,16,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,15,21,42,17,1,0,24,48,28,56,24, - 48,24,48,0,0,0,0,48,24,240,120,48,24,48,24,48, - 24,48,24,48,24,48,24,48,24,48,24,48,24,48,24,48, - 56,24,222,15,24,16,31,62,16,255,248,0,28,0,28,0, - 56,0,112,0,96,0,192,0,128,0,0,126,31,28,6,28, - 4,12,12,14,12,14,8,6,24,7,24,3,16,3,48,3, - 176,1,160,1,224,1,224,0,192,0,192,0,128,1,128,1, - 128,3,0,126,0,124,0,248,0,15,32,64,17,1,248,16, - 0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,240,51,24,52,28,56,12,48,14,48,6,48,6,48, - 6,48,6,48,6,48,4,48,12,56,8,60,16,55,224,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,254,0,16, - 29,58,16,255,248,6,12,14,28,14,28,6,12,0,0,0, - 0,126,31,28,6,28,4,12,12,14,12,14,8,6,24,7, - 24,3,16,3,48,3,176,1,160,1,224,1,224,0,192,0, - 192,0,128,1,128,1,128,3,0,126,0,124,0,248,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 19 - Calculated Max Values w=13 h=30 x= 2 y=11 dx=15 dy= 0 ascent=25 len=60 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent= 0 - X Font ascent =19 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20n[640] U8G_FONT_SECTION("u8g_font_gdr20n") = { - 0,47,44,240,246,19,0,0,0,0,42,58,0,25,251,19, - 0,12,13,26,14,1,11,6,0,6,0,134,0,102,48,242, - 240,27,128,6,0,27,128,114,240,230,48,6,32,6,0,6, - 0,12,11,22,13,1,3,6,0,6,0,6,0,6,0,6, - 0,255,240,6,0,6,0,6,0,6,0,6,0,4,8,8, - 7,2,251,112,240,48,48,48,32,64,192,9,1,2,11,1, - 8,255,128,4,4,4,7,2,0,112,240,240,224,13,30,60, - 15,1,251,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,1,192,1,128,1,128,3,128,3,0,7, - 0,6,0,6,0,14,0,12,0,12,0,28,0,24,0,56, - 0,48,0,48,0,112,0,96,0,96,0,224,0,192,0,13, - 19,38,15,1,0,7,128,24,192,32,96,96,48,64,48,64, - 56,192,24,192,24,192,24,192,24,192,24,192,24,192,24,192, - 16,96,16,96,48,48,32,24,64,15,128,11,19,38,15,2, - 0,2,0,30,0,126,0,134,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,15,0,127,224,11,19,38,15,2,0,15,128,48, - 192,96,96,96,96,96,96,0,96,0,96,0,192,0,192,1, - 128,3,0,7,0,6,0,12,0,24,0,48,32,112,32,224, - 32,255,224,11,19,38,15,2,0,31,0,113,128,96,192,224, - 192,0,192,0,192,1,128,3,0,15,0,3,192,0,192,0, - 224,0,96,0,96,0,96,0,96,128,192,193,128,127,0,12, - 19,38,15,1,0,0,64,1,192,3,192,3,192,6,192,12, - 192,12,192,24,192,48,192,48,192,96,192,224,192,255,240,0, - 192,0,192,0,192,0,192,0,192,7,240,11,19,38,15,2, - 0,63,224,32,0,32,0,96,0,96,0,96,0,96,0,127, - 0,97,192,0,192,0,96,0,96,0,96,0,96,0,96,0, - 64,128,192,193,128,63,0,12,20,40,15,2,0,0,192,7, - 0,14,0,24,0,48,0,112,0,96,0,96,0,207,128,240, - 224,224,96,192,112,192,48,192,48,192,48,96,48,96,32,32, - 96,48,64,15,128,12,19,38,15,2,0,255,240,128,96,128, - 96,0,224,0,192,0,192,1,128,1,128,3,0,3,0,7, - 0,6,0,6,0,12,0,12,0,28,0,24,0,56,0,48, - 0,12,19,38,15,2,0,31,128,48,192,96,96,224,96,224, - 96,224,96,248,192,127,128,31,128,31,192,49,224,96,112,192, - 112,192,48,192,48,192,32,96,32,112,64,31,128,12,20,40, - 15,2,255,15,128,49,192,32,224,64,96,192,112,192,48,192, - 48,192,48,192,48,96,112,48,176,31,48,0,96,0,96,0, - 96,0,192,1,128,7,0,30,0,48,0,4,15,15,7,2, - 0,112,240,240,96,0,0,0,0,0,0,0,112,240,240,224 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--32-320-72-72-P-146-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 20, '1' Height: 19 - Calculated Max Values w=27 h=32 x= 3 y=16 dx=27 dy= 0 ascent=26 len=80 - Font Bounding box w=47 h=44 x=-16 y=-10 - Calculated Min Values x=-4 y=-8 dx= 0 dy= 0 - Pure Font ascent =20 descent=-8 - X Font ascent =25 descent=-8 - Max Font ascent =26 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr20r[4232] U8G_FONT_SECTION("u8g_font_gdr20r") = { - 0,47,44,240,246,20,4,220,11,144,32,127,248,26,248,25, - 248,0,0,0,7,0,0,4,23,23,9,2,0,48,112,112, - 112,112,112,112,112,112,96,96,96,96,96,96,96,96,64,0, - 112,240,240,224,8,10,10,14,3,13,227,199,199,199,199,195, - 195,195,195,194,14,18,36,15,1,2,1,24,3,24,3,16, - 2,48,6,48,63,252,4,96,12,96,12,96,12,64,8,192, - 255,248,24,128,17,128,49,128,49,128,49,0,35,0,12,25, - 50,15,1,253,6,0,6,0,6,0,31,192,63,240,102,96, - 102,0,102,0,102,0,118,0,62,0,31,128,7,192,7,224, - 6,112,6,48,6,48,134,48,198,48,230,96,255,192,127,128, - 6,0,6,0,6,0,20,20,60,22,1,255,30,0,192,99, - 1,128,67,3,128,193,131,0,193,134,0,193,140,0,193,156, - 0,97,24,0,99,48,0,60,115,192,0,108,96,0,200,96, - 1,152,48,3,152,48,3,24,48,6,24,48,14,8,32,28, - 12,96,24,7,128,48,0,0,19,22,66,21,2,0,3,192, - 0,4,224,0,8,96,0,24,96,0,24,96,0,24,96,0, - 24,192,0,29,128,0,15,0,0,12,0,0,28,63,224,62, - 14,128,119,6,0,99,134,0,193,134,0,193,198,0,192,236, - 0,192,124,0,192,60,0,96,30,0,48,47,192,31,195,128, - 3,10,10,8,3,13,224,192,192,192,192,192,192,192,192,192, - 7,30,30,10,2,251,2,12,24,24,48,48,96,96,96,96, - 192,192,192,192,192,192,192,192,192,192,224,96,96,96,112,48, - 56,24,12,2,7,30,30,10,1,251,128,96,48,56,24,28, - 12,12,12,14,6,6,6,6,6,6,6,6,6,6,12,12, - 12,12,24,24,48,48,96,128,12,13,26,14,1,11,6,0, - 6,0,134,0,102,48,242,240,27,128,6,0,27,128,114,240, - 230,48,6,32,6,0,6,0,12,11,22,13,1,3,6,0, - 6,0,6,0,6,0,6,0,255,240,6,0,6,0,6,0, - 6,0,6,0,4,8,8,7,2,251,112,240,48,48,48,32, - 64,192,9,1,2,11,1,8,255,128,4,4,4,7,2,0, - 112,240,240,224,13,30,60,15,1,251,0,24,0,56,0,48, - 0,48,0,112,0,96,0,96,0,224,0,192,1,192,1,128, - 1,128,3,128,3,0,7,0,6,0,6,0,14,0,12,0, - 12,0,28,0,24,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,13,19,38,15,1,0,7,128,24,192, - 32,96,96,48,64,48,64,56,192,24,192,24,192,24,192,24, - 192,24,192,24,192,24,192,16,96,16,96,48,48,32,24,64, - 15,128,11,19,38,15,2,0,2,0,30,0,126,0,134,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,15,0,127,224,11,19, - 38,15,2,0,15,128,48,192,96,96,96,96,96,96,0,96, - 0,96,0,192,0,192,1,128,3,0,7,0,6,0,12,0, - 24,0,48,32,112,32,224,32,255,224,11,19,38,15,2,0, - 31,0,113,128,96,192,224,192,0,192,0,192,1,128,3,0, - 15,0,3,192,0,192,0,224,0,96,0,96,0,96,0,96, - 128,192,193,128,127,0,12,19,38,15,1,0,0,64,1,192, - 3,192,3,192,6,192,12,192,12,192,24,192,48,192,48,192, - 96,192,224,192,255,240,0,192,0,192,0,192,0,192,0,192, - 7,240,11,19,38,15,2,0,63,224,32,0,32,0,96,0, - 96,0,96,0,96,0,127,0,97,192,0,192,0,96,0,96, - 0,96,0,96,0,96,0,64,128,192,193,128,63,0,12,20, - 40,15,2,0,0,192,7,0,14,0,24,0,48,0,112,0, - 96,0,96,0,207,128,240,224,224,96,192,112,192,48,192,48, - 192,48,96,48,96,32,32,96,48,64,15,128,12,19,38,15, - 2,0,255,240,128,96,128,96,0,224,0,192,0,192,1,128, - 1,128,3,0,3,0,7,0,6,0,6,0,12,0,12,0, - 28,0,24,0,56,0,48,0,12,19,38,15,2,0,31,128, - 48,192,96,96,224,96,224,96,224,96,248,192,127,128,31,128, - 31,192,49,224,96,112,192,112,192,48,192,48,192,32,96,32, - 112,64,31,128,12,20,40,15,2,255,15,128,49,192,32,224, - 64,96,192,112,192,48,192,48,192,48,192,48,96,112,48,176, - 31,48,0,96,0,96,0,96,0,192,1,128,7,0,30,0, - 48,0,4,15,15,7,2,0,112,240,240,96,0,0,0,0, - 0,0,0,112,240,240,224,4,20,20,7,2,251,112,240,240, - 96,0,0,0,0,0,0,0,0,112,240,48,48,48,32,64, - 192,12,10,20,14,1,4,0,48,0,240,7,192,62,0,248, - 0,240,0,126,0,15,128,1,240,0,112,12,6,12,14,1, - 6,255,240,0,0,0,0,0,0,0,0,255,240,12,10,20, - 14,1,4,96,0,248,0,31,0,7,224,0,240,1,240,7, - 192,62,0,240,0,192,0,10,23,46,14,2,0,31,0,99, - 128,65,192,192,192,192,192,128,192,0,192,1,128,1,128,3, - 0,3,0,6,0,14,0,12,0,12,0,12,0,12,0,0, - 0,0,0,14,0,30,0,30,0,28,0,24,25,75,26,1, - 251,0,63,128,1,192,224,2,0,56,12,0,28,24,0,12, - 16,60,142,32,67,134,96,129,135,65,129,131,193,1,131,195, - 1,131,195,1,131,195,1,131,195,1,131,195,1,131,195,1, - 130,225,129,134,97,131,132,112,197,200,48,120,240,56,0,0, - 28,0,4,15,0,28,3,192,112,0,127,128,19,20,60,19, - 0,0,0,64,0,0,224,0,0,224,0,1,224,0,1,240, - 0,1,176,0,3,48,0,3,56,0,3,24,0,6,28,0, - 6,28,0,6,12,0,15,254,0,12,6,0,8,6,0,24, - 7,0,24,3,0,16,3,0,48,3,128,254,15,224,14,20, - 40,17,1,0,63,192,240,112,48,56,48,24,48,24,48,24, - 48,24,48,48,48,224,63,224,48,112,48,56,48,28,48,12, - 48,12,48,12,48,12,48,24,48,48,255,192,14,20,40,17, - 1,0,3,248,12,28,16,8,48,0,96,0,96,0,64,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,112,0,56,4,28,24,7,224,17,20,60,19,1,0, - 63,224,0,240,56,0,48,12,0,48,6,0,48,3,0,48, - 3,0,48,3,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,128,48,3,0,48,3,0,48,3,0, - 48,6,0,48,12,0,48,56,0,255,224,0,13,20,40,16, - 1,0,255,240,48,16,48,16,48,16,48,0,48,0,48,0, - 48,0,48,0,63,224,48,64,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,12,20,40,15,1,0, - 255,240,48,16,48,16,48,16,48,0,48,0,48,0,48,0, - 48,0,63,192,48,128,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,254,0,18,20,60,19,1,0,1,254, - 0,6,15,0,8,0,0,16,0,0,32,0,0,96,0,0, - 64,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 31,192,192,7,0,192,3,0,96,3,0,96,3,0,48,3, - 0,24,3,0,12,3,0,3,252,0,19,20,60,21,1,0, - 252,7,224,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,63,255,128,48,1, - 128,48,1,128,48,1,128,48,1,128,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,252,7,224,6,20,20,10, - 2,0,252,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,11,25,50,10,253,251,15,224,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,0,1,0,3,0,98,0,252,0,17,20, - 60,19,1,0,252,127,0,48,24,0,48,48,0,48,96,0, - 48,224,0,49,192,0,49,128,0,51,0,0,54,0,0,62, - 0,0,54,0,0,55,0,0,51,128,0,49,192,0,48,224, - 0,48,112,0,48,120,0,48,60,0,48,30,0,252,15,128, - 13,20,40,15,1,0,252,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,8,48,8,48,24,255,248,24,20, - 60,26,1,0,248,0,62,60,0,56,60,0,120,62,0,120, - 54,0,216,54,0,216,55,0,152,51,1,152,51,129,152,49, - 131,24,49,195,24,49,198,24,48,198,24,48,230,24,48,108, - 24,48,124,24,48,56,24,48,56,24,48,56,24,252,16,255, - 19,20,60,21,1,0,240,7,224,56,1,128,60,1,128,60, - 1,128,62,1,128,55,1,128,51,129,128,51,129,128,49,193, - 128,48,225,128,48,97,128,48,113,128,48,57,128,48,29,128, - 48,13,128,48,15,128,48,7,128,48,3,128,48,3,128,252, - 1,128,17,20,60,19,1,0,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,2,0,48,6,0,56,4,0,12,24, - 0,7,224,0,15,20,40,17,1,0,63,224,240,56,48,28, - 48,14,48,6,48,6,48,6,48,6,48,12,48,12,52,56, - 51,224,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 254,0,19,25,75,19,1,251,3,240,0,12,24,0,16,12, - 0,48,6,0,32,3,0,96,3,0,64,3,128,192,1,128, - 192,1,128,192,1,128,192,1,128,192,1,128,192,1,128,224, - 1,0,96,3,0,96,3,0,48,6,0,24,4,0,12,24, - 0,7,240,0,0,112,0,0,24,0,0,14,32,0,7,192, - 0,1,128,18,20,60,18,1,0,63,192,0,240,112,0,48, - 24,0,48,12,0,48,12,0,48,12,0,48,12,0,48,24, - 0,48,112,0,63,224,0,63,192,0,49,192,0,48,224,0, - 48,112,0,48,112,0,48,56,0,48,60,0,48,28,0,48, - 15,0,252,15,192,12,20,40,15,2,0,15,224,48,224,64, - 64,192,0,192,0,224,0,248,0,126,0,127,0,31,192,7, - 224,1,240,0,240,0,112,0,48,0,48,128,32,192,96,224, - 192,127,0,16,20,40,18,1,0,255,255,129,131,129,129,129, - 129,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,15, - 240,19,20,60,21,1,0,252,7,224,48,1,128,48,1,128, - 48,1,128,48,1,128,48,1,128,48,1,128,48,1,128,48, - 1,128,48,1,128,48,1,128,48,1,128,48,1,128,48,1, - 128,48,1,128,48,1,0,24,3,0,28,6,0,14,12,0, - 3,240,0,20,20,60,21,0,0,254,3,240,56,0,192,24, - 0,128,28,1,128,12,1,128,14,3,0,14,3,0,6,3, - 0,7,6,0,7,6,0,3,6,0,3,140,0,1,140,0, - 1,204,0,1,216,0,0,216,0,0,248,0,0,240,0,0, - 112,0,0,96,0,27,20,80,27,0,0,254,4,15,224,56, - 4,3,0,24,14,3,0,24,14,3,0,28,15,3,0,28, - 27,2,0,12,27,6,0,12,27,134,0,12,49,134,0,14, - 49,134,0,14,49,196,0,6,96,204,0,6,96,204,0,7, - 96,236,0,7,192,108,0,3,192,120,0,3,192,120,0,3, - 128,56,0,3,128,56,0,3,0,48,0,19,20,60,20,0, - 0,127,31,192,60,7,0,28,6,0,14,6,0,7,12,0, - 7,28,0,3,152,0,1,240,0,1,240,0,0,224,0,0, - 240,0,1,240,0,1,184,0,3,28,0,7,12,0,6,14, - 0,12,7,0,28,3,128,56,3,192,255,15,224,18,20,60, - 19,0,0,240,31,192,56,7,0,28,6,0,12,12,0,14, - 12,0,7,24,0,7,24,0,3,48,0,3,176,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,7,248,0,14, - 20,40,17,1,0,127,252,96,28,64,56,64,120,0,112,0, - 224,0,224,1,192,3,192,3,128,7,0,7,0,14,0,30, - 0,28,0,56,0,56,4,112,4,240,12,255,252,7,30,30, - 10,2,251,254,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 254,13,30,60,15,1,251,192,0,192,0,96,0,96,0,112, - 0,48,0,48,0,24,0,24,0,28,0,12,0,12,0,14, - 0,6,0,6,0,3,0,3,0,3,128,1,128,1,128,0, - 192,0,192,0,192,0,96,0,96,0,112,0,48,0,48,0, - 24,0,24,7,30,30,10,1,251,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,254,12,15,30,16,2,9,2,0,6, - 0,15,0,15,0,27,0,27,128,17,128,49,192,49,192,96, - 192,96,224,96,96,192,112,192,48,128,32,13,1,2,15,1, - 253,255,248,7,7,7,10,0,16,96,240,56,24,12,4,2, - 13,15,30,15,1,0,15,192,48,224,112,96,96,96,0,96, - 0,96,15,224,63,224,126,96,240,96,224,96,192,96,192,96, - 65,224,62,120,15,24,48,16,0,0,48,0,240,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,240,49,248, - 54,28,60,12,56,14,48,6,48,6,48,6,48,6,48,6, - 48,4,48,12,48,8,28,16,7,224,12,15,30,14,1,0, - 7,224,24,96,32,32,96,0,64,0,192,0,192,0,192,0, - 192,0,192,0,192,0,96,0,112,32,56,112,31,128,15,24, - 48,17,1,0,0,24,0,120,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,7,248,24,56,32,24,96,24,64,24, - 192,24,192,24,192,24,192,24,192,24,192,24,96,24,112,56, - 56,222,15,24,13,15,30,15,1,0,7,192,24,96,32,48, - 96,24,64,24,192,24,255,240,192,0,192,0,192,0,224,0, - 96,0,112,8,56,48,15,192,11,24,48,10,1,0,3,224, - 4,192,24,0,16,0,48,0,48,0,48,0,48,0,48,0, - 255,0,50,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,15,23, - 46,16,1,248,7,134,24,252,32,96,96,48,96,48,96,48, - 96,48,112,96,56,64,31,128,8,0,16,0,60,0,63,224, - 15,248,63,252,112,124,224,12,192,12,192,8,96,16,112,32, - 31,192,16,24,48,18,1,0,16,0,240,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,112,49,136,54,12, - 56,12,56,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,21,21,9,1,0,48,112, - 112,96,0,0,48,240,48,48,48,48,48,48,48,48,48,48, - 48,48,252,9,29,58,8,252,248,1,128,3,128,3,128,3, - 0,0,0,0,0,1,128,7,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,0,3,0,2,0,124, - 0,248,0,15,24,48,16,1,0,16,0,240,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,252,48,112,48, - 224,49,128,51,0,54,0,62,0,54,0,55,0,51,128,49, - 192,48,224,48,112,48,120,252,62,6,24,24,9,1,0,16, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,24,15,45,26,1,0,240,240,120, - 51,25,140,52,26,12,56,28,12,56,28,12,48,24,12,48, - 24,12,48,24,12,48,24,12,48,24,12,48,24,12,48,24, - 12,48,24,12,48,24,12,252,126,63,16,15,30,18,1,0, - 112,112,177,136,54,12,56,12,56,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,252,63,14,15, - 30,16,1,0,7,192,24,112,32,56,96,24,64,28,192,12, - 192,12,192,12,192,12,192,12,224,8,96,24,112,16,56,32, - 15,192,15,23,46,17,1,248,112,240,179,24,52,28,56,12, - 48,14,48,6,48,6,48,6,48,6,48,6,48,4,48,12, - 48,8,60,16,55,224,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,254,0,14,23,46,16,1,248,7,144,24,112, - 32,48,96,48,64,48,192,48,192,48,192,48,192,48,192,48, - 192,48,96,48,96,112,48,176,31,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,1,252,11,15,30,13,1,0, - 49,224,243,224,52,64,56,64,56,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,254,0,9,15, - 30,12,2,0,63,0,67,0,193,0,192,0,224,0,248,0, - 126,0,63,0,15,128,3,128,1,128,129,128,129,0,195,0, - 252,0,10,20,40,11,1,0,16,0,48,0,48,0,48,0, - 48,0,255,192,49,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,128,31,64, - 15,15,30,17,1,0,48,24,240,120,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,24,48,56, - 24,222,15,24,15,15,30,16,0,0,252,62,56,12,56,8, - 24,24,28,24,12,16,12,48,14,48,6,32,7,96,7,64, - 3,64,3,192,1,128,1,0,22,15,45,23,0,0,252,16, - 124,48,24,24,56,56,16,24,56,48,24,60,48,28,108,48, - 12,110,32,12,78,96,12,198,96,14,199,64,6,131,64,7, - 131,192,7,131,192,3,1,128,2,1,0,16,15,30,16,0, - 0,254,63,60,28,28,16,14,48,6,96,7,192,3,192,1, - 192,3,192,6,224,12,112,12,56,24,24,56,28,252,63,16, - 23,46,16,255,248,126,31,28,6,28,4,12,12,14,12,14, - 8,6,24,7,24,3,16,3,48,3,176,1,160,1,224,1, - 224,0,192,0,192,0,128,1,128,1,128,3,0,126,0,124, - 0,248,0,12,15,30,14,1,0,127,240,64,96,64,224,1, - 192,1,128,3,128,7,0,6,0,14,0,28,0,28,0,56, - 16,112,16,112,48,255,240,8,30,30,11,2,251,3,6,12, - 8,24,24,24,24,28,12,12,12,12,24,48,248,28,12,12, - 12,12,28,24,24,24,24,24,12,6,3,2,32,32,7,3, - 250,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,30,30,11,1,251,192,96,48,24,24,24,24,24,56, - 48,48,48,48,56,31,12,24,48,48,48,48,56,24,24,24, - 24,16,48,96,192,14,6,12,16,1,7,28,8,62,12,127, - 136,71,240,131,240,128,224,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 4 y=23 dx=34 dy= 0 ascent=34 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-11 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =34 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25[13042] U8G_FONT_SECTION("u8g_font_gdr25") = { - 0,59,57,236,242,25,6,209,16,163,32,255,247,34,245,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0, - 0,0,9,0,0,5,29,29,11,3,245,112,248,248,248,112, - 0,0,96,96,96,96,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,240,240,240,192,15,25,50,19,2,255,1,128, - 1,128,1,128,1,240,7,252,31,254,57,140,113,132,113,128, - 97,128,225,128,225,128,225,128,225,128,225,128,241,128,113,128, - 121,134,61,140,63,248,31,240,3,192,1,128,1,128,1,128, - 17,25,75,19,1,255,0,252,0,3,255,0,7,15,0,14, - 7,0,12,6,0,12,2,0,28,2,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,127,224,0,255,224,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,24, - 0,128,24,1,0,24,3,0,63,223,0,127,255,0,192,255, - 0,13,13,26,19,3,5,192,24,239,184,127,240,56,224,96, - 112,96,48,96,48,96,48,120,240,63,224,111,176,192,24,128, - 8,21,24,72,19,255,0,120,7,248,252,1,248,62,1,224, - 31,3,128,15,3,128,7,135,0,7,135,0,3,206,0,1, - 206,0,1,252,0,0,248,0,0,248,0,0,112,0,0,112, - 0,15,255,192,31,255,128,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,248,0,3,254,0,3, - 41,41,9,3,248,96,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,128,0,0,0,64,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,192,15,28, - 56,19,2,0,7,224,15,248,28,120,56,24,56,8,56,0, - 60,0,31,0,31,128,63,224,99,248,224,252,224,124,224,30, - 240,30,120,14,62,14,31,14,15,220,3,248,0,248,0,60, - 32,28,32,28,48,28,60,56,63,240,7,192,12,5,10,16, - 2,22,96,48,224,112,224,112,224,112,192,96,25,25,100,29, - 2,0,0,127,0,0,3,255,224,0,7,128,240,0,14,0, - 56,0,28,31,28,0,56,127,206,0,112,225,199,0,97,192, - 131,0,99,128,3,0,195,0,1,128,199,0,1,128,199,0, - 1,128,199,0,1,128,199,0,1,128,199,0,1,128,199,128, - 1,128,99,128,3,0,99,192,67,0,113,241,135,0,56,255, - 14,0,28,60,28,0,14,0,56,0,7,128,240,0,3,255, - 224,0,0,127,0,0,8,14,14,10,1,11,28,60,70,198, - 6,30,102,198,198,206,119,0,255,255,15,18,36,19,2,0, - 2,6,6,4,12,12,12,24,24,56,56,112,112,224,241,224, - 225,192,225,192,241,224,112,240,56,112,24,56,12,24,12,12, - 6,4,2,6,17,8,24,19,1,4,255,255,128,255,255,128, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 3,0,11,2,4,13,1,9,127,224,255,224,13,14,28,14, - 1,14,15,128,63,224,112,96,127,48,200,152,136,136,143,8, - 138,8,137,8,201,152,92,240,112,112,63,224,15,128,13,2, - 4,20,3,23,127,248,255,248,8,9,9,14,3,15,28,62, - 103,231,231,231,230,124,56,15,18,36,16,1,3,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,0,0,0,0,0,127,252,255, - 252,11,15,30,14,1,12,15,128,31,192,49,224,96,224,64, - 224,0,192,1,192,1,128,3,0,6,0,12,0,24,32,48, - 32,127,224,255,224,11,16,32,13,1,11,31,0,63,128,99, - 192,225,192,1,192,1,128,7,0,31,128,1,192,0,224,0, - 224,0,224,0,224,193,192,127,128,30,0,8,9,9,13,4, - 20,7,15,30,28,56,48,112,96,192,20,27,81,21,1,247, - 12,1,128,252,7,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,30,7,128,31,31,128,31,251,144, - 27,243,224,25,225,128,24,0,0,24,0,0,24,0,0,28, - 0,0,28,0,0,28,0,0,30,0,0,30,0,0,24,0, - 0,20,30,90,22,1,251,3,255,240,28,63,192,48,59,128, - 112,59,128,96,59,128,224,59,128,224,59,128,224,59,128,224, - 59,128,240,59,128,112,59,128,120,59,128,62,59,128,31,251, - 128,7,251,128,0,59,128,0,59,128,0,59,128,0,59,128, - 0,59,128,0,59,128,0,59,128,0,59,128,0,59,128,0, - 59,128,0,59,128,0,59,128,0,59,128,0,127,192,1,255, - 240,3,5,5,6,1,11,96,224,224,224,192,7,9,9,9, - 1,247,24,16,56,60,62,14,12,56,224,10,15,30,13,2, - 12,6,0,62,0,254,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,255,192,9, - 14,28,11,1,11,30,0,63,0,103,0,67,128,193,128,193, - 128,193,128,193,128,225,0,115,0,126,0,60,0,255,128,255, - 128,15,18,36,19,3,0,129,0,193,128,96,192,112,96,48, - 112,56,48,28,56,30,28,15,30,15,30,30,28,28,56,56, - 56,48,112,112,224,96,192,193,128,129,0,19,24,72,23,2, - 0,12,0,192,252,1,224,28,1,128,28,3,128,28,3,0, - 28,6,0,28,14,0,28,12,0,28,24,0,28,56,0,28, - 48,0,255,224,0,0,224,0,0,192,192,1,193,192,1,130, - 192,3,2,192,7,4,192,6,8,192,12,16,192,28,31,224, - 24,63,224,48,0,192,112,3,224,20,24,72,24,2,0,12, - 0,96,252,0,192,28,0,192,28,1,128,28,3,0,28,3, - 0,28,6,0,28,14,0,28,12,0,28,24,0,28,56,0, - 255,176,0,0,97,224,0,99,240,0,196,112,1,204,112,1, - 128,96,3,0,224,7,0,192,6,1,128,12,3,32,28,6, - 16,24,15,240,48,31,240,20,25,75,23,1,0,30,0,0, - 63,0,48,103,128,96,195,128,224,3,0,192,6,1,128,31, - 129,128,3,195,0,0,231,0,0,230,0,97,204,0,63,220, - 0,15,24,0,0,48,0,0,48,96,0,96,224,0,225,96, - 0,195,96,1,130,96,3,132,96,3,12,112,6,31,240,14, - 0,96,12,0,96,24,1,240,14,29,58,18,2,245,3,128, - 7,192,7,192,7,192,3,128,0,0,0,0,3,128,3,128, - 3,128,3,128,3,128,7,0,7,0,14,0,28,0,60,0, - 56,0,112,0,112,0,224,0,224,12,224,28,224,28,224,28, - 240,56,120,112,63,224,31,128,23,34,102,24,0,0,3,0, - 0,7,128,0,7,224,0,1,240,0,0,120,0,0,60,0, - 0,14,0,0,2,0,0,0,0,0,8,0,0,56,0,0, - 60,0,0,60,0,0,108,0,0,110,0,0,110,0,0,198, - 0,0,199,0,0,199,0,1,131,0,1,131,128,1,131,128, - 3,1,128,3,255,192,3,255,192,6,0,224,6,0,224,6, - 0,224,12,0,112,12,0,112,12,0,112,24,0,56,28,0, - 120,255,1,254,23,34,102,24,0,0,0,1,128,0,3,192, - 0,7,192,0,15,0,0,30,0,0,56,0,0,96,0,0, - 192,0,0,0,0,0,8,0,0,56,0,0,60,0,0,60, - 0,0,108,0,0,110,0,0,110,0,0,198,0,0,199,0, - 0,199,0,1,131,0,1,131,128,1,131,128,3,1,128,3, - 255,192,3,255,192,6,0,224,6,0,224,6,0,224,12,0, - 112,12,0,112,12,0,112,24,0,56,28,0,120,255,1,254, - 23,33,99,24,0,0,0,56,0,0,124,0,0,254,0,1, - 231,0,1,131,128,3,1,192,6,0,128,0,0,0,0,8, - 0,0,56,0,0,60,0,0,60,0,0,108,0,0,110,0, - 0,110,0,0,198,0,0,199,0,0,199,0,1,131,0,1, - 131,128,1,131,128,3,1,128,3,255,192,3,255,192,6,0, - 224,6,0,224,6,0,224,12,0,112,12,0,112,12,0,112, - 24,0,56,28,0,120,255,1,254,23,32,96,24,0,0,0, - 224,64,1,248,192,3,253,128,6,31,0,4,6,0,0,0, - 0,0,0,0,0,8,0,0,56,0,0,60,0,0,60,0, - 0,108,0,0,110,0,0,110,0,0,198,0,0,199,0,0, - 199,0,1,131,0,1,131,128,1,131,128,3,1,128,3,255, - 192,3,255,192,6,0,224,6,0,224,6,0,224,12,0,112, - 12,0,112,12,0,112,24,0,56,28,0,120,255,1,254,23, - 31,93,24,0,0,3,129,192,3,129,192,3,129,192,3,1, - 128,3,1,128,0,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,23,34,102,24,0,0,0,62,0,0,126,0,0,199, - 0,0,195,0,0,195,0,0,230,0,0,252,0,0,48,0, - 0,0,0,0,8,0,0,56,0,0,60,0,0,60,0,0, - 108,0,0,110,0,0,110,0,0,198,0,0,199,0,0,199, - 0,1,131,0,1,131,128,1,131,128,3,1,128,3,255,192, - 3,255,192,6,0,224,6,0,224,6,0,224,12,0,112,12, - 0,112,12,0,112,24,0,56,28,0,120,255,1,254,30,25, - 100,31,0,0,1,255,255,240,0,63,255,240,0,25,192,48, - 0,25,192,16,0,57,192,16,0,49,192,0,0,113,192,0, - 0,97,192,0,0,97,192,0,0,225,192,0,0,255,255,192, - 1,255,255,192,1,193,192,128,1,129,192,0,3,129,192,0, - 3,1,192,0,7,1,192,0,7,1,192,0,6,1,192,0, - 14,1,192,0,12,1,192,4,28,1,192,12,28,1,192,24, - 60,3,255,248,255,15,255,248,18,34,102,21,1,247,0,126, - 0,3,255,192,7,7,192,14,1,128,28,0,0,56,0,0, - 48,0,0,112,0,0,112,0,0,96,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,0,112,0,0,120,0,0,56,0,64,60,0,192, - 30,3,128,15,254,0,7,252,0,1,240,0,0,64,0,0, - 96,0,0,240,0,0,120,0,0,56,0,0,48,0,0,224, - 0,3,128,0,18,34,102,20,1,0,12,0,0,62,0,0, - 63,0,0,15,128,0,3,192,0,0,224,0,0,112,0,0, - 16,0,0,0,0,255,255,0,63,255,0,28,3,0,28,1, - 0,28,1,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,31,252,0,31,252,0,28,8,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,64,28,0,192,28,1,128,63,255,128,255,255,128, - 18,34,102,20,1,0,0,12,0,0,30,0,0,62,0,0, - 120,0,0,240,0,1,192,0,3,0,0,6,0,0,0,0, - 0,255,255,0,63,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,31, - 252,0,31,252,0,28,8,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,64, - 28,0,192,28,1,128,63,255,128,255,255,128,18,33,99,20, - 1,0,1,192,0,3,224,0,7,240,0,7,56,0,12,28, - 0,24,14,0,16,2,0,0,0,0,255,255,0,63,255,0, - 28,3,0,28,1,0,28,1,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,31,252,0,31,252,0,28,8, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,64,28,0,192,28,1,128,63, - 255,128,255,255,128,18,31,93,20,1,0,28,14,0,28,14, - 0,28,14,0,28,14,0,24,12,0,0,0,0,255,255,0, - 63,255,0,28,3,0,28,1,0,28,1,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,31,252,0,31,252, - 0,28,8,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,64,28,0,192,28, - 1,128,63,255,128,255,255,128,11,34,68,12,255,0,96,0, - 248,0,252,0,62,0,15,0,3,128,1,192,0,64,0,0, - 63,224,15,128,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 63,224,11,34,68,12,1,0,0,192,1,224,3,224,7,128, - 15,0,28,0,48,0,96,0,0,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,12,33,66,12, - 0,0,14,0,31,0,63,128,57,192,96,224,192,112,128,32, - 0,0,127,192,31,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,127,192,12,31,62,12,0,0,224,112,224,112,224,112, - 224,112,192,96,0,0,127,192,31,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,31,0,127,192,21,25,75,24,1,0,31,248, - 0,255,255,0,28,15,128,28,3,192,28,1,224,28,0,240, - 28,0,112,28,0,112,28,0,120,28,0,56,28,0,56,255, - 240,56,255,224,56,28,0,56,28,0,56,28,0,56,28,0, - 112,28,0,112,28,0,112,28,0,224,28,1,224,28,3,192, - 28,15,128,63,254,0,255,248,0,24,32,96,26,1,0,0, - 240,64,1,248,96,3,252,192,2,31,128,6,6,0,0,0, - 0,0,0,0,248,1,255,60,0,124,30,0,56,30,0,56, - 31,0,56,31,128,56,29,128,56,29,192,56,28,224,56,28, - 96,56,28,112,56,28,56,56,28,28,56,28,28,56,28,14, - 56,28,7,56,28,7,56,28,3,184,28,3,248,28,1,248, - 28,0,248,28,0,248,28,0,120,62,0,56,255,128,24,21, - 34,102,24,1,0,3,0,0,7,128,0,15,192,0,3,224, - 0,0,240,0,0,56,0,0,28,0,0,4,0,0,0,0, - 0,252,0,3,255,0,7,7,128,12,3,192,24,1,224,56, - 0,224,112,0,112,112,0,112,96,0,120,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,224,0,56,224,0,56, - 240,0,48,112,0,112,112,0,96,120,0,224,60,0,192,30, - 1,128,15,7,0,7,254,0,1,248,0,21,34,102,24,1, - 0,0,3,0,0,7,128,0,15,192,0,31,0,0,60,0, - 0,112,0,0,224,0,0,128,0,0,0,0,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,96,120,0,224,60,0,192,30,1,128,15,7, - 0,7,254,0,1,248,0,21,33,99,24,1,0,0,120,0, - 0,252,0,0,252,0,1,206,0,3,135,0,6,1,128,4, - 0,128,0,0,0,0,252,0,3,255,0,7,7,128,12,3, - 192,24,1,224,56,0,224,112,0,112,112,0,112,96,0,120, - 224,0,56,224,0,56,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,240,0,48,112,0,112,112,0,96,120,0, - 224,60,0,192,30,1,128,15,7,0,7,254,0,1,248,0, - 21,32,96,24,1,0,1,224,128,3,240,192,7,249,128,6, - 63,0,12,12,0,0,0,0,0,0,0,0,252,0,3,255, - 0,7,7,128,12,3,192,24,1,224,56,0,224,112,0,112, - 112,0,112,96,0,120,224,0,56,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,240,0,48,112,0, - 112,112,0,96,120,0,224,60,0,192,30,1,128,15,7,0, - 7,254,0,1,248,0,21,31,93,24,1,0,3,1,128,7, - 3,128,7,3,128,7,3,128,2,1,0,0,0,0,0,252, - 0,3,255,0,7,7,128,12,3,192,24,1,224,56,0,224, - 112,0,112,112,0,112,96,0,120,224,0,56,224,0,56,224, - 0,56,224,0,56,224,0,56,224,0,56,224,0,56,240,0, - 48,112,0,112,112,0,96,120,0,224,60,0,192,30,1,128, - 15,7,0,7,254,0,1,248,0,13,12,24,16,2,5,192, - 48,224,120,112,224,57,192,31,128,15,0,15,0,31,128,57, - 192,112,224,224,112,192,56,21,26,78,24,1,255,0,252,56, - 3,255,112,7,7,224,12,3,224,24,1,224,56,3,240,48, - 7,240,112,7,112,96,14,120,224,28,56,224,28,56,224,56, - 56,224,112,56,224,112,56,224,224,56,225,192,56,243,128,48, - 115,128,112,119,0,96,126,0,224,60,0,192,62,1,128,63, - 7,0,119,254,0,225,248,0,128,0,0,24,34,102,26,1, - 0,1,128,0,3,192,0,3,224,0,0,240,0,0,120,0, - 0,28,0,0,6,0,0,3,0,0,0,0,255,129,255,62, - 0,124,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,112,14,0,112,14,0,112,15,0,224,7,193, - 192,3,255,128,0,126,0,24,34,102,26,1,0,0,1,128, - 0,3,224,0,7,224,0,15,128,0,30,0,0,56,0,0, - 112,0,0,64,0,0,0,0,255,129,255,62,0,124,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 112,14,0,112,14,0,112,15,0,224,7,193,192,3,255,128, - 0,126,0,24,33,99,26,1,0,0,28,0,0,62,0,0, - 127,0,0,231,0,1,193,128,3,128,192,2,0,64,0,0, - 0,255,129,255,62,0,124,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,112,14,0,112,14,0,112, - 15,0,224,7,193,192,3,255,128,0,126,0,24,31,93,26, - 1,0,1,128,192,3,129,192,3,129,192,3,129,192,1,0, - 128,0,0,0,255,129,255,62,0,124,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,14,0,112, - 14,0,112,15,0,224,7,193,192,3,255,128,0,126,0,23, - 34,102,24,0,0,0,1,128,0,3,192,0,7,192,0,15, - 0,0,30,0,0,56,0,0,96,0,0,192,0,0,0,0, - 248,1,254,60,0,120,30,0,96,14,0,224,7,0,192,7, - 129,192,3,129,128,3,195,128,1,195,0,0,231,0,0,238, - 0,0,126,0,0,124,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,124,0,1,255,0,18,25,75,21,1, - 0,255,128,0,60,0,0,28,0,0,28,0,0,31,248,0, - 31,254,0,28,31,0,28,7,128,28,3,128,28,3,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 128,28,7,128,28,15,0,29,254,0,28,248,0,28,0,0, - 28,0,0,28,0,0,62,0,0,255,128,0,20,30,90,23, - 1,0,0,124,0,1,255,0,3,15,128,6,3,128,14,3, - 192,12,1,192,12,1,192,28,1,192,28,1,192,28,3,128, - 28,7,128,28,31,0,28,120,0,28,240,0,28,224,0,28, - 224,0,28,240,0,28,124,0,28,63,0,28,31,192,28,7, - 224,28,1,224,28,0,240,28,0,112,28,128,112,28,128,112, - 28,192,96,28,224,224,60,255,192,252,63,0,16,29,58,18, - 2,0,56,0,60,0,28,0,14,0,14,0,7,0,3,128, - 1,128,0,192,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,0,56,0,120,0,112,0,224,0,192,1,192,3,128, - 3,0,6,0,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,29,58,18, - 2,0,3,128,7,128,7,192,15,224,30,224,28,112,56,56, - 48,24,96,12,0,0,0,0,3,224,31,240,56,120,112,56, - 240,56,192,56,0,56,0,120,7,248,28,56,112,56,96,56, - 224,56,224,56,224,120,241,185,127,63,60,24,16,27,54,18, - 2,0,14,4,31,12,63,152,99,240,64,224,0,0,0,0, - 0,0,0,0,3,224,31,240,56,120,112,56,240,56,192,56, - 0,56,0,120,7,248,28,56,112,56,96,56,224,56,224,56, - 224,120,241,185,127,63,60,24,16,27,54,18,2,0,48,24, - 48,24,112,56,112,56,48,24,0,0,0,0,0,0,0,0, - 3,224,31,240,56,120,112,56,240,56,192,56,0,56,0,120, - 7,248,28,56,112,56,96,56,224,56,224,56,224,120,241,185, - 127,63,60,24,16,28,56,18,2,0,3,192,7,224,12,96, - 12,96,24,96,12,96,15,192,7,128,0,0,0,0,3,224, - 31,240,56,120,112,56,240,56,192,56,0,56,0,120,7,248, - 28,56,112,56,96,56,224,56,224,56,224,120,241,185,127,63, - 60,24,24,18,54,28,2,0,3,225,240,15,243,252,56,119, - 30,112,60,14,224,60,7,240,56,7,192,56,7,1,255,255, - 15,255,254,30,56,0,120,56,0,112,56,0,224,56,0,224, - 60,2,224,92,3,241,159,14,127,15,248,60,3,224,15,27, - 54,17,2,247,1,248,7,254,28,28,56,12,48,4,112,0, - 96,0,224,0,224,0,224,0,224,0,224,0,224,0,240,0, - 112,8,120,24,63,240,31,224,15,128,2,0,2,0,3,128, - 7,192,1,192,1,128,7,0,28,0,14,29,58,18,2,0, - 28,0,60,0,30,0,14,0,7,0,3,128,1,128,0,192, - 0,64,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 0,56,0,60,0,120,0,112,0,224,0,192,1,128,1,0, - 3,0,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,29,58,18,2,0, - 1,128,3,192,7,224,7,224,14,112,28,56,24,24,48,12, - 32,4,0,0,0,0,3,192,15,240,28,120,48,56,112,28, - 96,28,224,28,255,252,255,248,224,0,224,0,224,0,240,0, - 112,4,120,12,60,56,31,240,7,192,14,27,54,18,2,0, - 24,12,56,28,56,28,56,28,48,24,0,0,0,0,0,0, - 0,0,3,192,15,240,28,120,48,56,112,28,96,28,224,28, - 255,252,255,248,224,0,224,0,224,0,240,0,112,4,120,12, - 60,56,31,240,7,192,10,29,58,11,0,0,224,0,240,0, - 120,0,56,0,28,0,12,0,14,0,6,0,3,0,0,0, - 0,0,6,0,126,0,30,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,30,0,127,192,10,29,58,11,1,0,1,192,3,192, - 3,128,7,128,7,0,14,0,12,0,24,0,16,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,13,29,58,11,255,0,7,0,7,128, - 15,128,31,192,29,192,56,224,112,112,96,48,192,24,0,0, - 0,0,3,0,63,0,15,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,15,0,63,224,12,27,54,11,0,0,192,96,224,112, - 224,112,192,96,192,96,0,0,0,0,0,0,0,0,6,0, - 126,0,30,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,30,0, - 127,192,16,28,56,20,2,0,6,0,63,6,7,159,1,248, - 3,224,15,112,28,56,0,28,0,28,0,14,3,206,15,254, - 28,127,48,31,112,15,96,15,224,7,224,7,224,7,224,7, - 224,6,224,6,240,14,112,12,120,28,60,56,31,240,7,192, - 21,27,81,22,1,0,1,192,128,7,225,0,7,243,0,12, - 126,0,8,28,0,0,0,0,0,0,0,0,0,0,0,0, - 0,12,15,0,252,63,128,60,99,192,29,129,192,29,1,192, - 30,1,192,30,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,62,3,192,255,143,248,16,29,58,20,2,0,28,0,30, - 0,14,0,7,0,3,128,3,128,1,192,0,192,0,96,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,0,28,0, - 60,0,56,0,112,0,112,0,224,0,192,1,128,3,0,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,29,58,20,2,0,1,192,3, - 192,3,224,7,240,7,112,14,56,28,28,24,12,48,6,0, - 0,0,0,3,224,15,248,28,60,48,30,112,14,96,15,224, - 7,224,7,224,7,224,7,224,7,224,7,240,6,112,14,120, - 12,62,56,31,240,7,192,16,27,54,20,2,0,7,2,15, - 134,31,204,49,248,32,112,0,0,0,0,0,0,0,0,3, - 224,15,248,28,60,48,30,112,14,96,15,224,7,224,7,224, - 7,224,7,224,7,224,7,240,6,112,14,120,12,62,56,31, - 240,7,192,16,27,54,20,2,0,24,12,24,12,28,14,24, - 12,24,12,0,0,0,0,0,0,0,0,3,224,15,248,28, - 60,48,30,112,14,96,15,224,7,224,7,224,7,224,7,224, - 7,224,7,240,6,112,14,120,12,62,56,31,240,7,192,14, - 14,28,16,1,4,1,128,3,128,3,128,3,0,0,0,0, - 0,127,252,255,252,0,0,0,0,1,128,3,128,3,128,3, - 0,16,20,40,20,2,255,0,1,3,227,15,254,28,60,48, - 30,112,30,96,63,224,103,224,199,224,135,225,135,227,7,230, - 7,252,6,120,14,120,12,60,56,127,240,199,192,128,0,21, - 29,87,21,0,0,7,0,0,7,128,0,3,192,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,48,0,0,24,0, - 0,0,0,0,0,0,12,0,192,252,15,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,3,192, - 28,7,192,30,29,200,15,241,240,7,192,192,21,29,87,21, - 0,0,0,7,0,0,15,128,0,14,0,0,30,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,64,0,0,0,0, - 0,0,0,12,0,192,252,15,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,28,3,192,28,7,192, - 30,29,200,15,241,240,7,192,192,21,29,87,21,0,0,0, - 112,0,0,120,0,0,248,0,1,252,0,1,222,0,3,142, - 0,7,7,0,6,3,0,12,1,128,0,0,0,0,0,0, - 12,0,192,252,15,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,3,192,28,7,192,30,29,200, - 15,241,240,7,192,192,21,27,81,21,0,0,6,3,0,7, - 3,128,7,3,128,6,3,0,6,3,0,0,0,0,0,0, - 0,0,0,0,0,0,0,12,0,192,252,15,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,3, - 192,28,7,192,30,29,200,15,241,240,7,192,192,20,38,114, - 20,255,247,0,3,128,0,7,128,0,7,0,0,14,0,0, - 12,0,0,28,0,0,56,0,0,48,0,0,96,0,0,0, - 0,0,0,0,127,131,240,30,0,224,14,0,192,14,0,192, - 7,1,128,7,1,128,7,3,0,3,131,0,3,131,0,1, - 198,0,1,198,0,1,198,0,0,236,0,0,236,0,0,120, - 0,0,120,0,0,120,0,0,48,0,0,48,0,0,96,0, - 0,96,0,0,224,0,1,192,0,67,128,0,127,0,0,254, - 0,0,124,0,0,18,39,117,21,1,247,12,0,0,252,0, - 0,60,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 60,0,28,255,0,29,143,0,31,7,128,30,3,128,28,3, - 192,28,1,192,28,1,192,28,1,192,28,1,192,28,1,192, - 28,1,128,28,1,128,28,3,128,30,3,0,31,134,0,31, - 252,0,28,240,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,62,0,0,255,128,0, - 20,36,108,20,255,247,3,1,128,3,1,128,7,3,128,7, - 3,128,3,1,128,0,0,0,0,0,0,0,0,0,0,0, - 0,127,131,240,30,0,224,14,0,192,14,0,192,7,1,128, - 7,1,128,7,3,0,3,131,0,3,131,0,1,198,0,1, - 198,0,1,198,0,0,236,0,0,236,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,48,0,0,96,0,0,96,0, - 0,224,0,1,192,0,67,128,0,127,0,0,254,0,0,124, - 0,0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=38 x= 3 y=14 dx=19 dy= 0 ascent=31 len=114 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25n[835] U8G_FONT_SECTION("u8g_font_gdr25n") = { - 0,59,57,236,242,24,0,0,0,0,42,58,0,31,249,24, - 0,16,16,32,18,1,14,1,128,1,128,1,128,97,132,113, - 142,121,159,31,248,7,192,3,192,31,248,121,158,241,142,33, - 134,1,128,1,128,1,128,15,14,28,16,1,4,3,128,3, - 128,3,128,3,128,3,128,3,128,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,6,10,10,9,2,250,60, - 252,60,28,28,24,24,48,32,64,11,2,4,13,1,9,127, - 224,255,224,5,5,5,9,2,255,112,248,248,248,112,17,38, - 114,19,1,249,0,1,128,0,7,0,0,7,0,0,7,0, - 0,14,0,0,14,0,0,14,0,0,28,0,0,28,0,0, - 56,0,0,56,0,0,56,0,0,112,0,0,112,0,0,112, - 0,0,224,0,0,224,0,1,192,0,1,192,0,1,192,0, - 3,128,0,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,28,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,192,0,0,17,24,72,19,1,0,3,224,0,15, - 248,0,28,60,0,56,30,0,48,14,0,112,7,0,96,7, - 0,96,7,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,3,0,112, - 7,0,112,7,0,120,6,0,60,14,0,30,28,0,15,248, - 0,7,224,0,14,24,48,19,3,0,1,128,7,128,63,128, - 255,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,15,224,127,252,14,24,48,19,2,0, - 3,224,15,248,24,120,48,60,112,28,96,28,224,28,0,28, - 0,24,0,56,0,48,0,112,0,224,1,192,1,128,3,128, - 7,0,14,0,28,0,24,4,48,4,112,12,255,252,255,252, - 15,24,48,19,1,0,3,224,15,248,28,120,56,60,112,28, - 112,28,0,28,0,24,0,48,0,96,3,224,3,248,0,60, - 0,28,0,14,0,14,0,14,0,14,0,14,0,28,64,28, - 240,120,63,240,15,192,16,24,48,19,1,0,0,24,0,120, - 0,120,0,248,1,248,1,184,3,56,7,56,6,56,12,56, - 28,56,24,56,48,56,112,56,96,56,255,255,255,254,0,56, - 0,56,0,56,0,56,0,56,0,124,3,255,15,24,48,19, - 1,0,0,4,31,252,31,248,24,0,24,0,24,0,48,0, - 48,0,48,0,63,224,63,248,48,124,64,28,0,30,0,14, - 0,14,0,14,0,14,0,14,0,28,64,28,240,120,63,240, - 15,192,15,24,48,19,2,0,0,56,0,240,3,192,7,0, - 14,0,28,0,56,0,112,0,112,0,99,224,239,248,248,60, - 240,28,224,30,224,14,224,14,224,14,224,14,112,14,112,12, - 56,28,60,56,31,240,7,192,15,23,46,19,2,0,127,254, - 255,254,192,12,192,12,128,28,0,24,0,56,0,48,0,112, - 0,96,0,96,0,224,0,192,1,192,1,128,3,128,3,0, - 7,0,7,0,14,0,14,0,28,0,56,0,15,24,48,19, - 2,0,15,192,63,240,120,120,112,60,240,28,224,28,224,28, - 240,24,120,48,62,96,31,192,7,240,24,120,48,60,112,30, - 96,14,224,14,224,14,224,14,224,12,112,28,124,56,63,240, - 15,192,15,25,50,19,2,255,7,192,15,240,56,120,48,60, - 112,28,96,28,224,14,224,14,224,14,224,14,240,14,112,30, - 120,62,63,238,15,140,0,28,0,28,0,24,0,56,0,112, - 0,224,1,192,7,128,30,0,48,0,5,19,19,9,2,255, - 120,248,248,248,96,0,0,0,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--40-400-72-72-P-182-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=33 h=41 x= 3 y=20 dx=34 dy= 0 ascent=33 len=132 - Font Bounding box w=59 h=57 x=-20 y=-14 - Calculated Min Values x=-4 y=-9 dx= 0 dy= 0 - Pure Font ascent =25 descent=-9 - X Font ascent =31 descent=-9 - Max Font ascent =33 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr25r[6239] U8G_FONT_SECTION("u8g_font_gdr25r") = { - 0,59,57,236,242,25,6,209,16,163,32,127,247,33,247,31, - 247,0,0,0,9,0,0,5,30,30,11,3,255,48,112,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 96,96,96,0,0,0,112,248,248,248,112,11,13,26,17,3, - 16,112,224,241,224,241,224,241,224,241,224,112,224,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,17,23,69,19,2, - 2,0,194,0,1,134,0,1,134,0,1,142,0,3,140,0, - 3,12,0,3,12,0,63,255,128,63,255,128,6,24,0,6, - 56,0,14,48,0,12,48,0,12,48,0,255,254,0,255,254, - 0,24,96,0,24,224,0,48,192,0,48,192,0,48,192,0, - 113,192,0,97,128,0,16,30,60,19,1,253,1,128,1,128, - 1,128,3,224,15,252,57,254,49,156,113,136,113,128,113,128, - 121,128,61,128,63,128,31,224,7,248,1,252,1,190,1,143, - 1,143,1,135,193,135,193,135,225,142,241,142,255,252,63,240, - 15,192,1,128,1,128,1,128,25,25,100,27,1,255,15,128, - 6,0,63,192,28,0,113,224,56,0,112,224,56,0,224,112, - 112,0,224,112,224,0,224,112,224,0,224,113,192,0,224,115, - 128,0,112,231,0,0,120,231,0,0,63,206,60,0,31,28, - 254,0,0,29,207,0,0,57,199,0,0,115,131,128,0,227, - 131,128,0,227,131,128,1,195,131,128,3,131,131,128,3,131, - 131,128,7,1,199,0,14,1,199,0,28,0,254,0,24,0, - 120,0,24,28,84,27,2,0,0,248,0,1,252,0,3,30, - 0,7,14,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,7,112,0,7,192,0,7,131,255,15, - 135,255,29,193,242,57,224,240,112,240,112,112,112,112,224,120, - 112,224,60,112,224,30,224,224,15,224,224,7,192,240,3,192, - 120,3,240,60,30,248,31,252,127,7,224,56,4,13,13,10, - 3,16,112,240,240,240,240,112,96,96,96,96,96,96,96,9, - 37,74,13,3,250,0,128,3,128,7,0,14,0,12,0,28, - 0,24,0,56,0,56,0,112,0,112,0,112,0,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,112,0,112,0,112,0,112,0,56, - 0,56,0,28,0,28,0,14,0,7,0,3,128,0,128,9, - 37,74,13,1,250,128,0,224,0,112,0,56,0,28,0,28, - 0,14,0,14,0,14,0,7,0,7,0,7,0,7,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,7,0,7,0,7,0,7,0,14,0,14, - 0,12,0,28,0,24,0,56,0,112,0,224,0,128,0,16, - 16,32,18,1,14,1,128,1,128,1,128,97,132,113,142,121, - 159,31,248,7,192,3,192,31,248,121,158,241,142,33,134,1, - 128,1,128,1,128,15,14,28,16,1,4,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,10,10,9,2,250,60,252,60, - 28,28,24,24,48,32,64,11,2,4,13,1,9,127,224,255, - 224,5,5,5,9,2,255,112,248,248,248,112,17,38,114,19, - 1,249,0,1,128,0,7,0,0,7,0,0,7,0,0,14, - 0,0,14,0,0,14,0,0,28,0,0,28,0,0,56,0, - 0,56,0,0,56,0,0,112,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,192,0,1,192,0,1,192,0,3,128, - 0,3,128,0,3,128,0,7,0,0,7,0,0,14,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,28,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,112,0,0,224,0, - 0,192,0,0,17,24,72,19,1,0,3,224,0,15,248,0, - 28,60,0,56,30,0,48,14,0,112,7,0,96,7,0,96, - 7,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,3,0,112,7,0, - 112,7,0,120,6,0,60,14,0,30,28,0,15,248,0,7, - 224,0,14,24,48,19,3,0,1,128,7,128,63,128,255,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,15,224,127,252,14,24,48,19,2,0,3,224, - 15,248,24,120,48,60,112,28,96,28,224,28,0,28,0,24, - 0,56,0,48,0,112,0,224,1,192,1,128,3,128,7,0, - 14,0,28,0,24,4,48,4,112,12,255,252,255,252,15,24, - 48,19,1,0,3,224,15,248,28,120,56,60,112,28,112,28, - 0,28,0,24,0,48,0,96,3,224,3,248,0,60,0,28, - 0,14,0,14,0,14,0,14,0,14,0,28,64,28,240,120, - 63,240,15,192,16,24,48,19,1,0,0,24,0,120,0,120, - 0,248,1,248,1,184,3,56,7,56,6,56,12,56,28,56, - 24,56,48,56,112,56,96,56,255,255,255,254,0,56,0,56, - 0,56,0,56,0,56,0,124,3,255,15,24,48,19,1,0, - 0,4,31,252,31,248,24,0,24,0,24,0,48,0,48,0, - 48,0,63,224,63,248,48,124,64,28,0,30,0,14,0,14, - 0,14,0,14,0,14,0,28,64,28,240,120,63,240,15,192, - 15,24,48,19,2,0,0,56,0,240,3,192,7,0,14,0, - 28,0,56,0,112,0,112,0,99,224,239,248,248,60,240,28, - 224,30,224,14,224,14,224,14,224,14,112,14,112,12,56,28, - 60,56,31,240,7,192,15,23,46,19,2,0,127,254,255,254, - 192,12,192,12,128,28,0,24,0,56,0,48,0,112,0,96, - 0,96,0,224,0,192,1,192,1,128,3,128,3,0,7,0, - 7,0,14,0,14,0,28,0,56,0,15,24,48,19,2,0, - 15,192,63,240,120,120,112,60,240,28,224,28,224,28,240,24, - 120,48,62,96,31,192,7,240,24,120,48,60,112,30,96,14, - 224,14,224,14,224,14,224,12,112,28,124,56,63,240,15,192, - 15,25,50,19,2,255,7,192,15,240,56,120,48,60,112,28, - 96,28,224,14,224,14,224,14,224,14,240,14,112,30,120,62, - 63,238,15,140,0,28,0,28,0,24,0,56,0,112,0,224, - 1,192,7,128,30,0,48,0,5,19,19,9,2,255,120,248, - 248,248,96,0,0,0,0,0,0,0,0,0,112,248,248,248, - 112,6,24,24,9,2,250,120,248,248,248,96,0,0,0,0, - 0,0,0,0,0,60,252,60,28,28,24,24,48,32,64,15, - 13,26,18,1,5,0,2,0,30,0,254,3,240,31,192,126, - 0,240,0,252,0,63,128,7,224,1,252,0,62,0,12,15, - 8,16,18,1,7,127,254,255,254,0,0,0,0,0,0,0, - 0,127,254,255,254,15,13,26,18,1,5,96,0,252,0,63, - 0,15,224,1,252,0,126,0,30,0,126,3,240,31,192,126, - 0,248,0,192,0,14,30,60,17,2,255,7,224,31,240,56, - 120,112,56,224,28,224,28,224,28,192,28,0,28,0,56,0, - 56,0,112,0,240,0,224,1,192,3,128,3,128,7,0,7, - 0,7,0,7,0,7,0,0,0,0,0,0,0,7,0,15, - 128,15,128,15,128,7,0,30,33,132,32,1,249,0,7,248, - 0,0,63,254,0,0,240,31,128,1,192,7,192,3,0,1, - 224,6,0,0,240,12,0,0,112,24,0,0,120,56,3,198, - 56,48,15,252,56,112,28,60,60,112,56,28,28,96,112,28, - 28,224,96,28,28,224,224,28,28,224,224,28,28,224,224,28, - 28,224,224,28,28,224,224,28,28,224,224,28,24,240,240,28, - 56,112,112,28,48,112,120,60,96,120,60,94,224,56,31,143, - 128,60,15,15,0,30,0,0,0,31,0,0,0,15,128,0, - 32,7,192,0,192,1,248,15,128,0,255,254,0,0,31,240, - 0,23,25,75,24,0,0,0,8,0,0,56,0,0,60,0, - 0,60,0,0,108,0,0,110,0,0,110,0,0,198,0,0, - 199,0,0,199,0,1,131,0,1,131,128,1,131,128,3,1, - 128,3,255,192,3,255,192,6,0,224,6,0,224,6,0,224, - 12,0,112,12,0,112,12,0,112,24,0,56,28,0,120,255, - 1,254,19,25,75,22,1,0,31,240,0,255,254,0,28,31, - 0,28,7,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,0,28,6,0,28,28,0,31,254,0,31,255,0,28, - 15,128,28,3,192,28,1,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,1,224,28,1,192,28,7,128,63,255,0, - 255,252,0,19,25,75,21,1,0,0,254,0,3,255,192,7, - 7,192,12,1,128,24,0,0,56,0,0,112,0,0,112,0, - 0,112,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,112,0,0,112, - 0,0,120,0,0,60,0,64,30,1,224,15,135,128,7,254, - 0,1,248,0,21,25,75,24,1,0,31,248,0,255,255,0, - 28,15,128,28,3,192,28,1,224,28,0,240,28,0,112,28, - 0,112,28,0,120,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,112,28,0,112, - 28,0,112,28,0,224,28,1,224,28,3,192,28,15,128,63, - 254,0,255,248,0,18,25,75,20,1,0,255,255,0,63,255, - 0,28,3,0,28,1,0,28,1,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,31,252,0,31,252,0,28, - 8,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,64,28,0,192,28,1,128, - 63,255,128,255,255,128,17,25,75,19,1,0,255,255,128,63, - 255,128,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,31,252,0,31,248,0, - 28,24,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,62,0,0,255,128,0,21,25,75,23,1,0,0,127,0, - 1,255,192,7,3,224,14,0,192,28,0,0,56,0,0,48, - 0,0,112,0,0,112,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,15,248,224,1,224,224,0,224,224,0,224, - 112,0,224,112,0,224,120,0,224,60,0,224,30,0,224,15, - 129,192,7,255,128,1,252,0,24,25,75,26,1,0,255,129, - 255,62,0,124,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,31, - 255,248,31,255,248,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,62,0,124,255,129,255,9,25,50,12,1,0,255, - 128,62,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,62,0,255, - 128,15,32,64,12,252,249,7,254,0,248,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,96,0,96,0,224,0, - 192,49,128,127,0,252,0,22,25,75,23,1,0,255,135,248, - 62,1,192,28,3,128,28,7,0,28,14,0,28,12,0,28, - 24,0,28,56,0,28,112,0,28,224,0,29,192,0,31,128, - 0,31,192,0,29,224,0,28,224,0,28,112,0,28,56,0, - 28,60,0,28,30,0,28,15,0,28,7,128,28,3,192,28, - 3,224,62,1,252,255,128,240,18,25,75,19,1,0,255,128, - 0,62,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,192,28,0,128, - 30,1,128,63,255,128,255,255,128,30,25,100,32,1,0,254, - 0,1,248,30,0,3,224,31,0,3,224,31,0,3,224,31, - 0,7,224,27,128,6,224,27,128,14,224,25,192,12,224,25, - 192,12,224,24,224,28,224,24,224,24,224,24,224,56,224,24, - 112,48,224,24,112,112,224,24,56,96,224,24,56,96,224,24, - 28,224,224,24,28,192,224,24,31,192,224,24,15,128,224,24, - 15,128,224,24,7,128,224,24,7,0,224,60,7,1,224,255, - 2,7,252,24,25,75,26,1,0,248,1,255,60,0,124,30, - 0,56,30,0,56,31,0,56,31,128,56,29,128,56,29,192, - 56,28,224,56,28,96,56,28,112,56,28,56,56,28,28,56, - 28,28,56,28,14,56,28,7,56,28,7,56,28,3,184,28, - 3,248,28,1,248,28,0,248,28,0,248,28,0,120,62,0, - 56,255,128,24,21,25,75,24,1,0,0,252,0,3,255,0, - 7,7,128,12,3,192,24,1,224,56,0,224,112,0,112,112, - 0,112,96,0,120,224,0,56,224,0,56,224,0,56,224,0, - 56,224,0,56,224,0,56,224,0,56,240,0,48,112,0,112, - 112,0,96,120,0,224,60,0,192,30,1,128,15,7,0,7, - 254,0,1,248,0,18,25,75,21,1,0,31,248,0,255,254, - 0,28,31,0,28,7,128,28,3,192,28,1,192,28,1,192, - 28,1,192,28,1,192,28,1,192,28,3,128,28,7,128,28, - 15,0,29,254,0,28,248,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 62,0,0,255,128,0,24,31,93,24,1,250,0,252,0,3, - 255,0,7,7,128,12,3,192,24,1,224,56,0,224,112,0, - 112,112,0,112,96,0,120,224,0,56,224,0,56,224,0,56, - 224,0,56,224,0,56,224,0,56,224,0,56,240,0,48,112, - 0,112,112,0,112,56,0,224,60,0,192,30,1,192,15,7, - 128,7,254,0,1,252,0,0,14,0,0,7,0,0,3,130, - 0,1,227,0,0,254,0,0,60,21,25,75,22,1,0,31, - 240,0,255,254,0,28,31,0,28,7,0,28,7,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,7,0,28,6,0, - 28,28,0,31,240,0,28,112,0,28,56,0,28,56,0,28, - 28,0,28,30,0,28,14,0,28,7,0,28,7,128,28,3, - 128,28,3,192,62,1,248,255,129,240,15,25,50,19,2,0, - 7,224,31,248,120,124,112,24,224,0,224,0,224,0,240,0, - 248,0,126,0,63,128,31,224,7,248,1,252,0,124,0,30, - 0,30,0,14,128,14,128,14,192,28,224,28,240,120,255,240, - 31,128,21,25,75,22,0,0,127,255,248,255,255,248,192,112, - 24,192,112,24,128,112,16,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,248,0, - 3,254,0,24,25,75,26,1,0,255,129,255,62,0,124,28, - 0,56,28,0,56,28,0,56,28,0,56,28,0,56,28,0, - 56,28,0,56,28,0,56,28,0,56,28,0,56,28,0,56, - 28,0,56,28,0,56,28,0,56,28,0,56,28,0,56,28, - 0,112,14,0,112,14,0,112,15,0,224,7,193,192,3,255, - 128,0,126,0,25,25,100,26,0,0,255,128,127,128,28,0, - 14,0,30,0,12,0,14,0,28,0,14,0,24,0,15,0, - 24,0,7,0,56,0,7,0,48,0,3,128,48,0,3,128, - 112,0,3,192,96,0,1,192,224,0,1,192,224,0,1,224, - 192,0,0,225,192,0,0,225,128,0,0,113,128,0,0,115, - 128,0,0,123,0,0,0,59,0,0,0,63,0,0,0,62, - 0,0,0,30,0,0,0,30,0,0,0,8,0,0,33,25, - 125,34,0,0,255,128,192,127,128,28,0,192,14,0,28,0, - 192,12,0,28,1,224,12,0,14,1,224,28,0,14,1,224, - 28,0,14,3,240,24,0,14,3,112,24,0,7,3,48,24, - 0,7,7,56,56,0,7,6,56,56,0,7,6,24,48,0, - 7,14,28,48,0,3,140,28,48,0,3,140,14,112,0,3, - 156,14,96,0,3,152,14,96,0,1,216,7,96,0,1,248, - 7,96,0,1,240,7,224,0,1,240,3,192,0,1,240,3, - 192,0,0,224,3,192,0,0,224,1,192,0,0,192,1,128, - 0,23,25,75,25,1,0,255,135,252,60,0,240,28,0,224, - 30,1,192,15,1,128,7,3,128,7,135,0,3,198,0,1, - 238,0,0,252,0,0,252,0,0,120,0,0,120,0,0,124, - 0,0,254,0,1,206,0,1,207,0,3,135,128,3,3,128, - 7,3,192,14,1,224,12,0,224,28,0,240,60,0,248,255, - 3,254,23,25,75,24,0,0,248,1,254,60,0,120,30,0, - 96,14,0,224,7,0,192,7,129,192,3,129,128,3,195,128, - 1,195,0,0,231,0,0,238,0,0,126,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,124,0, - 1,255,0,18,25,75,21,1,0,63,255,192,63,255,192,48, - 3,128,32,7,128,96,15,0,96,14,0,0,30,0,0,28, - 0,0,56,0,0,120,0,0,112,0,0,240,0,1,224,0, - 1,192,0,3,192,0,3,128,0,7,0,0,15,0,0,14, - 0,0,30,0,64,60,0,64,56,0,192,120,0,192,127,255, - 192,255,255,192,9,37,74,12,3,250,255,128,255,128,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,128,255,128,17,38,114,19,1,249,192,0,0,224,0,0, - 112,0,0,112,0,0,48,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,14,0,0,14,0,0,6,0, - 0,7,0,0,7,0,0,3,0,0,3,128,0,3,128,0, - 1,192,0,1,192,0,0,192,0,0,224,0,0,224,0,0, - 96,0,0,112,0,0,112,0,0,56,0,0,56,0,0,24, - 0,0,28,0,0,28,0,0,12,0,0,14,0,0,14,0, - 0,7,0,0,7,0,0,3,0,0,1,128,9,37,74,13, - 1,250,255,128,255,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,255,128,255,128,16,19,38,20, - 2,11,0,128,3,128,3,192,3,192,7,224,6,224,14,224, - 12,112,12,112,28,120,24,56,24,56,48,28,48,28,112,28, - 96,14,96,14,224,7,128,6,17,2,6,19,1,251,127,255, - 128,255,255,0,8,9,9,13,1,20,224,240,112,56,56,28, - 14,6,3,16,18,36,18,2,0,3,224,31,240,56,120,112, - 56,240,56,192,56,0,56,0,120,7,248,28,56,112,56,96, - 56,224,56,224,56,224,120,241,185,127,63,60,24,18,30,90, - 20,0,0,12,0,0,124,0,0,188,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,60,0,28,255,0,29,143,0, - 31,7,128,30,3,128,28,3,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,128,28,1,128,28,3, - 128,30,3,0,31,134,0,7,252,0,1,240,0,15,18,36, - 17,2,0,1,248,7,254,28,28,56,12,112,4,112,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,0,112,4,120, - 6,62,28,31,248,7,224,19,30,90,21,2,0,0,3,0, - 0,63,0,0,15,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,7,0,0,7,0,0,7,0,0,7, - 0,3,247,0,15,255,0,28,31,0,56,15,0,48,7,0, - 112,7,0,96,7,0,224,7,0,224,7,0,224,7,0,224, - 7,0,224,7,0,240,7,0,112,15,0,120,31,0,60,55, - 224,31,231,192,7,131,0,14,18,36,18,2,0,3,192,15, - 240,28,120,48,56,112,28,96,28,224,28,255,252,255,248,224, - 0,224,0,224,0,240,0,112,4,120,12,60,56,31,240,7, - 192,15,30,60,12,1,0,0,120,1,254,3,28,6,8,14, - 0,12,0,12,0,28,0,28,0,28,0,28,0,28,0,127, - 240,255,224,28,64,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,62, - 0,255,192,18,27,81,19,1,247,3,224,192,15,255,192,28, - 63,0,56,28,0,112,14,0,112,14,0,112,14,0,112,14, - 0,120,28,0,60,56,0,31,240,0,7,192,0,6,0,0, - 12,0,0,28,0,0,31,224,0,15,254,0,12,63,128,24, - 3,192,112,1,192,224,1,192,224,1,192,224,3,128,240,3, - 128,124,15,0,63,252,0,7,240,0,21,30,90,22,1,0, - 12,0,0,252,0,0,124,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,31,0,28,63,128,28,227,192,29,129,192, - 31,1,192,30,1,192,30,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,62,3,192,255,143,248,9,27,54,11,1,0, - 28,0,60,0,60,0,60,0,24,0,0,0,0,0,0,0, - 0,0,12,0,252,0,60,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,11,36,72,10,252,247,0,224,1,224, - 1,224,1,224,0,192,0,0,0,0,0,0,0,0,0,96, - 7,224,1,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,192,0,192,1,192,1,128,35,0, - 254,0,248,0,19,30,90,20,1,0,12,0,0,252,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,31, - 224,28,7,0,28,14,0,28,28,0,28,48,0,28,224,0, - 29,192,0,31,128,0,29,192,0,29,224,0,28,240,0,28, - 120,0,28,56,0,28,28,0,28,30,0,28,15,0,60,7, - 128,255,3,224,9,30,60,11,1,0,12,0,252,0,124,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,60,0,255,128,31,18,72,32,1,0,12,30,3,192, - 252,127,15,224,60,199,152,240,29,131,176,112,31,3,224,112, - 30,3,192,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,28,3,128,112, - 28,3,128,112,28,3,128,112,28,3,128,112,60,7,192,240, - 255,159,243,254,21,18,54,22,1,0,12,15,0,252,63,128, - 60,99,192,29,129,192,29,1,192,30,1,192,30,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,192,28,1,192,28,1,192,62,3,192,255,143,248, - 16,18,36,20,2,0,3,224,15,248,28,60,48,30,112,14, - 96,15,224,7,224,7,224,7,224,7,224,7,224,7,240,6, - 112,14,120,12,62,56,31,240,7,192,18,27,81,21,1,247, - 12,28,0,252,127,0,60,143,128,29,7,128,30,3,128,30, - 3,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,1,128,28,1,128,28,3,128,30,3,0,31,6,0, - 29,252,0,28,120,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,62,0,0,255,128, - 0,19,27,81,21,2,247,1,241,128,7,251,0,28,31,0, - 56,15,0,48,7,0,112,7,0,96,7,0,224,7,0,224, - 7,0,224,7,0,224,7,0,224,7,0,240,7,0,112,15, - 0,120,31,0,60,55,0,31,231,0,7,135,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,7,0,0,7,0,0, - 7,0,0,7,0,0,63,224,14,18,36,16,1,0,12,60, - 252,252,61,140,29,12,31,4,30,0,30,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,0, - 255,128,11,18,36,15,2,0,31,0,127,128,115,192,225,128, - 224,128,240,0,248,0,126,0,31,0,15,192,3,224,1,224, - 128,224,128,224,192,224,225,192,255,128,62,0,13,25,50,14, - 0,0,4,0,12,0,28,0,28,0,28,0,28,0,28,0, - 127,248,255,240,28,32,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,30,56, - 15,240,7,128,21,18,54,21,0,0,12,0,192,252,15,192, - 28,1,192,28,1,192,28,1,192,28,1,192,28,1,192,28, - 1,192,28,1,192,28,1,192,28,1,192,28,1,192,28,1, - 192,28,3,192,28,7,192,30,29,200,15,241,240,7,192,192, - 19,18,54,20,0,0,255,7,224,60,1,192,28,1,128,28, - 3,128,14,3,0,14,3,0,14,6,0,7,6,0,7,6, - 0,3,140,0,3,140,0,3,156,0,1,216,0,1,216,0, - 0,240,0,0,240,0,0,240,0,0,64,0,28,18,72,28, - 0,0,255,3,7,240,60,7,0,192,28,7,0,192,28,7, - 129,128,28,15,129,128,14,15,129,128,14,13,195,128,14,25, - 195,0,6,25,195,0,7,24,227,0,7,48,230,0,3,48, - 118,0,3,176,118,0,3,224,124,0,1,224,60,0,1,224, - 60,0,1,192,60,0,1,128,16,0,20,18,54,20,0,0, - 127,143,224,30,3,128,14,3,0,7,6,0,7,140,0,3, - 156,0,1,216,0,0,240,0,0,240,0,0,240,0,1,184, - 0,1,156,0,3,30,0,6,14,0,14,7,0,12,3,128, - 60,3,192,255,15,240,20,27,81,20,255,247,127,131,240,30, - 0,224,14,0,192,14,0,192,7,1,128,7,1,128,7,3, - 0,3,131,0,3,131,0,1,198,0,1,198,0,1,198,0, - 0,236,0,0,236,0,0,120,0,0,120,0,0,120,0,0, - 48,0,0,48,0,0,96,0,0,96,0,0,224,0,1,192, - 0,67,128,0,127,0,0,254,0,0,124,0,0,15,18,36, - 18,1,0,63,254,63,254,96,28,96,56,64,56,0,112,0, - 224,1,192,1,192,3,128,7,0,7,0,14,0,28,2,56, - 2,56,6,127,254,255,254,11,37,74,14,2,250,0,64,1, - 224,3,128,7,0,6,0,14,0,14,0,14,0,14,0,14, - 0,15,0,7,0,7,0,7,0,7,0,7,0,14,0,28, - 0,124,0,254,0,15,0,7,0,7,0,7,0,7,0,7, - 0,15,0,14,0,14,0,14,0,14,0,14,0,14,0,7, - 0,3,0,1,192,0,64,3,41,41,9,3,248,96,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,192,11,37,74,14,1,250,64,0,112,0, - 56,0,28,0,12,0,14,0,14,0,14,0,14,0,14,0, - 30,0,28,0,28,0,28,0,28,0,28,0,14,0,15,192, - 3,224,7,0,14,0,12,0,28,0,28,0,28,0,28,0, - 30,0,14,0,14,0,14,0,14,0,14,0,12,0,28,0, - 56,0,112,0,192,0,18,6,18,20,1,9,15,0,192,31, - 192,128,63,225,0,99,255,0,192,254,0,128,56,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 5 y=28 dx=41 dy= 0 ascent=42 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-13 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =42 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30[18369] U8G_FONT_SECTION("u8g_font_gdr30") = { - 0,71,68,232,239,30,9,231,23,124,32,255,245,42,243,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,11, - 0,0,6,35,35,13,3,243,56,124,252,252,252,248,112,0, - 16,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 120,120,120,120,120,124,124,124,124,120,96,18,30,90,23,2, - 255,0,96,0,0,96,0,0,96,0,0,96,0,0,255,0, - 3,255,128,15,255,192,30,99,128,60,97,128,56,97,0,120, - 96,0,112,96,0,240,96,0,240,96,0,240,96,0,240,96, - 0,240,96,0,240,96,0,248,96,0,120,96,0,124,96,192, - 62,97,128,63,231,128,31,255,0,15,252,0,3,248,0,0, - 96,0,0,96,0,0,96,0,0,96,0,19,29,87,23,2, - 0,0,127,0,1,255,224,3,131,224,7,1,192,6,0,192, - 14,0,192,14,0,192,30,0,64,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,255,248,0,255,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 28,0,0,28,0,32,28,0,32,24,0,96,56,0,224,63, - 255,224,127,255,224,192,255,224,15,15,30,23,4,7,128,2, - 192,6,103,204,63,248,56,56,112,28,96,12,96,12,96,12, - 96,12,48,24,56,56,127,252,231,206,192,6,25,28,112,23, - 254,0,126,0,255,128,254,0,63,128,31,0,30,0,15,128, - 60,0,7,192,120,0,3,192,112,0,3,224,240,0,1,224, - 224,0,0,241,224,0,0,241,192,0,0,123,192,0,0,127, - 128,0,0,63,0,0,0,63,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,15,255,252,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,127,128,0,1,255, - 224,0,4,49,49,11,4,246,112,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,224,0,0, - 0,0,0,112,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,224,19,34,102,24,2,0,1, - 248,0,7,254,0,30,31,0,60,7,0,60,6,0,60,0, - 0,62,0,0,63,0,0,31,128,0,31,224,0,31,248,0, - 63,252,0,121,255,0,240,127,128,240,63,192,240,15,192,240, - 7,224,248,3,224,124,1,224,126,1,224,63,129,192,31,225, - 192,7,251,128,3,255,0,0,255,0,0,63,128,0,15,128, - 16,7,128,16,7,128,24,7,128,28,7,0,30,15,0,31, - 254,0,3,240,0,15,5,10,19,2,27,112,14,240,30,240, - 30,240,30,224,28,30,30,120,34,2,0,0,31,224,0,0, - 255,252,0,1,224,30,0,7,128,7,128,14,0,1,192,28, - 3,240,224,24,15,252,96,48,60,60,48,112,112,8,56,96, - 224,0,24,97,224,0,24,193,224,0,12,195,192,0,12,195, - 192,0,12,195,192,0,12,195,192,0,12,195,192,0,12,195, - 192,0,12,195,224,0,12,97,224,0,24,97,240,8,24,112, - 248,12,56,48,124,48,48,24,63,224,96,28,15,128,224,14, - 0,1,192,7,128,7,128,1,224,30,0,0,255,252,0,0, - 31,224,0,11,15,30,12,1,14,15,0,31,0,51,128,97, - 128,97,128,3,128,29,128,97,128,193,128,193,128,239,128,253, - 224,121,128,255,192,255,192,18,21,63,23,2,0,0,128,64, - 1,128,192,3,1,128,7,3,0,14,7,0,14,14,0,28, - 30,0,60,60,0,120,60,0,240,120,0,240,120,0,248,120, - 0,120,60,0,60,60,0,28,30,0,14,14,0,14,7,0, - 7,3,0,3,1,128,1,128,192,0,128,64,20,10,30,23, - 1,4,127,255,240,255,255,240,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,0,96, - 14,2,4,16,1,11,127,252,255,248,15,17,34,17,1,17, - 7,192,31,240,56,56,96,12,79,132,196,70,132,66,132,194, - 135,130,133,130,132,130,196,198,68,100,106,60,56,56,31,240, - 7,192,16,2,4,24,4,28,127,255,255,254,11,11,22,17, - 3,18,15,0,63,192,113,224,96,224,224,224,224,224,224,224, - 224,192,241,128,127,0,62,0,17,22,66,20,1,3,0,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,0,0,0,0,0,0,0,0,0,127,255,128,255,255,128, - 13,17,34,17,2,15,7,192,31,240,112,248,96,120,224,120, - 0,120,0,112,0,224,1,224,3,192,7,128,15,0,30,0, - 60,8,120,24,255,248,255,248,14,18,36,16,1,14,15,128, - 63,224,113,240,224,240,192,240,0,240,1,224,7,128,15,224, - 1,240,0,120,0,60,0,60,0,60,128,120,224,248,63,224, - 15,128,10,10,20,15,5,25,7,128,7,192,15,0,15,0, - 30,0,60,0,56,0,112,0,96,0,192,0,25,33,132,26, - 1,245,6,0,24,0,254,0,248,0,126,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,30,0, - 120,0,30,0,120,0,30,0,120,0,30,0,120,0,31,0, - 248,0,31,1,248,0,31,131,248,0,31,255,121,0,27,254, - 127,128,25,252,126,0,24,240,56,0,24,0,0,0,24,0, - 0,0,24,0,0,0,28,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,30,0,0,0,31,0,0,0,31,0, - 0,0,24,0,0,0,23,36,108,26,1,250,1,255,254,15, - 255,254,31,7,252,60,7,112,120,7,112,120,7,112,240,7, - 112,240,7,112,240,7,112,240,7,112,240,7,112,248,7,112, - 120,7,112,124,7,112,62,7,112,31,135,112,15,255,112,1, - 255,112,0,7,112,0,7,112,0,7,112,0,7,112,0,7, - 112,0,7,112,0,7,112,0,7,112,0,7,112,0,7,112, - 0,7,112,0,7,112,0,7,112,0,7,112,0,7,112,0, - 7,112,0,31,248,0,63,254,4,5,5,7,2,14,112,240, - 240,240,224,8,10,10,11,2,246,24,56,48,62,127,15,15, - 30,120,224,13,17,34,16,2,15,3,128,31,128,255,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,15,192,127,248,12,15,30,14,1, - 14,15,128,63,192,49,224,96,96,192,112,192,48,192,48,192, - 48,224,48,224,96,120,192,63,128,31,0,255,240,255,240,18, - 21,63,23,3,0,64,64,0,224,96,0,96,48,0,48,24, - 0,56,28,0,28,14,0,14,15,0,15,7,128,7,135,128, - 7,195,192,3,195,192,7,195,192,7,135,128,15,7,128,30, - 15,0,28,14,0,56,28,0,48,56,0,112,48,0,96,96, - 0,192,64,0,24,29,87,28,2,0,4,0,4,60,0,14, - 204,0,24,12,0,56,12,0,48,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,12,6, - 0,127,142,0,0,28,0,0,24,4,0,56,28,0,112,28, - 0,96,44,0,224,108,1,192,76,1,192,140,3,129,12,3, - 3,12,7,3,255,14,7,254,12,0,12,28,0,12,56,0, - 127,24,29,87,28,2,0,4,0,6,60,0,14,204,0,28, - 12,0,24,12,0,56,12,0,112,12,0,112,12,0,224,12, - 0,192,12,1,192,12,3,128,12,3,0,12,7,0,127,142, - 0,0,14,0,0,28,60,0,24,255,0,57,199,0,115,131, - 0,99,3,0,224,2,1,192,4,1,128,8,3,128,16,7, - 0,32,7,0,65,14,0,129,12,1,255,28,1,255,25,29, - 116,28,1,0,15,128,3,0,31,192,7,0,49,192,14,0, - 112,192,12,0,0,192,28,0,1,128,24,0,15,0,56,0, - 1,192,112,0,0,192,96,0,0,192,224,0,0,193,192,0, - 0,193,128,0,193,195,128,0,127,135,0,0,30,7,0,0, - 0,14,2,0,0,12,14,0,0,28,14,0,0,56,22,0, - 0,48,38,0,0,112,102,0,0,224,198,0,0,224,134,0, - 1,193,134,128,3,131,255,0,3,128,6,0,7,0,6,0, - 6,0,6,0,14,0,63,128,17,35,105,21,2,243,0,224, - 0,1,240,0,3,240,0,3,240,0,3,224,0,1,192,0, - 0,0,0,0,0,0,0,0,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,7,0,0,15,0,0,30,0,0,60,0,0, - 60,0,0,120,0,0,120,0,0,240,0,0,240,3,128,240, - 7,128,240,7,128,240,7,128,248,15,0,120,15,0,126,30, - 0,63,248,0,15,224,0,28,41,164,29,0,0,0,128,0, - 0,1,192,0,0,3,240,0,0,1,248,0,0,0,124,0, - 0,0,31,0,0,0,7,128,0,0,1,192,0,0,0,128, - 0,0,0,0,0,0,0,0,0,0,2,0,0,0,7,0, - 0,0,15,0,0,0,15,0,0,0,31,128,0,0,31,128, - 0,0,27,128,0,0,59,192,0,0,57,192,0,0,49,224, - 0,0,113,224,0,0,112,224,0,0,96,240,0,0,224,240, - 0,0,224,112,0,0,192,120,0,1,192,120,0,1,192,56, - 0,1,255,252,0,3,255,252,0,3,128,30,0,3,0,30, - 0,7,0,30,0,7,0,15,0,6,0,15,0,14,0,15, - 0,14,0,7,128,12,0,7,128,62,0,7,192,255,192,63, - 240,28,41,164,29,0,0,0,0,32,0,0,0,56,0,0, - 0,252,0,0,1,248,0,0,3,224,0,0,15,128,0,0, - 30,0,0,0,56,0,0,0,32,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,7,0,0,0,15,0,0,0, - 15,0,0,0,31,128,0,0,31,128,0,0,27,128,0,0, - 59,192,0,0,57,192,0,0,49,224,0,0,113,224,0,0, - 112,224,0,0,96,240,0,0,224,240,0,0,224,112,0,0, - 192,120,0,1,192,120,0,1,192,56,0,1,255,252,0,3, - 255,252,0,3,128,30,0,3,0,30,0,7,0,30,0,7, - 0,15,0,6,0,15,0,14,0,15,0,14,0,7,128,12, - 0,7,128,62,0,7,192,255,192,63,240,28,41,164,29,0, - 0,0,6,0,0,0,15,0,0,0,31,128,0,0,63,192, - 0,0,121,224,0,0,240,240,0,1,192,56,0,1,128,24, - 0,1,0,16,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,39,156,29,0,0,0,16,8,0,0, - 124,12,0,0,254,28,0,1,255,248,0,1,135,240,0,3, - 3,224,0,2,1,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,7,0,0,0,15,0,0,0,15,0,0,0, - 31,128,0,0,31,128,0,0,27,128,0,0,59,192,0,0, - 57,192,0,0,49,224,0,0,113,224,0,0,112,224,0,0, - 96,240,0,0,224,240,0,0,224,112,0,0,192,120,0,1, - 192,120,0,1,192,56,0,1,255,252,0,3,255,252,0,3, - 128,30,0,3,0,30,0,7,0,30,0,7,0,15,0,6, - 0,15,0,14,0,15,0,14,0,7,128,12,0,7,128,62, - 0,7,192,255,192,63,240,28,38,152,29,0,0,0,128,32, - 0,0,224,56,0,1,224,120,0,1,224,120,0,1,224,120, - 0,0,128,32,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,28,42,168,29,0,0,0,2,0,0,0, - 15,128,0,0,31,192,0,0,24,192,0,0,48,192,0,0, - 48,192,0,0,48,192,0,0,63,128,0,0,31,0,0,0, - 8,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0, - 7,0,0,0,15,0,0,0,15,0,0,0,31,128,0,0, - 31,128,0,0,27,128,0,0,59,192,0,0,57,192,0,0, - 49,224,0,0,113,224,0,0,112,224,0,0,96,240,0,0, - 224,240,0,0,224,112,0,0,192,120,0,1,192,120,0,1, - 192,56,0,1,255,252,0,3,255,252,0,3,128,30,0,3, - 0,30,0,7,0,30,0,7,0,15,0,6,0,15,0,14, - 0,15,0,14,0,7,128,12,0,7,128,62,0,7,192,255, - 192,63,240,36,30,150,37,0,0,0,127,255,255,192,0,31, - 255,255,224,0,7,252,0,192,0,7,60,0,192,0,7,60, - 0,192,0,14,60,0,192,0,14,60,0,0,0,30,60,0, - 0,0,28,60,0,0,0,28,60,0,0,0,60,60,0,0, - 0,56,60,0,0,0,120,60,0,0,0,127,255,255,0,0, - 127,255,255,0,0,240,60,6,0,0,224,60,0,0,1,224, - 60,0,0,1,192,60,0,0,1,192,60,0,0,3,128,60, - 0,0,3,128,60,0,0,7,128,60,0,0,7,0,60,0, - 0,7,0,60,0,16,14,0,60,0,48,14,0,60,0,48, - 30,0,62,0,112,62,0,127,255,224,255,193,255,255,224,22, - 40,120,26,2,246,0,31,224,0,255,252,1,192,252,7,128, - 56,14,0,16,14,0,0,28,0,0,56,0,0,56,0,0, - 120,0,0,112,0,0,112,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,248,0,0,120,0,0,124,0,0,60,0,0,62,0,8, - 31,0,60,15,128,240,15,255,224,3,255,128,0,254,0,0, - 24,0,0,16,0,0,28,0,0,62,0,0,63,0,0,15, - 0,0,15,0,0,30,0,0,120,0,1,192,0,21,41,123, - 24,1,0,4,0,0,14,0,0,31,0,0,15,192,0,3, - 224,0,0,240,0,0,60,0,0,14,0,0,4,0,0,0, - 0,0,0,0,255,255,224,127,255,240,30,0,96,30,0,96, - 30,0,96,30,0,96,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,31,255,128,31,255, - 128,30,3,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,8,30, - 0,24,30,0,24,31,0,56,127,255,240,255,255,240,21,41, - 123,24,1,0,0,1,0,0,3,192,0,7,224,0,15,192, - 0,63,0,0,124,0,0,240,0,1,192,0,1,0,0,0, - 0,0,0,0,0,255,255,224,127,255,240,30,0,96,30,0, - 96,30,0,96,30,0,96,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,31,255,128,31, - 255,128,30,3,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,8, - 30,0,24,30,0,24,31,0,56,127,255,240,255,255,240,21, - 41,123,24,1,0,0,48,0,0,120,0,0,252,0,1,254, - 0,3,207,0,7,7,0,14,1,128,28,0,192,16,0,128, - 0,0,0,0,0,0,255,255,224,127,255,240,30,0,96,30, - 0,96,30,0,96,30,0,96,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,31,255,128, - 31,255,128,30,3,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 8,30,0,24,30,0,24,31,0,56,127,255,240,255,255,240, - 21,38,114,24,1,0,4,1,0,15,3,192,15,3,192,15, - 3,192,14,3,128,4,1,0,0,0,0,0,0,0,255,255, - 224,127,255,240,30,0,96,30,0,96,30,0,96,30,0,96, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,31,255,128,31,255,128,30,3,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,8,30,0,24,30,0,24,31, - 0,56,127,255,240,255,255,240,13,41,82,14,255,0,32,0, - 112,0,252,0,126,0,31,0,7,128,1,224,0,112,0,32, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 13,41,82,14,2,0,0,64,0,112,1,248,3,240,7,192, - 31,0,60,0,112,0,64,0,0,0,0,0,255,192,127,128, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,127,128,255,192,15,41,82,14,255,0,1,128, - 3,192,7,224,15,240,30,120,56,60,112,12,224,6,64,4, - 0,0,0,0,31,248,15,240,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,15,240,31,248, - 14,38,76,14,0,0,64,16,112,28,240,60,240,60,224,56, - 64,16,0,0,0,0,63,240,31,224,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,31,224, - 63,240,25,30,120,28,1,0,7,254,0,0,255,255,192,0, - 127,3,240,0,15,0,248,0,15,0,124,0,15,0,62,0, - 15,0,30,0,15,0,31,0,15,0,15,0,15,0,15,0, - 15,0,15,128,15,0,7,128,15,0,7,128,15,0,7,128, - 255,254,7,128,255,252,7,128,15,0,7,128,15,0,7,128, - 15,0,7,128,15,0,7,0,15,0,15,0,15,0,15,0, - 15,0,30,0,15,0,30,0,15,0,60,0,15,0,124,0, - 15,0,248,0,15,3,224,0,31,255,192,0,127,254,0,0, - 27,39,156,31,2,0,0,32,16,0,0,124,12,0,0,254, - 24,0,1,255,240,0,3,15,240,0,3,3,224,0,2,1, - 0,0,0,0,0,0,0,0,0,0,252,0,63,224,124,0, - 15,128,30,0,7,0,31,0,7,0,31,0,7,0,31,128, - 7,0,31,192,7,0,29,192,7,0,28,224,7,0,28,240, - 7,0,28,120,7,0,28,56,7,0,28,60,7,0,28,30, - 7,0,28,14,7,0,28,15,7,0,28,7,135,0,28,7, - 135,0,28,3,199,0,28,1,231,0,28,1,231,0,28,0, - 247,0,28,0,127,0,28,0,127,0,28,0,63,0,28,0, - 31,0,28,0,31,0,28,0,15,0,62,0,7,0,255,128, - 3,0,25,41,164,29,2,0,2,0,0,0,3,128,0,0, - 7,192,0,0,7,224,0,0,1,248,0,0,0,124,0,0, - 0,30,0,0,0,7,128,0,0,1,0,0,0,0,0,0, - 0,0,0,0,0,63,0,0,0,255,224,0,3,193,240,0, - 7,0,248,0,14,0,124,0,28,0,62,0,60,0,30,0, - 56,0,31,0,120,0,15,0,120,0,15,0,112,0,15,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 248,0,7,0,120,0,15,0,120,0,15,0,124,0,14,0, - 60,0,28,0,62,0,28,0,31,0,56,0,15,128,112,0, - 7,193,224,0,3,255,128,0,0,254,0,0,25,41,164,29, - 2,0,0,0,128,0,0,0,224,0,0,1,240,0,0,7, - 240,0,0,15,192,0,0,30,0,0,0,56,0,0,0,224, - 0,0,0,128,0,0,0,0,0,0,0,0,0,0,0,63, - 0,0,0,255,224,0,3,193,240,0,7,0,248,0,14,0, - 124,0,28,0,62,0,60,0,30,0,56,0,31,0,120,0, - 15,0,120,0,15,0,112,0,15,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,248,0,7,0,120,0, - 15,0,120,0,15,0,124,0,14,0,60,0,28,0,62,0, - 28,0,31,0,56,0,15,128,112,0,7,193,224,0,3,255, - 128,0,0,254,0,0,25,41,164,29,2,0,0,28,0,0, - 0,62,0,0,0,126,0,0,0,127,0,0,0,227,128,0, - 1,193,192,0,3,128,224,0,6,0,112,0,4,0,32,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 25,39,156,29,2,0,0,64,32,0,1,248,48,0,3,252, - 48,0,3,255,224,0,6,31,192,0,4,15,128,0,12,2, - 0,0,0,0,0,0,0,0,0,0,0,63,0,0,0,255, - 224,0,3,193,240,0,7,0,248,0,14,0,124,0,28,0, - 62,0,60,0,30,0,56,0,31,0,120,0,15,0,120,0, - 15,0,112,0,15,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,240,0,7,128,240,0,7,128,240,0, - 7,128,240,0,7,128,248,0,7,0,120,0,15,0,120,0, - 15,0,124,0,14,0,60,0,28,0,62,0,28,0,31,0, - 56,0,15,128,112,0,7,193,224,0,3,255,128,0,0,254, - 0,0,25,38,152,29,2,0,1,0,64,0,3,128,224,0, - 3,128,224,0,7,129,224,0,3,128,224,0,2,0,128,0, - 0,0,0,0,0,0,0,0,0,63,0,0,0,255,224,0, - 3,193,240,0,7,0,248,0,14,0,124,0,28,0,62,0, - 60,0,30,0,56,0,31,0,120,0,15,0,120,0,15,0, - 112,0,15,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,240,0,7,128,240,0,7,128,240,0,7,128, - 240,0,7,128,248,0,7,0,120,0,15,0,120,0,15,0, - 124,0,14,0,60,0,28,0,62,0,28,0,31,0,56,0, - 15,128,112,0,7,193,224,0,3,255,128,0,0,254,0,0, - 15,14,28,20,2,6,96,6,240,14,120,28,60,56,30,112, - 15,224,7,192,7,192,15,224,30,112,60,56,120,28,240,14, - 96,6,25,31,124,29,2,255,0,63,7,128,1,255,207,0, - 3,193,254,0,7,0,126,0,14,0,60,0,28,0,126,0, - 56,0,126,0,56,0,255,0,120,1,239,0,120,1,239,0, - 112,3,207,128,240,7,135,128,240,7,7,128,240,15,7,128, - 240,30,7,128,240,60,7,128,240,60,7,128,240,120,7,128, - 240,240,7,128,240,224,7,0,121,224,7,0,123,192,15,0, - 123,128,14,0,63,128,12,0,63,0,28,0,30,0,56,0, - 31,0,112,0,63,193,224,0,121,255,128,0,240,126,0,0, - 192,0,0,0,27,41,164,31,2,0,0,128,0,0,1,192, - 0,0,3,240,0,0,1,248,0,0,0,124,0,0,0,30, - 0,0,0,7,128,0,0,1,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,192,127,224,127,128,63,192,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 30,0,15,0,30,0,15,0,30,0,7,128,60,0,7,192, - 120,0,3,224,240,0,1,255,224,0,0,63,128,0,27,41, - 164,31,2,0,0,0,32,0,0,0,120,0,0,0,252,0, - 0,1,248,0,0,3,224,0,0,15,128,0,0,30,0,0, - 0,56,0,0,0,32,0,0,0,0,0,0,0,0,0,0, - 255,192,127,224,127,128,63,192,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,30,0,15,0,30,0, - 15,0,30,0,7,128,60,0,7,192,120,0,3,224,240,0, - 1,255,224,0,0,63,128,0,27,41,164,31,2,0,0,6, - 0,0,0,15,0,0,0,31,128,0,0,63,192,0,0,121, - 224,0,0,224,240,0,1,192,48,0,3,128,24,0,1,0, - 16,0,0,0,0,0,0,0,0,0,255,192,127,224,127,128, - 63,192,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,15,0,30,0,15,0,30,0,15,0,30,0, - 15,0,30,0,30,0,15,0,30,0,15,0,30,0,7,128, - 60,0,7,192,120,0,3,224,240,0,1,255,224,0,0,63, - 128,0,27,38,152,31,2,0,0,128,32,0,0,224,56,0, - 1,224,120,0,1,224,120,0,1,192,112,0,0,128,32,0, - 0,0,0,0,0,0,0,0,255,192,127,224,127,128,63,192, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,15,0,30,0,15,0,30,0,15,0,30,0,15,0, - 30,0,30,0,15,0,30,0,15,0,30,0,7,128,60,0, - 7,192,120,0,3,224,240,0,1,255,224,0,0,63,128,0, - 28,41,164,29,0,0,0,0,32,0,0,0,56,0,0,0, - 252,0,0,1,248,0,0,3,224,0,0,7,128,0,0,30, - 0,0,0,56,0,0,0,32,0,0,0,0,0,0,0,0, - 0,0,252,0,63,240,254,0,63,240,31,0,15,128,15,0, - 7,0,15,128,14,0,7,192,14,0,3,192,28,0,3,224, - 60,0,1,224,56,0,0,240,120,0,0,248,112,0,0,120, - 224,0,0,125,224,0,0,61,192,0,0,63,192,0,0,31, - 128,0,0,31,128,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,15,0,0,0,15,0,0,0,15,0,0,0,15, - 0,0,0,63,192,0,0,255,240,0,21,30,90,25,2,0, - 255,224,0,127,128,0,30,0,0,30,0,0,30,0,0,30, - 0,0,31,254,0,31,255,128,30,15,192,30,3,224,30,1, - 240,30,0,248,30,0,120,30,0,120,30,0,120,30,0,120, - 30,0,120,30,0,120,30,0,240,30,0,240,30,1,224,31, - 7,192,30,255,128,30,124,0,30,0,0,30,0,0,30,0, - 0,30,0,0,127,128,0,255,224,0,25,36,144,27,1,0, - 0,31,128,0,0,127,224,0,1,195,240,0,3,128,248,0, - 7,0,120,0,7,0,124,0,14,0,60,0,14,0,60,0, - 14,0,60,0,30,0,60,0,30,0,60,0,30,0,120,0, - 30,1,248,0,30,7,240,0,30,15,192,0,30,31,0,0, - 30,60,0,0,30,60,0,0,30,60,0,0,30,62,0,0, - 30,63,0,0,30,31,192,0,30,15,240,0,30,3,252,0, - 30,0,254,0,30,0,127,0,30,0,31,128,30,0,15,128, - 30,0,7,128,30,32,7,128,30,48,7,128,30,48,7,0, - 30,56,15,0,30,60,30,0,62,63,252,0,254,7,224,0, - 20,35,105,22,2,0,30,0,0,62,0,0,31,0,0,15, - 0,0,7,128,0,3,192,0,1,192,0,0,224,0,0,96, - 0,0,48,0,0,0,0,0,0,0,0,0,0,1,248,0, - 15,254,0,28,30,0,120,15,0,112,15,0,240,15,0,128, - 15,0,0,15,0,0,15,0,0,255,0,7,255,0,31,143, - 0,62,15,0,120,15,0,248,15,0,240,15,0,240,15,0, - 240,31,0,240,63,0,120,239,32,127,143,240,30,7,128,20, - 35,105,22,2,0,0,15,0,0,31,0,0,30,0,0,60, - 0,0,56,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,128,0,0,0,0,0,0,0,0,0,0,1,248,0,15, - 254,0,28,30,0,120,15,0,112,15,0,240,15,0,128,15, - 0,0,15,0,0,15,0,0,255,0,7,255,0,31,143,0, - 62,15,0,120,15,0,248,15,0,240,15,0,240,15,0,240, - 31,0,240,63,0,120,239,32,127,143,240,30,7,128,20,34, - 102,22,2,0,0,224,0,1,240,0,3,240,0,7,56,0, - 6,28,0,12,14,0,24,6,0,48,3,0,32,1,128,0, - 0,0,0,0,0,0,0,0,1,248,0,15,254,0,28,30, - 0,120,15,0,112,15,0,240,15,0,128,15,0,0,15,0, - 0,15,0,0,255,0,7,255,0,31,143,0,62,15,0,120, - 15,0,248,15,0,240,15,0,240,15,0,240,31,0,240,63, - 0,120,239,32,127,143,240,30,7,128,20,32,96,22,2,0, - 7,0,128,15,193,128,31,193,0,63,243,0,48,254,0,96, - 56,0,0,0,0,0,0,0,0,0,0,0,0,0,1,248, - 0,15,254,0,28,30,0,120,15,0,112,15,0,240,15,0, - 128,15,0,0,15,0,0,15,0,0,255,0,7,255,0,31, - 143,0,62,15,0,120,15,0,248,15,0,240,15,0,240,15, - 0,240,31,0,240,63,0,120,239,32,127,143,240,30,7,128, - 20,32,96,22,2,0,28,7,0,28,7,0,60,15,0,60, - 15,0,24,6,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,1,248,0,15,254,0,28,30,0,120,15,0, - 112,15,0,240,15,0,128,15,0,0,15,0,0,15,0,0, - 255,0,7,255,0,31,143,0,62,15,0,120,15,0,248,15, - 0,240,15,0,240,15,0,240,31,0,240,63,0,120,239,32, - 127,143,240,30,7,128,20,34,102,22,2,0,0,240,0,1, - 248,0,3,24,0,3,24,0,6,24,0,6,24,0,7,56, - 0,3,240,0,1,192,0,0,0,0,0,0,0,0,0,0, - 1,248,0,15,254,0,28,30,0,120,15,0,112,15,0,240, - 15,0,128,15,0,0,15,0,0,15,0,0,255,0,7,255, - 0,31,143,0,62,15,0,120,15,0,248,15,0,240,15,0, - 240,15,0,240,31,0,240,63,0,120,239,32,127,143,240,30, - 7,128,29,22,88,33,2,0,1,248,31,128,7,252,127,192, - 28,62,225,224,56,31,192,240,112,15,128,112,240,15,128,120, - 240,15,0,120,192,15,0,120,0,127,255,248,3,255,255,240, - 15,143,0,0,30,15,0,0,60,15,0,0,120,15,0,0, - 240,15,0,0,240,15,128,0,240,31,128,24,240,63,192,48, - 248,243,224,240,127,227,255,192,127,128,255,128,30,0,126,0, - 18,32,96,21,2,246,0,127,0,1,255,192,7,7,192,14, - 1,128,28,0,128,56,0,0,120,0,0,112,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,248,0,0,120,1,0,124,3,128,62,7,0,31, - 254,0,31,248,0,7,240,0,0,192,0,0,128,0,0,224, - 0,0,240,0,1,248,0,0,120,0,0,120,0,0,240,0, - 3,192,0,14,0,0,18,35,105,22,2,0,14,0,0,31, - 0,0,15,128,0,7,128,0,3,192,0,1,192,0,0,224, - 0,0,112,0,0,48,0,0,24,0,0,0,0,0,0,0, - 0,0,0,0,248,0,7,254,0,14,15,0,28,7,128,56, - 7,128,56,3,192,112,3,192,112,3,192,255,255,192,255,255, - 128,240,0,0,240,0,0,240,0,0,240,0,0,248,0,0, - 120,0,0,120,0,0,124,0,192,62,1,128,31,7,0,15, - 254,0,3,248,0,18,35,105,22,2,0,0,7,0,0,15, - 128,0,15,0,0,30,0,0,60,0,0,56,0,0,112,0, - 0,96,0,0,192,0,0,128,0,0,0,0,0,0,0,0, - 0,0,0,248,0,7,254,0,14,15,0,28,7,128,56,7, - 128,56,3,192,112,3,192,112,3,192,255,255,192,255,255,128, - 240,0,0,240,0,0,240,0,0,240,0,0,248,0,0,120, - 0,0,120,0,0,124,0,192,62,1,128,31,7,0,15,254, - 0,3,248,0,18,34,102,22,2,0,0,240,0,0,240,0, - 1,248,0,3,156,0,7,14,0,14,6,0,12,3,0,24, - 1,128,16,0,128,0,0,0,0,0,0,0,0,0,0,248, - 0,7,254,0,14,15,0,28,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,255,255,192,255,255,128,240,0,0,240, - 0,0,240,0,0,240,0,0,248,0,0,120,0,0,120,0, - 0,124,0,192,62,1,128,31,7,0,15,254,0,3,248,0, - 18,32,96,22,2,0,14,3,128,30,7,128,30,7,128,30, - 7,128,28,7,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,248,0,7,254,0,14,15,0,28,7,128, - 56,7,128,56,3,192,112,3,192,112,3,192,255,255,192,255, - 255,128,240,0,0,240,0,0,240,0,0,240,0,0,248,0, - 0,120,0,0,120,0,0,124,0,192,62,1,128,31,7,0, - 15,254,0,3,248,0,12,35,70,13,0,0,240,0,248,0, - 120,0,60,0,28,0,14,0,7,0,3,0,1,128,0,128, - 0,0,0,0,0,0,1,128,31,128,63,128,15,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,15,192, - 63,240,12,35,70,13,2,0,0,224,1,240,3,224,3,192, - 7,128,7,0,14,0,28,0,24,0,48,0,0,0,0,0, - 0,0,6,0,126,0,254,0,62,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,63,0,255,192,15,34, - 68,13,255,0,3,128,7,192,7,224,14,240,28,112,56,56, - 112,12,96,6,192,2,0,0,0,0,0,0,0,192,15,192, - 31,192,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,7,224,31,248,14,32,64,13,0,0,96,24, - 240,60,240,60,224,56,224,56,0,0,0,0,0,0,0,0, - 0,0,1,128,31,128,63,128,15,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,15,192,63,240,20,34, - 102,24,2,0,3,0,0,31,192,128,31,225,224,1,255,192, - 0,126,0,0,252,0,3,254,0,15,143,0,4,7,128,0, - 3,128,0,3,192,0,1,192,1,241,224,7,255,224,14,31, - 224,28,7,240,56,3,240,56,1,240,120,1,240,112,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,224,240, - 0,224,248,1,224,120,1,192,124,1,192,124,3,128,62,7, - 0,31,14,0,15,252,0,3,240,0,23,32,96,26,2,0, - 1,224,32,3,240,48,7,248,96,7,252,192,14,63,128,8, - 15,0,0,0,0,0,0,0,0,0,0,0,0,0,12,7, - 192,254,15,224,62,49,224,30,96,240,30,192,240,30,128,240, - 31,0,240,31,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,127,131,248,255,199,254, - 20,35,105,24,2,0,15,0,0,15,0,0,7,128,0,3, - 192,0,1,192,0,0,224,0,0,112,0,0,112,0,0,56, - 0,0,24,0,0,0,0,0,0,0,0,0,0,0,252,0, - 7,255,0,14,15,128,28,7,192,56,3,192,56,3,224,112, - 1,224,112,1,240,240,0,240,240,0,240,240,0,240,240,0, - 240,240,0,240,240,0,240,248,0,224,120,1,224,124,1,192, - 60,1,192,62,3,128,31,7,0,15,254,0,3,240,0,20, - 35,105,24,2,0,0,7,128,0,7,192,0,15,128,0,15, - 0,0,30,0,0,60,0,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,0,0,0,0,252,0,7, - 255,0,14,15,128,28,7,192,56,3,192,56,3,224,112,1, - 224,112,1,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,248,0,224,120,1,224,124,1,192,60, - 1,192,62,3,128,31,7,0,15,254,0,3,240,0,20,34, - 102,24,2,0,0,112,0,0,248,0,1,252,0,1,220,0, - 3,142,0,7,7,0,14,3,128,12,1,192,24,0,192,0, - 0,0,0,0,0,0,0,0,0,252,0,7,255,0,14,15, - 128,28,7,192,56,3,192,56,3,224,112,1,224,112,1,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,240, - 0,240,248,0,224,120,1,224,124,1,192,60,1,192,62,3, - 128,31,7,0,15,254,0,3,240,0,20,32,96,24,2,0, - 3,192,64,7,224,96,15,240,192,15,249,128,28,127,0,16, - 30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 0,7,255,0,14,15,128,28,7,192,56,3,192,56,3,224, - 112,1,224,112,1,240,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,248,0,224,120,1,224,124,1, - 192,60,1,192,62,3,128,31,7,0,15,254,0,3,240,0, - 20,32,96,24,2,0,6,1,128,15,3,192,15,3,192,14, - 3,128,14,3,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,252,0,7,255,0,14,15,128,28,7,192, - 56,3,192,56,3,224,112,1,224,112,1,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,248,0, - 224,120,1,224,124,1,192,60,1,192,62,3,128,31,7,0, - 15,254,0,3,240,0,17,15,45,20,1,6,0,224,0,1, - 224,0,1,224,0,1,192,0,0,0,0,0,0,0,0,0, - 0,127,255,128,255,255,128,0,0,0,0,0,0,0,224,0, - 1,224,0,1,224,0,1,192,0,20,24,72,24,2,255,0, - 0,48,1,248,112,7,254,224,14,15,192,28,7,192,56,3, - 224,56,7,224,112,15,224,112,28,240,240,24,240,240,56,240, - 240,112,240,240,224,240,240,192,240,241,192,240,243,128,224,255, - 0,224,126,1,192,126,1,192,62,3,128,63,7,0,119,254, - 0,225,248,0,128,0,0,24,35,105,25,1,0,3,128,0, - 7,192,0,3,192,0,1,224,0,0,240,0,0,112,0,0, - 56,0,0,24,0,0,12,0,0,4,0,0,0,0,0,0, - 0,0,0,0,6,0,112,254,7,240,126,7,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,1,240,31,2,240,15,12,255, - 15,248,252,3,224,112,24,35,105,25,1,0,0,1,192,0, - 3,224,0,7,192,0,7,128,0,15,0,0,14,0,0,28, - 0,0,56,0,0,48,0,0,96,0,0,0,0,0,0,0, - 0,0,0,6,0,112,254,7,240,126,7,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,1,240,31,2,240,15,12,255,15, - 248,252,3,224,112,24,34,102,25,1,0,0,56,0,0,124, - 0,0,126,0,0,231,0,1,195,0,3,129,128,3,0,192, - 6,0,96,12,0,32,0,0,0,0,0,0,0,0,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,24,32,96,25,1,0,3,0,192,7,129,224,7,129,224, - 7,129,224,7,1,192,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,6,0,112,254,7,240,126,7,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,1,240,31,2,240,15,12, - 255,15,248,252,3,224,112,24,46,138,24,255,245,0,0,240, - 0,0,248,0,1,224,0,3,224,0,3,192,0,7,128,0, - 7,0,0,14,0,0,12,0,0,24,0,0,0,0,0,0, - 0,0,0,0,127,224,255,31,0,62,15,0,28,15,0,24, - 7,128,56,7,128,56,3,128,48,3,192,112,3,192,96,1, - 224,224,1,224,224,0,224,192,0,241,192,0,241,192,0,121, - 128,0,123,128,0,59,0,0,63,0,0,63,0,0,30,0, - 0,30,0,0,12,0,0,12,0,0,28,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,224,0,63,192,0,127,128, - 0,255,0,0,124,0,0,21,47,141,25,2,245,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,15,0,28,63,192,28,99,224, - 28,193,224,29,129,240,31,0,240,31,0,248,30,0,248,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,120,30,0, - 120,30,0,112,30,0,112,30,0,224,30,0,224,31,129,192, - 31,195,128,31,255,0,30,124,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,63,0,0,255,224,0,24,43,129,24,255,245, - 0,192,48,1,192,112,1,224,120,3,192,240,1,128,96,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,127,224, - 255,31,0,62,15,0,28,15,0,24,7,128,56,7,128,56, - 3,128,48,3,192,112,3,192,96,1,224,224,1,224,224,0, - 224,192,0,241,192,0,241,192,0,121,128,0,123,128,0,59, - 0,0,63,0,0,63,0,0,30,0,0,30,0,0,12,0, - 0,12,0,0,28,0,0,24,0,0,56,0,0,112,0,0, - 112,0,0,224,0,63,192,0,127,128,0,255,0,0,124,0, - 0}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 29 - Calculated Max Values w=20 h=46 x= 3 y=17 dx=23 dy= 0 ascent=38 len=138 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =29 descent= 0 - X Font ascent =29 descent= 0 - Max Font ascent =38 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30n[1281] U8G_FONT_SECTION("u8g_font_gdr30n") = { - 0,71,68,232,239,29,0,0,0,0,42,58,0,38,248,29, - 0,18,20,60,21,2,17,0,192,0,1,192,0,1,192,0, - 1,192,0,193,193,0,240,195,192,248,207,192,124,223,0,15, - 252,0,3,224,0,3,224,0,15,252,0,60,223,0,248,207, - 128,240,195,128,64,193,128,1,192,0,1,192,0,1,192,0, - 1,128,0,17,17,51,20,1,5,0,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,255,255,128,255,255,128,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,128,0,7,13,13,11, - 2,249,8,60,254,254,30,30,30,28,28,56,48,96,64,14, - 2,4,16,1,11,127,252,255,248,6,6,6,11,3,255,56, - 124,252,252,248,112,20,46,138,23,1,248,0,0,48,0,0, - 240,0,0,240,0,0,224,0,1,224,0,1,192,0,1,192, - 0,3,192,0,3,128,0,7,128,0,7,128,0,7,0,0, - 15,0,0,15,0,0,14,0,0,30,0,0,28,0,0,28, - 0,0,60,0,0,56,0,0,120,0,0,120,0,0,112,0, - 0,240,0,0,224,0,0,224,0,1,224,0,1,192,0,3, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,14,0,0,30,0,0,30,0,0,28,0,0, - 60,0,0,60,0,0,56,0,0,120,0,0,112,0,0,240, - 0,0,192,0,0,19,29,87,23,2,0,1,248,0,7,252, - 0,14,30,0,28,15,0,24,7,128,56,7,128,56,3,192, - 112,3,192,112,3,192,112,3,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,192,120,1,192,120,3,192,120,3,128, - 60,3,128,60,3,0,30,7,0,15,14,0,7,252,0,3, - 240,0,17,29,87,23,3,0,0,96,0,1,224,0,15,224, - 0,127,224,0,255,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,3,240,0,63,254,0,127,255,128,17, - 29,87,22,2,0,1,248,0,7,254,0,28,31,0,56,15, - 0,120,15,128,112,7,128,240,7,128,224,7,128,0,7,128, - 0,7,128,0,15,0,0,15,0,0,30,0,0,30,0,0, - 60,0,0,120,0,0,240,0,0,240,0,1,224,0,3,192, - 0,7,128,0,15,0,0,15,0,0,30,0,128,60,0,128, - 120,0,128,240,1,128,255,255,128,255,255,128,18,29,87,22, - 1,0,1,248,0,7,254,0,30,31,0,60,15,0,56,7, - 128,120,7,128,112,7,128,0,7,128,0,7,0,0,15,0, - 0,30,0,0,60,0,0,248,0,3,254,0,0,63,0,0, - 15,128,0,7,128,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,7,128,128,7,128,224,15,0, - 120,62,0,63,252,0,7,224,0,19,29,87,23,1,0,0, - 3,0,0,15,0,0,31,0,0,63,0,0,127,0,0,127, - 0,0,239,0,0,207,0,1,207,0,3,143,0,3,143,0, - 7,15,0,14,15,0,14,15,0,28,15,0,24,15,0,56, - 15,0,112,15,0,112,15,0,255,255,224,255,255,192,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,63,128,1,255,224,18,29,87,23,2,0,0,0,128,0, - 1,128,31,255,0,31,254,0,24,0,0,24,0,0,24,0, - 0,24,0,0,56,0,0,56,0,0,56,0,0,63,240,0, - 63,252,0,120,63,0,32,15,0,0,7,128,0,7,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 128,0,7,128,128,7,128,224,15,0,120,62,0,63,252,0, - 7,240,0,18,29,87,23,3,0,0,7,0,0,63,0,0, - 248,0,1,224,0,3,192,0,15,0,0,14,0,0,30,0, - 0,60,0,0,56,0,0,120,0,0,120,248,0,119,254,0, - 254,31,0,248,15,128,240,7,128,240,7,192,240,3,192,240, - 3,192,240,3,192,240,3,192,248,3,192,120,3,128,120,3, - 128,60,7,128,60,7,0,31,14,0,15,252,0,3,240,0, - 19,27,81,23,2,0,127,255,192,127,255,224,96,1,192,64, - 3,192,192,3,128,0,3,128,0,7,0,0,7,0,0,14, - 0,0,14,0,0,28,0,0,28,0,0,56,0,0,56,0, - 0,56,0,0,112,0,0,112,0,0,224,0,0,224,0,1, - 192,0,1,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,15,0,0,28,0,0,18,29,87,22,2,0,3,248,0, - 15,254,0,28,31,0,56,15,0,48,7,128,112,7,128,112, - 7,128,112,7,128,112,7,0,120,15,0,62,30,0,31,188, - 0,15,240,0,3,252,0,7,254,0,30,63,0,60,15,128, - 120,7,192,112,7,192,240,3,192,240,3,192,240,3,192,240, - 3,192,240,3,128,120,7,128,124,7,0,62,14,0,31,252, - 0,7,224,0,19,30,90,23,2,255,1,248,0,7,254,0, - 14,31,0,28,15,128,56,7,128,120,3,192,112,3,192,240, - 3,224,240,1,224,240,1,224,240,1,224,240,1,224,248,1, - 224,120,3,224,124,7,224,62,13,224,31,249,224,7,225,192, - 0,3,192,0,3,192,0,7,128,0,7,128,0,15,0,0, - 30,0,0,60,0,0,120,0,0,240,0,3,224,0,31,128, - 0,56,0,0,6,23,23,11,3,255,56,124,252,252,248,112, - 0,0,0,0,0,0,0,0,0,0,0,56,124,252,252,248, - 112}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--48-480-72-72-P-218-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 30, '1' Height: 29 - Calculated Max Values w=40 h=49 x= 4 y=25 dx=41 dy= 0 ascent=39 len=195 - Font Bounding box w=71 h=68 x=-24 y=-17 - Calculated Min Values x=-5 y=-11 dx= 0 dy= 0 - Pure Font ascent =30 descent=-11 - X Font ascent =38 descent=-11 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr30r[8588] U8G_FONT_SECTION("u8g_font_gdr30r") = { - 0,71,68,232,239,30,9,231,23,124,32,127,245,39,245,38, - 245,0,0,0,11,0,0,6,36,36,13,3,255,12,60,124, - 124,124,124,124,120,120,120,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,0,0,0,0,56,124,252,252,248, - 112,13,16,32,20,4,19,48,56,240,248,240,248,240,240,240, - 240,240,240,240,112,240,112,240,112,240,112,112,112,112,112,96, - 112,96,112,96,112,96,112,21,27,81,23,2,3,0,48,96, - 0,112,224,0,96,192,0,224,192,0,225,192,0,225,192,0, - 193,128,1,195,128,31,255,248,31,255,248,3,135,0,3,135, - 0,3,7,0,3,6,0,7,14,0,7,14,0,6,14,0, - 255,255,192,255,255,192,12,28,0,12,24,0,28,56,0,28, - 56,0,24,48,0,56,112,0,56,112,0,48,96,0,20,36, - 108,23,1,252,0,96,0,0,96,0,0,96,0,0,96,0, - 3,254,0,15,255,128,62,127,192,120,103,128,112,99,128,240, - 96,0,240,96,0,240,96,0,248,96,0,126,96,0,127,224, - 0,63,240,0,15,254,0,1,255,0,0,127,192,0,111,224, - 0,99,224,0,97,240,0,96,240,0,96,240,64,96,240,96, - 96,240,112,96,224,120,97,224,124,99,192,127,255,128,31,255, - 0,7,248,0,0,96,0,0,96,0,0,96,0,0,96,0, - 31,30,120,34,1,255,7,192,0,96,31,224,1,240,60,240, - 1,192,120,120,3,192,112,120,7,128,240,60,7,0,240,60, - 14,0,240,60,30,0,240,60,60,0,240,60,56,0,240,60, - 120,0,120,56,240,0,120,120,224,0,60,241,192,0,31,227, - 195,224,15,135,143,240,0,7,30,120,0,15,60,60,0,30, - 56,60,0,28,120,30,0,56,120,30,0,120,120,30,0,240, - 120,30,0,224,120,30,1,192,120,30,3,192,60,28,3,128, - 60,60,7,0,30,120,15,0,15,240,12,0,7,192,30,34, - 136,32,2,0,0,63,0,0,0,255,128,0,1,199,192,0, - 3,131,224,0,7,1,224,0,7,1,224,0,15,1,224,0, - 15,1,224,0,15,3,224,0,15,3,192,0,15,135,192,0, - 15,143,128,0,7,191,0,0,7,254,0,0,7,248,0,0, - 7,240,0,0,15,240,63,248,31,240,127,252,62,120,30,48, - 60,124,15,0,124,60,15,0,120,30,7,0,240,31,7,0, - 240,15,135,0,240,7,198,0,240,3,198,0,240,3,236,0, - 240,1,252,0,248,0,252,0,120,0,126,0,60,0,255,0, - 63,3,143,200,15,255,7,240,3,248,3,192,4,16,16,12, - 4,19,48,240,240,240,240,240,240,240,240,240,112,112,96,96, - 96,96,11,45,90,15,3,249,0,32,0,224,1,192,3,128, - 3,128,7,0,14,0,14,0,28,0,28,0,60,0,56,0, - 56,0,120,0,120,0,120,0,112,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,120,0,120,0,120,0,120,0,56,0,60,0,60,0, - 28,0,30,0,14,0,15,0,7,0,3,128,1,192,0,224, - 0,32,11,45,90,15,1,249,128,0,224,0,112,0,56,0, - 28,0,30,0,14,0,15,0,7,0,7,128,7,128,3,128, - 3,192,3,192,3,192,3,192,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,1,224, - 1,192,3,192,3,192,3,192,3,128,3,128,7,128,7,0, - 15,0,14,0,14,0,28,0,56,0,56,0,112,0,224,0, - 128,0,18,20,60,21,2,17,0,192,0,1,192,0,1,192, - 0,1,192,0,193,193,0,240,195,192,248,207,192,124,223,0, - 15,252,0,3,224,0,3,224,0,15,252,0,60,223,0,248, - 207,128,240,195,128,64,193,128,1,192,0,1,192,0,1,192, - 0,1,128,0,17,17,51,20,1,5,0,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,255,255,128,255,255,128,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,128,0,7,13,13, - 11,2,249,8,60,254,254,30,30,30,28,28,56,48,96,64, - 14,2,4,16,1,11,127,252,255,248,6,6,6,11,3,255, - 56,124,252,252,248,112,20,46,138,23,1,248,0,0,48,0, - 0,240,0,0,240,0,0,224,0,1,224,0,1,192,0,1, - 192,0,3,192,0,3,128,0,7,128,0,7,128,0,7,0, - 0,15,0,0,15,0,0,14,0,0,30,0,0,28,0,0, - 28,0,0,60,0,0,56,0,0,120,0,0,120,0,0,112, - 0,0,240,0,0,224,0,0,224,0,1,224,0,1,192,0, - 3,192,0,3,192,0,3,128,0,7,128,0,7,128,0,7, - 0,0,15,0,0,14,0,0,30,0,0,30,0,0,28,0, - 0,60,0,0,60,0,0,56,0,0,120,0,0,112,0,0, - 240,0,0,192,0,0,19,29,87,23,2,0,1,248,0,7, - 252,0,14,30,0,28,15,0,24,7,128,56,7,128,56,3, - 192,112,3,192,112,3,192,112,3,224,240,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,192,120,1,192,120,3,192,120,3, - 128,60,3,128,60,3,0,30,7,0,15,14,0,7,252,0, - 3,240,0,17,29,87,23,3,0,0,96,0,1,224,0,15, - 224,0,127,224,0,255,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,3,240,0,63,254,0,127,255,128, - 17,29,87,22,2,0,1,248,0,7,254,0,28,31,0,56, - 15,0,120,15,128,112,7,128,240,7,128,224,7,128,0,7, - 128,0,7,128,0,15,0,0,15,0,0,30,0,0,30,0, - 0,60,0,0,120,0,0,240,0,0,240,0,1,224,0,3, - 192,0,7,128,0,15,0,0,15,0,0,30,0,128,60,0, - 128,120,0,128,240,1,128,255,255,128,255,255,128,18,29,87, - 22,1,0,1,248,0,7,254,0,30,31,0,60,15,0,56, - 7,128,120,7,128,112,7,128,0,7,128,0,7,0,0,15, - 0,0,30,0,0,60,0,0,248,0,3,254,0,0,63,0, - 0,15,128,0,7,128,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,7,128,128,7,128,224,15, - 0,120,62,0,63,252,0,7,224,0,19,29,87,23,1,0, - 0,3,0,0,15,0,0,31,0,0,63,0,0,127,0,0, - 127,0,0,239,0,0,207,0,1,207,0,3,143,0,3,143, - 0,7,15,0,14,15,0,14,15,0,28,15,0,24,15,0, - 56,15,0,112,15,0,112,15,0,255,255,224,255,255,192,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,63,128,1,255,224,18,29,87,23,2,0,0,0,128, - 0,1,128,31,255,0,31,254,0,24,0,0,24,0,0,24, - 0,0,24,0,0,56,0,0,56,0,0,56,0,0,63,240, - 0,63,252,0,120,63,0,32,15,0,0,7,128,0,7,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,128,0,7,128,128,7,128,224,15,0,120,62,0,63,252, - 0,7,240,0,18,29,87,23,3,0,0,7,0,0,63,0, - 0,248,0,1,224,0,3,192,0,15,0,0,14,0,0,30, - 0,0,60,0,0,56,0,0,120,0,0,120,248,0,119,254, - 0,254,31,0,248,15,128,240,7,128,240,7,192,240,3,192, - 240,3,192,240,3,192,240,3,192,248,3,192,120,3,128,120, - 3,128,60,7,128,60,7,0,31,14,0,15,252,0,3,240, - 0,19,27,81,23,2,0,127,255,192,127,255,224,96,1,192, - 64,3,192,192,3,128,0,3,128,0,7,0,0,7,0,0, - 14,0,0,14,0,0,28,0,0,28,0,0,56,0,0,56, - 0,0,56,0,0,112,0,0,112,0,0,224,0,0,224,0, - 1,192,0,1,192,0,3,192,0,7,128,0,7,128,0,15, - 0,0,15,0,0,28,0,0,18,29,87,22,2,0,3,248, - 0,15,254,0,28,31,0,56,15,0,48,7,128,112,7,128, - 112,7,128,112,7,128,112,7,0,120,15,0,62,30,0,31, - 188,0,15,240,0,3,252,0,7,254,0,30,63,0,60,15, - 128,120,7,192,112,7,192,240,3,192,240,3,192,240,3,192, - 240,3,192,240,3,128,120,7,128,124,7,0,62,14,0,31, - 252,0,7,224,0,19,30,90,23,2,255,1,248,0,7,254, - 0,14,31,0,28,15,128,56,7,128,120,3,192,112,3,192, - 240,3,224,240,1,224,240,1,224,240,1,224,240,1,224,248, - 1,224,120,3,224,124,7,224,62,13,224,31,249,224,7,225, - 192,0,3,192,0,3,192,0,7,128,0,7,128,0,15,0, - 0,30,0,0,60,0,0,120,0,0,240,0,3,224,0,31, - 128,0,56,0,0,6,23,23,11,3,255,56,124,252,252,248, - 112,0,0,0,0,0,0,0,0,0,0,0,56,124,252,252, - 248,112,7,29,29,11,2,249,28,62,126,126,124,56,0,0, - 0,0,0,0,0,0,0,0,8,60,254,254,30,30,30,28, - 28,56,48,96,64,19,15,45,21,1,6,0,0,96,0,3, - 192,0,31,192,0,127,0,3,252,0,31,224,0,127,0,0, - 124,0,0,254,0,0,63,192,0,7,240,0,1,254,0,0, - 63,192,0,7,224,0,1,128,19,9,27,21,1,9,127,255, - 224,255,255,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,127,255,224,255,255,192,19,15,45,21,1,6,48, - 0,0,252,0,0,127,128,0,15,240,0,3,254,0,0,127, - 128,0,15,224,0,3,192,0,31,192,0,255,0,3,248,0, - 31,192,0,127,0,0,120,0,0,192,0,0,17,36,108,21, - 2,255,3,248,0,15,254,0,60,63,0,120,15,0,120,15, - 128,240,7,128,240,7,128,240,7,128,224,7,128,0,7,128, - 0,15,0,0,15,0,0,30,0,0,30,0,0,60,0,0, - 120,0,0,112,0,0,224,0,1,224,0,1,192,0,3,192, - 0,3,128,0,3,128,0,3,128,0,3,128,0,3,128,0, - 0,0,0,0,0,0,0,0,0,0,0,0,1,192,0,3, - 224,0,7,224,0,7,224,0,7,192,0,3,128,0,36,39, - 195,39,1,248,0,0,255,128,0,0,7,255,224,0,0,31, - 1,248,0,0,120,0,62,0,0,224,0,31,0,1,192,0, - 15,0,7,128,0,7,128,7,0,0,3,192,14,0,0,1, - 192,28,0,124,33,224,28,1,255,96,224,56,3,135,224,224, - 56,7,3,224,224,120,14,1,224,240,112,14,1,224,112,112, - 30,1,224,112,240,28,1,224,112,240,60,1,224,112,240,60, - 1,224,112,240,60,1,224,112,240,60,1,224,112,240,60,1, - 224,112,240,60,1,224,96,248,60,1,224,224,248,62,1,224, - 192,120,30,1,224,192,120,31,3,225,128,124,15,5,225,0, - 60,15,141,242,0,62,7,248,252,0,31,1,224,112,0,31, - 0,0,0,0,15,128,0,0,0,7,192,0,1,0,3,240, - 0,3,128,1,248,0,14,0,0,127,0,252,0,0,31,255, - 240,0,0,3,255,0,0,28,30,120,29,0,0,0,2,0, - 0,0,7,0,0,0,15,0,0,0,15,0,0,0,31,128, - 0,0,31,128,0,0,27,128,0,0,59,192,0,0,57,192, - 0,0,49,224,0,0,113,224,0,0,112,224,0,0,96,240, - 0,0,224,240,0,0,224,112,0,0,192,120,0,1,192,120, - 0,1,192,56,0,1,255,252,0,3,255,252,0,3,128,30, - 0,3,0,30,0,7,0,30,0,7,0,15,0,6,0,15, - 0,14,0,15,0,14,0,7,128,12,0,7,128,62,0,7, - 192,255,192,63,240,24,30,90,27,0,0,7,254,0,255,255, - 192,111,7,224,15,1,240,15,0,248,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,112,15,0,240,15,1,224,15, - 7,192,15,255,192,15,255,240,15,1,248,15,0,124,15,0, - 62,15,0,30,15,0,31,15,0,15,15,0,15,15,0,15, - 15,0,15,15,0,14,15,0,30,15,0,60,15,0,248,63, - 255,240,127,255,128,23,30,90,26,1,0,0,31,224,0,255, - 252,1,192,252,7,128,56,14,0,16,14,0,0,28,0,0, - 56,0,0,56,0,0,120,0,0,112,0,0,112,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,120,0,0,120,0,0,124,0,0, - 60,0,0,30,0,4,31,0,14,15,128,56,7,224,240,1, - 255,192,0,127,0,25,30,120,28,1,0,7,254,0,0,255, - 255,192,0,111,3,240,0,15,0,248,0,15,0,124,0,15, - 0,62,0,15,0,30,0,15,0,31,0,15,0,15,0,15, - 0,15,0,15,0,15,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,128,15,0,7,128,15, - 0,7,128,15,0,7,128,15,0,7,0,15,0,15,0,15, - 0,15,0,15,0,30,0,15,0,30,0,15,0,60,0,15, - 0,124,0,15,0,248,0,15,3,224,0,63,255,192,0,127, - 254,0,0,21,30,90,24,1,0,255,255,224,127,255,240,30, - 0,96,30,0,96,30,0,96,30,0,96,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,128,31,255,128,30,3,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,8,30,0,24,30,0,24,31,0,56,127,255,240, - 255,255,240,20,30,90,23,1,0,255,255,240,127,255,240,30, - 0,96,30,0,96,30,0,32,30,0,32,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 31,255,0,31,255,0,30,6,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,127,128,0, - 255,224,0,24,30,90,28,2,0,0,31,224,0,255,248,1, - 192,252,7,128,56,15,0,16,30,0,0,28,0,0,56,0, - 0,56,0,0,120,0,0,112,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,240,0,0,240,7,255,240,0,254,240, - 0,60,240,0,60,248,0,60,120,0,60,120,0,60,60,0, - 60,62,0,60,30,0,60,15,0,60,7,192,248,3,255,224, - 0,127,0,27,30,120,31,2,0,255,192,127,224,127,128,63, - 192,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,31,255,255,0,31,255,255,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,127,0,31,192,255,192,127, - 224,10,30,60,14,2,0,255,192,127,128,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,127, - 128,255,192,17,38,114,15,252,248,7,255,128,0,255,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,56,0,0,56,0,0,56,0,0,112,0,0,112,0,0, - 224,0,112,192,0,255,0,0,124,0,0,26,30,120,28,1, - 0,255,193,255,128,127,128,124,0,30,0,120,0,30,0,240, - 0,30,1,224,0,30,1,192,0,30,3,128,0,30,7,0, - 0,30,14,0,0,30,28,0,0,30,56,0,0,30,120,0, - 0,30,112,0,0,30,224,0,0,31,224,0,0,30,240,0, - 0,30,120,0,0,30,124,0,0,30,62,0,0,30,30,0, - 0,30,15,0,0,30,7,128,0,30,7,192,0,30,3,224, - 0,30,1,240,0,30,0,248,0,30,0,124,0,30,0,126, - 0,127,128,63,192,255,192,31,0,21,30,90,23,1,0,255, - 192,0,127,128,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,8,30,0,24,30,0,24, - 31,0,48,127,255,240,255,255,240,36,30,150,39,1,0,127, - 0,0,15,224,31,128,0,31,128,15,128,0,31,0,15,128, - 0,63,0,15,192,0,63,0,15,192,0,55,0,15,224,0, - 119,0,14,224,0,119,0,14,240,0,231,0,14,240,0,231, - 0,14,120,0,199,0,14,120,1,199,0,14,56,1,199,0, - 14,60,3,135,0,14,28,3,135,0,14,30,7,7,0,14, - 30,7,7,0,14,15,6,7,0,14,15,14,7,0,14,7, - 14,7,0,14,7,156,7,0,14,3,156,7,0,14,3,216, - 7,0,14,3,248,7,0,14,1,248,7,0,14,1,240,7, - 0,14,0,240,7,0,14,0,224,7,0,63,0,224,31,192, - 255,192,96,127,240,27,30,120,31,2,0,252,0,63,224,124, - 0,15,128,30,0,7,0,31,0,7,0,31,0,7,0,31, - 128,7,0,31,192,7,0,29,192,7,0,28,224,7,0,28, - 240,7,0,28,120,7,0,28,56,7,0,28,60,7,0,28, - 30,7,0,28,14,7,0,28,15,7,0,28,7,135,0,28, - 7,135,0,28,3,199,0,28,1,231,0,28,1,231,0,28, - 0,247,0,28,0,127,0,28,0,127,0,28,0,63,0,28, - 0,31,0,28,0,31,0,28,0,15,0,62,0,7,0,255, - 128,3,0,25,30,120,29,2,0,0,63,0,0,0,255,224, - 0,3,193,240,0,7,0,248,0,14,0,124,0,28,0,62, - 0,60,0,30,0,56,0,31,0,120,0,15,0,120,0,15, - 0,112,0,15,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,240,0,7,128,240,0,7,128,240,0,7, - 128,240,0,7,128,248,0,7,0,120,0,15,0,120,0,15, - 0,124,0,14,0,60,0,28,0,62,0,28,0,31,0,56, - 0,15,128,112,0,7,193,224,0,3,255,128,0,0,254,0, - 0,22,30,90,25,1,0,7,254,0,255,255,192,111,7,224, - 15,1,240,15,0,248,15,0,124,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,120,15,0, - 120,15,0,240,15,131,224,15,127,192,15,62,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,63,192,0,127,240, - 0,28,37,148,29,2,249,0,63,0,0,0,255,224,0,3, - 193,240,0,7,0,248,0,14,0,124,0,28,0,62,0,60, - 0,30,0,56,0,31,0,120,0,15,0,120,0,15,0,112, - 0,15,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,240,0,7,128,240,0,7,128,240,0,7,128,240, - 0,7,128,248,0,7,0,120,0,15,0,120,0,15,0,124, - 0,14,0,60,0,30,0,62,0,28,0,31,0,56,0,15, - 128,112,0,7,193,224,0,3,255,192,0,0,127,128,0,0, - 3,192,0,0,1,224,0,0,0,248,16,0,0,124,48,0, - 0,31,224,0,0,15,224,0,0,3,128,26,30,120,27,1, - 0,7,254,0,0,255,255,192,0,111,7,224,0,15,1,240, - 0,15,0,240,0,15,0,120,0,15,0,120,0,15,0,120, - 0,15,0,120,0,15,0,120,0,15,0,112,0,15,0,240, - 0,15,1,224,0,15,3,192,0,15,255,0,0,15,254,0, - 0,15,14,0,0,15,7,0,0,15,7,128,0,15,3,128, - 0,15,3,192,0,15,1,192,0,15,1,224,0,15,0,240, - 0,15,0,240,0,15,0,120,0,15,0,124,0,15,0,62, - 0,63,192,63,192,127,224,31,0,18,30,90,23,3,0,3, - 248,0,31,254,0,60,63,0,120,14,0,112,4,0,240,0, - 0,240,0,0,240,0,0,248,0,0,252,0,0,127,0,0, - 127,192,0,63,240,0,31,248,0,7,254,0,1,255,0,0, - 127,128,0,31,128,0,15,192,0,7,192,0,3,192,0,3, - 192,0,3,192,128,3,128,192,3,128,224,7,0,240,15,0, - 252,62,0,255,248,0,15,224,0,26,30,120,26,0,0,127, - 255,255,192,127,255,255,192,96,30,1,128,192,30,1,128,192, - 30,1,128,128,30,0,128,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 30,0,0,0,30,0,0,0,30,0,0,0,30,0,0,0, - 127,128,0,1,255,224,0,27,30,120,31,2,0,255,192,127, - 224,127,128,63,192,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,15,0,30,0,15,0,30,0,15, - 0,30,0,15,0,30,0,30,0,15,0,30,0,15,0,30, - 0,7,128,60,0,7,192,120,0,3,224,240,0,1,255,224, - 0,0,63,128,0,30,30,120,31,0,0,255,224,15,252,31, - 0,1,240,15,0,0,224,15,0,1,192,7,0,1,192,7, - 128,1,192,7,128,3,128,3,192,3,128,3,192,3,128,3, - 192,7,0,1,224,7,0,1,224,6,0,0,224,14,0,0, - 240,14,0,0,240,12,0,0,120,28,0,0,120,28,0,0, - 120,56,0,0,60,56,0,0,60,56,0,0,28,112,0,0, - 30,112,0,0,30,112,0,0,15,224,0,0,15,224,0,0, - 15,224,0,0,7,192,0,0,7,192,0,0,3,128,0,0, - 3,0,0,40,30,150,41,0,0,255,224,24,3,255,63,0, - 24,0,252,14,0,28,0,48,15,0,60,0,112,15,0,60, - 0,112,15,0,62,0,112,7,0,126,0,96,7,0,127,0, - 224,7,128,127,0,224,7,128,103,0,224,7,128,231,128,224, - 3,128,231,128,192,3,192,195,129,192,3,193,195,193,192,3, - 193,195,193,192,1,193,129,193,192,1,195,129,225,128,1,227, - 129,227,128,1,227,0,227,128,1,231,0,243,128,0,231,0, - 243,128,0,246,0,115,0,0,254,0,127,0,0,254,0,63, - 0,0,124,0,63,0,0,124,0,62,0,0,124,0,30,0, - 0,124,0,30,0,0,120,0,30,0,0,48,0,8,0,28, - 30,120,30,1,0,255,224,255,224,255,224,255,224,63,0,31, - 0,31,0,30,0,15,128,28,0,7,128,56,0,3,192,120, - 0,3,224,112,0,1,224,224,0,0,241,224,0,0,249,192, - 0,0,127,128,0,0,63,128,0,0,31,0,0,0,31,0, - 0,0,31,0,0,0,63,128,0,0,63,192,0,0,115,224, - 0,0,241,224,0,0,224,240,0,1,192,248,0,3,192,120, - 0,3,128,60,0,7,0,62,0,15,0,31,0,14,0,15, - 0,62,0,15,192,255,192,127,240,255,192,127,240,28,30,120, - 29,0,0,252,0,63,240,254,0,63,240,31,0,15,128,15, - 0,7,0,15,128,14,0,7,192,14,0,3,192,28,0,3, - 224,60,0,1,224,56,0,0,240,120,0,0,248,112,0,0, - 120,224,0,0,125,224,0,0,61,192,0,0,63,192,0,0, - 31,128,0,0,31,128,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,63,192,0,0,255,240,0,22,30,90,25,1, - 0,63,255,252,63,255,252,56,0,120,48,0,248,48,1,240, - 32,1,224,32,3,224,0,3,192,0,7,128,0,15,128,0, - 15,0,0,31,0,0,30,0,0,60,0,0,124,0,0,120, - 0,0,248,0,1,240,0,1,224,0,3,224,0,3,192,0, - 7,128,0,15,128,0,15,0,4,31,0,12,62,0,12,60, - 0,12,124,0,28,127,255,252,255,255,252,11,45,90,15,3, - 248,255,224,255,224,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,255,224,255,224,20,46,138,23,1, - 248,224,0,0,112,0,0,112,0,0,120,0,0,56,0,0, - 56,0,0,28,0,0,28,0,0,30,0,0,14,0,0,14, - 0,0,15,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,192,0,1,192,0,1,192,0,1,224,0,0,224,0, - 0,224,0,0,240,0,0,112,0,0,112,0,0,56,0,0, - 56,0,0,60,0,0,28,0,0,28,0,0,30,0,0,14, - 0,0,14,0,0,7,0,0,7,0,0,7,128,0,3,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,224,0, - 0,224,0,0,240,0,0,112,0,0,48,11,45,90,15,1, - 248,255,224,255,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,1,224,1,224,1,224,1,224,1, - 224,1,224,1,224,1,224,255,224,255,224,19,23,69,24,2, - 13,0,32,0,0,112,0,0,240,0,1,240,0,1,248,0, - 1,248,0,3,188,0,3,188,0,7,60,0,7,30,0,6, - 30,0,14,14,0,14,15,0,12,15,0,28,7,128,28,7, - 128,24,3,128,56,3,192,48,3,192,112,1,224,112,1,224, - 96,0,224,192,0,192,20,2,6,23,1,251,127,255,240,255, - 255,240,9,10,20,15,1,25,240,0,248,0,120,0,60,0, - 28,0,14,0,7,0,3,0,1,128,1,128,20,22,66,22, - 2,0,1,248,0,15,254,0,28,30,0,120,15,0,112,15, - 0,240,15,0,128,15,0,0,15,0,0,15,0,0,255,0, - 7,255,0,31,143,0,62,15,0,120,15,0,248,15,0,240, - 15,0,240,15,0,240,31,0,240,63,0,120,239,32,127,143, - 240,30,7,128,22,36,108,24,0,0,6,0,0,126,0,0, - 254,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,15,128,30,63,224,30,127,240,30,227,240, - 31,192,248,31,128,248,31,0,124,30,0,124,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 56,30,0,56,30,0,112,30,0,96,31,0,224,15,193,192, - 3,255,0,0,252,0,18,22,66,21,2,0,0,127,0,3, - 255,192,7,7,192,14,1,128,28,0,128,56,0,0,120,0, - 0,112,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,0,248,0,0,120,0,0,120,0,0,60, - 0,64,62,1,192,31,131,128,7,254,0,1,248,0,23,36, - 108,25,2,0,0,0,224,0,15,224,0,15,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,253, - 224,3,255,224,15,15,224,28,3,224,60,1,224,56,1,224, - 120,1,224,112,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,1, - 224,124,3,224,62,5,228,31,25,254,15,240,248,7,192,224, - 18,22,66,22,2,0,0,248,0,7,254,0,14,15,0,28, - 7,128,56,7,128,56,3,192,112,3,192,112,3,192,255,255, - 192,255,255,128,240,0,0,240,0,0,240,0,0,240,0,0, - 248,0,0,120,0,0,120,0,0,124,0,192,62,1,128,31, - 7,0,15,254,0,3,248,0,19,36,108,15,0,0,0,15, - 128,0,63,224,0,99,192,1,193,128,3,128,0,3,128,0, - 7,128,0,7,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,63,254,0,255,252,0,15,8, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,31,224,0,127,248,0,24,33,99,24,0,245, - 0,252,2,3,255,126,7,7,252,14,3,224,30,1,224,28, - 1,240,60,0,240,60,0,240,60,0,240,60,0,240,62,0, - 224,31,1,192,15,131,128,7,255,0,1,252,0,3,192,0, - 7,128,0,15,128,0,15,224,0,7,255,128,3,255,240,7, - 191,252,14,0,254,60,0,31,120,0,15,240,0,15,240,0, - 15,240,0,14,248,0,28,124,0,56,63,128,240,15,255,192, - 1,254,0,23,36,108,26,2,0,6,0,0,126,0,0,254, - 0,0,62,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,7,128,28,31,224,28,49,224,28,96,240,28, - 192,240,29,128,240,31,0,240,31,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,63, - 131,248,255,199,254,10,32,64,13,2,0,28,0,30,0,62, - 0,62,0,28,0,0,0,0,0,0,0,0,0,0,0,6, - 0,126,0,254,0,62,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,63,0,255,192,14,43,86,12,251, - 245,0,56,0,60,0,124,0,124,0,56,0,0,0,0,0, - 0,0,0,0,0,0,12,0,252,1,252,0,124,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,56,0,56,0,120,0,112,0,112,48, - 224,127,128,255,0,124,0,23,36,108,24,1,0,6,0,0, - 126,0,0,254,0,0,62,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,7,252,30,1,240,30,1,192, - 30,3,128,30,7,0,30,14,0,30,56,0,30,112,0,30, - 224,0,31,224,0,30,240,0,30,248,0,30,120,0,30,60, - 0,30,30,0,30,15,0,30,15,128,30,7,192,30,3,224, - 30,1,224,63,0,254,255,192,124,12,36,72,13,1,0,3, - 0,63,0,127,0,31,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,31,128,255,240,36,22,110,39,2,0,12,7,192, - 124,0,254,31,224,255,0,62,49,227,143,0,30,96,247,7, - 128,30,192,254,7,128,31,128,252,7,128,31,0,248,7,128, - 31,0,248,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,30,0,240,7,128,30,0,240,7,128,30,0,240,7, - 128,127,131,252,31,192,255,199,254,63,240,23,22,66,26,2, - 0,12,7,192,254,15,224,62,49,224,30,96,240,30,192,240, - 30,128,240,31,0,240,31,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,127,131,248, - 255,199,254,20,22,66,24,2,0,0,252,0,7,255,0,14, - 15,128,28,7,192,56,3,192,56,3,224,112,1,224,112,1, - 240,240,0,240,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,248,0,224,120,1,224,124,1,192,60,1,192,62, - 3,128,31,7,0,15,254,0,3,240,0,21,33,99,25,2, - 245,12,7,128,254,31,192,62,35,224,30,65,240,30,129,240, - 31,0,240,31,0,248,30,0,248,30,0,120,30,0,120,30, - 0,120,30,0,120,30,0,120,30,0,120,30,0,112,30,0, - 112,30,0,224,30,0,224,31,1,192,31,195,128,30,255,0, - 30,62,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,127,0, - 0,255,224,0,22,33,99,25,2,245,0,252,48,3,255,96, - 7,15,224,30,3,224,28,1,224,56,1,224,120,1,224,112, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,120,1,224,120,1,224,124,3,224, - 62,7,224,31,29,224,15,249,224,3,225,224,0,1,224,0, - 1,224,0,1,224,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,240,0,31,252,17,22,66, - 19,1,0,4,15,0,126,63,128,254,127,128,30,227,128,30, - 195,128,31,129,0,31,128,0,31,0,0,31,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,63, - 128,0,255,224,0,15,22,44,19,2,0,15,192,63,248,120, - 120,112,56,240,16,240,0,248,0,252,0,127,0,63,192,31, - 240,7,248,1,252,0,126,0,62,128,30,128,30,192,30,224, - 60,240,120,255,240,31,192,16,30,60,17,0,0,3,0,7, - 0,15,0,15,0,15,0,15,0,15,0,15,0,63,255,255, - 255,15,4,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,1,7,135,7,254,3,240,24,22,66,25,1,0,6, - 0,112,254,7,240,126,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,31,2,240,15,12,255,15,248,252,3,224, - 112,23,22,66,24,0,0,255,192,254,62,0,60,30,0,56, - 30,0,48,15,0,112,15,0,112,7,0,96,7,128,224,7, - 128,192,3,193,192,3,193,192,1,193,128,1,227,128,1,227, - 0,0,243,0,0,247,0,0,118,0,0,126,0,0,126,0, - 0,60,0,0,60,0,0,16,0,33,22,110,34,0,0,255, - 192,96,63,128,62,0,224,15,0,30,0,224,14,0,30,0, - 240,14,0,14,1,240,12,0,15,1,240,12,0,15,1,248, - 28,0,7,3,248,28,0,7,3,56,24,0,7,131,60,24, - 0,3,135,28,56,0,3,134,30,48,0,3,198,30,48,0, - 1,206,14,112,0,1,204,15,96,0,1,252,15,96,0,1, - 252,7,96,0,0,248,7,224,0,0,248,7,192,0,0,240, - 3,192,0,0,112,3,192,0,0,96,3,0,0,24,22,66, - 24,0,0,127,227,254,127,227,254,31,128,248,15,128,224,7, - 128,192,3,193,192,1,227,128,0,247,0,0,254,0,0,124, - 0,0,60,0,0,62,0,0,127,0,0,239,0,1,199,128, - 3,131,192,3,1,224,7,0,240,14,0,248,62,0,252,255, - 131,255,255,131,255,24,33,99,24,255,245,127,224,255,31,0, - 62,15,0,28,15,0,24,7,128,56,7,128,56,3,128,48, - 3,192,112,3,192,96,1,224,224,1,224,224,0,224,192,0, - 241,192,0,241,192,0,121,128,0,123,128,0,59,0,0,63, - 0,0,63,0,0,30,0,0,30,0,0,12,0,0,12,0, - 0,28,0,0,24,0,0,56,0,0,112,0,0,112,0,0, - 224,0,63,192,0,127,128,0,255,0,0,124,0,0,17,22, - 66,21,2,0,127,255,128,127,255,128,96,15,0,96,15,0, - 64,30,0,64,60,0,0,60,0,0,120,0,0,240,0,0, - 240,0,1,224,0,3,192,0,3,192,0,7,128,0,15,0, - 0,14,0,0,30,0,128,60,0,128,120,0,128,120,1,128, - 255,255,128,255,255,128,13,45,90,16,2,249,0,8,0,56, - 0,112,1,224,1,192,3,128,3,128,7,128,7,128,7,128, - 7,128,7,128,7,192,3,192,3,192,3,192,3,192,3,192, - 3,128,7,128,7,0,30,0,126,0,255,0,7,128,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,7,192,7,128, - 7,128,7,128,7,128,7,128,7,128,3,128,3,192,1,192, - 0,224,0,120,0,24,4,49,49,11,4,246,112,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,224,13,45,90, - 16,1,249,192,0,240,0,56,0,28,0,30,0,14,0,15, - 0,15,0,15,0,15,0,15,0,15,0,31,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,15,0,7,240,3, - 248,3,192,7,0,15,0,14,0,30,0,30,0,30,0,30, - 0,30,0,31,0,15,0,15,0,15,0,15,0,15,0,14, - 0,30,0,28,0,56,0,112,0,224,0,128,0,21,8,24, - 23,1,11,7,128,8,15,224,24,31,240,16,63,252,48,49, - 255,224,96,127,192,64,31,128,192,15,0,255}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 2 y= 8 dx=13 dy= 0 ascent=13 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9[3248] U8G_FONT_SECTION("u8g_font_gdr9") = { - 0,23,21,248,251,9,1,255,4,54,32,255,252,13,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,3,0,0,2,11,11,4,1,252,128,128,0, - 128,128,128,192,192,192,192,192,5,9,9,7,1,0,32,56, - 232,160,160,160,232,112,32,6,9,9,7,1,0,56,68,72, - 64,240,64,64,68,252,3,5,5,7,2,2,160,224,160,160, - 224,7,9,9,7,0,0,206,100,40,56,16,124,16,16,56, - 1,15,15,3,1,253,128,128,128,128,128,128,128,0,128,128, - 128,128,128,128,128,6,11,11,8,1,0,112,144,128,224,184, - 132,68,56,136,136,112,4,2,2,6,1,8,144,144,9,9, - 18,11,1,0,62,0,93,0,166,128,160,128,160,128,160,128, - 182,128,93,0,62,0,4,5,5,4,0,4,96,160,224,224, - 240,5,7,7,7,1,0,104,72,144,176,144,72,104,6,4, - 4,7,1,1,252,4,4,4,5,1,1,5,0,3,248,5, - 6,6,5,0,5,112,136,184,168,168,112,5,1,1,7,1, - 8,248,3,4,4,5,1,5,96,160,160,192,6,7,7,6, - 0,1,16,16,124,16,16,0,252,4,6,6,5,0,4,48, - 208,32,32,80,240,4,6,6,5,0,4,48,80,32,16,144, - 96,3,3,3,5,2,8,96,128,128,8,11,11,8,0,252, - 198,66,66,66,66,70,123,64,64,64,96,8,11,11,9,0, - 254,127,138,138,202,122,10,10,10,10,10,31,1,2,2,2, - 1,4,128,128,2,3,3,3,1,253,128,64,192,3,5,5, - 5,1,5,192,64,64,64,224,3,5,5,4,0,4,96,160, - 160,192,224,6,7,7,7,1,0,160,80,72,44,72,80,160, - 8,9,9,9,1,0,194,68,68,72,178,22,42,79,199,7, - 9,9,9,1,0,194,68,72,72,182,26,36,74,206,9,9, - 18,9,0,0,49,0,82,0,52,0,20,0,233,0,11,0, - 21,0,39,128,99,128,5,11,11,7,1,252,32,32,32,32, - 32,64,128,128,136,136,112,9,12,24,9,0,0,48,0,12, - 0,0,0,8,0,8,0,20,0,20,0,36,0,62,0,34, - 0,67,0,227,128,9,12,24,9,0,0,6,0,24,0,0, - 0,8,0,8,0,20,0,20,0,36,0,62,0,34,0,67, - 0,227,128,9,12,24,9,0,0,28,0,34,0,0,0,8, - 0,8,0,20,0,20,0,36,0,62,0,34,0,67,0,227, - 128,9,12,24,9,0,0,58,0,60,0,0,0,8,0,8, - 0,20,0,20,0,36,0,62,0,34,0,67,0,227,128,9, - 11,22,9,0,0,36,0,36,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,9,13,26,9,0, - 0,12,0,20,0,20,0,8,0,8,0,8,0,20,0,20, - 0,36,0,62,0,34,0,67,0,227,128,11,9,18,12,0, - 0,31,224,10,32,18,0,31,192,18,0,34,0,34,0,34, - 32,231,224,6,12,12,8,1,253,60,68,128,128,128,128,128, - 68,120,32,16,48,6,12,12,7,1,0,224,16,0,252,68, - 64,120,64,64,64,68,252,6,12,12,7,1,0,24,96,0, - 252,68,64,120,64,64,64,68,252,6,12,12,7,1,0,112, - 136,0,252,68,64,120,64,64,64,68,252,6,11,11,7,1, - 0,144,144,124,68,64,120,64,64,64,68,252,4,12,12,4, - 0,0,192,32,0,112,32,32,32,32,32,32,32,112,4,12, - 12,4,1,0,112,128,0,224,64,64,64,64,64,64,64,224, - 4,12,12,4,0,0,96,144,0,112,32,32,32,32,32,32, - 32,112,4,11,11,4,0,0,144,144,96,32,32,32,32,32, - 32,32,112,8,9,9,9,0,0,252,66,65,65,241,65,65, - 66,252,10,12,24,10,0,0,26,0,60,0,0,0,193,192, - 96,128,80,128,88,128,76,128,70,128,67,128,65,128,224,128, - 7,12,12,9,1,0,96,24,0,56,68,130,130,130,130,130, - 68,56,7,12,12,9,1,0,12,48,0,56,68,130,130,130, - 130,130,68,56,7,12,12,9,1,0,56,68,0,56,68,130, - 130,130,130,130,68,56,7,12,12,9,1,0,52,120,0,56, - 68,130,130,130,130,130,68,56,7,11,11,9,1,0,72,72, - 56,68,130,130,130,130,130,68,56,4,4,4,6,1,2,144, - 96,96,144,7,9,9,9,1,0,58,68,138,138,146,162,194, - 68,184,9,12,24,10,0,0,56,0,4,0,0,0,227,128, - 65,0,65,0,65,0,65,0,65,0,65,0,98,0,60,0, - 9,12,24,10,0,0,6,0,24,0,0,0,227,128,65,0, - 65,0,65,0,65,0,65,0,65,0,98,0,60,0,9,12, - 24,10,0,0,28,0,34,0,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,11,22,10, - 0,0,34,0,36,0,195,128,65,0,65,0,65,0,65,0, - 65,0,65,0,98,0,60,0,9,12,24,9,0,0,6,0, - 24,0,0,0,227,128,98,0,50,0,20,0,28,0,8,0, - 8,0,8,0,28,0,7,9,9,8,0,0,224,124,70,66, - 66,66,100,92,224,8,11,11,8,0,0,28,34,66,66,68, - 72,76,67,65,73,206,6,11,11,7,1,0,192,96,32,0, - 56,72,136,56,200,136,252,6,11,11,7,1,0,24,16,32, - 0,56,72,136,56,200,136,252,6,11,11,7,1,0,32,80, - 136,0,56,72,136,56,200,136,252,6,10,10,7,1,0,104, - 176,0,56,72,136,56,200,136,252,6,10,10,7,1,0,144, - 144,0,56,72,136,56,200,136,252,6,11,11,7,1,0,48, - 80,80,48,56,72,136,56,200,136,252,9,7,14,10,1,0, - 63,0,76,128,136,128,63,128,200,0,136,128,247,0,5,10, - 10,7,1,253,120,136,128,128,128,200,112,32,16,48,5,11, - 11,7,1,0,64,32,32,16,112,72,136,248,128,200,112,5, - 11,11,7,1,0,24,16,32,0,112,72,136,248,128,200,112, - 5,11,11,7,1,0,32,80,136,0,112,72,136,248,128,200, - 112,5,10,10,7,1,0,144,152,0,112,72,136,248,128,200, - 112,4,11,11,4,0,0,128,64,32,0,96,32,32,32,32, - 32,112,3,11,11,4,1,0,32,64,128,0,192,64,64,64, - 64,64,224,4,11,11,4,0,0,96,80,144,0,96,32,32, - 32,32,32,112,4,10,10,4,0,0,144,144,0,96,32,32, - 32,32,32,112,5,11,11,7,1,0,200,48,80,16,120,136, - 136,136,136,144,112,8,10,10,8,0,0,18,108,0,78,242, - 66,66,66,66,231,6,11,11,8,1,0,64,32,16,0,56, - 204,132,132,132,200,112,6,11,11,8,1,0,8,16,32,0, - 56,204,132,132,132,200,112,6,11,11,8,1,0,48,80,136, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,104,152, - 0,56,204,132,132,132,200,112,6,10,10,8,1,0,136,136, - 0,56,204,132,132,132,200,112,6,4,4,6,0,2,16,124, - 128,16,6,7,7,8,1,0,60,204,148,164,164,200,240,8, - 11,11,8,0,0,32,16,8,0,198,66,66,66,66,70,59, - 8,11,11,8,0,0,4,8,16,0,198,66,66,66,66,70, - 59,8,11,11,8,0,0,24,24,36,0,198,66,66,66,66, - 70,59,8,10,10,8,0,0,36,68,0,198,66,66,66,66, - 70,59,7,15,15,7,0,252,4,8,16,0,230,68,36,36, - 40,24,16,16,16,32,192,7,15,15,8,0,252,192,64,64, - 64,76,114,66,66,66,68,120,64,64,64,224,7,14,14,7, - 0,252,68,68,0,230,68,36,36,40,24,16,16,16,32,192 - }; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 7 h=14 x= 1 y= 5 dx= 7 dy= 0 ascent=12 len=14 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent =12 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9n[248] U8G_FONT_SECTION("u8g_font_gdr9n") = { - 0,23,21,248,251,9,0,0,0,0,42,58,0,12,254,9, - 0,5,6,6,7,1,5,32,168,112,112,168,32,5,5,5, - 6,1,2,32,32,248,32,32,2,4,4,3,1,254,64,192, - 64,128,5,1,1,5,0,3,248,1,2,2,3,1,0,128, - 128,7,14,14,7,0,254,6,4,4,8,8,8,16,16,32, - 32,32,64,64,192,5,9,9,7,1,0,112,144,136,136,136, - 136,136,80,112,5,9,9,7,1,0,32,224,32,32,32,32, - 32,32,248,5,9,9,7,1,0,56,72,136,8,16,32,64, - 136,248,6,9,9,7,0,0,48,72,136,16,120,4,4,132, - 120,6,9,9,7,0,0,8,24,40,40,72,72,252,8,60, - 5,9,9,7,1,0,120,128,128,240,136,8,8,136,112,5, - 9,9,7,1,0,24,96,64,176,200,136,136,136,112,5,9, - 9,7,1,0,248,136,8,16,16,32,32,96,64,5,9,9, - 7,1,0,112,200,136,208,112,136,136,136,112,5,9,9,7, - 1,0,112,152,136,136,136,120,16,16,224,1,7,7,3,1, - 0,128,128,0,0,0,128,128}; -/* - Fontname: -FreeType-Gentium Basic-Medium-R-Normal--15-150-72-72-P-70-ISO10646-1 - Copyright: Copyright (c) SIL International, 2003-2008. - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=12 h=15 x= 1 y= 8 dx=13 dy= 0 ascent=12 len=26 - Font Bounding box w=23 h=21 x=-8 y=-5 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_gdr9r[1553] U8G_FONT_SECTION("u8g_font_gdr9r") = { - 0,23,21,248,251,9,1,255,4,54,32,127,252,12,252,12, - 252,0,0,0,3,0,0,2,11,11,4,1,0,192,192,192, - 192,192,64,128,128,0,128,128,4,5,5,6,1,6,208,144, - 144,144,144,6,8,8,7,1,1,44,40,252,72,80,248,80, - 160,6,11,11,7,0,255,16,60,84,80,112,24,20,148,212, - 120,16,9,9,18,11,1,0,97,0,146,0,148,0,152,0, - 107,0,20,128,36,128,68,128,195,0,9,11,22,10,1,0, - 56,0,72,0,72,0,72,0,112,0,103,128,162,0,146,0, - 138,0,134,0,123,0,2,5,5,4,1,6,192,128,128,128, - 128,3,14,14,5,1,254,32,64,64,128,128,128,128,128,128, - 128,128,64,64,32,3,14,14,5,1,254,128,64,64,32,32, - 32,32,32,32,32,32,64,64,128,5,6,6,7,1,5,32, - 168,112,112,168,32,5,5,5,6,1,2,32,32,248,32,32, - 2,4,4,3,1,254,64,192,64,128,5,1,1,5,0,3, - 248,1,2,2,3,1,0,128,128,7,14,14,7,0,254,6, - 4,4,8,8,8,16,16,32,32,32,64,64,192,5,9,9, - 7,1,0,112,144,136,136,136,136,136,80,112,5,9,9,7, - 1,0,32,224,32,32,32,32,32,32,248,5,9,9,7,1, - 0,56,72,136,8,16,32,64,136,248,6,9,9,7,0,0, - 48,72,136,16,120,4,4,132,120,6,9,9,7,0,0,8, - 24,40,40,72,72,252,8,60,5,9,9,7,1,0,120,128, - 128,240,136,8,8,136,112,5,9,9,7,1,0,24,96,64, - 176,200,136,136,136,112,5,9,9,7,1,0,248,136,8,16, - 16,32,32,96,64,5,9,9,7,1,0,112,200,136,208,112, - 136,136,136,112,5,9,9,7,1,0,112,152,136,136,136,120, - 16,16,224,1,7,7,3,1,0,128,128,0,0,0,128,128, - 2,9,9,3,1,254,128,128,0,0,0,64,192,64,128,6, - 5,5,7,0,2,4,56,64,176,12,6,3,3,7,0,3, - 124,128,252,6,5,5,7,0,2,192,56,4,56,192,5,11, - 11,7,1,0,112,136,136,8,16,16,32,32,32,32,32,11, - 13,26,13,1,253,15,0,48,192,64,64,142,32,178,32,162, - 32,162,32,162,32,162,64,95,128,64,0,48,192,31,0,9, - 9,18,9,0,0,8,0,8,0,20,0,20,0,36,0,62, - 0,34,0,67,0,227,128,7,9,9,9,1,0,248,68,68, - 124,70,66,66,66,252,7,9,9,8,1,0,60,68,128,128, - 128,128,128,70,56,8,9,9,9,0,0,252,66,65,65,65, - 65,65,66,252,6,9,9,7,1,0,252,68,64,120,64,64, - 64,68,252,6,9,9,7,1,0,252,68,64,120,64,64,64, - 64,224,8,9,9,9,1,0,30,100,128,128,143,130,130,66, - 60,9,9,18,10,0,0,227,128,65,0,65,0,65,0,127, - 0,65,0,65,0,65,0,227,128,3,9,9,4,1,0,224, - 64,64,64,64,64,64,64,224,5,12,12,5,255,253,56,16, - 16,16,16,16,16,16,16,16,32,192,8,9,9,9,1,0, - 239,68,72,80,96,80,72,68,231,6,9,9,7,1,0,224, - 64,64,64,64,64,64,68,252,12,9,18,12,0,0,96,96, - 32,192,80,192,81,64,73,64,73,64,70,64,70,64,228,240, - 10,9,18,10,0,0,193,192,96,128,80,128,88,128,76,128, - 70,128,67,128,65,128,224,128,7,9,9,9,1,0,56,68, - 130,130,130,130,130,68,56,7,9,9,8,0,0,252,66,66, - 66,92,96,64,64,224,8,11,11,9,1,254,56,68,130,130, - 130,130,130,68,56,13,3,8,9,9,8,0,0,248,68,68, - 68,88,104,72,68,231,5,9,9,7,1,0,112,152,128,64, - 48,8,136,136,240,7,9,9,8,1,0,254,146,16,16,16, - 16,16,16,56,9,9,18,10,0,0,227,128,65,0,65,0, - 65,0,65,0,65,0,65,0,98,0,60,0,9,9,18,10, - 0,0,227,128,97,0,33,0,34,0,18,0,18,0,28,0, - 12,0,8,0,12,9,18,13,0,0,226,112,66,32,38,32, - 37,32,41,32,41,192,56,192,16,192,16,192,9,9,18,9, - 0,0,247,128,98,0,54,0,28,0,8,0,20,0,34,0, - 35,0,243,128,9,9,18,9,0,0,227,128,98,0,50,0, - 20,0,28,0,8,0,8,0,8,0,28,0,7,9,9,8, - 0,0,126,68,4,8,16,16,34,66,254,3,15,15,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,128,128,224, - 7,14,14,7,0,254,192,64,64,32,32,32,16,16,8,8, - 8,4,4,6,3,15,15,5,1,253,224,32,32,32,32,32, - 32,32,32,32,32,32,32,32,224,6,7,7,7,1,4,32, - 48,80,80,136,136,140,7,1,1,7,0,254,254,3,3,3, - 5,0,8,192,64,32,6,7,7,7,1,0,56,72,136,56, - 200,136,252,7,11,11,8,0,0,192,64,64,64,92,98,66, - 66,66,68,56,5,7,7,7,1,0,120,136,128,128,128,200, - 112,7,11,11,8,1,0,12,4,4,4,60,196,132,132,132, - 204,118,5,7,7,7,1,0,112,72,136,248,128,200,112,5, - 11,11,5,1,0,24,104,64,64,240,64,64,64,64,64,240, - 7,11,11,7,0,252,126,132,132,196,120,96,120,70,130,134, - 120,8,11,11,8,0,0,192,64,64,64,78,114,66,66,66, - 66,231,3,10,10,4,1,0,64,64,0,192,64,64,64,64, - 64,224,4,14,14,4,255,252,16,16,0,48,16,16,16,16, - 16,16,16,16,32,192,7,11,11,8,0,0,192,64,64,64, - 78,72,112,112,80,72,230,3,11,11,4,1,0,192,64,64, - 64,64,64,64,64,64,64,224,11,7,14,11,0,0,221,192, - 102,64,68,64,68,64,68,64,68,64,238,224,8,7,7,8, - 0,0,78,242,66,66,66,66,231,6,7,7,8,1,0,56, - 204,132,132,132,200,112,7,11,11,8,0,252,92,230,66,66, - 66,68,120,64,64,64,224,7,11,11,8,1,252,60,68,132, - 132,132,204,116,4,4,4,14,5,7,7,6,0,0,216,104, - 64,64,64,64,224,4,7,7,6,1,0,96,176,128,96,16, - 144,224,5,9,9,5,0,0,64,64,248,64,64,64,64,64, - 120,8,7,7,8,0,0,198,66,66,66,66,70,59,7,7, - 7,7,0,0,230,68,36,40,56,24,16,10,7,14,11,0, - 0,228,192,68,128,110,128,42,128,50,128,49,0,17,0,7, - 7,7,8,0,0,238,100,56,24,40,68,238,7,11,11,7, - 0,252,230,68,36,36,40,24,16,16,16,32,192,5,7,7, - 7,1,0,248,144,32,32,64,136,248,3,14,14,5,1,254, - 32,64,64,64,32,32,64,224,32,32,64,64,64,32,1,15, - 15,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,3,14,14,5,1,254,128,64,64,64,128,128,192, - 96,128,128,64,64,64,128,7,3,3,7,0,3,50,220,128, - 255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08[2677] U8G_FONT_SECTION("u8g_font_helvB08") = { - 0,12,19,255,251,8,1,182,3,122,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,3,0,1,2,8,8, - 4,1,254,192,0,64,64,192,192,192,192,5,8,8,6,0, - 255,16,112,216,160,160,216,112,64,5,8,8,6,0,0,56, - 104,96,240,96,96,104,216,6,6,6,6,0,1,132,120,72, - 72,120,132,6,8,8,7,0,0,132,132,204,72,252,48,252, - 48,1,10,10,3,1,254,128,128,128,128,0,0,128,128,128, - 128,5,10,10,6,0,254,112,200,224,112,152,200,112,56,152, - 112,3,1,1,3,0,7,160,8,8,8,10,1,0,60,66, - 153,165,161,157,66,60,3,5,5,5,1,3,224,32,160,0, - 224,6,3,3,7,0,1,108,216,108,5,3,3,7,1,2, - 248,8,8,4,1,1,5,0,3,240,8,8,8,10,1,0, - 60,66,189,165,185,165,66,60,3,1,1,3,0,7,224,3, - 3,3,4,0,5,96,160,192,6,7,7,6,0,0,48,48, - 252,48,48,0,252,3,4,4,3,0,4,96,160,64,224,3, - 4,4,3,0,4,224,64,32,192,2,2,2,3,0,7,64, - 128,5,8,8,6,0,254,216,216,216,216,216,232,192,192,6, - 10,10,6,0,254,124,232,232,232,104,40,40,40,40,40,2, - 1,1,3,0,3,192,2,2,2,3,0,254,64,192,2,4, - 4,3,0,4,64,192,64,64,3,5,5,5,1,3,224,160, - 224,0,224,6,3,3,7,0,1,216,108,216,8,8,8,9, - 0,0,68,196,72,72,18,38,47,66,7,8,8,9,0,0, - 68,196,72,72,22,42,36,78,8,8,8,9,0,0,228,68, - 40,200,18,38,47,66,5,8,8,6,0,254,48,0,48,48, - 96,192,216,112,7,11,11,8,0,0,32,16,0,56,56,108, - 108,108,254,198,198,7,11,11,8,0,0,8,16,0,56,56, - 108,108,108,254,198,198,7,11,11,8,0,0,16,40,0,56, - 56,108,108,108,254,198,198,7,11,11,8,0,0,20,40,0, - 56,56,108,108,108,254,198,198,7,10,10,8,0,0,40,0, - 56,56,108,108,108,254,198,198,7,11,11,8,0,0,16,40, - 16,56,56,108,108,108,254,198,198,9,8,16,10,0,0,63, - 128,60,0,108,0,111,128,108,0,252,0,204,0,207,128,7, - 10,10,8,0,254,60,102,194,192,192,194,102,60,16,48,5, - 11,11,6,0,0,64,32,0,248,192,192,248,192,192,192,248, - 5,11,11,6,0,0,16,32,0,248,192,192,248,192,192,192, - 248,5,11,11,6,0,0,32,80,0,248,192,192,248,192,192, - 192,248,5,10,10,6,0,0,80,0,248,192,192,248,192,192, - 192,248,2,11,11,3,0,0,128,64,0,192,192,192,192,192, - 192,192,192,2,11,11,3,0,0,64,128,0,192,192,192,192, - 192,192,192,192,3,11,11,3,255,0,64,160,0,96,96,96, - 96,96,96,96,96,4,10,10,3,255,0,144,0,96,96,96, - 96,96,96,96,96,7,8,8,7,255,0,120,108,102,246,102, - 102,108,120,7,11,11,8,0,0,20,40,0,198,230,230,214, - 214,206,206,198,7,11,11,8,0,0,16,8,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,8,16,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,16,40,0,56, - 108,198,198,198,198,108,56,7,11,11,8,0,0,20,40,0, - 56,108,198,198,198,198,108,56,7,10,10,8,0,0,40,0, - 56,108,198,198,198,198,108,56,6,5,5,6,0,1,204,120, - 48,120,204,7,8,8,8,0,0,58,108,206,214,214,230,108, - 184,6,11,11,7,0,0,32,16,0,204,204,204,204,204,204, - 204,120,6,11,11,7,0,0,8,16,0,204,204,204,204,204, - 204,204,120,6,11,11,7,0,0,32,80,0,204,204,204,204, - 204,204,204,120,6,10,10,7,0,0,72,0,204,204,204,204, - 204,204,204,120,8,11,11,9,0,0,4,8,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,192,248,204,204,204, - 248,192,192,5,8,8,6,0,0,112,200,200,208,200,200,200, - 208,6,9,9,6,0,0,32,16,0,112,152,120,216,216,108, - 6,9,9,6,0,0,16,32,0,112,152,120,216,216,108,6, - 9,9,6,0,0,32,80,0,112,152,120,216,216,108,6,9, - 9,6,0,0,40,80,0,112,152,120,216,216,108,6,8,8, - 6,0,0,80,0,112,152,120,216,216,108,6,9,9,6,0, - 0,32,80,32,112,152,120,216,216,108,8,6,6,9,0,0, - 126,155,127,216,219,110,4,8,8,5,0,254,112,208,192,192, - 208,112,32,96,5,9,9,6,0,0,64,32,0,112,216,248, - 192,216,112,5,9,9,6,0,0,16,32,0,112,216,248,192, - 216,112,5,9,9,6,0,0,32,80,0,112,216,248,192,216, - 112,5,8,8,6,0,0,80,0,112,216,248,192,216,112,2, - 9,9,3,0,0,128,64,0,192,192,192,192,192,192,2,9, - 9,3,0,0,64,128,0,192,192,192,192,192,192,3,9,9, - 3,0,0,64,160,0,192,192,192,192,192,192,3,8,8,3, - 0,0,160,0,192,192,192,192,192,192,5,9,9,6,0,0, - 80,96,160,112,216,216,216,216,112,5,9,9,6,0,0,80, - 160,0,176,216,216,216,216,216,5,9,9,6,0,0,64,32, - 0,112,216,216,216,216,112,5,9,9,6,0,0,16,32,0, - 112,216,216,216,216,112,5,9,9,6,0,0,32,80,0,112, - 216,216,216,216,112,5,9,9,6,0,0,80,160,0,112,216, - 216,216,216,112,5,8,8,6,0,0,80,0,112,216,216,216, - 216,112,6,5,5,6,0,1,48,0,252,0,48,7,6,6, - 6,255,0,58,108,124,108,108,184,5,9,9,6,0,0,64, - 32,0,216,216,216,216,216,104,5,9,9,6,0,0,16,32, - 0,216,216,216,216,216,104,5,9,9,6,0,0,32,80,0, - 216,216,216,216,216,104,5,8,8,6,0,0,80,0,216,216, - 216,216,216,104,5,11,11,6,0,254,16,32,0,216,216,216, - 216,120,48,48,96,5,10,10,6,0,254,192,192,240,216,200, - 200,216,240,192,192,5,10,10,6,0,254,80,0,216,216,216, - 216,120,48,48,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 8 - Calculated Max Values w= 6 h= 8 x= 1 y= 5 dx= 6 dy= 0 ascent= 8 len= 8 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08n[228] U8G_FONT_SECTION("u8g_font_helvB08n") = { - 0,12,19,255,251,8,0,0,0,0,42,58,0,8,254,8, - 0,3,3,3,4,0,5,160,64,160,6,5,5,6,0,1, - 48,48,252,48,48,2,4,4,3,0,254,192,192,64,128,4, - 1,1,5,0,3,240,2,2,2,3,0,0,192,192,4,8, - 8,4,0,0,16,16,32,32,64,64,128,128,5,8,8,6, - 0,0,112,216,216,216,216,216,216,112,3,8,8,6,1,0, - 96,224,96,96,96,96,96,96,5,8,8,6,0,0,112,216, - 24,24,48,96,192,248,5,8,8,6,0,0,112,216,24,48, - 24,24,216,112,6,8,8,6,0,0,8,24,56,88,152,252, - 24,24,5,8,8,6,0,0,248,192,192,240,24,152,216,112, - 5,8,8,6,0,0,112,216,192,240,216,216,216,112,5,8, - 8,6,0,0,248,24,24,48,48,96,96,96,5,8,8,6, - 0,0,112,216,216,112,216,216,216,112,5,8,8,6,0,0, - 112,216,216,216,120,24,216,112,2,6,6,3,0,0,192,192, - 0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=12 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB08r[1287] U8G_FONT_SECTION("u8g_font_helvB08r") = { - 0,12,19,255,251,8,1,182,3,122,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,4,1,0,192,192,192, - 192,128,128,0,192,3,3,3,5,1,5,160,160,160,7,7, - 7,6,255,0,40,40,126,40,252,80,80,5,10,10,6,0, - 255,32,112,168,224,112,56,40,168,112,32,7,8,8,8,0, - 0,98,180,104,16,16,44,86,140,7,8,8,8,0,0,112, - 216,216,112,222,204,220,118,1,3,3,3,1,5,128,128,128, - 3,10,10,4,0,254,32,96,64,192,192,192,192,64,96,32, - 3,10,10,4,0,254,128,192,64,96,96,96,96,64,192,128, - 3,3,3,4,0,5,160,64,160,6,5,5,6,0,1,48, - 48,252,48,48,2,4,4,3,0,254,192,192,64,128,4,1, - 1,5,0,3,240,2,2,2,3,0,0,192,192,4,8,8, - 4,0,0,16,16,32,32,64,64,128,128,5,8,8,6,0, - 0,112,216,216,216,216,216,216,112,3,8,8,6,1,0,96, - 224,96,96,96,96,96,96,5,8,8,6,0,0,112,216,24, - 24,48,96,192,248,5,8,8,6,0,0,112,216,24,48,24, - 24,216,112,6,8,8,6,0,0,8,24,56,88,152,252,24, - 24,5,8,8,6,0,0,248,192,192,240,24,152,216,112,5, - 8,8,6,0,0,112,216,192,240,216,216,216,112,5,8,8, - 6,0,0,248,24,24,48,48,96,96,96,5,8,8,6,0, - 0,112,216,216,112,216,216,216,112,5,8,8,6,0,0,112, - 216,216,216,120,24,216,112,2,6,6,3,0,0,192,192,0, - 0,192,192,2,8,8,3,0,254,192,192,0,0,192,192,64, - 128,4,5,5,5,0,1,48,96,192,96,48,5,3,3,6, - 0,2,248,0,248,4,5,5,5,0,1,192,96,48,96,192, - 5,8,8,6,0,0,112,216,24,48,96,96,0,96,10,9, - 18,11,0,255,31,0,96,128,77,64,146,64,162,64,164,128, - 155,0,64,0,62,0,7,8,8,8,0,0,56,56,108,108, - 108,254,198,198,6,8,8,7,0,0,248,204,204,248,204,204, - 204,248,7,8,8,8,0,0,60,102,194,192,192,194,102,60, - 6,8,8,7,0,0,240,216,204,204,204,204,216,240,5,8, - 8,6,0,0,248,192,192,248,192,192,192,248,5,8,8,6, - 0,0,248,192,192,240,192,192,192,192,7,8,8,8,0,0, - 60,102,194,192,206,198,102,58,6,8,8,7,0,0,204,204, - 204,252,204,204,204,204,2,8,8,3,0,0,192,192,192,192, - 192,192,192,192,5,8,8,6,0,0,24,24,24,24,24,24, - 216,112,7,8,8,7,0,0,204,216,240,224,240,216,204,198, - 5,8,8,6,0,0,192,192,192,192,192,192,192,248,9,8, - 16,10,0,0,193,128,227,128,227,128,247,128,213,128,221,128, - 201,128,201,128,7,8,8,8,0,0,198,230,230,214,214,206, - 206,198,7,8,8,8,0,0,56,108,198,198,198,198,108,56, - 6,8,8,7,0,0,248,204,204,204,248,192,192,192,7,9, - 9,8,0,255,56,108,198,198,198,214,108,60,2,6,8,8, - 7,0,0,248,204,204,204,248,204,204,204,6,8,8,7,0, - 0,120,204,224,120,28,140,204,120,6,8,8,7,0,0,252, - 48,48,48,48,48,48,48,6,8,8,7,0,0,204,204,204, - 204,204,204,204,120,7,8,8,8,0,0,198,198,108,108,108, - 56,56,16,10,8,16,11,0,0,204,192,204,192,204,192,109, - 128,109,128,127,128,51,0,51,0,7,8,8,8,0,0,198, - 198,108,56,56,108,198,198,8,8,8,9,0,0,195,195,102, - 102,60,24,24,24,6,8,8,7,0,0,252,12,24,48,112, - 96,192,252,3,10,10,4,0,254,224,192,192,192,192,192,192, - 192,192,224,4,8,8,4,0,0,128,128,64,64,32,32,16, - 16,3,10,10,4,0,254,224,96,96,96,96,96,96,96,96, - 224,4,4,4,5,0,4,96,240,144,144,6,1,1,6,0, - 254,252,2,2,2,3,0,7,128,64,6,6,6,6,0,0, - 112,152,120,216,216,108,5,8,8,6,0,0,192,192,240,216, - 216,216,216,240,4,6,6,5,0,0,112,208,192,192,208,112, - 5,8,8,6,0,0,24,24,120,216,216,216,216,120,5,6, - 6,6,0,0,112,216,248,192,216,112,5,8,8,4,255,0, - 56,96,240,96,96,96,96,96,5,8,8,6,0,254,104,216, - 216,216,216,120,24,112,5,8,8,6,0,0,192,192,240,216, - 216,216,216,216,2,8,8,3,0,0,192,0,192,192,192,192, - 192,192,3,10,10,3,255,254,96,0,96,96,96,96,96,96, - 96,192,6,8,8,6,0,0,192,192,216,240,224,240,216,204, - 2,8,8,3,0,0,192,192,192,192,192,192,192,192,8,6, - 6,9,0,0,182,219,219,219,219,219,5,6,6,6,0,0, - 176,216,216,216,216,216,5,6,6,6,0,0,112,216,216,216, - 216,112,5,8,8,6,0,254,176,216,216,216,216,240,192,192, - 5,8,8,6,0,254,104,216,216,216,216,120,24,24,4,6, - 6,4,0,0,176,224,192,192,192,192,5,6,6,6,0,0, - 112,216,112,24,216,112,4,8,8,4,255,0,96,96,240,96, - 96,96,96,48,5,6,6,6,0,0,216,216,216,216,216,104, - 5,6,6,6,0,0,216,216,216,80,112,32,7,6,6,8, - 0,0,214,214,214,108,108,108,6,6,6,7,0,0,204,120, - 48,120,204,204,5,8,8,6,0,254,216,216,216,216,120,48, - 48,96,5,6,6,6,0,0,248,24,48,96,192,248,4,10, - 10,5,0,254,48,96,96,96,192,96,96,96,96,48,1,10, - 10,3,1,254,128,128,128,128,128,128,128,128,128,128,4,10, - 10,5,0,254,192,96,96,96,48,96,96,96,96,192,5,2, - 2,6,0,3,104,176,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=15 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10[3692] U8G_FONT_SECTION("u8g_font_helvB10") = { - 0,17,23,255,250,11,2,27,4,205,32,255,253,14,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,2,11, - 11,4,1,253,192,192,0,64,64,192,192,192,192,192,192,7, - 10,10,8,0,255,4,60,110,200,208,208,230,102,124,64,8, - 11,11,8,0,0,60,102,102,96,252,48,48,48,96,251,222, - 7,7,7,8,0,2,130,124,108,108,108,124,130,8,11,11, - 9,0,0,195,195,195,102,102,60,126,24,126,24,24,1,14, - 14,4,2,253,128,128,128,128,128,128,0,0,128,128,128,128, - 128,128,6,14,14,8,1,253,120,204,204,224,120,220,204,204, - 236,120,28,204,204,120,5,2,2,5,0,9,216,216,10,11, - 22,12,1,0,30,0,97,128,76,128,210,192,144,64,144,64, - 144,64,146,64,76,128,97,128,30,0,5,7,7,6,0,4, - 112,144,112,208,248,0,248,7,5,5,9,1,2,54,108,216, - 108,54,7,4,4,9,1,2,254,254,2,2,3,1,1,4, - 0,4,224,10,11,22,12,1,0,30,0,97,128,92,128,146, - 64,146,64,156,64,146,64,146,64,82,128,97,128,30,0,5, - 1,1,5,0,9,248,4,4,4,6,1,7,96,144,144,96, - 8,9,9,9,0,0,24,24,24,255,24,24,24,0,255,4, - 6,6,5,0,5,96,176,48,96,192,240,4,6,6,5,0, - 5,96,176,96,48,176,96,3,2,2,5,1,9,96,192,7, - 11,11,9,1,253,198,198,198,198,198,198,238,246,192,192,192, - 8,14,14,8,0,253,63,122,250,250,250,122,58,10,10,10, - 10,10,10,10,2,2,2,4,1,3,192,192,5,3,3,5, - 0,253,24,216,112,3,6,6,4,0,5,96,224,96,96,96, - 96,5,7,7,6,0,4,112,216,216,216,112,0,248,7,5, - 5,9,1,2,216,108,54,108,216,12,11,22,12,0,0,97, - 128,225,128,99,0,99,0,102,0,102,32,6,96,12,224,13, - 96,25,240,24,96,11,11,22,12,0,0,97,128,225,128,99, - 0,99,0,102,0,102,192,7,96,12,96,12,192,25,128,25, - 224,12,11,22,12,0,0,97,128,177,128,99,0,51,0,182, - 0,102,32,6,96,12,224,13,96,25,240,24,96,7,11,11, - 9,1,253,24,24,0,24,24,48,96,192,198,198,124,10,14, - 28,10,0,0,24,0,12,0,0,0,12,0,12,0,30,0, - 18,0,51,0,51,0,97,128,127,128,97,128,192,192,192,192, - 10,14,28,10,0,0,6,0,12,0,0,0,12,0,12,0, - 30,0,18,0,51,0,51,0,97,128,127,128,97,128,192,192, - 192,192,10,14,28,10,0,0,14,0,27,0,0,0,12,0, - 12,0,30,0,18,0,51,0,51,0,97,128,127,128,97,128, - 192,192,192,192,10,14,28,10,0,0,13,0,22,0,0,0, - 12,0,12,0,30,0,18,0,51,0,51,0,97,128,127,128, - 97,128,192,192,192,192,10,14,28,10,0,0,51,0,51,0, - 0,0,12,0,12,0,30,0,18,0,51,0,51,0,97,128, - 127,128,97,128,192,192,192,192,10,14,28,10,0,0,12,0, - 18,0,12,0,12,0,12,0,30,0,18,0,51,0,51,0, - 97,128,127,128,97,128,192,192,192,192,14,11,22,15,0,0, - 15,252,15,0,27,0,19,0,51,0,51,248,99,0,127,0, - 99,0,195,0,195,252,9,14,28,11,1,253,31,0,123,128, - 96,128,192,0,192,0,192,0,192,0,192,0,96,128,123,128, - 31,0,6,0,54,0,28,0,7,14,14,9,1,0,48,24, - 0,254,192,192,192,192,254,192,192,192,192,254,7,14,14,9, - 1,0,12,24,0,254,192,192,192,192,254,192,192,192,192,254, - 7,14,14,9,1,0,28,54,0,254,192,192,192,192,254,192, - 192,192,192,254,7,14,14,9,1,0,108,108,0,254,192,192, - 192,192,254,192,192,192,192,254,3,14,14,4,0,0,192,96, - 0,96,96,96,96,96,96,96,96,96,96,96,3,14,14,4, - 1,0,96,192,0,192,192,192,192,192,192,192,192,192,192,192, - 5,14,14,4,0,0,112,216,0,96,96,96,96,96,96,96, - 96,96,96,96,5,14,14,4,0,0,216,216,0,96,96,96, - 96,96,96,96,96,96,96,96,10,11,22,11,0,0,126,0, - 99,128,97,128,96,192,96,192,248,192,96,192,96,192,97,128, - 99,128,126,0,9,14,28,11,1,0,26,0,44,0,0,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,14,28,12,1,0,24,0,12,0, - 0,0,30,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,14,28,12,1,0,6,0, - 12,0,0,0,30,0,115,128,97,128,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,10,14,28,12,1,0, - 14,0,27,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,97,128,115,128,30,0,10,14,28,12, - 1,0,13,0,22,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,14, - 28,12,1,0,51,0,51,0,0,0,30,0,115,128,97,128, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 8,7,7,9,0,1,195,102,60,24,60,102,195,12,11,22, - 12,0,0,15,48,57,224,48,192,97,224,99,96,102,96,108, - 96,120,96,48,192,121,192,207,0,9,14,28,11,1,0,24, - 0,12,0,0,0,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,0,62,0,9,14,28,11,1, - 0,6,0,12,0,0,0,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,99,0,62,0,9,14,28, - 11,1,0,28,0,54,0,0,0,193,128,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,99,0,62,0,9, - 14,28,11,1,0,99,0,99,0,0,0,193,128,193,128,193, - 128,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,10,14,28,10,0,0,6,0,12,0,0,0,192,192,97, - 128,97,128,51,0,51,0,30,0,30,0,12,0,12,0,12, - 0,12,0,8,11,11,10,1,0,192,192,254,199,195,195,199, - 254,192,192,192,6,11,11,8,1,0,120,204,204,204,216,216, - 204,204,204,204,216,7,11,11,8,1,0,48,24,0,120,204, - 12,124,204,204,220,118,7,11,11,8,1,0,24,48,0,120, - 204,12,124,204,204,220,118,7,11,11,8,1,0,56,108,0, - 120,204,12,124,204,204,220,118,7,11,11,8,1,0,52,88, - 0,120,204,12,124,204,204,220,118,7,11,11,8,1,0,108, - 108,0,120,204,12,124,204,204,220,118,7,11,11,8,1,0, - 48,72,48,120,204,12,124,204,204,220,118,11,8,16,13,1, - 0,123,192,206,96,12,96,127,224,204,0,204,0,222,96,119, - 192,7,11,11,9,1,253,60,102,198,192,192,198,102,60,24, - 88,112,6,11,11,8,1,0,96,48,0,120,204,204,252,192, - 192,236,120,6,11,11,8,1,0,24,48,0,120,204,204,252, - 192,192,236,120,6,11,11,8,1,0,56,108,0,120,204,204, - 252,192,192,236,120,6,11,11,8,1,0,108,108,0,120,204, - 204,252,192,192,236,120,3,11,11,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,3,11,11,4,1,0,96,192,0, - 192,192,192,192,192,192,192,192,5,11,11,4,0,0,112,216, - 0,96,96,96,96,96,96,96,96,5,11,11,4,0,0,216, - 216,0,96,96,96,96,96,96,96,96,7,11,11,9,1,0, - 108,56,72,60,108,198,198,198,198,108,56,7,11,11,9,1, - 0,52,88,0,220,238,198,198,198,198,198,198,7,11,11,9, - 1,0,48,24,0,56,108,198,198,198,198,108,56,7,11,11, - 9,1,0,24,48,0,56,108,198,198,198,198,108,56,7,11, - 11,9,1,0,56,108,0,56,108,198,198,198,198,108,56,7, - 11,11,9,1,0,52,88,0,56,108,198,198,198,198,108,56, - 7,11,11,9,1,0,108,108,0,56,108,198,198,198,198,108, - 56,8,7,7,9,0,1,24,24,0,255,0,24,24,7,8, - 8,9,1,0,58,108,206,214,214,230,108,184,7,11,11,9, - 1,0,48,24,0,198,198,198,198,198,198,238,118,7,11,11, - 9,1,0,12,24,0,198,198,198,198,198,198,238,118,7,11, - 11,9,1,0,56,108,0,198,198,198,198,198,198,238,118,7, - 11,11,9,1,0,108,108,0,198,198,198,198,198,198,238,118, - 8,14,14,8,0,253,12,24,0,195,195,102,102,36,60,24, - 24,24,48,112,7,14,14,9,1,253,192,192,192,216,236,198, - 198,198,198,236,216,192,192,192,8,14,14,8,0,253,54,54, - 0,195,195,102,102,36,60,24,24,24,48,112}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 11 - Calculated Max Values w= 8 h=11 x= 2 y= 7 dx= 9 dy= 0 ascent=11 len=11 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent= 0 - Max Font ascent =11 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10n[265] U8G_FONT_SECTION("u8g_font_helvB10n") = { - 0,17,23,255,250,11,0,0,0,0,42,58,0,11,255,11, - 0,5,4,4,6,0,7,32,248,112,216,8,7,7,9,0, - 1,24,24,24,255,24,24,24,3,3,3,4,0,255,96,96, - 192,3,1,1,4,0,4,224,2,2,2,4,1,0,192,192, - 4,11,11,4,0,0,16,16,48,32,32,96,64,64,192,128, - 128,7,11,11,8,0,0,56,108,198,198,198,198,198,198,198, - 108,56,4,11,11,8,1,0,48,240,48,48,48,48,48,48, - 48,48,48,7,11,11,8,0,0,124,198,198,6,14,12,24, - 48,96,192,254,7,11,11,8,0,0,124,198,198,6,6,60, - 6,6,198,198,124,8,11,11,8,0,0,6,14,30,54,102, - 198,198,255,6,6,6,7,11,11,8,0,0,126,96,96,192, - 252,14,6,6,198,204,120,7,11,11,8,0,0,60,102,102, - 192,220,230,198,198,198,198,124,7,11,11,8,0,0,254,6, - 12,12,24,24,48,48,96,96,96,7,11,11,8,0,0,124, - 198,198,198,198,124,198,198,198,198,124,7,11,11,8,0,0, - 124,198,198,198,198,198,126,6,198,204,120,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=23 x=-1 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB10r[1720] U8G_FONT_SECTION("u8g_font_helvB10r") = { - 0,17,23,255,250,11,2,27,4,205,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,192,128,128,0,192,192,5,3,3,7,1,8,216,216, - 144,9,10,20,9,0,0,27,0,27,0,27,0,127,128,54, - 0,54,0,255,0,108,0,108,0,108,0,7,14,14,8,0, - 254,16,124,214,214,208,240,120,28,22,214,214,124,16,16,12, - 11,22,13,0,0,120,64,204,192,205,128,121,0,3,0,6, - 0,4,0,13,224,11,48,27,48,17,224,9,10,20,11,1, - 0,56,0,108,0,108,0,56,0,115,0,251,0,206,0,198, - 0,207,0,125,128,2,3,3,4,1,8,192,192,128,4,14, - 14,5,1,253,48,96,96,192,192,192,192,192,192,192,192,96, - 96,48,4,14,14,5,0,253,192,96,96,48,48,48,48,48, - 48,48,48,96,96,192,5,4,4,6,0,7,32,248,112,216, - 8,7,7,9,0,1,24,24,24,255,24,24,24,3,3,3, - 4,0,255,96,96,192,3,1,1,4,0,4,224,2,2,2, - 4,1,0,192,192,4,11,11,4,0,0,16,16,48,32,32, - 96,64,64,192,128,128,7,11,11,8,0,0,56,108,198,198, - 198,198,198,198,198,108,56,4,11,11,8,1,0,48,240,48, - 48,48,48,48,48,48,48,48,7,11,11,8,0,0,124,198, - 198,6,14,12,24,48,96,192,254,7,11,11,8,0,0,124, - 198,198,6,6,60,6,6,198,198,124,8,11,11,8,0,0, - 6,14,30,54,102,198,198,255,6,6,6,7,11,11,8,0, - 0,126,96,96,192,252,14,6,6,198,204,120,7,11,11,8, - 0,0,60,102,102,192,220,230,198,198,198,198,124,7,11,11, - 8,0,0,254,6,12,12,24,24,48,48,96,96,96,7,11, - 11,8,0,0,124,198,198,198,198,124,198,198,198,198,124,7, - 11,11,8,0,0,124,198,198,198,198,198,126,6,198,204,120, - 2,8,8,5,2,0,192,192,0,0,0,0,192,192,3,9, - 9,5,1,255,96,96,0,0,0,0,96,96,192,6,5,5, - 8,1,2,28,112,192,112,28,7,3,3,9,1,3,254,0, - 254,6,5,5,8,1,2,224,56,12,56,224,7,11,11,9, - 1,0,124,198,198,6,12,24,48,48,0,48,48,13,12,24, - 14,0,255,15,128,56,224,112,112,102,176,205,152,217,152,219, - 24,219,48,206,224,96,0,49,128,31,0,10,11,22,10,0, - 0,12,0,12,0,30,0,18,0,51,0,51,0,97,128,127, - 128,97,128,192,192,192,192,8,11,11,10,1,0,254,199,195, - 195,198,252,198,195,195,199,254,9,11,22,11,1,0,31,0, - 123,128,96,128,192,0,192,0,192,0,192,0,192,0,96,128, - 123,128,31,0,9,11,22,11,1,0,252,0,199,0,195,0, - 193,128,193,128,193,128,193,128,193,128,195,0,199,0,252,0, - 7,11,11,9,1,0,254,192,192,192,192,254,192,192,192,192, - 254,7,11,11,9,1,0,254,192,192,192,192,252,192,192,192, - 192,192,9,11,22,11,1,0,31,0,123,128,96,128,192,0, - 192,0,199,128,193,128,193,128,97,128,123,128,30,128,8,11, - 11,10,1,0,195,195,195,195,195,255,195,195,195,195,195,2, - 11,11,4,1,0,192,192,192,192,192,192,192,192,192,192,192, - 7,11,11,8,0,0,6,6,6,6,6,6,6,198,198,238, - 124,9,11,22,10,1,0,195,0,198,0,204,0,216,0,240, - 0,240,0,216,0,204,0,198,0,195,0,193,128,7,11,11, - 8,1,0,192,192,192,192,192,192,192,192,192,192,254,11,11, - 22,13,1,0,192,96,192,96,224,224,224,224,241,224,209,96, - 209,96,219,96,202,96,206,96,196,96,9,11,22,11,1,0, - 193,128,225,128,225,128,209,128,217,128,201,128,205,128,197,128, - 195,128,195,128,193,128,10,11,22,12,1,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,97,128,115,128, - 30,0,8,11,11,10,1,0,254,199,195,195,199,254,192,192, - 192,192,192,10,11,22,12,1,0,30,0,115,128,97,128,192, - 192,192,192,192,192,192,192,198,192,99,128,115,128,30,192,9, - 11,22,11,1,0,254,0,199,0,195,0,195,0,198,0,254, - 0,199,0,195,0,195,0,195,0,193,128,8,11,11,10,1, - 0,126,231,195,224,120,30,7,3,195,238,124,8,11,11,8, - 0,0,255,24,24,24,24,24,24,24,24,24,24,9,11,22, - 11,1,0,193,128,193,128,193,128,193,128,193,128,193,128,193, - 128,193,128,193,128,99,0,62,0,10,11,22,10,0,0,192, - 192,192,192,97,128,97,128,115,128,51,0,51,0,30,0,30, - 0,12,0,12,0,14,11,22,14,0,0,195,12,195,12,195, - 12,103,152,100,152,100,152,108,216,44,208,56,112,24,96,24, - 96,9,11,22,9,0,0,193,128,193,128,99,0,54,0,28, - 0,28,0,54,0,99,0,99,0,193,128,193,128,10,11,22, - 10,0,0,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,12,0,12,0,8,11,11,9,0,0,255, - 3,6,12,28,24,48,112,96,192,255,4,14,14,5,1,253, - 240,192,192,192,192,192,192,192,192,192,192,192,192,240,4,11, - 11,4,0,0,128,128,192,64,64,96,32,32,48,16,16,4, - 14,14,5,0,253,240,48,48,48,48,48,48,48,48,48,48, - 48,48,240,6,5,5,8,1,6,48,120,72,204,204,8,1, - 1,8,0,253,255,3,2,2,5,1,9,192,96,7,8,8, - 8,1,0,120,204,12,124,204,204,220,118,7,11,11,9,1, - 0,192,192,192,216,236,198,198,198,198,236,216,6,8,8,8, - 1,0,56,108,204,192,192,204,108,56,7,11,11,9,1,0, - 6,6,6,54,110,198,198,198,198,110,54,6,8,8,8,1, - 0,120,204,204,252,192,192,236,120,5,11,11,4,0,0,56, - 96,96,240,96,96,96,96,96,96,96,7,11,11,9,1,253, - 58,110,198,198,198,198,110,54,6,206,124,7,11,11,9,1, - 0,192,192,192,220,238,198,198,198,198,198,198,2,11,11,4, - 1,0,192,192,0,192,192,192,192,192,192,192,192,3,14,14, - 4,0,253,96,96,0,96,96,96,96,96,96,96,96,96,224, - 192,6,11,11,8,1,0,192,192,192,204,216,240,240,216,216, - 204,204,2,11,11,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,10,8,16,12,1,0,219,128,238,192,204,192,204, - 192,204,192,204,192,204,192,204,192,7,8,8,9,1,0,220, - 238,198,198,198,198,198,198,7,8,8,9,1,0,56,108,198, - 198,198,198,108,56,7,11,11,9,1,253,216,236,198,198,198, - 198,236,216,192,192,192,7,11,11,9,1,253,54,110,198,198, - 198,198,110,54,6,6,6,5,8,8,6,1,0,216,248,192, - 192,192,192,192,192,6,8,8,8,1,0,120,204,224,120,28, - 12,236,120,5,10,10,5,0,0,96,96,248,96,96,96,96, - 96,104,48,7,8,8,9,1,0,198,198,198,198,198,198,238, - 118,8,8,8,8,0,0,195,195,102,102,36,60,24,24,10, - 8,16,10,0,0,204,192,204,192,204,192,109,128,109,128,51, - 0,51,0,51,0,7,8,8,7,0,0,198,198,108,56,56, - 108,198,198,8,11,11,8,0,253,195,195,102,102,36,60,24, - 24,24,48,112,6,8,8,6,0,0,252,12,24,48,48,96, - 192,252,5,14,14,6,0,253,24,48,48,48,48,96,192,96, - 48,48,48,48,48,24,1,14,14,4,2,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,5,14,14,6,1,253, - 192,96,96,96,96,48,24,48,96,96,96,96,96,192,7,3, - 3,9,1,3,114,222,140,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=17 x= 2 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12[4077] U8G_FONT_SECTION("u8g_font_helvB12") = { - 0,20,27,254,249,12,2,74,5,106,32,255,252,16,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,1,253,192,192,0,64,64,64,192,192,192,192, - 192,192,8,11,11,9,0,255,4,60,126,239,200,216,208,247, - 126,60,32,8,12,12,9,0,0,28,62,99,99,96,48,124, - 48,48,32,127,255,7,7,7,9,1,2,186,124,198,198,198, - 124,186,8,12,12,9,0,0,195,195,102,102,60,24,126,24, - 126,24,24,24,1,16,16,5,2,252,128,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,128,8,15,15,9,0,253, - 60,126,102,96,120,126,199,195,243,126,30,6,102,126,60,5, - 2,2,6,0,10,216,216,12,12,24,12,0,0,15,0,57, - 192,96,96,79,32,217,176,144,16,144,16,217,176,79,32,96, - 32,57,192,15,0,5,7,7,6,1,5,96,144,112,144,120, - 0,248,8,6,6,9,0,2,51,102,204,204,102,51,8,5, - 5,10,0,2,255,255,3,3,3,4,2,2,5,0,3,240, - 240,12,12,24,12,0,0,15,0,57,192,96,96,95,32,217, - 176,153,144,158,16,219,48,91,32,96,96,57,192,15,0,5, - 1,1,6,0,10,248,4,5,5,7,1,7,96,144,144,144, - 96,8,11,11,10,1,0,24,24,24,255,255,24,24,24,0, - 255,255,5,7,7,6,0,5,112,216,216,48,96,248,248,5, - 7,7,6,0,5,112,216,24,48,24,216,112,3,3,3,6, - 1,10,32,96,128,8,12,12,10,1,253,195,195,195,195,195, - 195,199,255,251,192,192,192,8,15,15,9,0,253,127,242,242, - 242,242,242,114,18,18,18,18,18,18,18,18,2,2,2,5, - 1,4,192,192,5,4,4,6,0,252,32,48,152,112,4,7, - 7,6,1,5,48,240,240,48,48,48,48,5,7,7,6,0, - 5,112,216,136,216,112,0,248,8,6,6,9,1,2,204,102, - 51,51,102,204,13,12,24,14,1,0,48,192,240,128,241,128, - 49,0,51,48,50,112,54,240,4,176,13,176,9,248,24,48, - 16,48,12,12,24,14,0,0,48,128,241,128,241,0,51,0, - 50,0,54,224,53,176,13,176,8,96,24,192,17,240,49,240, - 13,12,24,14,0,0,112,64,216,192,24,128,49,128,25,48, - 219,112,114,240,6,176,5,176,13,248,8,48,24,48,7,12, - 12,10,1,253,48,48,0,48,48,96,224,192,198,198,254,124, - 11,16,32,12,0,0,16,0,24,0,4,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,16,32,12,0,0,2,0,6,0, - 8,0,0,0,14,0,14,0,31,0,27,0,59,128,49,128, - 113,192,96,192,127,192,255,224,192,96,192,96,11,16,32,12, - 0,0,4,0,14,0,17,0,0,0,14,0,14,0,31,0, - 27,0,59,128,49,128,113,192,96,192,127,192,255,224,192,96, - 192,96,11,15,30,12,0,0,14,128,23,0,0,0,14,0, - 14,0,31,0,27,0,59,128,49,128,113,192,96,192,127,192, - 255,224,192,96,192,96,11,15,30,12,0,0,49,128,49,128, - 0,0,14,0,14,0,31,0,27,0,59,128,49,128,113,192, - 96,192,127,192,255,224,192,96,192,96,11,16,32,12,0,0, - 12,0,18,0,18,0,12,0,14,0,14,0,31,0,27,0, - 59,128,49,128,113,192,96,192,127,192,255,224,192,96,192,96, - 14,12,24,15,0,0,31,252,31,252,27,0,51,0,51,0, - 51,248,99,248,127,0,127,0,195,0,195,252,195,252,10,16, - 32,12,1,252,31,0,63,128,113,192,96,192,224,0,192,0, - 192,0,224,0,96,192,113,192,63,128,31,0,4,0,6,0, - 19,0,14,0,8,16,16,10,1,0,32,48,8,0,255,255, - 192,192,192,254,254,192,192,192,255,255,8,16,16,10,1,0, - 4,12,16,0,255,255,192,192,192,254,254,192,192,192,255,255, - 8,16,16,10,1,0,8,28,34,0,255,255,192,192,192,254, - 254,192,192,192,255,255,8,15,15,10,1,0,102,102,0,255, - 255,192,192,192,254,254,192,192,192,255,255,3,16,16,4,0, - 0,128,192,32,0,96,96,96,96,96,96,96,96,96,96,96, - 96,3,16,16,4,1,0,32,96,128,0,192,192,192,192,192, - 192,192,192,192,192,192,192,5,16,16,4,0,0,32,112,136, - 0,96,96,96,96,96,96,96,96,96,96,96,96,6,15,15, - 4,255,0,204,204,0,48,48,48,48,48,48,48,48,48,48, - 48,48,12,12,24,12,0,0,63,0,63,192,48,224,48,96, - 48,112,252,48,252,48,48,112,48,96,48,224,63,192,63,0, - 10,15,30,12,1,0,29,0,46,0,0,0,224,192,240,192, - 240,192,216,192,216,192,204,192,204,192,198,192,198,192,195,192, - 195,192,193,192,11,16,32,13,1,0,8,0,12,0,2,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,16,32,13,1,0, - 1,0,3,0,4,0,0,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 11,16,32,13,1,0,4,0,14,0,17,0,0,0,31,0, - 63,128,113,192,96,192,224,224,192,96,192,96,224,224,96,192, - 113,192,63,128,31,0,11,15,30,13,1,0,14,128,23,0, - 0,0,31,0,63,128,113,192,96,192,224,224,192,96,192,96, - 224,224,96,192,113,192,63,128,31,0,11,15,30,13,1,0, - 25,128,25,128,0,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,224,224,96,192,113,192,63,128,31,0,9,9, - 18,10,0,0,65,0,227,128,119,0,62,0,28,0,62,0, - 119,0,227,128,65,0,11,12,24,13,1,0,31,32,63,192, - 112,192,97,192,227,96,198,96,204,96,216,224,112,192,97,192, - 127,128,159,0,10,16,32,12,1,0,16,0,24,0,4,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,12,1,0, - 2,0,6,0,8,0,0,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,16,32,12,1,0,4,0,14,0,17,0,0,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,15,30,12,1,0,51,0,51,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,192,192,225,192,97,128,51,0, - 51,0,30,0,30,0,12,0,12,0,12,0,12,0,12,0, - 9,12,24,11,1,0,192,0,254,0,255,0,195,128,193,128, - 193,128,195,128,255,0,254,0,192,0,192,0,192,0,8,12, - 12,10,1,0,124,254,198,198,220,222,195,195,195,195,222,220, - 8,13,13,9,1,0,32,48,8,0,124,254,198,14,126,230, - 198,254,119,8,13,13,9,1,0,4,12,16,0,124,254,198, - 14,126,230,198,254,119,8,13,13,9,1,0,16,56,68,0, - 124,254,198,14,126,230,198,254,119,8,12,12,9,1,0,58, - 92,0,124,254,198,14,126,230,198,254,119,8,12,12,9,1, - 0,108,108,0,124,254,198,14,126,230,198,254,119,8,13,13, - 9,1,0,24,36,36,24,124,254,198,14,126,230,198,254,119, - 13,9,18,15,1,0,125,224,255,240,198,24,15,248,127,248, - 230,0,207,56,255,240,121,224,8,13,13,9,1,252,60,126, - 231,192,192,192,231,126,60,16,24,76,56,8,13,13,10,1, - 0,32,48,8,0,60,126,195,255,255,192,231,126,60,8,13, - 13,10,1,0,4,12,16,0,60,126,195,255,255,192,231,126, - 60,8,13,13,10,1,0,8,28,34,0,60,126,195,255,255, - 192,231,126,60,8,12,12,10,1,0,54,54,0,60,126,195, - 255,255,192,231,126,60,3,13,13,4,0,0,128,192,32,0, - 96,96,96,96,96,96,96,96,96,3,13,13,4,1,0,32, - 96,128,0,192,192,192,192,192,192,192,192,192,5,13,13,4, - 0,0,32,112,136,0,96,96,96,96,96,96,96,96,96,5, - 12,12,4,0,0,216,216,0,96,96,96,96,96,96,96,96, - 96,8,12,12,10,1,0,96,124,248,28,126,231,195,195,195, - 231,126,60,8,12,12,10,1,0,58,92,0,222,255,227,195, - 195,195,195,195,195,8,13,13,10,1,0,32,48,8,0,60, - 126,231,195,195,195,231,126,60,8,13,13,10,1,0,8,24, - 32,0,60,126,231,195,195,195,231,126,60,8,13,13,10,1, - 0,16,56,68,0,60,126,231,195,195,195,231,126,60,8,12, - 12,10,1,0,58,92,0,60,126,231,195,195,195,231,126,60, - 8,12,12,10,1,0,108,108,0,60,126,231,195,195,195,231, - 126,60,8,8,8,10,1,0,24,24,0,255,255,0,24,24, - 8,9,9,10,1,0,61,127,231,207,219,243,231,254,188,8, - 13,13,10,1,0,32,48,8,0,195,195,195,195,195,195,199, - 255,123,8,13,13,10,1,0,8,24,32,0,195,195,195,195, - 195,195,199,255,123,8,13,13,10,1,0,16,56,68,0,195, - 195,195,195,195,195,199,255,123,8,12,12,10,1,0,108,108, - 0,195,195,195,195,195,195,199,255,123,8,17,17,9,0,252, - 4,12,16,0,195,195,99,102,54,54,60,28,24,24,24,112, - 96,8,16,16,10,1,252,192,192,192,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,16,16,9,0,252,54,54,0, - 195,195,99,102,54,54,60,28,24,24,24,112,96}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 12 - Calculated Max Values w= 8 h=12 x= 2 y= 7 dx=10 dy= 0 ascent=12 len=12 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12n[281] U8G_FONT_SECTION("u8g_font_helvB12n") = { - 0,20,27,254,249,12,0,0,0,0,42,58,0,12,253,12, - 0,5,5,5,6,0,7,32,168,112,112,136,8,8,8,10, - 1,0,24,24,24,255,255,24,24,24,2,5,5,4,1,253, - 192,192,64,64,128,4,2,2,5,0,3,240,240,2,2,2, - 4,1,0,192,192,4,12,12,5,0,0,16,16,48,32,32, - 96,64,64,192,128,128,128,8,12,12,9,0,0,60,126,231, - 195,195,195,195,195,195,231,126,60,5,12,12,9,1,0,8, - 24,248,248,24,24,24,24,24,24,24,24,8,12,12,9,0, - 0,60,126,231,195,195,7,14,28,56,112,255,255,8,12,12, - 9,0,0,60,126,231,195,7,30,30,7,195,231,126,60,8, - 12,12,9,0,0,14,30,54,54,102,102,198,255,255,6,6, - 6,8,12,12,9,0,0,63,63,48,48,124,126,71,3,3, - 231,126,60,8,12,12,9,0,0,60,126,231,192,220,254,231, - 195,195,231,126,60,8,12,12,9,0,0,255,255,6,6,12, - 12,24,24,24,48,48,48,8,12,12,9,0,0,60,126,231, - 195,102,60,126,231,195,231,126,60,8,12,12,9,0,0,60, - 126,231,195,195,231,127,59,3,231,126,60,2,8,8,5,2, - 0,192,192,0,0,0,0,192,192}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--17-120-100-100-P-92-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 2 y=10 dx=16 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=27 x=-2 y=-7 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB12r[1914] U8G_FONT_SECTION("u8g_font_helvB12r") = { - 0,20,27,254,249,12,2,74,5,106,32,127,252,13,252,12, - 252,0,0,0,5,0,1,2,12,12,6,2,0,192,192,192, - 192,192,192,128,128,128,0,192,192,5,4,4,8,1,8,216, - 216,216,72,9,12,24,9,0,0,27,0,27,0,27,0,127, - 128,127,128,54,0,54,0,255,0,255,0,108,0,108,0,108, - 0,7,14,14,9,1,255,16,124,254,214,208,240,120,60,30, - 22,214,254,124,16,13,12,24,14,0,0,48,64,120,128,204, - 128,205,0,121,0,50,0,2,96,4,240,5,152,9,152,8, - 240,16,96,10,12,24,12,1,0,60,0,126,0,102,0,102, - 0,60,0,56,192,125,192,207,128,199,0,199,0,127,128,57, - 192,2,4,4,4,1,8,192,192,192,64,4,15,15,6,1, - 253,48,112,96,192,192,192,192,192,192,192,192,192,96,112,48, - 4,15,15,6,0,253,192,224,96,48,48,48,48,48,48,48, - 48,48,96,224,192,5,5,5,6,0,7,32,168,112,112,136, - 8,8,8,10,1,0,24,24,24,255,255,24,24,24,2,5, - 5,4,1,253,192,192,64,64,128,4,2,2,5,0,3,240, - 240,2,2,2,4,1,0,192,192,4,12,12,5,0,0,16, - 16,48,32,32,96,64,64,192,128,128,128,8,12,12,9,0, - 0,60,126,231,195,195,195,195,195,195,231,126,60,5,12,12, - 9,1,0,8,24,248,248,24,24,24,24,24,24,24,24,8, - 12,12,9,0,0,60,126,231,195,195,7,14,28,56,112,255, - 255,8,12,12,9,0,0,60,126,231,195,7,30,30,7,195, - 231,126,60,8,12,12,9,0,0,14,30,54,54,102,102,198, - 255,255,6,6,6,8,12,12,9,0,0,63,63,48,48,124, - 126,71,3,3,231,126,60,8,12,12,9,0,0,60,126,231, - 192,220,254,231,195,195,231,126,60,8,12,12,9,0,0,255, - 255,6,6,12,12,24,24,24,48,48,48,8,12,12,9,0, - 0,60,126,231,195,102,60,126,231,195,231,126,60,8,12,12, - 9,0,0,60,126,231,195,195,231,127,59,3,231,126,60,2, - 8,8,5,2,0,192,192,0,0,0,0,192,192,2,11,11, - 5,2,253,192,192,0,0,0,0,192,192,64,64,128,8,8, - 8,10,1,0,3,15,60,224,224,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,0,192,240, - 60,7,7,60,240,192,7,12,12,10,1,0,124,254,198,198, - 6,14,12,24,24,0,24,24,13,14,28,16,1,254,15,192, - 56,96,96,16,71,216,204,72,136,200,152,200,152,136,153,152, - 201,144,70,96,96,0,56,192,15,128,11,12,24,12,0,0, - 14,0,14,0,31,0,27,0,59,128,49,128,113,192,96,192, - 127,192,255,224,192,96,192,96,9,12,24,11,1,0,254,0, - 255,0,195,128,193,128,195,128,255,0,255,0,195,128,193,128, - 195,128,255,0,254,0,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,10,12,24,12,1,0,252,0,255,0,195,128, - 193,128,193,192,192,192,192,192,193,192,193,128,195,128,255,0, - 252,0,8,12,12,10,1,0,255,255,192,192,192,254,254,192, - 192,192,255,255,8,12,12,10,1,0,255,255,192,192,192,254, - 254,192,192,192,192,192,10,12,24,12,1,0,31,0,63,128, - 113,192,96,192,224,0,192,0,195,192,227,192,96,192,113,192, - 63,192,30,192,10,12,24,12,1,0,192,192,192,192,192,192, - 192,192,255,192,255,192,192,192,192,192,192,192,192,192,192,192, - 192,192,2,12,12,4,1,0,192,192,192,192,192,192,192,192, - 192,192,192,192,7,12,12,9,1,0,6,6,6,6,6,6, - 6,6,198,198,254,124,11,12,24,12,1,0,193,192,195,128, - 199,0,206,0,220,0,248,0,252,0,206,0,199,0,195,128, - 193,192,192,224,8,12,12,10,1,0,192,192,192,192,192,192, - 192,192,192,192,255,255,11,12,24,13,1,0,224,224,224,224, - 224,224,241,224,241,224,209,96,219,96,219,96,202,96,206,96, - 206,96,196,96,10,12,24,12,1,0,224,192,240,192,240,192, - 216,192,216,192,204,192,204,192,198,192,198,192,195,192,195,192, - 193,192,11,12,24,13,1,0,31,0,63,128,113,192,96,192, - 224,224,192,96,192,96,224,224,96,192,113,192,63,128,31,0, - 9,12,24,11,1,0,254,0,255,0,195,128,193,128,193,128, - 195,128,255,0,254,0,192,0,192,0,192,0,192,0,11,13, - 26,13,1,255,31,0,63,128,113,192,96,192,224,224,192,96, - 192,96,226,96,103,192,115,192,63,128,31,192,0,128,10,12, - 24,12,1,0,255,0,255,128,193,128,193,128,195,128,255,0, - 255,0,195,128,193,128,193,128,193,192,193,192,9,12,24,11, - 1,0,62,0,127,0,227,128,193,128,240,0,126,0,31,0, - 3,128,193,128,227,128,127,0,62,0,10,12,24,10,0,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,10,12,24,12,1,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,12,24,11,0,0,192,192,192,192, - 97,128,97,128,97,128,51,0,51,0,51,0,30,0,30,0, - 12,0,12,0,14,12,24,15,0,0,195,12,195,12,195,12, - 99,24,103,152,103,152,52,176,60,240,60,240,24,96,24,96, - 24,96,9,12,24,11,1,0,193,128,227,128,99,0,54,0, - 62,0,28,0,28,0,62,0,54,0,99,0,227,128,193,128, - 10,12,24,11,0,0,192,192,225,192,97,128,51,0,51,0, - 30,0,30,0,12,0,12,0,12,0,12,0,12,0,8,12, - 12,10,1,0,255,255,7,6,12,28,56,48,96,224,255,255, - 4,15,15,6,1,253,240,240,192,192,192,192,192,192,192,192, - 192,192,192,240,240,4,12,12,5,0,0,128,128,192,64,64, - 96,32,32,48,16,16,16,4,15,15,6,0,253,240,240,48, - 48,48,48,48,48,48,48,48,48,48,240,240,8,7,7,10, - 1,5,24,24,60,102,102,195,195,9,1,2,9,0,253,255, - 128,3,3,3,6,2,10,128,192,32,8,9,9,9,1,0, - 124,254,198,14,126,230,198,254,119,8,12,12,10,1,0,192, - 192,192,220,254,231,195,195,195,231,254,220,8,9,9,9,1, - 0,60,126,231,192,192,192,231,126,60,8,12,12,10,1,0, - 3,3,3,63,127,231,195,195,195,231,127,59,8,9,9,10, - 1,0,60,126,195,255,255,192,231,126,60,4,12,12,6,1, - 0,48,112,96,240,240,96,96,96,96,96,96,96,8,13,13, - 10,1,252,59,127,231,195,195,195,231,127,59,3,231,126,60, - 8,12,12,10,1,0,192,192,192,222,255,227,195,195,195,195, - 195,195,2,12,12,4,1,0,192,192,0,192,192,192,192,192, - 192,192,192,192,3,16,16,5,1,252,96,96,0,96,96,96, - 96,96,96,96,96,96,96,96,224,192,8,12,12,9,1,0, - 192,192,192,199,206,220,248,252,236,206,198,199,2,12,12,4, - 1,0,192,192,192,192,192,192,192,192,192,192,192,192,12,9, - 18,14,1,0,222,224,255,240,231,48,198,48,198,48,198,48, - 198,48,198,48,198,48,8,9,9,10,1,0,222,255,227,195, - 195,195,195,195,195,8,9,9,10,1,0,60,126,231,195,195, - 195,231,126,60,8,13,13,10,1,252,220,254,231,195,195,195, - 231,254,220,192,192,192,192,8,13,13,10,1,252,59,127,231, - 195,195,195,231,127,59,3,3,3,3,5,9,9,6,1,0, - 216,248,224,192,192,192,192,192,192,7,9,9,9,1,0,124, - 254,198,240,124,14,198,254,124,4,11,11,6,1,0,96,96, - 240,240,96,96,96,96,96,112,48,8,9,9,10,1,0,195, - 195,195,195,195,195,199,255,123,8,9,9,9,0,0,195,195, - 102,102,102,60,60,24,24,12,9,18,13,0,0,198,48,198, - 48,102,96,102,96,111,96,63,192,57,192,25,128,25,128,7, - 9,9,9,1,0,198,198,108,124,56,124,108,198,198,8,13, - 13,9,0,252,195,195,99,102,54,54,60,28,24,24,24,112, - 96,7,9,9,8,0,0,254,254,14,28,24,56,112,254,254, - 4,15,15,6,1,253,48,112,96,96,96,96,96,192,96,96, - 96,96,96,112,48,1,16,16,4,1,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,192,224,96,96,96,96,96,48,96,96,96,96,96,224,192, - 8,3,3,10,1,3,113,153,142,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=19 x= 2 y=12 dx=18 dy= 0 ascent=18 len=38 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14[5489] U8G_FONT_SECTION("u8g_font_helvB14") = { - 0,22,29,254,249,14,3,23,6,234,32,255,252,18,251,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,5,0,1,3,14,14,6,2,252, - 224,224,224,0,96,96,224,224,224,224,224,224,224,224,8,14, - 14,10,1,254,2,2,62,127,231,200,200,208,208,227,127,126, - 64,64,10,13,26,11,0,0,31,0,63,192,113,192,112,0, - 112,0,56,0,127,0,28,0,28,0,56,0,112,192,255,192, - 239,128,9,8,16,11,1,2,193,128,255,128,119,0,99,0, - 99,0,119,0,255,128,193,128,9,13,26,10,0,0,227,128, - 227,128,227,128,119,0,119,0,62,0,255,128,28,0,255,128, - 28,0,28,0,28,0,28,0,2,18,18,5,1,252,192,192, - 192,192,192,192,192,192,0,0,192,192,192,192,192,192,192,192, - 9,18,36,10,0,252,62,0,127,0,227,128,227,128,240,0, - 124,0,254,0,199,0,195,128,225,128,113,128,63,128,15,0, - 7,128,227,128,227,128,127,0,62,0,5,2,2,7,1,12, - 216,216,14,14,28,15,1,0,15,192,56,112,96,24,199,140, - 207,204,152,196,152,4,152,4,152,68,207,204,199,140,96,24, - 56,112,15,192,6,9,9,8,1,5,120,140,124,204,204,116, - 0,252,252,10,8,16,11,0,1,29,192,59,128,119,0,238, - 0,238,0,119,0,59,128,29,192,9,5,10,11,1,3,255, - 128,255,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,14,28,15,1,0,15,128,48,96,96,16,95,144, - 153,200,152,200,153,200,159,8,153,136,153,136,88,208,96,48, - 56,224,15,128,5,2,2,7,1,12,248,248,6,6,6,7, - 0,7,120,252,204,204,252,120,9,9,18,11,1,0,28,0, - 28,0,255,128,255,128,28,0,28,0,0,0,255,128,255,128, - 6,8,8,6,0,5,120,252,204,28,120,224,252,252,6,8, - 8,6,0,5,120,252,204,56,60,204,252,120,5,3,3,5, - 0,11,56,112,224,9,14,28,11,1,252,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,251,128,224, - 0,224,0,224,0,224,0,9,18,36,10,0,252,63,128,123, - 0,251,0,251,0,251,0,251,0,251,0,123,0,59,0,27, - 0,27,0,27,0,27,0,27,0,27,0,27,0,27,0,27, - 0,2,2,2,5,1,6,192,192,5,5,5,7,1,251,96, - 112,24,248,240,4,8,8,6,0,5,48,240,240,48,48,48, - 48,48,6,9,9,8,1,5,120,204,204,204,204,120,0,252, - 252,10,8,16,11,0,1,238,0,119,0,59,128,29,192,29, - 192,59,128,119,0,238,0,14,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,152,51,56,54,56,6,120,12, - 216,12,252,24,24,24,24,15,13,26,15,0,0,48,96,240, - 96,240,192,48,192,49,128,49,188,51,126,54,102,6,14,12, - 60,12,112,24,126,24,126,14,13,26,15,0,0,120,48,252, - 48,204,96,56,96,60,192,204,216,253,184,123,56,3,120,6, - 216,6,252,12,24,12,24,8,14,14,10,1,252,28,28,28, - 0,28,28,28,56,120,112,231,231,255,126,12,18,36,14,1, - 0,56,0,28,0,6,0,0,0,15,0,15,0,31,128,25, - 128,25,128,57,192,57,192,48,192,112,224,127,224,127,224,224, - 112,224,112,224,112,12,18,36,14,1,0,1,192,3,128,6, - 0,0,0,15,0,15,0,31,128,25,128,25,128,57,192,57, - 192,48,192,112,224,127,224,127,224,224,112,224,112,224,112,12, - 18,36,14,1,0,7,0,15,128,29,192,0,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,12,18,36,14,1,0,14, - 32,31,192,35,128,0,0,15,0,15,0,31,128,25,128,25, - 128,57,192,57,192,48,192,112,224,127,224,127,224,224,112,224, - 112,224,112,12,18,36,14,1,0,25,128,25,128,25,128,0, - 0,15,0,15,0,31,128,25,128,25,128,57,192,57,192,48, - 192,112,224,127,224,127,224,224,112,224,112,224,112,12,18,36, - 14,1,0,15,0,25,128,25,128,15,0,15,0,15,0,31, - 128,25,128,25,128,57,192,57,192,48,192,112,224,127,224,127, - 224,224,112,224,112,224,112,16,14,28,18,1,0,15,255,15, - 255,31,128,27,128,59,128,59,128,51,254,115,254,115,128,127, - 128,255,128,227,128,227,255,227,255,12,19,38,14,1,251,15, - 128,63,224,120,224,112,112,240,112,224,0,224,0,224,0,224, - 0,240,112,112,112,120,224,63,224,15,128,12,0,14,0,3, - 0,31,0,30,0,10,18,36,13,2,0,56,0,28,0,6, - 0,0,0,255,192,255,192,224,0,224,0,224,0,224,0,255, - 128,255,128,224,0,224,0,224,0,224,0,255,192,255,192,10, - 18,36,13,2,0,3,128,7,0,12,0,0,0,255,192,255, - 192,224,0,224,0,224,0,224,0,255,128,255,128,224,0,224, - 0,224,0,224,0,255,192,255,192,10,18,36,13,2,0,14, - 0,31,0,59,128,0,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,255, - 192,255,192,10,18,36,13,2,0,51,0,51,0,51,0,0, - 0,255,192,255,192,224,0,224,0,224,0,224,0,255,128,255, - 128,224,0,224,0,224,0,224,0,255,192,255,192,5,18,18, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,5,18,18,5,1,0,56,112,192,0,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,7,18,18, - 5,255,0,56,124,238,0,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,6,18,18,5,0,0,204,204,204,0,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,14,14,28, - 14,255,0,63,192,63,240,56,120,56,56,56,28,56,28,255, - 28,255,28,56,28,56,28,56,56,56,120,63,240,63,192,12, - 18,36,14,1,0,14,32,31,192,35,128,0,0,224,112,240, - 112,240,112,248,112,252,112,236,112,238,112,230,112,231,112,227, - 112,225,240,225,240,224,240,224,112,13,18,36,15,1,0,28, - 0,14,0,3,0,0,0,15,128,63,224,120,240,112,112,240, - 120,224,56,224,56,224,56,224,56,240,120,112,112,120,240,63, - 224,15,128,13,18,36,15,1,0,1,192,3,128,6,0,0, - 0,15,128,63,224,120,240,112,112,240,120,224,56,224,56,224, - 56,224,56,240,120,112,112,120,240,63,224,15,128,13,18,36, - 15,1,0,7,0,15,128,29,192,0,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,13,18,36,15,1,0,7,16,15, - 224,17,192,0,0,15,128,63,224,120,240,112,112,240,120,224, - 56,224,56,224,56,224,56,240,120,112,112,120,240,63,224,15, - 128,13,18,36,15,1,0,12,192,12,192,12,192,0,0,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,240,120,112,112,120,240,63,224,15,128,10,8,16,11,0, - 1,225,192,115,128,63,0,30,0,30,0,63,0,115,128,225, - 192,15,14,28,15,0,0,7,198,31,252,60,56,56,120,120, - 220,113,156,113,28,115,28,118,28,124,60,56,56,60,120,127, - 240,199,192,12,18,36,14,1,0,28,0,14,0,3,0,0, - 0,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,127,224,31,128,12,18,36, - 14,1,0,1,192,3,128,6,0,0,0,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,127,224,31,128,12,18,36,14,1,0,7,0,15, - 128,29,192,0,0,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,127,224,31, - 128,12,18,36,14,1,0,25,128,25,128,25,128,0,0,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,13,18,36,13,0, - 0,1,192,3,128,6,0,0,0,224,56,224,56,112,112,56, - 224,56,224,29,192,29,192,15,128,7,0,7,0,7,0,7, - 0,7,0,7,0,11,14,28,13,1,0,224,0,224,0,224, - 0,255,0,255,192,225,224,224,224,224,224,225,224,255,192,255, - 0,224,0,224,0,224,0,8,14,14,10,1,0,60,126,231, - 231,231,231,238,238,231,231,231,231,239,238,10,14,28,11,1, - 0,112,0,56,0,12,0,0,0,62,0,127,0,115,128,7, - 128,63,128,123,128,227,128,231,128,251,128,123,192,10,14,28, - 11,1,0,3,128,7,0,12,0,0,0,62,0,127,0,115, - 128,7,128,63,128,123,128,227,128,231,128,251,128,123,192,10, - 14,28,11,1,0,28,0,62,0,119,0,0,0,62,0,127, - 0,115,128,7,128,63,128,123,128,227,128,231,128,251,128,123, - 192,10,14,28,11,1,0,59,0,127,0,110,0,0,0,62, - 0,127,0,115,128,7,128,63,128,123,128,227,128,231,128,251, - 128,123,192,10,14,28,11,1,0,51,0,51,0,51,0,0, - 0,62,0,127,0,115,128,7,128,63,128,123,128,227,128,231, - 128,251,128,123,192,10,14,28,11,1,0,60,0,102,0,102, - 0,60,0,62,0,127,0,115,128,7,128,63,128,123,128,227, - 128,231,128,251,128,123,192,14,10,20,16,1,0,61,240,127, - 248,103,28,15,28,63,252,119,0,231,0,239,156,255,252,121, - 240,9,15,30,10,1,251,30,0,127,128,115,128,224,0,224, - 0,224,0,224,0,115,128,127,128,30,0,24,0,28,0,6, - 0,62,0,60,0,9,14,28,11,1,0,112,0,56,0,12, - 0,0,0,30,0,127,0,115,128,225,128,255,128,255,128,224, - 0,115,128,127,128,30,0,9,14,28,11,1,0,3,128,7, - 0,12,0,0,0,30,0,127,0,115,128,225,128,255,128,255, - 128,224,0,115,128,127,128,30,0,9,14,28,11,1,0,28, - 0,62,0,119,0,0,0,30,0,127,0,115,128,225,128,255, - 128,255,128,224,0,115,128,127,128,30,0,9,14,28,11,1, - 0,51,0,51,0,51,0,0,0,30,0,127,0,115,128,225, - 128,255,128,255,128,224,0,115,128,127,128,30,0,5,14,14, - 5,255,0,224,112,24,0,56,56,56,56,56,56,56,56,56, - 56,5,14,14,5,1,0,56,112,192,0,224,224,224,224,224, - 224,224,224,224,224,7,14,14,5,255,0,56,124,238,0,56, - 56,56,56,56,56,56,56,56,56,5,14,14,5,0,0,216, - 216,216,0,112,112,112,112,112,112,112,112,112,112,10,14,28, - 12,1,0,96,0,55,0,60,0,102,0,31,0,127,128,115, - 128,225,192,225,192,225,192,225,192,115,128,127,128,30,0,9, - 14,28,11,1,0,59,0,127,0,110,0,0,0,239,0,255, - 128,243,128,227,128,227,128,227,128,227,128,227,128,227,128,227, - 128,10,14,28,12,1,0,112,0,56,0,12,0,0,0,30, - 0,127,128,115,128,225,192,225,192,225,192,225,192,115,128,127, - 128,30,0,10,14,28,12,1,0,3,128,7,0,12,0,0, - 0,30,0,127,128,115,128,225,192,225,192,225,192,225,192,115, - 128,127,128,30,0,10,14,28,12,1,0,28,0,62,0,119, - 0,0,0,30,0,127,128,115,128,225,192,225,192,225,192,225, - 192,115,128,127,128,30,0,10,14,28,12,1,0,59,0,127, - 0,110,0,0,0,30,0,127,128,115,128,225,192,225,192,225, - 192,225,192,115,128,127,128,30,0,10,14,28,12,1,0,51, - 0,51,0,51,0,0,0,30,0,127,128,115,128,225,192,225, - 192,225,192,225,192,115,128,127,128,30,0,9,8,16,11,1, - 1,28,0,28,0,0,0,255,128,255,128,0,0,28,0,28, - 0,12,10,20,12,0,0,15,48,63,224,57,192,115,224,119, - 224,126,224,124,224,57,192,127,192,207,0,9,14,28,11,1, - 0,112,0,56,0,12,0,0,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,231,128,255,128,123,128,9,14,28, - 11,1,0,3,128,7,0,12,0,0,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 14,28,11,1,0,28,0,62,0,119,0,0,0,227,128,227, - 128,227,128,227,128,227,128,227,128,227,128,231,128,255,128,123, - 128,9,14,28,11,1,0,51,0,51,0,51,0,0,0,227, - 128,227,128,227,128,227,128,227,128,227,128,227,128,231,128,255, - 128,123,128,9,18,36,11,1,252,7,0,14,0,24,0,0, - 0,227,128,227,128,227,128,119,0,119,0,119,0,62,0,62, - 0,28,0,28,0,28,0,24,0,120,0,112,0,10,18,36, - 12,1,252,224,0,224,0,224,0,224,0,239,0,255,128,243, - 128,225,192,225,192,225,192,225,192,243,128,255,128,239,0,224, - 0,224,0,224,0,224,0,9,18,36,11,1,252,51,0,51, - 0,51,0,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,28,0,24,0,120,0,112, - 0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 13 - Calculated Max Values w= 9 h=14 x= 1 y= 8 dx=11 dy= 0 ascent=14 len=26 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =13 descent= 0 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14n[416] U8G_FONT_SECTION("u8g_font_helvB14n") = { - 0,22,29,254,249,13,0,0,0,0,42,58,0,14,253,13, - 0,7,6,6,9,1,8,16,214,124,56,108,68,8,8,8, - 11,1,1,24,24,24,255,255,24,24,24,3,6,6,5,1, - 253,224,224,224,96,192,128,5,3,3,6,0,4,248,248,248, - 3,3,3,5,1,0,224,224,224,5,14,14,5,0,0,24, - 24,24,56,48,48,48,112,96,96,224,192,192,192,9,13,26, - 10,0,0,28,0,127,0,119,0,227,128,227,128,227,128,227, - 128,227,128,227,128,227,128,119,0,127,0,28,0,6,13,13, - 10,1,0,28,60,252,252,28,28,28,28,28,28,28,28,28, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,3,128, - 7,0,31,0,62,0,120,0,112,0,224,0,255,128,255,128, - 9,13,26,10,0,0,62,0,127,0,231,0,227,0,7,0, - 30,0,31,0,7,128,3,128,227,128,231,128,127,0,62,0, - 9,13,26,10,0,0,7,0,15,0,31,0,63,0,55,0, - 119,0,103,0,231,0,255,128,255,128,7,0,7,0,7,0, - 9,13,26,10,0,0,255,0,255,0,224,0,224,0,254,0, - 255,0,231,128,3,128,3,128,227,128,231,128,255,0,126,0, - 9,13,26,10,0,0,63,0,127,128,113,128,224,0,238,0, - 255,0,243,128,225,128,225,128,225,128,243,128,127,0,62,0, - 9,13,26,10,0,0,255,128,255,128,3,128,7,0,14,0, - 14,0,28,0,28,0,56,0,56,0,112,0,112,0,112,0, - 9,13,26,10,0,0,62,0,127,0,227,128,227,128,227,128, - 127,0,62,0,119,0,227,128,227,128,227,128,127,0,62,0, - 9,13,26,10,0,0,62,0,127,0,231,128,195,128,195,128, - 195,128,231,128,127,128,59,128,3,128,199,0,255,0,126,0, - 3,10,10,6,1,0,224,224,224,0,0,0,0,224,224,224 - }; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB14r[2548] U8G_FONT_SECTION("u8g_font_helvB14r") = { - 0,22,29,254,249,14,3,23,6,234,32,127,252,14,252,14, - 252,0,0,0,5,0,1,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,192,192,0,224,224,224,5,5,5,7,1, - 9,216,216,216,216,144,11,13,26,11,0,0,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,27,0,255,192,255,192, - 54,0,54,0,54,0,10,16,32,10,0,254,4,0,63,0, - 127,128,229,128,228,0,228,0,124,0,63,0,15,128,9,192, - 233,192,233,192,127,128,63,0,8,0,8,0,13,13,26,16, - 1,0,120,96,252,96,204,192,204,128,253,128,123,0,2,0, - 6,240,13,248,9,152,25,152,49,248,48,240,13,14,28,14, - 1,0,30,0,63,0,115,128,97,128,115,0,62,0,28,96, - 126,96,231,224,195,192,193,192,227,224,127,112,62,56,2,5, - 5,4,1,9,192,192,192,192,128,6,18,18,7,1,252,28, - 56,48,112,96,224,224,224,224,224,224,224,224,96,112,48,56, - 28,6,18,18,7,0,252,224,112,48,56,24,28,28,28,28, - 28,28,28,28,24,56,48,112,224,7,6,6,9,1,8,16, - 214,124,56,108,68,8,8,8,11,1,1,24,24,24,255,255, - 24,24,24,3,6,6,5,1,253,224,224,224,96,192,128,5, - 3,3,6,0,4,248,248,248,3,3,3,5,1,0,224,224, - 224,5,14,14,5,0,0,24,24,24,56,48,48,48,112,96, - 96,224,192,192,192,9,13,26,10,0,0,28,0,127,0,119, - 0,227,128,227,128,227,128,227,128,227,128,227,128,227,128,119, - 0,127,0,28,0,6,13,13,10,1,0,28,60,252,252,28, - 28,28,28,28,28,28,28,28,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,3,128,7,0,31,0,62,0,120,0, - 112,0,224,0,255,128,255,128,9,13,26,10,0,0,62,0, - 127,0,231,0,227,0,7,0,30,0,31,0,7,128,3,128, - 227,128,231,128,127,0,62,0,9,13,26,10,0,0,7,0, - 15,0,31,0,63,0,55,0,119,0,103,0,231,0,255,128, - 255,128,7,0,7,0,7,0,9,13,26,10,0,0,255,0, - 255,0,224,0,224,0,254,0,255,0,231,128,3,128,3,128, - 227,128,231,128,255,0,126,0,9,13,26,10,0,0,63,0, - 127,128,113,128,224,0,238,0,255,0,243,128,225,128,225,128, - 225,128,243,128,127,0,62,0,9,13,26,10,0,0,255,128, - 255,128,3,128,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,112,0,9,13,26,10,0,0,62,0, - 127,0,227,128,227,128,227,128,127,0,62,0,119,0,227,128, - 227,128,227,128,127,0,62,0,9,13,26,10,0,0,62,0, - 127,0,231,128,195,128,195,128,195,128,231,128,127,128,59,128, - 3,128,199,0,255,0,126,0,3,10,10,6,1,0,224,224, - 224,0,0,0,0,224,224,224,3,13,13,6,1,253,224,224, - 224,0,0,0,0,224,224,224,96,192,128,9,9,18,11,1, - 0,3,128,15,128,62,0,120,0,224,0,120,0,62,0,15, - 128,3,128,9,5,10,11,1,3,255,128,255,128,0,0,255, - 128,255,128,9,9,18,11,1,0,224,0,248,0,62,0,15, - 0,3,128,15,0,62,0,248,0,224,0,8,14,14,10,1, - 0,126,255,231,231,14,30,28,56,56,56,0,56,56,56,16, - 17,34,18,1,253,7,240,31,252,60,30,112,6,99,183,231, - 243,198,99,204,99,204,195,204,198,204,198,239,252,231,184,112, - 0,60,0,31,240,7,240,12,14,28,14,1,0,15,0,15, - 0,31,128,25,128,25,128,57,192,57,192,48,192,112,224,127, - 224,127,224,224,112,224,112,224,112,11,14,28,14,2,0,254, - 0,255,128,227,192,225,192,225,192,227,128,255,128,255,192,225, - 224,224,224,224,224,225,224,255,192,255,0,12,14,28,14,1, - 0,15,128,63,224,120,224,112,112,240,112,224,0,224,0,224, - 0,224,0,240,112,112,112,120,224,63,224,15,128,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,112,224,112,224, - 112,224,112,224,112,224,112,224,224,225,224,255,192,255,0,10, - 14,28,13,2,0,255,192,255,192,224,0,224,0,224,0,224, - 0,255,128,255,128,224,0,224,0,224,0,224,0,255,192,255, - 192,10,14,28,12,1,0,255,192,255,192,224,0,224,0,224, - 0,224,0,255,128,255,128,224,0,224,0,224,0,224,0,224, - 0,224,0,12,14,28,15,1,0,15,128,63,224,120,224,112, - 112,240,112,224,0,224,0,227,240,227,240,240,112,112,112,120, - 240,63,240,31,176,12,14,28,14,1,0,224,112,224,112,224, - 112,224,112,224,112,224,112,255,240,255,240,224,112,224,112,224, - 112,224,112,224,112,224,112,3,14,14,5,1,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,9,14,28,10,0, - 0,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,227,128,227,128,247,128,127,0,62,0,13,14,28, - 14,1,0,224,240,225,224,227,192,231,128,239,0,254,0,252, - 0,254,0,239,0,231,128,227,192,225,224,224,240,224,120,9, - 14,28,11,1,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,255,128,255, - 128,14,14,28,16,1,0,224,28,224,28,240,60,240,60,248, - 124,248,124,248,124,236,220,236,220,236,220,231,156,231,156,227, - 28,227,28,12,14,28,14,1,0,224,112,240,112,240,112,248, - 112,252,112,236,112,238,112,230,112,231,112,227,112,225,240,225, - 240,224,240,224,112,13,14,28,15,1,0,15,128,63,224,120, - 240,112,112,240,120,224,56,224,56,224,56,224,56,240,120,112, - 112,120,240,63,224,15,128,11,14,28,13,1,0,255,0,255, - 192,225,224,224,224,224,224,224,224,225,224,255,192,255,0,224, - 0,224,0,224,0,224,0,224,0,13,15,30,15,1,255,15, - 128,63,224,120,240,112,112,240,120,224,56,224,56,224,56,224, - 56,243,120,115,240,121,240,63,224,15,240,0,48,12,14,28, - 14,1,0,255,0,255,192,225,224,224,224,224,224,225,224,255, - 192,255,128,225,192,224,224,224,224,224,224,224,224,224,240,11, - 14,28,13,1,0,63,128,127,192,241,224,224,224,240,0,126, - 0,63,128,15,192,1,224,224,224,224,224,241,224,127,192,63, - 128,11,14,28,11,0,0,255,224,255,224,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,12,14,28,14,1,0,224,112,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,127,224,31,128,13,14,28,13,0,0,224,56,224,56,112, - 112,112,112,48,96,56,224,56,224,29,192,29,192,13,128,15, - 128,15,128,7,0,7,0,15,14,28,17,1,0,227,142,227, - 142,227,142,227,142,115,156,115,156,115,156,118,220,54,216,54, - 216,62,248,28,112,28,112,28,112,12,14,28,12,0,0,224, - 112,224,112,112,224,121,224,25,128,31,128,15,0,31,128,25, - 128,57,192,112,224,112,224,224,112,224,112,13,14,28,13,0, - 0,224,56,224,56,112,112,56,224,56,224,29,192,29,192,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,10,14,28, - 12,1,0,255,192,255,192,1,192,3,128,7,0,7,0,14, - 0,28,0,56,0,56,0,112,0,224,0,255,192,255,192,5, - 18,18,6,1,252,248,248,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,248,248,5,14,14,5,0,0,192,192,192, - 224,96,96,96,112,48,48,56,24,24,24,5,18,18,6,0, - 252,248,248,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,248,248,10,7,14,10,0,6,12,0,30,0,30,0,51, - 0,115,128,97,128,225,192,10,2,4,10,0,252,255,192,255, - 192,5,3,3,5,0,11,224,112,56,10,10,20,11,1,0, - 62,0,127,0,99,128,7,128,63,128,123,128,227,128,231,128, - 251,128,123,192,10,14,28,12,1,0,224,0,224,0,224,0, - 224,0,239,0,255,128,243,128,225,192,225,192,225,192,225,192, - 243,128,255,128,239,0,9,10,20,11,1,0,30,0,127,128, - 115,128,224,0,224,0,224,0,224,0,115,128,127,128,30,0, - 10,14,28,12,1,0,1,192,1,192,1,192,1,192,61,192, - 127,192,115,192,225,192,225,192,225,192,225,192,115,192,127,192, - 61,192,9,10,20,11,1,0,30,0,127,0,115,128,225,128, - 255,128,255,128,224,0,115,128,127,128,30,0,7,14,14,7, - 0,0,30,62,56,56,254,254,56,56,56,56,56,56,56,56, - 10,14,28,12,1,252,61,192,127,192,115,192,225,192,225,192, - 225,192,225,192,115,192,127,192,61,192,1,192,115,128,127,128, - 30,0,9,14,28,11,1,0,224,0,224,0,224,0,224,0, - 239,0,255,128,243,128,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,3,14,14,5,1,0,224,224,224,0,224,224, - 224,224,224,224,224,224,224,224,5,18,18,5,255,252,56,56, - 56,0,56,56,56,56,56,56,56,56,56,56,56,56,248,240, - 9,14,28,10,1,0,224,0,224,0,224,0,224,0,231,0, - 238,0,252,0,248,0,248,0,252,0,238,0,231,0,231,128, - 227,128,3,14,14,5,1,0,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,15,10,20,17,1,0,239,60,255,254, - 243,206,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 9,10,20,11,1,0,239,0,255,128,243,128,227,128,227,128, - 227,128,227,128,227,128,227,128,227,128,10,10,20,12,1,0, - 30,0,127,128,115,128,225,192,225,192,225,192,225,192,115,128, - 127,128,30,0,10,14,28,12,1,252,239,0,255,128,243,128, - 225,192,225,192,225,192,225,192,243,128,255,128,239,0,224,0, - 224,0,224,0,224,0,10,14,28,12,1,252,61,192,127,192, - 115,192,225,192,225,192,225,192,225,192,115,192,127,192,61,192, - 1,192,1,192,1,192,1,192,6,10,10,7,1,0,236,252, - 252,224,224,224,224,224,224,224,9,10,20,11,1,0,63,0, - 127,128,227,128,224,0,255,0,63,128,3,128,227,128,255,0, - 126,0,6,13,13,6,0,0,112,112,112,252,252,112,112,112, - 112,112,112,124,60,9,10,20,11,1,0,227,128,227,128,227, - 128,227,128,227,128,227,128,227,128,231,128,255,128,123,128,9, - 10,20,9,0,0,227,128,227,128,227,128,119,0,119,0,119, - 0,62,0,62,0,28,0,28,0,15,10,20,15,0,0,227, - 142,227,142,227,142,115,156,119,220,118,220,62,248,60,120,28, - 112,28,112,9,10,20,11,1,0,227,128,227,128,119,0,62, - 0,28,0,62,0,119,0,119,0,227,128,227,128,9,14,28, - 11,1,252,227,128,227,128,227,128,119,0,119,0,119,0,62, - 0,62,0,28,0,28,0,28,0,24,0,120,0,112,0,8, - 10,10,10,1,0,255,255,7,14,28,56,112,224,255,255,7, - 18,18,8,1,252,14,28,56,56,56,56,56,112,224,112,56, - 56,56,56,56,56,28,14,2,18,18,5,1,252,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,7, - 18,18,8,0,252,224,112,56,56,56,56,56,28,14,28,56, - 56,56,56,56,56,112,224,9,3,6,11,1,4,121,128,255, - 128,207,0,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=17 dx=24 dy= 0 ascent=24 len=72 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18[7527] U8G_FONT_SECTION("u8g_font_helvB18") = { - 0,28,37,254,248,19,4,35,9,107,32,255,251,24,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 6,0,1,3,19,19,7,2,251,224,224,224,0,0,96,96, - 96,224,224,224,224,224,224,224,224,224,224,224,11,18,36,14, - 1,254,1,128,1,128,31,128,63,192,123,224,115,96,227,0, - 230,0,230,0,230,0,230,0,236,0,236,224,125,224,127,192, - 63,128,24,0,24,0,13,18,36,14,1,0,31,128,63,192, - 112,224,112,224,112,0,120,0,56,0,28,0,255,192,255,192, - 28,0,28,0,28,0,56,0,56,0,127,56,255,248,241,240, - 12,12,24,14,1,3,192,48,239,112,127,224,57,192,112,224, - 112,224,112,224,112,224,57,192,127,224,239,112,192,48,13,18, - 36,14,0,0,224,56,224,56,112,112,112,112,56,224,56,224, - 29,192,29,192,127,240,127,240,7,0,127,240,127,240,7,0, - 7,0,7,0,7,0,7,0,2,24,24,7,3,251,192,192, - 192,192,192,192,192,192,192,192,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,12,24,48,14,1,251,31,128,63,192, - 121,224,112,224,120,224,60,0,30,0,127,0,247,128,227,192, - 225,224,224,224,112,112,120,112,60,112,30,224,15,192,7,128, - 3,192,113,224,112,224,121,224,63,192,31,128,7,2,2,9, - 1,16,238,238,19,19,57,19,0,0,1,240,0,15,254,0, - 30,15,0,56,3,128,112,1,192,97,240,192,227,184,224,198, - 12,96,198,0,96,198,0,96,198,0,96,198,12,96,227,184, - 224,97,240,192,112,1,192,56,3,128,30,15,0,15,254,0, - 1,240,0,8,12,12,10,1,7,124,254,198,30,126,230,198, - 255,123,0,255,255,10,8,16,13,1,3,29,192,59,128,119, - 0,238,0,238,0,119,0,59,128,29,192,12,7,14,15,1, - 4,255,240,255,240,0,48,0,48,0,48,0,48,0,48,7, - 3,3,8,0,6,254,254,254,19,19,57,19,0,0,3,248, - 0,15,254,0,28,15,0,56,3,128,115,249,192,99,28,192, - 227,12,224,195,12,96,195,24,96,195,240,96,195,48,96,195, - 24,96,227,24,96,99,12,224,112,0,192,56,1,192,30,3, - 128,15,254,0,3,248,0,7,2,2,9,1,17,254,254,8, - 7,7,9,0,11,60,102,195,195,195,102,60,11,13,26,15, - 2,0,14,0,14,0,14,0,14,0,255,224,255,224,14,0, - 14,0,14,0,14,0,0,0,255,224,255,224,6,10,10,7, - 0,8,120,252,204,12,28,120,224,192,252,252,6,10,10,7, - 0,8,120,252,204,12,56,56,12,204,252,120,6,4,4,8, - 1,15,28,56,112,224,11,19,38,15,2,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 225,224,243,224,254,224,236,224,224,0,224,0,224,0,224,0, - 224,0,11,24,48,13,1,251,15,224,63,224,124,192,124,192, - 252,192,252,192,252,192,252,192,252,192,124,192,124,192,60,192, - 28,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,3,3,3,7,2,6,224,224, - 224,6,6,6,8,1,251,112,120,28,28,252,120,4,10,10, - 7,1,8,48,48,240,240,48,48,48,48,48,48,8,12,12, - 10,1,7,60,126,231,195,195,195,231,126,60,0,255,255,10, - 8,16,13,1,3,238,0,119,0,59,128,29,192,29,192,59, - 128,119,0,238,0,17,18,54,19,1,0,48,24,0,48,24, - 0,240,48,0,240,48,0,48,96,0,48,96,0,48,192,0, - 48,192,0,49,134,0,49,142,0,3,30,0,3,30,0,6, - 54,0,6,102,0,12,127,128,12,127,128,24,6,0,24,6, - 0,16,18,36,19,1,0,48,24,48,24,240,48,240,48,48, - 96,48,96,48,192,48,192,49,158,49,191,3,51,3,3,6, - 7,6,30,12,56,12,48,24,63,24,63,17,18,54,19,1, - 0,120,24,0,252,24,0,204,48,0,12,48,0,56,96,0, - 56,96,0,12,192,0,204,192,0,253,134,0,121,142,0,3, - 30,0,3,30,0,6,54,0,6,102,0,12,127,128,12,127, - 128,24,6,0,24,6,0,11,19,38,15,2,251,14,0,14, - 0,14,0,0,0,0,0,14,0,14,0,14,0,14,0,28, - 0,60,0,120,0,112,0,240,224,224,224,225,224,243,192,127, - 192,63,0,16,24,48,18,1,0,14,0,7,0,3,128,1, - 192,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,24,48,18,1,0,0, - 112,0,224,1,192,3,128,0,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,16, - 24,48,18,1,0,1,192,3,224,7,112,14,56,0,0,3, - 192,3,192,7,224,7,224,14,96,14,112,14,112,28,56,28, - 56,28,56,56,28,56,28,63,252,127,254,112,14,112,14,224, - 7,224,7,224,7,16,23,46,18,1,0,7,152,15,248,12, - 240,0,0,3,192,3,192,7,224,7,224,14,96,14,112,14, - 112,28,56,28,56,28,56,56,28,56,28,63,252,127,254,112, - 14,112,14,224,7,224,7,224,7,16,23,46,18,1,0,14, - 112,14,112,0,0,0,0,3,192,3,192,7,224,7,224,14, - 96,14,112,14,112,28,56,28,56,28,56,56,28,56,28,63, - 252,127,254,112,14,112,14,224,7,224,7,224,7,16,24,48, - 18,1,0,3,192,6,96,4,32,6,96,3,192,3,192,3, - 192,7,224,7,224,14,96,14,112,14,112,28,56,28,56,28, - 56,56,28,56,28,63,252,127,254,112,14,112,14,224,7,224, - 7,224,7,22,19,57,24,1,0,3,255,248,3,255,248,7, - 112,0,7,112,0,14,112,0,14,112,0,14,112,0,28,112, - 0,28,127,240,28,127,240,56,112,0,56,112,0,63,240,0, - 127,240,0,112,112,0,112,112,0,224,112,0,224,127,252,224, - 127,252,16,24,48,18,1,251,7,240,31,252,62,62,120,15, - 112,7,240,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,240,7,112,7,120,15,62,62,31,252,7,240,3,192, - 0,224,0,224,7,224,3,192,13,24,48,16,2,0,56,0, - 28,0,14,0,7,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,13,24, - 48,16,2,0,1,192,3,128,7,0,14,0,0,0,255,240, - 255,240,224,0,224,0,224,0,224,0,224,0,224,0,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,248,255,248,13,24,48,16,2,0,7,0,15,128,29,192, - 56,224,0,0,255,240,255,240,224,0,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,255,248,255,248,13,23,46,16,2,0, - 56,224,56,224,0,0,0,0,255,240,255,240,224,0,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,255,248,255,248,6,24, - 24,7,0,0,224,112,56,28,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,6,24,24,7, - 1,0,28,56,112,224,0,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,112,112,9,24,48,7,255,0, - 28,0,62,0,119,0,227,128,0,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 7,23,23,7,0,0,238,238,0,0,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,19,19,57, - 19,255,0,31,252,0,31,255,0,28,15,128,28,3,192,28, - 1,192,28,1,224,28,0,224,28,0,224,255,192,224,255,192, - 224,28,0,224,28,0,224,28,0,224,28,1,224,28,1,192, - 28,3,192,28,15,128,31,255,0,31,252,0,15,23,46,19, - 2,0,15,48,31,240,25,224,0,0,224,14,240,14,240,14, - 248,14,248,14,252,14,238,14,238,14,231,14,227,142,227,142, - 225,206,224,206,224,238,224,126,224,62,224,62,224,30,224,14, - 17,24,72,19,1,0,14,0,0,7,0,0,3,128,0,1, - 192,0,0,0,0,7,240,0,31,252,0,62,62,0,120,15, - 0,112,7,0,240,7,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,240,7,128,112, - 7,0,120,15,0,62,62,0,31,252,0,7,240,0,17,24, - 72,19,1,0,0,56,0,0,112,0,0,224,0,1,192,0, - 0,0,0,7,240,0,31,252,0,62,62,0,120,15,0,112, - 7,0,240,7,128,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,224,3,128,240,7,128,112,7,0, - 120,15,0,62,62,0,31,252,0,7,240,0,17,24,72,19, - 1,0,1,192,0,3,224,0,7,112,0,14,56,0,0,0, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,7,128,224,3,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,240,7,128,112,7,0,120,15, - 0,62,62,0,31,252,0,7,240,0,17,23,69,19,1,0, - 7,152,0,15,248,0,12,240,0,0,0,0,7,240,0,31, - 252,0,62,62,0,120,15,0,112,7,0,240,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,240,7,128,112,7,0,120,15,0,62,62,0,31, - 252,0,7,240,0,17,23,69,19,1,0,14,56,0,14,56, - 0,0,0,0,0,0,0,7,240,0,31,252,0,62,62,0, - 120,15,0,112,7,0,240,7,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,240,7, - 128,112,7,0,120,15,0,62,62,0,31,252,0,7,240,0, - 12,12,24,15,1,1,64,32,224,112,112,224,57,192,31,128, - 15,0,15,0,31,128,57,192,112,224,224,112,64,32,19,19, - 57,19,0,0,3,248,96,15,254,224,31,31,192,60,3,128, - 56,7,128,120,15,192,112,29,192,112,57,192,112,113,192,112, - 225,192,113,193,192,115,129,192,119,1,192,126,3,192,60,3, - 128,60,7,128,127,31,0,239,254,0,195,248,0,15,24,48, - 19,2,0,14,0,7,0,3,128,1,192,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,19,2,0,0,112,0,224,1,192,3, - 128,0,0,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,112,28,124,124,63,248,15,224,15,24,48,19,2,0,3, - 128,7,192,14,224,28,112,0,0,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,240,30,112,28,124,124,63,248,15,224,15, - 23,46,19,2,0,28,112,28,112,0,0,0,0,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,240,30,112,28,124,124,63, - 248,15,224,15,24,48,17,1,0,0,112,0,224,1,192,3, - 128,0,0,224,14,240,30,112,28,120,60,56,56,60,120,28, - 112,30,240,14,224,15,224,7,192,7,192,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,14,19,38,17,2,0,224, - 0,224,0,224,0,224,0,255,224,255,248,224,56,224,28,224, - 28,224,28,224,28,224,56,255,248,255,240,224,0,224,0,224, - 0,224,0,224,0,11,19,38,14,2,0,30,0,127,128,243, - 128,225,192,225,192,225,192,225,192,227,128,239,0,239,128,227, - 192,225,192,224,224,224,224,224,224,224,224,225,192,239,192,239, - 128,12,19,38,14,1,0,28,0,14,0,7,0,3,128,0, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 14,1,0,1,192,3,128,7,0,14,0,0,0,31,128,63, - 192,113,224,112,224,0,224,7,224,63,224,124,224,240,224,224, - 224,225,224,243,224,127,240,62,112,12,19,38,14,1,0,7, - 0,15,128,29,192,56,224,0,0,31,128,63,192,113,224,112, - 224,0,224,7,224,63,224,124,224,240,224,224,224,225,224,243, - 224,127,240,62,112,12,19,38,14,1,0,60,192,127,192,103, - 128,0,0,0,0,31,128,63,192,113,224,112,224,0,224,7, - 224,63,224,124,224,240,224,224,224,225,224,243,224,127,240,62, - 112,12,18,36,14,1,0,57,192,57,192,0,0,0,0,31, - 128,63,192,113,224,112,224,0,224,7,224,63,224,124,224,240, - 224,224,224,225,224,243,224,127,240,62,112,12,19,38,14,1, - 0,7,0,13,128,8,128,13,128,7,0,31,128,63,192,113, - 224,112,224,0,224,7,224,63,224,124,224,240,224,224,224,225, - 224,243,224,127,240,62,112,20,14,42,22,1,0,31,143,0, - 63,255,192,113,249,224,112,240,224,0,224,112,7,224,112,63, - 255,240,124,255,240,240,224,0,224,224,0,225,240,112,243,248, - 240,127,63,224,62,15,128,11,19,38,13,1,251,31,128,63, - 192,121,224,112,224,224,0,224,0,224,0,224,0,224,0,224, - 0,112,224,121,224,63,192,31,128,30,0,7,0,7,0,63, - 0,30,0,12,19,38,14,1,0,28,0,14,0,7,0,3, - 128,0,0,15,0,63,192,121,224,112,224,224,112,224,112,255, - 240,255,240,224,0,224,0,112,112,120,240,63,224,15,128,12, - 19,38,14,1,0,3,128,7,0,14,0,28,0,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,255,240,255,240,224, - 0,224,0,112,112,120,240,63,224,15,128,12,19,38,14,1, - 0,7,0,15,128,29,192,56,224,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,255,240,255,240,224,0,224,0,112, - 112,120,240,63,224,15,128,12,18,36,14,1,0,57,192,57, - 192,0,0,0,0,15,0,63,192,121,224,112,224,224,112,224, - 112,255,240,255,240,224,0,224,0,112,112,120,240,63,224,15, - 128,6,19,19,7,0,0,224,112,56,28,0,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,6,19,19,7,1,0, - 28,56,112,224,0,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,9,19,38,7,255,0,28,0,62,0,119,0,227, - 128,0,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,7, - 18,18,7,0,0,238,238,0,0,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,12,19,38,14,1,0,112,0,29, - 192,7,0,31,0,97,128,15,192,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,11,19,38,15,2,0,60,192,127,192,103,128,0, - 0,0,0,239,128,255,192,241,192,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,12, - 19,38,14,1,0,28,0,14,0,7,0,3,128,0,0,15, - 0,63,192,121,224,112,224,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,121,224,63,192,15,0,12,19,38,14,1, - 0,3,128,7,0,14,0,28,0,0,0,15,0,63,192,121, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,112, - 224,121,224,63,192,15,0,12,19,38,14,1,0,14,0,31, - 0,59,128,113,192,0,0,15,0,63,192,121,224,112,224,224, - 112,224,112,224,112,224,112,224,112,224,112,112,224,121,224,63, - 192,15,0,12,19,38,14,1,0,60,192,127,192,103,128,0, - 0,0,0,15,0,63,192,121,224,112,224,224,112,224,112,224, - 112,224,112,224,112,224,112,112,224,121,224,63,192,15,0,12, - 18,36,14,1,0,57,192,57,192,0,0,0,0,15,0,63, - 192,121,224,112,224,224,112,224,112,224,112,224,112,224,112,224, - 112,112,224,121,224,63,192,15,0,11,12,24,15,2,1,14, - 0,14,0,14,0,0,0,0,0,255,224,255,224,0,0,0, - 0,14,0,14,0,14,0,14,14,28,14,0,0,7,140,31, - 252,60,248,56,112,112,248,113,248,115,184,119,56,126,56,124, - 56,56,112,124,240,255,224,199,128,11,19,38,15,2,0,56, - 0,28,0,14,0,7,0,0,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,225,224,115, - 224,126,224,28,224,11,19,38,15,2,0,3,128,7,0,14, - 0,28,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,225,224,115,224,126,224,28, - 224,11,19,38,15,2,0,14,0,31,0,59,128,113,192,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,225,224,115,224,126,224,28,224,11,18,36, - 15,2,0,57,192,57,192,0,0,0,0,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,225, - 224,115,224,126,224,28,224,13,24,48,15,1,251,0,224,1, - 192,3,128,7,0,0,0,224,56,224,56,112,56,120,112,56, - 112,60,240,28,224,28,224,15,192,15,192,7,192,7,128,3, - 128,3,128,7,0,7,0,14,0,62,0,60,0,12,24,48, - 15,2,251,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,224,0,224,0,224,0,224, - 0,224,0,13,23,46,15,1,251,28,224,28,224,0,0,0, - 0,224,56,224,56,112,56,120,112,56,112,60,240,28,224,28, - 224,15,192,15,192,7,192,7,128,3,128,3,128,7,0,7, - 0,14,0,62,0,60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=12 h=19 x= 2 y=12 dx=15 dy= 0 ascent=19 len=36 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =19 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18n[537] U8G_FONT_SECTION("u8g_font_helvB18n") = { - 0,28,37,254,248,18,0,0,0,0,42,58,0,19,253,18, - 0,8,7,7,10,1,12,24,24,219,255,60,102,102,12,12, - 24,15,1,1,6,0,6,0,6,0,6,0,6,0,255,240, - 255,240,6,0,6,0,6,0,6,0,6,0,3,6,6,7, - 2,253,224,224,224,96,96,192,7,3,3,8,0,6,254,254, - 254,3,3,3,7,2,0,224,224,224,7,19,19,8,1,0, - 6,6,6,12,12,12,24,24,24,24,48,48,48,96,96,96, - 192,192,192,12,18,36,13,0,0,31,128,63,192,121,224,112, - 224,112,224,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,112,224,112,224,121,224,63,192,31,128,7,18,18, - 13,2,0,14,14,30,254,254,14,14,14,14,14,14,14,14, - 14,14,14,14,14,12,18,36,13,0,0,31,0,127,192,113, - 224,224,224,224,112,224,112,0,112,0,224,1,224,3,192,7, - 128,31,0,60,0,120,0,240,0,224,0,255,240,255,240,12, - 18,36,13,0,0,31,0,127,192,113,192,224,224,224,224,224, - 224,0,224,1,192,15,128,15,224,0,224,0,112,0,112,224, - 112,224,240,113,224,127,224,31,128,12,18,36,13,0,0,1, - 192,3,192,3,192,7,192,7,192,13,192,29,192,25,192,49, - 192,113,192,97,192,225,192,255,240,255,240,1,192,1,192,1, - 192,1,192,12,18,36,13,0,0,127,224,127,224,112,0,112, - 0,112,0,112,0,127,128,127,192,113,224,0,224,0,112,0, - 112,0,112,224,112,224,240,241,224,127,192,31,128,12,18,36, - 13,0,0,15,128,63,224,120,224,112,112,224,112,224,0,224, - 0,239,0,255,192,249,224,240,224,224,112,224,112,224,112,112, - 224,121,224,63,192,31,128,12,18,36,13,0,0,255,240,255, - 240,0,240,0,224,1,192,1,192,3,128,3,128,7,0,7, - 0,14,0,14,0,30,0,28,0,28,0,60,0,56,0,56, - 0,12,18,36,13,0,0,15,0,63,192,57,192,112,224,112, - 224,112,224,112,224,57,192,31,128,63,192,112,224,224,112,224, - 112,224,112,224,112,112,224,127,224,31,128,12,18,36,13,0, - 0,31,128,127,192,121,224,240,224,224,112,224,112,224,112,224, - 112,240,240,121,240,127,240,31,112,0,112,0,112,224,224,243, - 224,127,192,31,0,3,14,14,7,2,0,224,224,224,0,0, - 0,0,0,0,0,0,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=24 dy= 0 ascent=19 len=66 - Font Bounding box w=28 h=37 x=-2 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB18r[3453] U8G_FONT_SECTION("u8g_font_helvB18r") = { - 0,28,37,254,248,19,4,35,9,107,32,127,251,19,251,19, - 251,0,0,0,6,0,1,3,19,19,7,2,0,224,224,224, - 224,224,224,224,224,224,224,224,192,192,192,0,0,224,224,224, - 5,6,6,9,2,13,216,216,216,216,216,144,12,18,36,14, - 1,0,12,192,12,192,12,192,12,192,12,192,127,240,127,240, - 25,128,25,128,25,128,25,128,255,224,255,224,51,0,51,0, - 51,0,51,0,51,0,12,21,42,13,0,254,6,0,63,128, - 127,224,246,224,230,112,230,112,246,0,126,0,62,0,15,0, - 7,192,7,224,6,240,230,112,230,112,230,112,246,240,127,224, - 31,192,6,0,6,0,21,18,54,22,0,0,0,7,0,62, - 7,0,127,14,0,227,142,0,193,156,0,193,156,0,227,184, - 0,127,56,0,62,112,0,0,112,0,0,227,224,0,231,240, - 1,206,56,1,204,24,3,140,24,3,142,56,7,7,240,7, - 3,224,16,18,36,18,1,0,15,128,31,192,61,224,56,224, - 56,224,56,224,29,192,15,128,31,0,63,156,123,220,113,252, - 224,248,224,112,224,248,241,252,127,206,31,135,2,6,6,6, - 2,13,192,192,192,192,192,128,6,24,24,8,1,251,12,28, - 56,56,112,112,96,224,224,224,224,224,224,224,224,224,224,96, - 112,112,56,56,28,12,6,24,24,8,1,251,192,224,112,112, - 56,56,24,28,28,28,28,28,28,28,28,28,28,24,56,56, - 112,112,224,192,8,7,7,10,1,12,24,24,219,255,60,102, - 102,12,12,24,15,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,3, - 6,6,7,2,253,224,224,224,96,96,192,7,3,3,8,0, - 6,254,254,254,3,3,3,7,2,0,224,224,224,7,19,19, - 8,1,0,6,6,6,12,12,12,24,24,24,24,48,48,48, - 96,96,96,192,192,192,12,18,36,13,0,0,31,128,63,192, - 121,224,112,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,112,224,112,224,121,224,63,192,31,128, - 7,18,18,13,2,0,14,14,30,254,254,14,14,14,14,14, - 14,14,14,14,14,14,14,14,12,18,36,13,0,0,31,0, - 127,192,113,224,224,224,224,112,224,112,0,112,0,224,1,224, - 3,192,7,128,31,0,60,0,120,0,240,0,224,0,255,240, - 255,240,12,18,36,13,0,0,31,0,127,192,113,192,224,224, - 224,224,224,224,0,224,1,192,15,128,15,224,0,224,0,112, - 0,112,224,112,224,240,113,224,127,224,31,128,12,18,36,13, - 0,0,1,192,3,192,3,192,7,192,7,192,13,192,29,192, - 25,192,49,192,113,192,97,192,225,192,255,240,255,240,1,192, - 1,192,1,192,1,192,12,18,36,13,0,0,127,224,127,224, - 112,0,112,0,112,0,112,0,127,128,127,192,113,224,0,224, - 0,112,0,112,0,112,224,112,224,240,241,224,127,192,31,128, - 12,18,36,13,0,0,15,128,63,224,120,224,112,112,224,112, - 224,0,224,0,239,0,255,192,249,224,240,224,224,112,224,112, - 224,112,112,224,121,224,63,192,31,128,12,18,36,13,0,0, - 255,240,255,240,0,240,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,14,0,14,0,30,0,28,0,28,0,60,0, - 56,0,56,0,12,18,36,13,0,0,15,0,63,192,57,192, - 112,224,112,224,112,224,112,224,57,192,31,128,63,192,112,224, - 224,112,224,112,224,112,224,112,112,224,127,224,31,128,12,18, - 36,13,0,0,31,128,127,192,121,224,240,224,224,112,224,112, - 224,112,224,112,240,240,121,240,127,240,31,112,0,112,0,112, - 224,224,243,224,127,192,31,0,3,14,14,7,2,0,224,224, - 224,0,0,0,0,0,0,0,0,224,224,224,3,17,17,7, - 2,253,224,224,224,0,0,0,0,0,0,0,0,224,224,224, - 96,96,192,13,12,24,15,0,1,0,56,0,248,3,224,15, - 128,62,0,240,0,240,0,62,0,15,128,3,224,0,248,0, - 56,10,5,10,14,2,5,255,192,255,192,0,0,255,192,255, - 192,13,12,24,14,1,1,224,0,248,0,62,0,15,128,3, - 224,0,120,0,120,3,224,15,128,62,0,248,0,224,0,11, - 19,38,15,2,0,31,128,127,192,121,224,240,224,224,224,225, - 224,1,192,3,192,7,128,7,0,14,0,14,0,14,0,14, - 0,0,0,0,0,14,0,14,0,14,0,22,22,66,24,1, - 252,1,255,0,7,255,192,15,129,240,30,0,120,60,0,56, - 120,125,156,112,255,156,241,199,28,227,135,28,227,14,28,231, - 14,56,231,12,56,231,28,112,231,28,112,227,157,224,243,255, - 192,113,247,0,120,0,0,60,0,0,31,7,0,15,255,0, - 3,252,0,16,19,38,18,1,0,3,192,3,192,7,224,7, - 224,14,96,14,112,14,112,28,56,28,56,28,56,56,28,56, - 28,63,252,127,254,112,14,112,14,224,7,224,7,224,7,15, - 19,38,18,2,0,255,224,255,248,224,120,224,28,224,28,224, - 28,224,28,224,56,255,240,255,248,224,28,224,14,224,14,224, - 14,224,14,224,30,224,124,255,248,255,224,16,19,38,18,1, - 0,7,240,31,252,62,62,120,15,112,7,240,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,240,7,112,7,120, - 15,62,62,31,252,7,240,16,19,38,19,2,0,255,224,255, - 248,224,124,224,30,224,14,224,15,224,7,224,7,224,7,224, - 7,224,7,224,7,224,7,224,15,224,14,224,30,224,124,255, - 248,255,224,13,19,38,16,2,0,255,240,255,240,224,0,224, - 0,224,0,224,0,224,0,224,0,255,224,255,224,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,255,248,255,248,12, - 19,38,15,2,0,255,240,255,240,224,0,224,0,224,0,224, - 0,224,0,224,0,255,224,255,224,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,17,19,57,19,1, - 0,7,240,0,31,252,0,62,62,0,120,15,0,112,7,0, - 240,0,0,224,0,0,224,0,0,224,0,0,224,127,128,224, - 127,128,224,3,128,224,3,128,240,3,128,112,7,128,120,15, - 128,62,63,128,31,251,128,7,243,128,15,19,38,19,2,0, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 255,254,255,254,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,224,14,224,14,3,19,19,7,2,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,11, - 19,38,14,1,0,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,224,224,224, - 224,224,224,224,224,113,224,127,192,63,128,14,19,38,18,2, - 0,224,60,224,120,224,240,225,224,227,192,231,128,239,0,254, - 0,254,0,255,0,247,128,227,128,225,192,225,224,224,224,224, - 112,224,120,224,56,224,60,12,19,38,15,2,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,255, - 240,255,240,19,19,57,23,2,0,224,0,224,240,1,224,240, - 1,224,248,3,224,248,3,224,252,7,224,236,6,224,238,14, - 224,230,12,224,231,28,224,231,28,224,227,24,224,227,184,224, - 227,184,224,225,240,224,225,240,224,224,224,224,224,224,224,224, - 224,224,15,19,38,19,2,0,224,14,240,14,240,14,248,14, - 248,14,252,14,238,14,238,14,231,14,227,142,227,142,225,206, - 224,206,224,238,224,126,224,62,224,62,224,30,224,14,17,19, - 57,19,1,0,7,240,0,31,252,0,62,62,0,120,15,0, - 112,7,0,240,7,128,224,3,128,224,3,128,224,3,128,224, - 3,128,224,3,128,224,3,128,224,3,128,240,7,128,112,7, - 0,120,15,0,62,62,0,31,252,0,7,240,0,14,19,38, - 17,2,0,255,224,255,248,224,56,224,28,224,28,224,28,224, - 28,224,56,255,248,255,240,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,17,20,60,19,1,255,7, - 240,0,31,252,0,62,62,0,120,15,0,112,7,0,240,7, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,3,128, - 224,3,128,224,3,128,240,39,128,112,119,0,120,63,0,62, - 30,0,31,254,0,7,247,0,0,2,0,14,19,38,17,2, - 0,255,224,255,248,224,56,224,28,224,28,224,28,224,28,224, - 56,255,248,255,240,224,120,224,56,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,14,19,38,17,2,0,15,192,63, - 240,120,248,240,56,224,56,224,0,240,0,124,0,63,192,7, - 240,0,248,0,60,0,28,224,28,224,28,224,60,248,248,127, - 240,31,192,15,19,38,15,0,0,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 19,38,19,2,0,224,14,224,14,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,112,28,124,124,63,248,15,224,16,19,38,18,1, - 0,224,7,224,7,240,15,112,14,120,30,56,28,56,28,60, - 60,28,56,28,56,30,120,14,112,14,112,14,112,7,224,7, - 224,3,192,3,192,3,192,21,19,57,23,1,0,224,112,56, - 224,112,56,224,112,56,224,112,56,112,248,112,112,248,112,112, - 216,112,113,220,112,49,220,96,57,220,224,57,140,224,59,142, - 224,27,142,192,27,142,192,31,7,192,31,7,192,14,3,128, - 14,3,128,14,3,128,16,19,38,18,1,0,224,7,240,15, - 120,30,56,28,28,56,14,112,15,240,7,224,3,192,3,192, - 7,224,15,240,14,112,28,56,60,60,56,28,112,14,240,15, - 224,7,15,19,38,17,1,0,224,14,240,14,112,28,120,28, - 56,56,60,56,28,112,28,112,14,224,14,224,7,192,7,192, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,14,19, - 38,16,1,0,255,252,255,252,0,60,0,120,0,240,1,224, - 1,224,3,192,7,128,7,128,15,0,30,0,30,0,60,0, - 56,0,120,0,240,0,255,252,255,252,5,24,24,8,1,251, - 248,248,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,248,248,7,19,19,8,0,0,192,192, - 192,96,96,96,48,48,48,48,24,24,24,12,12,12,6,6, - 6,5,24,24,8,2,251,248,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,248,248,11, - 9,18,14,1,10,14,0,14,0,31,0,27,0,59,128,113, - 192,113,192,224,224,224,224,14,2,4,14,0,251,255,252,255, - 252,6,4,4,8,1,15,224,112,56,28,12,14,28,14,1, - 0,31,128,63,192,113,224,112,224,0,224,7,224,63,224,124, - 224,240,224,224,224,225,224,243,224,127,240,62,112,12,19,38, - 15,2,0,224,0,224,0,224,0,224,0,224,0,239,128,255, - 192,249,224,240,224,224,112,224,112,224,112,224,112,224,112,224, - 112,240,224,249,224,255,192,239,128,11,14,28,13,1,0,31, - 128,63,192,121,224,112,224,224,0,224,0,224,0,224,0,224, - 0,224,0,112,224,121,224,63,192,31,128,12,19,38,15,1, - 0,0,112,0,112,0,112,0,112,0,112,31,112,63,240,121, - 240,112,240,224,112,224,112,224,112,224,112,224,112,224,112,112, - 240,121,240,63,240,31,112,12,14,28,14,1,0,15,0,63, - 192,121,224,112,224,224,112,224,112,255,240,255,240,224,0,224, - 0,112,112,120,240,63,224,15,128,7,19,19,9,1,0,30, - 62,56,56,56,254,254,56,56,56,56,56,56,56,56,56,56, - 56,56,12,19,38,15,1,251,31,112,63,240,121,240,112,240, - 224,112,224,112,224,112,224,112,224,112,224,112,112,240,121,240, - 63,240,31,112,0,112,224,112,240,224,127,224,31,128,11,19, - 38,15,2,0,224,0,224,0,224,0,224,0,224,0,239,0, - 255,192,241,192,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,3,19,19,7,2,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,5,24,24,7,0,251,56,56,56,0,0,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,248, - 240,11,19,38,14,2,0,224,0,224,0,224,0,224,0,224, - 0,225,192,227,192,231,128,239,0,254,0,252,0,254,0,239, - 0,231,0,231,128,227,192,225,192,225,224,224,224,3,19,19, - 7,2,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,17,14,42,21,2,0,239,62,0,255, - 255,0,243,231,128,225,195,128,225,195,128,225,195,128,225,195, - 128,225,195,128,225,195,128,225,195,128,225,195,128,225,195,128, - 225,195,128,225,195,128,11,14,28,15,2,0,239,128,255,192, - 241,192,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,12,14,28,14,1,0,15,0, - 63,192,121,224,112,224,224,112,224,112,224,112,224,112,224,112, - 224,112,112,224,121,224,63,192,15,0,12,19,38,15,2,251, - 239,128,255,192,249,224,240,224,224,112,224,112,224,112,224,112, - 224,112,224,112,240,224,249,224,255,192,239,128,224,0,224,0, - 224,0,224,0,224,0,12,19,38,15,1,251,31,112,63,240, - 121,240,112,240,224,112,224,112,224,112,224,112,224,112,224,112, - 112,240,121,240,63,240,31,112,0,112,0,112,0,112,0,112, - 0,112,7,14,14,10,2,0,238,254,254,240,224,224,224,224, - 224,224,224,224,224,224,11,14,28,13,1,0,63,0,127,128, - 243,192,225,192,224,0,252,0,127,128,15,192,1,224,224,224, - 224,224,241,224,127,192,63,128,7,18,18,9,1,0,56,56, - 56,56,254,254,56,56,56,56,56,56,56,56,56,56,62,30, - 11,14,28,15,2,0,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,225,224,115,224,126,224, - 28,224,12,14,28,14,1,0,224,112,224,112,224,112,112,224, - 112,224,112,224,57,192,57,192,57,192,31,128,31,128,15,0, - 15,0,15,0,19,14,42,19,0,0,224,224,224,224,224,224, - 96,224,192,113,241,192,113,241,192,49,177,128,51,185,128,59, - 187,128,27,27,0,31,31,0,31,31,0,14,14,0,14,14, - 0,14,14,0,11,14,28,13,1,0,224,224,241,224,113,192, - 59,128,63,128,31,0,14,0,31,0,31,0,59,128,123,192, - 113,192,241,224,224,224,13,19,38,15,1,251,224,56,224,56, - 112,56,120,112,56,112,60,240,28,224,28,224,15,192,15,192, - 7,192,7,128,3,128,3,128,7,0,7,0,14,0,62,0, - 60,0,11,14,28,13,1,0,255,224,255,224,1,192,3,128, - 7,128,15,0,14,0,30,0,60,0,56,0,112,0,240,0, - 255,224,255,224,7,24,24,10,1,251,14,28,56,56,56,56, - 56,56,56,56,112,224,224,112,56,56,56,56,56,56,56,56, - 28,14,2,24,24,7,3,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 7,24,24,10,2,251,224,112,56,56,56,56,56,56,56,56, - 28,14,14,28,56,56,56,56,56,56,56,56,112,224,11,4, - 8,14,1,5,120,224,254,224,239,224,227,192,255}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=31 h=32 x= 4 y=21 dx=33 dy= 0 ascent=31 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24[11554] U8G_FONT_SECTION("u8g_font_helvB24") = { - 0,40,49,250,244,25,5,252,14,144,32,255,249,31,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,9,0,1,5,24,24,11,2,250,248,248,248,248,248,0, - 0,112,112,112,112,112,112,248,248,248,248,248,248,248,248,248, - 248,248,15,24,48,18,1,253,0,32,0,32,0,96,7,240, - 31,248,63,252,127,252,124,190,248,158,249,158,241,128,241,128, - 243,0,243,0,243,30,250,30,126,62,127,252,63,248,31,240, - 15,192,12,0,8,0,8,0,17,24,72,18,0,0,3,240, - 0,31,252,0,63,254,0,63,255,0,126,31,0,124,15,128, - 124,15,128,124,7,128,124,0,0,126,0,0,62,0,0,255, - 240,0,255,240,0,31,0,0,15,0,0,15,0,0,15,0, - 0,31,0,0,30,0,0,61,227,0,127,255,128,255,255,128, - 255,255,0,96,126,0,15,15,30,18,1,4,224,14,247,222, - 255,254,127,252,60,120,120,60,112,28,112,28,112,28,120,60, - 60,120,127,252,255,254,247,222,224,14,18,24,72,18,0,0, - 248,7,192,248,7,192,124,15,128,60,15,0,30,30,0,30, - 30,0,15,60,0,15,60,0,7,248,0,7,248,0,3,240, - 0,1,224,0,63,255,0,63,255,0,1,224,0,1,224,0, - 63,255,0,63,255,0,1,224,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,3,31,31,9,3,250,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,0,0,0, - 0,224,224,224,224,224,224,224,224,224,224,224,224,16,32,64, - 18,1,249,15,240,31,248,63,248,126,124,124,60,124,60,126, - 0,127,0,63,192,31,224,63,248,127,252,113,254,240,255,240, - 63,248,31,252,15,127,15,127,159,63,254,31,248,7,252,1, - 254,0,126,0,62,120,30,120,30,124,62,63,252,63,252,31, - 248,7,224,10,4,8,11,0,21,243,192,243,192,243,192,243, - 192,26,25,100,24,0,0,0,127,128,0,3,255,224,0,7, - 128,248,0,31,0,60,0,28,0,14,0,56,0,7,0,112, - 63,3,0,112,127,131,128,224,243,193,128,225,192,225,192,193, - 192,224,192,195,128,0,192,195,128,0,192,195,128,0,192,195, - 128,0,192,193,192,224,192,225,192,225,192,224,243,195,128,96, - 127,131,128,112,63,7,0,56,0,14,0,30,0,60,0,15, - 128,248,0,7,255,224,0,1,255,128,0,9,16,32,12,1, - 9,62,0,127,0,227,128,195,128,31,128,127,128,243,128,227, - 128,227,128,255,128,123,128,0,0,0,0,255,128,255,128,255, - 128,12,13,26,18,3,2,8,16,24,48,56,112,120,240,241, - 224,225,192,225,192,241,224,249,240,120,240,56,112,24,48,8, - 16,16,10,20,19,1,4,255,255,255,255,255,255,255,255,0, - 15,0,15,0,15,0,15,0,15,0,15,9,5,10,11,1, - 7,255,128,255,128,255,128,255,128,255,128,26,25,100,24,0, - 0,0,255,128,0,3,255,224,0,7,128,248,0,30,0,60, - 0,28,0,14,0,56,255,135,0,112,255,195,0,112,225,227, - 128,224,224,225,128,224,224,225,128,192,224,225,192,192,225,193, - 192,192,255,129,192,192,255,1,192,192,227,129,192,192,227,193, - 192,224,225,193,128,224,224,227,128,112,224,243,128,112,224,119, - 0,56,0,14,0,30,0,28,0,15,128,120,0,7,255,224, - 0,1,255,128,0,10,3,6,11,0,21,255,192,255,192,255, - 192,9,10,20,13,2,14,62,0,127,0,99,0,193,128,193, - 128,193,128,193,128,99,0,127,0,62,0,16,22,44,19,1, - 0,3,192,3,192,3,192,3,192,3,192,3,192,255,255,255, - 255,255,255,255,255,3,192,3,192,3,192,3,192,3,192,3, - 192,0,0,0,0,255,255,255,255,255,255,255,255,10,15,30, - 11,0,9,63,0,127,128,243,192,225,192,225,192,1,192,3, - 192,7,128,15,0,62,0,120,0,112,0,255,192,255,192,255, - 192,10,15,30,11,0,9,30,0,127,128,243,192,225,192,225, - 192,3,192,15,128,15,128,3,192,1,192,225,192,225,192,243, - 192,127,128,62,0,6,5,5,11,4,20,60,120,112,224,224, - 15,25,50,20,2,249,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,255,254,255,222,247,158,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,17,31,93,18,0,250,15,255, - 128,31,255,128,63,140,0,127,140,0,127,140,0,255,140,0, - 255,140,0,255,140,0,255,140,0,255,140,0,127,140,0,127, - 140,0,63,140,0,63,140,0,15,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,4,5,5,9,2, - 11,96,240,240,240,96,7,8,8,11,2,249,48,48,48,124, - 30,14,252,248,6,15,15,11,2,9,28,60,252,252,28,28, - 28,28,28,28,28,28,28,28,28,10,16,32,12,1,9,63, - 0,127,128,115,128,225,192,225,192,225,192,225,192,225,192,115, - 128,127,128,63,0,0,0,0,0,255,192,255,192,255,192,12, - 12,24,18,3,3,129,0,193,128,225,192,241,224,120,240,56, - 112,56,112,120,240,241,224,225,192,193,128,129,0,26,24,96, - 28,0,0,0,0,56,0,6,0,112,0,30,0,112,0,254, - 0,224,0,254,1,192,0,14,1,192,0,14,3,128,0,14, - 3,128,0,14,7,0,0,14,7,0,0,14,14,7,0,14, - 28,15,0,14,28,31,0,14,56,31,0,0,56,55,0,0, - 112,103,0,0,112,231,0,0,224,199,0,1,193,135,0,1, - 193,255,192,3,129,255,192,3,128,7,0,7,0,7,0,7, - 0,7,0,25,24,96,28,1,0,0,0,224,0,12,1,192, - 0,28,1,192,0,252,3,128,0,252,3,128,0,28,7,0, - 0,28,14,0,0,28,14,0,0,28,28,0,0,28,28,0, - 0,28,56,126,0,28,48,255,0,28,113,231,128,28,225,195, - 128,0,225,195,128,1,192,7,128,1,192,15,0,3,128,30, - 0,7,0,60,0,7,0,120,0,14,0,240,0,14,1,255, - 128,28,1,255,128,28,1,255,128,25,24,96,27,1,0,63, - 0,28,0,127,128,56,0,243,192,56,0,225,192,112,0,225, - 192,224,0,3,192,224,0,15,129,192,0,15,129,192,0,15, - 195,128,0,1,199,0,0,225,199,14,0,225,206,30,0,243, - 206,30,0,127,156,62,0,63,28,126,0,0,56,238,0,0, - 112,206,0,0,113,142,0,0,227,142,0,0,227,255,128,1, - 195,255,128,1,192,14,0,3,128,14,0,3,128,14,0,16, - 24,48,20,1,250,3,224,3,224,3,224,3,224,0,0,0, - 0,3,192,3,192,3,192,7,192,31,128,63,128,127,0,126, - 0,252,0,248,15,248,15,248,15,252,31,126,127,127,254,63, - 254,63,252,15,240,22,31,93,23,0,0,3,192,0,1,224, - 0,0,240,0,0,120,0,0,60,0,0,0,0,0,252,0, - 0,252,0,1,254,0,1,254,0,1,254,0,3,255,0,3, - 255,0,3,255,0,7,207,128,7,207,128,7,207,128,15,135, - 128,15,135,192,15,135,192,31,3,192,31,3,224,31,255,224, - 31,255,224,63,255,240,63,255,240,62,1,240,124,0,248,124, - 0,248,252,0,252,248,0,124,22,31,93,23,0,0,0,15, - 0,0,30,0,0,60,0,0,120,0,0,240,0,0,0,0, - 0,252,0,0,252,0,1,254,0,1,254,0,1,254,0,3, - 255,0,3,255,0,3,255,0,7,207,128,7,207,128,7,207, - 128,15,135,128,15,135,192,15,135,192,31,3,192,31,3,224, - 31,255,224,31,255,224,63,255,240,63,255,240,62,1,240,124, - 0,248,124,0,248,252,0,252,248,0,124,22,31,93,23,0, - 0,0,48,0,0,120,0,0,252,0,1,206,0,3,135,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,30, - 90,23,0,0,0,241,128,1,255,128,3,255,0,3,30,0, - 0,0,0,0,252,0,0,252,0,1,254,0,1,254,0,1, - 254,0,3,255,0,3,255,0,3,255,0,7,207,128,7,207, - 128,7,207,128,15,135,128,15,135,192,15,135,192,31,3,192, - 31,3,224,31,255,224,31,255,224,63,255,240,63,255,240,62, - 1,240,124,0,248,124,0,248,252,0,252,248,0,124,22,31, - 93,23,0,0,3,207,0,3,207,0,3,207,0,3,207,0, - 0,0,0,0,0,0,0,252,0,0,252,0,1,254,0,1, - 254,0,1,254,0,3,255,0,3,255,0,3,255,0,7,207, - 128,7,207,128,7,207,128,15,135,128,15,135,192,15,135,192, - 31,3,192,31,3,224,31,255,224,31,255,224,63,255,240,63, - 255,240,62,1,240,124,0,248,124,0,248,252,0,252,248,0, - 124,22,31,93,23,0,0,0,120,0,0,204,0,0,132,0, - 0,132,0,0,204,0,0,120,0,0,0,0,0,252,0,1, - 254,0,1,254,0,1,254,0,3,255,0,3,255,0,3,255, - 0,7,207,128,7,207,128,7,207,128,15,135,128,15,135,192, - 15,135,192,31,3,192,31,3,224,31,255,224,31,255,224,63, - 255,240,63,255,240,62,1,240,124,0,248,124,0,248,252,0, - 252,248,0,124,31,25,100,32,0,0,0,255,255,252,0,255, - 255,252,0,255,255,252,1,255,255,252,1,243,192,0,1,227, - 192,0,3,227,192,0,3,227,192,0,3,195,192,0,7,195, - 192,0,7,195,192,0,7,195,255,248,15,131,255,248,15,131, - 255,248,15,131,255,248,31,3,192,0,31,255,192,0,31,255, - 192,0,63,255,192,0,63,255,192,0,62,3,192,0,124,3, - 255,254,124,3,255,254,248,3,255,254,248,3,255,254,21,32, - 96,23,1,249,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,240,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,252,0,0, - 96,0,0,96,0,0,248,0,0,28,0,0,28,0,1,248, - 0,1,240,0,18,31,93,22,2,0,30,0,0,15,0,0, - 7,128,0,3,192,0,1,224,0,0,0,0,255,255,128,255, - 255,128,255,255,128,255,255,128,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,255,255,0,255,255,0, - 255,255,0,255,255,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,255,255,192,255,255, - 192,255,255,192,255,255,192,18,31,93,22,2,0,0,120,0, - 0,240,0,1,224,0,3,192,0,7,128,0,0,0,0,255, - 255,128,255,255,128,255,255,128,255,255,128,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,255,255,0, - 255,255,0,255,255,0,255,255,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,255,255, - 192,255,255,192,255,255,192,255,255,192,18,31,93,22,2,0, - 0,192,0,1,224,0,3,240,0,7,56,0,14,28,0,0, - 0,0,255,255,128,255,255,128,255,255,128,255,255,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 255,255,0,255,255,0,255,255,0,255,255,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,255,255,192,255,255,192,255,255,192,255,255,192,18,31,93, - 22,2,0,30,60,0,30,60,0,30,60,0,30,60,0,0, - 0,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,248,0,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,255,255,0,255,255,0,255,255,0,255,255,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,192,255,255,192,255,255,192,255,255,192, - 8,31,31,9,0,0,240,120,60,30,15,0,62,62,62,62, - 62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62, - 62,62,62,62,62,8,31,31,9,2,0,15,30,60,120,240, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,10,31,62,9,0,0, - 12,0,30,0,63,0,115,128,225,192,0,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,10,31, - 62,9,0,0,243,192,243,192,243,192,243,192,0,0,0,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,23,25,75,23,255,0,31,255,128,31,255,224,31,255, - 240,31,255,248,31,7,248,31,0,252,31,0,252,31,0,124, - 31,0,126,31,0,62,31,0,62,255,240,62,255,240,62,255, - 240,62,31,0,62,31,0,62,31,0,124,31,0,124,31,0, - 124,31,0,248,31,3,248,31,255,240,31,255,240,31,255,192, - 31,255,128,19,30,90,24,2,0,3,198,0,7,254,0,15, - 252,0,12,120,0,0,0,0,248,3,224,252,3,224,252,3, - 224,254,3,224,254,3,224,255,3,224,255,3,224,255,131,224, - 255,195,224,251,195,224,251,227,224,249,227,224,249,243,224,248, - 243,224,248,251,224,248,123,224,248,63,224,248,63,224,248,31, - 224,248,31,224,248,15,224,248,15,224,248,7,224,248,7,224, - 248,3,224,23,31,93,25,1,0,1,224,0,0,240,0,0, - 120,0,0,60,0,0,30,0,0,0,0,1,255,0,7,255, - 192,15,255,224,31,255,240,63,199,248,63,1,248,126,0,252, - 124,0,124,124,0,124,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,124,0,124,124,0, - 124,126,0,252,63,1,248,63,199,248,31,255,240,15,255,224, - 7,255,192,1,255,0,23,31,93,25,1,0,0,7,128,0, - 15,0,0,30,0,0,60,0,0,120,0,0,0,0,1,255, - 0,7,255,192,15,255,224,31,255,240,63,199,248,63,1,248, - 126,0,252,124,0,124,124,0,124,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,124,0, - 124,124,0,124,126,0,252,63,1,248,63,199,248,31,255,240, - 15,255,224,7,255,192,1,255,0,23,31,93,25,1,0,0, - 24,0,0,60,0,0,126,0,0,231,0,1,195,128,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,30,90,25, - 1,0,0,120,192,0,255,192,1,255,128,1,143,0,0,0, - 0,1,255,0,7,255,192,15,255,224,31,255,240,63,199,248, - 63,1,248,126,0,252,124,0,124,124,0,124,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,124,0,124,124,0,124,126,0,252,63,1,248,63,199,248, - 31,255,240,15,255,224,7,255,192,1,255,0,23,31,93,25, - 1,0,1,231,128,1,231,128,1,231,128,1,231,128,0,0, - 0,0,0,0,1,255,0,7,255,192,15,255,224,31,255,240, - 63,199,248,63,1,248,126,0,252,124,0,124,124,0,124,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,248,0, - 62,248,0,62,124,0,124,124,0,124,126,0,252,63,1,248, - 63,199,248,31,255,240,15,255,224,7,255,192,1,255,0,15, - 16,32,19,2,0,32,8,112,28,248,62,252,126,126,252,63, - 248,31,240,15,224,15,224,31,240,63,248,126,252,252,126,248, - 62,112,28,32,8,24,25,75,25,1,0,1,255,7,7,255, - 206,15,255,252,31,255,248,63,199,248,63,0,248,126,1,252, - 124,3,252,124,7,188,248,7,62,248,14,62,248,28,62,248, - 56,62,248,112,62,248,224,62,248,224,62,125,192,124,127,128, - 124,127,0,252,63,1,248,63,199,248,63,255,240,63,255,224, - 119,255,192,225,255,0,19,31,93,24,2,0,7,128,0,3, - 192,0,1,224,0,0,240,0,0,120,0,0,0,0,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,252,7,224,127,31,192,127,255,192, - 63,255,128,31,255,0,7,252,0,19,31,93,24,2,0,0, - 30,0,0,60,0,0,120,0,0,240,0,1,224,0,0,0, - 0,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,252,7,224,127,31,192, - 127,255,192,63,255,128,31,255,0,7,252,0,19,31,93,24, - 2,0,0,96,0,0,240,0,1,248,0,3,156,0,7,14, - 0,0,0,0,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,252,7,224, - 127,31,192,127,255,192,63,255,128,31,255,0,7,252,0,19, - 31,93,24,2,0,15,30,0,15,30,0,15,30,0,15,30, - 0,0,0,0,0,0,0,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 252,7,224,127,31,192,127,255,192,63,255,128,31,255,0,7, - 252,0,20,31,93,22,1,0,0,30,0,0,60,0,0,120, - 0,0,240,0,1,224,0,0,0,0,252,3,240,252,3,240, - 126,7,224,62,7,192,63,15,192,63,15,128,31,15,128,31, - 159,0,15,159,0,15,254,0,7,254,0,7,252,0,3,252, - 0,3,248,0,3,248,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,18,25,75,22,2,0,248,0,0,248,0, - 0,248,0,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,254, - 0,255,252,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,17,25,75,20,2,0,15,192,0,63, - 240,0,127,252,0,255,252,0,248,126,0,248,62,0,240,62, - 0,240,62,0,240,124,0,240,252,0,241,248,0,241,252,0, - 241,254,0,240,127,0,240,31,0,240,31,128,240,15,128,240, - 15,128,240,15,128,240,31,128,240,63,0,241,255,0,241,254, - 0,241,252,0,241,240,0,15,25,50,18,1,0,15,0,7, - 128,3,128,1,192,0,224,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 25,50,18,1,0,0,120,0,240,0,224,1,192,3,128,0, - 0,0,0,15,240,63,252,127,252,124,62,248,30,248,30,1, - 254,15,254,63,254,127,30,248,30,240,30,240,62,248,126,255, - 254,255,254,127,222,63,30,15,25,50,18,1,0,1,128,3, - 192,7,224,14,112,28,56,0,0,0,0,15,240,63,252,127, - 252,124,62,248,30,248,30,1,254,15,254,63,254,127,30,248, - 30,240,30,240,62,248,126,255,254,255,254,127,222,63,30,15, - 24,48,18,1,0,7,140,15,252,31,248,24,240,0,0,0, - 0,15,240,63,252,127,252,124,62,248,30,248,30,1,254,15, - 254,63,254,127,30,248,30,240,30,240,62,248,126,255,254,255, - 254,127,222,63,30,15,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,15,240,63,252,127,252,124,62,248, - 30,248,30,1,254,15,254,63,254,127,30,248,30,240,30,240, - 62,248,126,255,254,255,254,127,222,63,30,15,25,50,18,1, - 0,3,192,6,96,4,32,4,32,6,96,3,192,0,0,15, - 240,63,252,127,252,124,62,248,30,248,30,1,254,15,254,63, - 254,127,30,248,30,248,30,240,62,248,126,255,254,255,254,127, - 222,63,30,26,19,76,29,1,0,7,224,248,0,31,251,254, - 0,63,255,255,0,63,255,255,0,124,63,15,128,120,30,7, - 128,120,30,7,192,0,62,7,192,7,255,255,192,63,255,255, - 192,127,255,255,192,124,30,0,0,248,30,0,0,248,30,7, - 192,252,63,15,192,255,255,255,128,127,247,255,0,63,227,254, - 0,15,129,248,0,15,25,50,18,1,249,7,224,31,248,63, - 252,63,252,124,62,120,30,248,30,240,0,240,0,240,0,240, - 0,248,30,248,30,124,62,127,252,63,248,31,248,7,224,3, - 0,3,0,7,192,0,224,0,224,15,192,15,128,16,25,50, - 18,1,0,15,0,7,128,3,128,1,192,0,224,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,25,50,18,1,0,0,120,0,240,0, - 224,1,192,3,128,0,0,0,0,7,224,31,248,63,252,127, - 254,124,62,248,30,240,31,255,255,255,255,255,255,240,0,240, - 0,248,30,124,62,127,254,63,252,31,240,7,192,16,25,50, - 18,1,0,1,128,3,192,7,224,14,112,28,56,0,0,0, - 0,7,224,31,248,63,252,127,254,124,62,248,30,240,31,255, - 255,255,255,255,255,240,0,240,0,248,30,124,62,127,254,63, - 252,31,240,7,192,16,24,48,18,1,0,30,120,30,120,30, - 120,30,120,0,0,0,0,7,224,31,248,63,252,127,254,124, - 62,248,30,240,31,255,255,255,255,255,255,240,0,240,0,248, - 30,124,62,127,254,63,252,31,240,7,192,7,25,25,9,1, - 0,240,120,56,28,14,0,0,30,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,6,25,25,9,2,0, - 60,56,112,112,224,0,0,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,10,25,50,9,255,0,12, - 0,30,0,63,0,115,128,225,192,0,0,0,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,10,24,48,9,255,0,243,192,243,192,243,192,243,192,0, - 0,0,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,17,26,78,20,1,0,48,0,0, - 120,32,0,124,240,0,63,224,0,31,192,0,63,224,0,115, - 240,0,33,248,0,7,252,0,31,254,0,63,254,0,127,255, - 0,124,31,0,248,15,128,248,15,128,240,7,128,240,7,128, - 240,7,128,248,15,128,248,15,128,252,31,128,126,63,0,127, - 255,0,63,254,0,31,252,0,7,240,0,15,24,48,20,2, - 0,15,24,31,248,63,240,49,224,0,0,0,0,243,240,247, - 248,255,252,255,254,252,62,248,62,240,30,240,30,240,30,240, - 30,240,30,240,30,240,30,240,30,240,30,240,30,240,30,240, - 30,17,25,75,20,1,0,7,128,0,3,192,0,1,192,0, - 1,224,0,0,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,25,75,20,1,0,0,120,0,0,240,0,0,224, - 0,1,192,0,3,192,0,0,0,0,0,0,0,7,240,0, - 31,252,0,63,254,0,127,255,0,124,31,0,248,15,128,248, - 15,128,240,7,128,240,7,128,240,7,128,240,7,128,248,15, - 128,248,15,128,124,31,0,127,255,0,63,254,0,31,252,0, - 7,240,0,17,25,75,20,1,0,0,192,0,1,224,0,3, - 240,0,7,56,0,14,28,0,0,0,0,0,0,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,17,24,72,20,1,0,7,140,0,15,252,0, - 31,248,0,24,240,0,0,0,0,0,0,0,7,240,0,31, - 252,0,63,254,0,127,255,0,124,31,0,248,15,128,248,15, - 128,240,7,128,240,7,128,240,7,128,240,7,128,248,15,128, - 248,15,128,124,31,0,127,255,0,63,254,0,31,252,0,7, - 240,0,17,24,72,20,1,0,30,60,0,30,60,0,30,60, - 0,30,60,0,0,0,0,0,0,0,7,240,0,31,252,0, - 63,254,0,127,255,0,124,31,0,248,15,128,248,15,128,240, - 7,128,240,7,128,240,7,128,240,7,128,248,15,128,248,15, - 128,124,31,0,127,255,0,63,254,0,31,252,0,7,240,0, - 16,16,32,19,1,0,3,192,3,192,3,192,3,192,0,0, - 0,0,255,255,255,255,255,255,255,255,0,0,0,0,3,192, - 3,192,3,192,3,192,21,18,54,20,255,0,1,252,56,7, - 255,112,15,255,224,31,255,192,31,143,192,62,7,224,62,15, - 224,60,29,224,60,57,224,60,113,224,62,227,224,63,131,224, - 63,7,224,31,143,192,31,255,192,63,255,128,119,255,0,225, - 252,0,15,25,50,20,2,0,30,0,15,0,7,0,3,128, - 1,192,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 0,240,1,224,1,192,3,128,7,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,15,25,50,20,2,0,3,0,7,128,15,192,28,224, - 56,112,0,0,0,0,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,248,62, - 248,126,255,254,127,254,127,222,31,30,15,25,50,20,2,0, - 60,120,60,120,60,120,60,120,0,0,0,0,0,0,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,248,62,248,126,255,254,127,254,127,222, - 31,30,16,32,64,19,1,249,0,120,0,240,1,224,1,192, - 3,128,0,0,0,0,248,31,248,31,248,31,120,30,124,62, - 124,60,60,60,60,60,62,120,62,120,30,120,31,240,31,240, - 15,240,15,224,7,224,7,224,7,192,7,192,7,192,15,128, - 63,128,63,0,63,0,60,0,16,32,64,20,2,249,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,243,240,247,252, - 255,254,255,254,252,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,252,62,255,254,255,252,247,248,241,240, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,31, - 62,19,1,249,30,120,30,120,30,120,30,120,0,0,0,0, - 248,31,248,31,248,31,120,62,124,62,124,60,124,60,62,124, - 62,120,62,120,30,120,31,240,31,240,15,240,15,224,7,224, - 7,224,7,192,7,192,7,192,15,128,63,128,63,0,63,0, - 60,0}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=17 h=25 x= 3 y=13 dx=19 dy= 0 ascent=25 len=72 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24n[743] U8G_FONT_SECTION("u8g_font_helvB24n") = { - 0,40,49,250,244,23,0,0,0,0,42,58,0,25,250,23, - 0,10,11,22,13,1,13,12,0,12,0,76,128,237,192,255, - 192,127,128,30,0,63,0,127,128,115,128,33,0,16,16,32, - 19,1,0,3,192,3,192,3,192,3,192,3,192,3,192,255, - 255,255,255,255,255,255,255,3,192,3,192,3,192,3,192,3, - 192,3,192,5,11,11,9,2,250,248,248,248,248,248,24,24, - 56,112,224,128,9,5,10,11,1,7,255,128,255,128,255,128, - 255,128,255,128,5,5,5,9,2,0,248,248,248,248,248,8, - 25,25,9,0,0,3,3,3,3,6,6,6,14,12,12,12, - 28,24,24,24,48,48,48,112,96,96,96,192,192,192,15,24, - 48,18,1,0,15,224,31,240,63,248,127,252,124,124,248,62, - 248,62,248,62,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,248,62,248,62,248,62,124,124,127,252,63,248, - 31,240,15,224,10,23,46,18,2,0,1,192,3,192,7,192, - 31,192,255,192,255,192,255,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,16,24,48,18,1,0,15,224, - 63,248,127,252,127,254,252,126,248,63,248,31,240,31,240,31, - 0,63,0,62,0,126,0,252,1,248,7,240,15,224,31,128, - 63,0,126,0,252,0,255,255,255,255,255,255,255,255,16,24, - 48,18,1,0,15,224,63,248,127,252,127,252,248,62,240,62, - 240,30,240,30,0,62,0,124,3,248,3,240,3,252,0,126, - 0,63,0,31,240,31,240,31,240,63,248,62,127,254,127,252, - 63,248,15,224,16,24,48,18,1,0,0,248,0,248,1,248, - 3,248,3,248,7,248,15,120,14,120,30,120,28,120,60,120, - 120,120,112,120,240,120,224,120,255,255,255,255,255,255,255,255, - 0,120,0,120,0,120,0,120,0,120,15,24,48,18,1,0, - 63,252,63,252,63,252,63,252,56,0,120,0,120,0,120,0, - 123,224,127,248,127,252,127,252,120,126,0,62,0,62,0,30, - 0,30,240,62,240,62,248,124,127,252,127,248,63,240,15,192, - 15,24,48,18,1,0,7,224,31,248,63,252,63,254,124,62, - 120,30,240,0,240,0,243,224,247,248,255,252,255,252,252,126, - 248,62,240,30,240,30,240,30,240,30,248,62,124,124,127,252, - 63,248,31,240,7,192,16,24,48,18,1,0,255,255,255,255, - 255,255,255,255,0,30,0,62,0,60,0,120,0,248,0,240, - 1,240,1,224,3,224,3,192,7,192,7,192,7,128,15,128, - 15,128,15,128,31,0,31,0,31,0,31,0,17,24,72,18, - 0,0,7,240,0,31,252,0,63,254,0,62,62,0,124,31, - 0,120,15,0,120,15,0,120,15,0,124,31,0,62,62,0, - 31,252,0,31,252,0,63,254,0,124,31,0,248,15,128,240, - 7,128,240,7,128,240,7,128,248,15,128,126,63,0,127,254, - 0,63,254,0,31,252,0,7,240,0,15,24,48,18,1,0, - 7,192,31,240,63,248,127,252,124,124,248,62,240,30,240,30, - 240,30,240,30,248,62,252,126,127,254,127,254,63,222,7,158, - 0,30,0,30,240,60,248,124,127,248,127,248,31,240,7,192, - 5,17,17,11,3,0,248,248,248,248,248,0,0,0,0,0, - 0,0,248,248,248,248,248}; -/* - Fontname: -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 23 - Calculated Max Values w=29 h=32 x= 3 y=20 dx=33 dy= 0 ascent=25 len=120 - Font Bounding box w=40 h=49 x=-6 y=-12 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvB24r[5214] U8G_FONT_SECTION("u8g_font_helvB24r") = { - 0,40,49,250,244,25,5,252,14,144,32,127,249,25,249,25, - 249,0,0,0,9,0,1,5,25,25,11,3,0,248,248,248, - 248,248,248,248,248,248,248,248,112,112,112,112,112,112,112,0, - 0,248,248,248,248,248,11,9,18,16,2,16,241,224,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,18,25, - 75,19,0,255,3,199,0,3,199,0,3,143,0,3,143,0, - 7,143,0,7,142,0,7,142,0,127,255,192,127,255,192,127, - 255,192,127,255,192,15,28,0,14,28,0,14,28,0,14,60, - 0,255,255,128,255,255,128,255,255,128,255,255,128,28,120,0, - 60,120,0,60,112,0,60,112,0,56,240,0,56,240,0,16, - 28,56,18,1,253,1,128,1,128,15,240,63,252,127,254,253, - 190,249,159,241,159,241,143,249,128,255,128,127,192,63,240,15, - 252,1,254,1,255,1,159,1,143,241,143,241,159,249,159,127, - 254,127,254,63,248,7,224,1,128,1,128,1,128,26,23,92, - 29,1,0,14,0,48,0,63,128,112,0,127,192,96,0,113, - 192,224,0,224,224,192,0,224,225,192,0,224,227,128,0,224, - 227,128,0,113,199,0,0,127,198,0,0,63,142,0,0,14, - 12,28,0,0,28,127,0,0,24,255,128,0,56,227,128,0, - 49,193,192,0,113,193,192,0,97,193,192,0,225,193,192,1, - 192,227,128,1,192,255,128,3,128,127,0,3,0,28,0,20, - 25,75,24,2,0,3,224,0,15,248,0,31,252,0,31,252, - 0,30,60,0,62,60,0,62,60,0,31,60,0,31,248,0, - 15,248,0,15,240,0,15,224,0,63,241,224,127,241,224,124, - 249,192,248,255,192,240,127,192,240,63,128,240,31,0,248,15, - 128,252,63,192,127,255,224,127,251,224,31,241,240,7,192,0, - 4,9,9,8,2,16,240,240,240,240,240,240,240,96,96,8, - 31,31,11,1,250,7,15,30,30,60,60,56,120,120,120,240, - 240,240,240,240,240,240,240,240,248,120,120,120,120,60,60,28, - 30,14,15,7,8,31,31,11,1,250,224,240,120,120,60,60, - 28,30,30,30,15,15,15,15,15,15,15,15,15,31,30,30, - 30,28,60,60,56,120,112,240,224,10,11,22,13,1,13,12, - 0,12,0,76,128,237,192,255,192,127,128,30,0,63,0,127, - 128,115,128,33,0,16,16,32,19,1,0,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,5,11,11,9,2, - 250,248,248,248,248,248,24,24,56,112,224,128,9,5,10,11, - 1,7,255,128,255,128,255,128,255,128,255,128,5,5,5,9, - 2,0,248,248,248,248,248,8,25,25,9,0,0,3,3,3, - 3,6,6,6,14,12,12,12,28,24,24,24,48,48,48,112, - 96,96,96,192,192,192,15,24,48,18,1,0,15,224,31,240, - 63,248,127,252,124,124,248,62,248,62,248,62,240,30,240,30, - 240,30,240,30,240,30,240,30,240,30,240,30,248,62,248,62, - 248,62,124,124,127,252,63,248,31,240,15,224,10,23,46,18, - 2,0,1,192,3,192,7,192,31,192,255,192,255,192,255,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 16,24,48,18,1,0,15,224,63,248,127,252,127,254,252,126, - 248,63,248,31,240,31,240,31,0,63,0,62,0,126,0,252, - 1,248,7,240,15,224,31,128,63,0,126,0,252,0,255,255, - 255,255,255,255,255,255,16,24,48,18,1,0,15,224,63,248, - 127,252,127,252,248,62,240,62,240,30,240,30,0,62,0,124, - 3,248,3,240,3,252,0,126,0,63,0,31,240,31,240,31, - 240,63,248,62,127,254,127,252,63,248,15,224,16,24,48,18, - 1,0,0,248,0,248,1,248,3,248,3,248,7,248,15,120, - 14,120,30,120,28,120,60,120,120,120,112,120,240,120,224,120, - 255,255,255,255,255,255,255,255,0,120,0,120,0,120,0,120, - 0,120,15,24,48,18,1,0,63,252,63,252,63,252,63,252, - 56,0,120,0,120,0,120,0,123,224,127,248,127,252,127,252, - 120,126,0,62,0,62,0,30,0,30,240,62,240,62,248,124, - 127,252,127,248,63,240,15,192,15,24,48,18,1,0,7,224, - 31,248,63,252,63,254,124,62,120,30,240,0,240,0,243,224, - 247,248,255,252,255,252,252,126,248,62,240,30,240,30,240,30, - 240,30,248,62,124,124,127,252,63,248,31,240,7,192,16,24, - 48,18,1,0,255,255,255,255,255,255,255,255,0,30,0,62, - 0,60,0,120,0,248,0,240,1,240,1,224,3,224,3,192, - 7,192,7,192,7,128,15,128,15,128,15,128,31,0,31,0, - 31,0,31,0,17,24,72,18,0,0,7,240,0,31,252,0, - 63,254,0,62,62,0,124,31,0,120,15,0,120,15,0,120, - 15,0,124,31,0,62,62,0,31,252,0,31,252,0,63,254, - 0,124,31,0,248,15,128,240,7,128,240,7,128,240,7,128, - 248,15,128,126,63,0,127,254,0,63,254,0,31,252,0,7, - 240,0,15,24,48,18,1,0,7,192,31,240,63,248,127,252, - 124,124,248,62,240,30,240,30,240,30,240,30,248,62,252,126, - 127,254,127,254,63,222,7,158,0,30,0,30,240,60,248,124, - 127,248,127,248,31,240,7,192,5,17,17,11,3,0,248,248, - 248,248,248,0,0,0,0,0,0,0,248,248,248,248,248,5, - 23,23,11,3,250,248,248,248,248,248,0,0,0,0,0,0, - 0,248,248,248,248,248,24,24,56,112,224,128,16,16,32,19, - 1,0,0,3,0,31,0,127,3,255,15,254,127,248,255,192, - 254,0,254,0,255,192,127,240,15,254,3,255,0,127,0,31, - 0,3,15,12,24,19,2,2,255,254,255,254,255,254,255,254, - 0,0,0,0,0,0,0,0,255,254,255,254,255,254,255,254, - 16,16,32,19,1,0,192,0,240,0,254,0,255,192,127,240, - 31,254,3,255,0,127,0,127,3,255,31,254,127,240,255,192, - 254,0,240,0,192,0,16,25,50,20,2,0,15,224,63,248, - 127,252,127,254,252,126,248,63,248,31,240,31,240,31,0,63, - 0,126,0,254,1,252,1,248,3,224,3,192,7,192,7,192, - 0,0,0,0,7,192,7,192,7,192,7,192,7,192,29,30, - 120,33,1,251,0,15,224,0,0,127,252,0,1,255,254,0, - 3,240,63,128,7,192,7,192,15,0,3,192,30,0,1,224, - 28,0,0,240,60,7,220,112,56,31,252,112,112,60,252,56, - 112,120,120,56,240,240,56,56,224,224,56,56,225,224,56,56, - 225,192,112,120,225,192,112,112,225,192,112,112,225,224,240,224, - 241,225,241,224,112,255,255,192,120,127,63,128,56,62,30,0, - 60,0,0,0,30,0,0,0,15,128,0,0,15,240,60,0, - 3,255,252,0,1,255,252,0,0,127,224,0,22,25,75,23, - 0,0,0,252,0,0,252,0,1,254,0,1,254,0,1,254, - 0,3,255,0,3,255,0,3,255,0,7,207,128,7,207,128, - 7,207,128,15,135,128,15,135,192,15,135,192,31,3,192,31, - 3,224,31,255,224,31,255,224,63,255,240,63,255,240,62,1, - 240,124,0,248,124,0,248,252,0,252,248,0,124,19,25,75, - 24,3,0,255,252,0,255,255,0,255,255,128,255,255,128,248, - 15,192,248,7,192,248,7,192,248,7,192,248,7,192,248,15, - 128,255,255,0,255,255,0,255,255,128,255,255,192,248,7,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 7,224,255,255,192,255,255,192,255,255,128,255,254,0,21,25, - 75,24,1,0,1,254,0,7,255,128,15,255,192,31,255,224, - 63,135,240,62,1,240,124,1,248,124,0,248,124,0,248,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,124,0,248,124,0,248,126,1,248,62,1,240, - 63,135,240,31,255,224,15,255,192,7,255,128,1,254,0,21, - 25,75,24,2,0,255,248,0,255,255,0,255,255,128,255,255, - 192,248,15,224,248,3,224,248,3,240,248,1,240,248,1,248, - 248,0,248,248,0,248,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,1,248,248,1,240,248,3,240,248,3, - 224,248,15,224,255,255,192,255,255,128,255,255,0,255,248,0, - 18,25,75,22,2,0,255,255,128,255,255,128,255,255,128,255, - 255,128,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,255,255,0,255,255,0,255,255,0,255,255,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,255,255,192,255,255,192,255,255,192,255,255, - 192,16,25,50,20,2,0,255,255,255,255,255,255,255,255,248, - 0,248,0,248,0,248,0,248,0,248,0,255,254,255,254,255, - 254,255,254,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,22,25,75,25,1,0,0, - 255,0,3,255,192,15,255,224,31,255,240,31,195,248,63,0, - 248,126,0,124,124,0,124,252,0,0,248,0,0,248,0,0, - 248,0,0,248,15,252,248,15,252,248,15,252,248,15,252,252, - 0,124,124,0,124,126,0,124,126,0,252,63,131,252,63,255, - 252,31,255,220,7,255,156,3,254,28,19,25,75,23,2,0, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,255,255, - 224,255,255,224,255,255,224,255,255,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,5,25,25,9,2, - 0,248,248,248,248,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,248,248,248,248,248,15,25,50,18,1,0, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,248,62, - 248,62,248,62,248,62,248,62,252,126,255,252,127,252,63,248, - 15,224,20,25,75,24,2,0,248,7,224,248,7,224,248,15, - 192,248,31,128,248,63,0,248,126,0,248,252,0,248,248,0, - 249,248,0,251,240,0,255,224,0,255,224,0,255,240,0,255, - 240,0,255,248,0,252,252,0,248,126,0,248,126,0,248,63, - 0,248,31,128,248,15,128,248,15,192,248,7,224,248,3,240, - 248,3,240,16,25,50,20,2,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,255,255,255,255,255,255,255,255,23,25,75,27,2, - 0,254,0,254,254,0,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,131,254,255,131,254,251,131,190,251,131,190,251, - 199,190,251,199,190,251,199,190,249,199,62,249,239,62,249,239, - 62,249,239,62,249,239,62,248,238,62,248,254,62,248,254,62, - 248,254,62,248,124,62,248,124,62,248,124,62,19,25,75,24, - 2,0,248,3,224,252,3,224,252,3,224,254,3,224,254,3, - 224,255,3,224,255,3,224,255,131,224,255,195,224,251,195,224, - 251,227,224,249,227,224,249,243,224,248,243,224,248,251,224,248, - 123,224,248,63,224,248,63,224,248,31,224,248,31,224,248,15, - 224,248,15,224,248,7,224,248,7,224,248,3,224,23,25,75, - 25,1,0,1,255,0,7,255,192,15,255,224,31,255,240,63, - 199,248,63,1,248,126,0,252,124,0,124,124,0,124,248,0, - 62,248,0,62,248,0,62,248,0,62,248,0,62,248,0,62, - 248,0,62,124,0,124,124,0,124,126,0,252,63,1,248,63, - 199,248,31,255,240,15,255,224,7,255,192,1,255,0,18,25, - 75,22,2,0,255,248,0,255,254,0,255,255,0,255,255,128, - 248,31,128,248,15,192,248,7,192,248,7,192,248,7,192,248, - 7,192,248,15,192,248,31,128,255,255,128,255,255,0,255,252, - 0,255,240,0,248,0,0,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,23, - 26,78,26,1,255,1,255,0,7,255,192,15,255,224,31,255, - 240,63,199,248,63,1,248,126,0,252,124,0,124,252,0,126, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,2,62,252,7,62,124,15,188,126,15,252,63,7, - 248,63,195,240,31,255,248,15,255,252,7,255,254,1,255,60, - 0,0,24,19,25,75,24,2,0,255,254,0,255,255,128,255, - 255,192,255,255,192,248,7,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,7,192,248,15,192,255,255,128,255,255,0, - 255,255,0,255,255,128,248,15,192,248,7,192,248,7,192,248, - 7,192,248,7,192,248,7,192,248,7,192,248,7,192,248,7, - 224,248,3,224,19,25,75,22,1,0,3,248,0,15,254,0, - 31,255,0,63,255,128,62,31,128,124,7,192,120,7,192,120, - 3,192,124,0,0,127,0,0,63,240,0,63,254,0,31,255, - 128,3,255,192,0,63,192,0,7,224,0,3,224,248,3,224, - 248,3,224,124,3,224,126,15,192,63,255,192,31,255,128,15, - 255,0,3,248,0,19,25,75,20,0,0,255,255,224,255,255, - 224,255,255,224,255,255,224,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,19,25,75,24,2,0,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,252,7,224,127,31,192,127,255,192,63,255, - 128,31,255,0,7,252,0,20,25,75,22,1,0,248,1,240, - 248,1,240,124,3,224,124,3,224,124,3,224,60,3,192,62, - 7,192,62,7,192,30,7,128,31,15,128,31,15,128,15,15, - 0,15,15,0,15,15,0,7,158,0,7,158,0,7,158,0, - 7,254,0,3,252,0,3,252,0,3,252,0,1,248,0,1, - 248,0,1,248,0,0,240,0,29,25,100,31,1,0,248,31, - 129,248,248,31,129,248,120,31,129,240,120,31,129,240,120,31, - 129,240,124,63,195,224,124,63,195,224,124,63,195,224,60,63, - 195,224,60,57,195,192,62,121,227,192,62,121,231,192,30,121, - 231,192,30,121,231,128,30,112,231,128,30,112,231,128,15,240, - 255,0,15,240,255,0,15,240,255,0,15,224,127,0,7,224, - 126,0,7,224,126,0,7,224,126,0,3,192,60,0,3,192, - 60,0,20,25,75,22,1,0,252,3,224,126,7,224,126,7, - 192,63,15,192,31,15,128,31,159,0,15,159,0,15,190,0, - 7,254,0,7,252,0,3,252,0,3,248,0,1,248,0,3, - 248,0,3,252,0,7,252,0,7,254,0,15,191,0,31,159, - 0,31,31,128,63,15,128,62,15,192,126,7,192,252,7,224, - 252,3,240,20,25,75,22,1,0,252,3,240,252,3,224,126, - 7,224,62,7,192,63,15,192,63,15,128,31,15,128,31,159, - 0,15,159,0,15,254,0,7,254,0,7,252,0,3,252,0, - 3,248,0,3,248,0,1,240,0,1,240,0,1,240,0,1, - 240,0,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,17,25,75,20,1,0,255,255,128,255,255,128, - 255,255,128,255,255,128,0,15,128,0,31,128,0,63,0,0, - 126,0,0,124,0,0,252,0,1,248,0,3,240,0,3,240, - 0,7,224,0,15,192,0,15,128,0,31,128,0,63,0,0, - 126,0,0,126,0,0,252,0,0,255,255,128,255,255,128,255, - 255,128,255,255,128,8,31,31,11,2,250,255,255,255,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,255,255,255,9,25,50,9,0,0, - 192,0,192,0,224,0,96,0,96,0,112,0,112,0,48,0, - 56,0,56,0,24,0,28,0,28,0,12,0,12,0,14,0, - 14,0,6,0,7,0,7,0,3,0,3,128,3,128,1,128, - 1,128,8,31,31,11,0,250,255,255,255,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,255,255,255,14,14,28,19,2,9,7,128,15, - 192,15,192,15,192,31,224,31,224,60,240,60,240,56,112,120, - 120,120,120,112,60,240,60,240,60,18,2,6,18,0,250,255, - 255,192,255,255,192,5,5,5,11,2,20,224,240,112,120,56, - 15,18,36,18,1,0,15,240,63,252,127,252,124,62,248,30, - 248,30,0,254,15,254,63,254,127,30,248,30,248,30,240,62, - 248,126,255,254,255,254,127,222,63,30,16,25,50,20,2,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,243,240, - 247,252,255,252,255,254,252,62,248,31,240,31,240,15,240,15, - 240,15,240,15,240,31,240,31,248,62,255,254,255,252,247,248, - 241,240,15,18,36,18,1,0,7,224,31,248,63,252,63,252, - 124,62,120,62,240,30,240,0,240,0,240,0,240,0,240,30, - 248,30,124,62,127,252,63,248,31,248,7,224,16,25,50,20, - 1,0,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 15,207,31,239,63,255,127,255,124,63,248,31,240,15,240,15, - 240,15,240,15,240,15,240,15,248,31,124,63,127,255,63,239, - 31,239,15,143,16,18,36,18,1,0,7,224,31,248,63,252, - 127,254,124,62,248,31,240,31,255,255,255,255,255,255,240,0, - 240,0,248,30,124,62,127,252,63,252,31,240,7,192,10,25, - 50,11,0,0,7,192,15,192,31,192,31,0,30,0,30,0, - 30,0,255,192,255,192,255,192,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,16,25,50,20,1,249,15,207,31,239, - 63,255,127,255,124,63,248,31,248,31,240,15,240,15,240,15, - 240,15,248,31,248,31,124,63,127,255,63,255,31,239,15,207, - 0,15,248,31,248,31,126,126,127,254,63,252,15,240,15,25, - 50,20,2,0,240,0,240,0,240,0,240,0,240,0,240,0, - 240,0,241,224,247,248,255,252,255,252,252,62,248,30,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,4,25,25,9,2,0,240,240,240,240, - 0,0,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,6,32,32,9,0,249,60,60,60,60,0, - 0,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,252,252,248,248,15,25,50,19,2, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 62,240,124,240,248,241,240,243,224,247,192,255,128,255,192,255, - 192,255,224,255,224,249,240,241,240,240,248,240,120,240,124,240, - 62,240,62,4,25,25,9,2,0,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,24,18,54,30,2,0,241,224,248,247,251,254,255,255, - 254,255,255,255,252,127,31,248,62,15,240,60,15,240,60,15, - 240,60,15,240,60,15,240,60,15,240,60,15,240,60,15,240, - 60,15,240,60,15,240,60,15,240,60,15,240,60,15,15,18, - 36,20,2,0,241,240,247,252,255,252,255,254,252,62,248,30, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,17,18,54,20,1,0,7,240, - 0,31,252,0,63,254,0,127,255,0,124,31,0,248,15,128, - 248,15,128,240,7,128,240,7,128,240,7,128,240,7,128,248, - 15,128,248,15,128,124,31,0,127,255,0,63,254,0,31,252, - 0,7,240,0,16,25,50,20,2,249,241,240,247,248,255,252, - 255,254,252,62,248,31,248,31,240,15,240,15,240,15,240,15, - 248,31,248,31,252,62,255,254,255,252,247,248,241,240,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,16,25,50,20, - 1,249,7,207,31,239,63,255,127,255,124,63,248,31,240,15, - 240,15,240,15,240,15,240,15,240,15,248,31,124,63,127,255, - 63,255,63,239,15,207,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,10,18,36,13,2,0,240,192,243,192,247,192, - 255,192,255,192,252,0,248,0,248,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,240,0,16,18, - 36,19,1,0,7,240,31,252,63,254,124,62,120,31,120,31, - 124,0,127,192,63,248,15,254,3,255,0,63,248,15,248,15, - 124,31,127,254,63,252,15,240,9,22,44,11,1,0,60,0, - 60,0,60,0,60,0,255,128,255,128,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,63,128,63,128,31,128,15,128,15,18,36,20,2,0, - 240,30,240,30,240,30,240,30,240,30,240,30,240,30,240,30, - 240,30,240,30,240,30,240,30,248,62,248,126,255,254,127,254, - 127,222,31,30,17,18,54,19,0,0,248,15,128,248,15,128, - 124,31,0,124,31,0,60,30,0,60,30,0,62,62,0,30, - 60,0,30,60,0,30,60,0,15,120,0,15,120,0,15,120, - 0,7,240,0,7,240,0,7,240,0,3,224,0,3,224,0, - 25,18,72,26,0,0,248,62,15,128,248,62,15,128,120,62, - 15,0,124,62,31,0,124,127,31,0,60,127,30,0,60,127, - 30,0,60,119,30,0,60,247,158,0,30,227,188,0,30,227, - 188,0,30,227,188,0,31,227,252,0,15,193,248,0,15,193, - 248,0,15,193,248,0,7,128,240,0,7,128,240,0,16,18, - 36,19,1,0,248,31,252,63,124,62,62,124,62,120,31,248, - 15,240,7,224,3,192,7,224,15,224,15,240,31,248,62,120, - 62,124,124,62,252,63,248,31,16,25,50,19,1,249,248,31, - 248,31,248,30,120,62,124,62,124,60,60,60,62,124,62,120, - 30,120,30,120,31,240,15,240,15,240,15,224,7,224,7,224, - 7,192,7,192,7,192,15,128,63,128,63,0,63,0,60,0, - 14,18,36,17,1,0,255,252,255,252,255,252,255,252,0,248, - 1,240,3,240,7,224,15,192,31,128,31,0,62,0,124,0, - 248,0,255,252,255,252,255,252,255,252,9,32,64,13,2,249, - 15,128,31,128,63,128,62,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,124,0,120,0, - 224,0,120,0,124,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,63,128,31,128,15,128, - 3,31,31,9,3,250,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,9,32,64,13,2,249,248,0,252,0,254, - 0,62,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,31,0,15,0,3,128,15,0,31, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,254,0,252,0,248,0,14,6,12,19,2, - 5,56,0,126,12,255,156,231,252,193,248,0,112,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=11 x= 1 y= 7 dx=11 dy= 0 ascent=11 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08[2687] U8G_FONT_SECTION("u8g_font_helvR08") = { - 0,13,18,254,252,8,1,178,3,111,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,3, - 0,1,1,8,8,3,1,254,128,0,128,128,128,128,128,128, - 5,8,8,6,1,255,16,112,168,160,160,168,112,64,5,8, - 8,6,0,0,48,72,64,224,64,64,72,176,4,6,6,5, - 0,1,144,96,144,144,96,144,5,8,8,6,0,0,136,136, - 136,80,248,32,248,32,1,10,10,3,1,254,128,128,128,128, - 0,0,128,128,128,128,5,10,10,6,0,254,112,136,192,112, - 152,200,112,24,136,112,3,1,1,3,0,7,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,5,5,4,0,3, - 224,32,160,0,224,5,5,5,6,0,0,40,80,160,80,40, - 5,3,3,7,1,2,248,8,8,3,1,1,4,0,3,224, - 7,7,7,9,1,0,56,68,186,178,170,68,56,3,1,1, - 3,0,7,224,4,4,4,4,0,4,96,144,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 4,96,160,64,224,3,4,4,3,0,4,224,64,32,192,2, - 2,2,3,0,7,64,128,4,8,8,5,0,254,144,144,144, - 144,144,240,128,128,6,10,10,6,0,254,124,232,232,232,104, - 40,40,40,40,40,2,1,1,3,0,3,192,2,2,2,3, - 0,254,64,192,2,4,4,3,0,4,64,192,64,64,3,5, - 5,4,0,3,224,160,224,0,224,5,5,5,6,0,0,160, - 80,40,80,160,9,8,16,9,0,0,68,0,196,0,72,0, - 72,0,17,0,19,0,39,128,33,0,8,8,8,9,0,0, - 68,196,72,72,19,21,34,39,9,8,16,9,0,0,224,0, - 68,0,36,0,200,0,9,0,19,0,23,128,33,0,4,8, - 8,6,1,254,32,0,32,32,64,128,144,96,7,11,11,7, - 0,0,32,16,0,16,16,40,40,68,124,130,130,7,11,11, - 7,0,0,8,16,0,16,16,40,40,68,124,130,130,7,11, - 11,7,0,0,16,40,0,16,16,40,40,68,124,130,130,7, - 11,11,7,0,0,20,40,0,16,16,40,40,68,124,130,130, - 7,10,10,7,0,0,40,0,16,16,40,40,68,124,130,130, - 7,11,11,7,0,0,16,40,16,16,16,40,40,68,124,130, - 130,9,8,16,10,0,0,31,128,24,0,40,0,47,128,72, - 0,120,0,136,0,143,128,6,10,10,8,1,254,120,132,128, - 128,128,128,132,120,16,48,5,11,11,7,1,0,64,32,0, - 248,128,128,248,128,128,128,248,5,11,11,7,1,0,16,32, - 0,248,128,128,248,128,128,128,248,5,11,11,7,1,0,32, - 80,0,248,128,128,248,128,128,128,248,5,10,10,7,1,0, - 80,0,248,128,128,248,128,128,128,248,2,11,11,3,0,0, - 128,64,0,64,64,64,64,64,64,64,64,2,11,11,3,1, - 0,64,128,0,128,128,128,128,128,128,128,128,3,11,11,3, - 0,0,64,160,0,64,64,64,64,64,64,64,64,3,10,10, - 3,0,0,160,0,64,64,64,64,64,64,64,64,7,8,8, - 8,0,0,120,68,66,242,66,66,68,120,6,11,11,8,1, - 0,40,80,0,196,196,164,164,148,148,140,140,6,11,11,8, - 1,0,32,16,0,120,132,132,132,132,132,132,120,6,11,11, - 8,1,0,8,16,0,120,132,132,132,132,132,132,120,6,11, - 11,8,1,0,32,80,0,120,132,132,132,132,132,132,120,6, - 11,11,8,1,0,40,80,0,120,132,132,132,132,132,132,120, - 6,10,10,8,1,0,72,0,120,132,132,132,132,132,132,120, - 5,5,5,6,0,1,136,80,32,80,136,6,10,10,8,1, - 255,4,120,140,148,148,164,164,196,120,128,6,11,11,8,1, - 0,32,16,0,132,132,132,132,132,132,132,120,6,11,11,8, - 1,0,8,16,0,132,132,132,132,132,132,132,120,6,11,11, - 8,1,0,32,80,0,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,72,0,132,132,132,132,132,132,132,120,7,11, - 11,7,0,0,8,16,0,130,68,68,40,40,16,16,16,5, - 8,8,7,1,0,128,128,240,136,136,240,128,128,4,8,8, - 5,0,0,96,144,144,160,144,144,144,160,5,9,9,5,0, - 0,64,32,0,224,16,112,144,144,104,5,9,9,5,0,0, - 32,64,0,224,16,112,144,144,104,5,9,9,5,0,0,32, - 80,0,224,16,112,144,144,104,5,9,9,5,0,0,80,160, - 0,224,16,112,144,144,104,5,8,8,5,0,0,80,0,224, - 16,112,144,144,104,5,9,9,5,0,0,32,80,32,224,16, - 112,144,144,104,7,6,6,8,0,0,236,18,126,144,146,108, - 4,8,8,5,0,254,96,144,128,128,144,96,32,96,4,9, - 9,5,0,0,64,32,0,96,144,240,128,144,96,4,9,9, - 5,0,0,32,64,0,96,144,240,128,144,96,4,9,9,5, - 0,0,64,160,0,96,144,240,128,144,96,4,8,8,5,0, - 0,160,0,96,144,240,128,144,96,2,9,9,2,255,0,128, - 64,0,64,64,64,64,64,64,2,9,9,2,0,0,64,128, - 0,128,128,128,128,128,128,3,9,9,2,255,0,64,160,0, - 64,64,64,64,64,64,3,8,8,2,255,0,160,0,64,64, - 64,64,64,64,5,9,9,6,0,0,64,120,144,120,136,136, - 136,136,112,4,9,9,5,0,0,80,160,0,224,144,144,144, - 144,144,5,9,9,6,0,0,64,32,0,112,136,136,136,136, - 112,5,9,9,6,0,0,16,32,0,112,136,136,136,136,112, - 5,9,9,6,0,0,32,80,0,112,136,136,136,136,112,5, - 9,9,6,0,0,40,80,0,112,136,136,136,136,112,5,8, - 8,6,0,0,80,0,112,136,136,136,136,112,5,5,5,6, - 0,1,32,0,248,0,32,7,6,6,6,255,0,58,76,84, - 100,68,184,4,9,9,5,0,0,64,32,0,144,144,144,144, - 144,112,4,9,9,5,0,0,16,32,0,144,144,144,144,144, - 112,4,9,9,5,0,0,64,160,0,144,144,144,144,144,112, - 4,8,8,5,0,0,160,0,144,144,144,144,144,112,5,11, - 11,5,255,254,8,16,0,72,72,80,80,48,32,32,192,5, - 10,10,6,0,254,128,128,176,200,136,136,200,176,128,128,5, - 10,10,5,255,254,80,0,72,72,80,80,48,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--11-80-100-100-P-56-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=10 h=10 x= 1 y= 7 dx=11 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR08r[1276] U8G_FONT_SECTION("u8g_font_helvR08r") = { - 0,13,18,254,252,8,1,178,3,111,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,3,1,0,128,128,128, - 128,128,128,0,128,3,2,2,4,1,6,160,160,6,7,7, - 6,0,0,40,40,124,40,248,80,80,5,10,10,6,0,255, - 32,112,168,160,112,40,40,168,112,32,8,8,8,9,0,0, - 100,148,104,8,16,22,41,38,6,8,8,8,1,0,96,144, - 144,96,148,136,152,100,1,2,2,2,0,6,128,128,3,10, - 10,4,0,254,32,64,64,128,128,128,128,64,64,32,3,10, - 10,4,1,254,128,64,64,32,32,32,32,64,64,128,3,3, - 3,4,0,5,160,64,160,5,5,5,6,0,1,32,32,248, - 32,32,2,3,3,3,0,254,64,64,128,3,1,1,4,0, - 3,224,1,1,1,3,1,0,128,3,8,8,3,0,0,32, - 32,64,64,64,64,128,128,5,8,8,6,0,0,112,136,136, - 136,136,136,136,112,2,8,8,6,1,0,64,192,64,64,64, - 64,64,64,5,8,8,6,0,0,112,136,8,8,48,64,128, - 248,5,8,8,6,0,0,112,136,8,48,8,8,136,112,5, - 8,8,6,0,0,16,48,80,80,144,248,16,16,5,8,8, - 6,0,0,120,64,64,112,8,8,136,112,5,8,8,6,0, - 0,112,136,128,240,136,136,136,112,5,8,8,6,0,0,248, - 8,16,32,32,64,64,64,5,8,8,6,0,0,112,136,136, - 112,136,136,136,112,5,8,8,6,0,0,112,136,136,136,120, - 8,136,112,1,6,6,3,1,0,128,0,0,0,0,128,2, - 8,8,3,0,254,64,0,0,0,0,64,64,128,3,5,5, - 6,1,1,32,64,128,64,32,4,3,3,5,0,2,240,0, - 240,3,5,5,6,1,1,128,64,32,64,128,4,8,8,6, - 1,0,96,144,16,32,64,64,0,64,10,9,18,11,0,255, - 31,0,32,128,77,64,146,64,162,64,164,128,155,0,64,0, - 62,0,7,8,8,7,0,0,16,16,40,40,68,124,130,130, - 5,8,8,7,1,0,240,136,136,240,136,136,136,240,6,8, - 8,8,1,0,120,132,128,128,128,128,132,120,6,8,8,8, - 1,0,240,136,132,132,132,132,136,240,5,8,8,7,1,0, - 248,128,128,248,128,128,128,248,5,8,8,6,1,0,248,128, - 128,240,128,128,128,128,6,8,8,8,1,0,120,132,128,128, - 140,132,132,124,6,8,8,8,1,0,132,132,132,252,132,132, - 132,132,1,8,8,3,1,0,128,128,128,128,128,128,128,128, - 4,8,8,5,0,0,16,16,16,16,16,16,144,96,5,8, - 8,7,1,0,136,144,160,224,144,144,136,136,4,8,8,6, - 1,0,128,128,128,128,128,128,128,240,7,8,8,9,1,0, - 130,198,198,170,170,146,146,146,6,8,8,8,1,0,196,196, - 164,164,148,148,140,140,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,5,8,8,7,1,0,240,136,136,240,128,128, - 128,128,7,9,9,8,1,255,120,132,132,132,132,148,140,124, - 2,5,8,8,7,1,0,240,136,136,240,136,136,136,136,5, - 8,8,7,1,0,112,136,128,112,8,136,136,112,5,8,8, - 5,0,0,248,32,32,32,32,32,32,32,6,8,8,8,1, - 0,132,132,132,132,132,132,132,120,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,9,0,0,136,128,136, - 128,73,0,73,0,85,0,34,0,34,0,34,0,5,8,8, - 7,1,0,136,136,80,32,80,80,136,136,7,8,8,7,0, - 0,130,68,68,40,40,16,16,16,5,8,8,7,1,0,248, - 8,16,32,32,64,128,248,2,10,10,3,1,254,192,128,128, - 128,128,128,128,128,128,192,3,8,8,3,0,0,128,128,64, - 64,64,64,32,32,2,10,10,3,0,254,192,64,64,64,64, - 64,64,64,64,192,5,5,5,6,0,3,32,32,80,80,136, - 6,1,1,6,0,254,252,2,2,2,3,0,7,128,64,5, - 6,6,5,0,0,224,16,112,144,144,104,5,8,8,6,0, - 0,128,128,176,200,136,136,200,176,4,6,6,5,0,0,96, - 144,128,128,144,96,5,8,8,6,0,0,8,8,104,152,136, - 136,152,104,4,6,6,5,0,0,96,144,240,128,144,96,4, - 8,8,4,0,0,48,64,224,64,64,64,64,64,5,8,8, - 6,0,254,104,152,136,136,152,104,8,112,5,8,8,6,0, - 0,128,128,176,200,136,136,136,136,1,8,8,2,0,0,128, - 0,128,128,128,128,128,128,2,10,10,2,255,254,64,0,64, - 64,64,64,64,64,64,128,4,8,8,5,0,0,128,128,144, - 160,192,160,144,144,1,8,8,2,0,0,128,128,128,128,128, - 128,128,128,7,6,6,8,0,0,236,146,146,146,146,146,5, - 6,6,6,0,0,176,200,136,136,136,136,5,6,6,6,0, - 0,112,136,136,136,136,112,5,8,8,6,0,254,176,200,136, - 136,200,176,128,128,5,8,8,6,0,254,104,152,136,136,152, - 104,8,8,3,6,6,4,0,0,160,192,128,128,128,128,4, - 6,6,5,0,0,96,144,96,16,144,96,3,8,8,4,0, - 0,64,64,224,64,64,64,64,96,4,6,6,5,0,0,144, - 144,144,144,144,112,5,6,6,6,0,0,136,136,80,80,32, - 32,7,6,6,8,0,0,146,146,84,84,40,40,5,6,6, - 6,0,0,136,80,32,80,136,136,5,8,8,5,255,254,72, - 72,80,80,48,32,32,192,4,6,6,5,0,0,240,16,32, - 64,128,240,3,10,10,3,0,254,32,64,64,64,128,64,64, - 64,64,32,1,10,10,3,1,254,128,128,128,128,128,128,128, - 128,128,128,3,10,10,3,0,254,128,64,64,64,32,64,64, - 64,64,128,6,2,2,7,0,3,100,152,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10[3527] U8G_FONT_SECTION("u8g_font_helvR10") = { - 0,17,22,254,251,11,2,10,4,133,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,4,0,1,1,11,11,4,1,253,128,128,0,128, - 128,128,128,128,128,128,128,6,10,10,8,1,255,4,120,204, - 144,144,160,164,204,120,128,7,11,11,8,0,0,56,68,64, - 64,248,32,32,32,64,98,220,6,6,6,8,1,2,132,120, - 72,72,120,132,7,11,11,7,0,0,130,130,130,68,68,40, - 254,16,254,16,16,1,14,14,3,1,253,128,128,128,128,128, - 128,0,0,128,128,128,128,128,128,5,14,14,8,2,253,112, - 216,136,192,112,152,136,136,200,112,24,136,216,112,5,1,1, - 5,0,9,216,10,11,22,12,1,0,30,0,97,128,92,128, - 162,192,162,64,160,64,162,64,156,64,64,128,97,128,30,0, - 4,7,7,6,1,4,224,16,112,144,208,0,240,6,5,5, - 8,1,2,36,72,144,72,36,7,4,4,9,1,2,254,2, - 2,2,3,1,1,4,0,4,224,10,11,22,12,1,0,30, - 0,97,128,92,128,146,64,146,64,156,64,146,64,146,64,64, - 128,97,128,30,0,4,1,1,4,0,9,240,4,4,4,6, - 1,7,96,144,144,96,7,9,9,9,1,0,16,16,16,254, - 16,16,16,0,254,4,6,6,5,0,5,96,144,16,32,64, - 240,4,6,6,5,0,5,96,144,32,16,144,96,2,2,2, - 5,2,9,64,128,6,11,11,8,1,253,132,132,132,132,132, - 132,204,180,128,128,128,7,14,14,8,0,253,62,116,244,244, - 244,116,52,20,20,20,20,20,20,20,2,1,1,4,1,4, - 192,4,3,3,5,0,253,32,144,96,2,6,6,5,1,5, - 64,192,64,64,64,64,4,7,7,6,1,4,96,144,144,144, - 96,0,240,6,5,5,8,1,2,144,72,36,72,144,10,11, - 22,12,1,0,66,0,194,0,68,0,68,0,72,0,72,128, - 9,128,18,128,20,128,39,192,32,128,9,11,22,12,1,0, - 66,0,194,0,68,0,68,0,72,0,75,0,20,128,16,128, - 17,0,34,0,39,128,11,11,22,12,0,0,97,0,145,0, - 34,0,18,0,148,0,100,64,4,192,9,64,10,64,19,224, - 16,64,6,11,11,8,1,253,16,16,0,16,32,64,128,132, - 132,204,48,9,14,28,9,0,0,16,0,8,0,0,0,8, - 0,28,0,20,0,20,0,34,0,34,0,65,0,127,0,65, - 0,128,128,128,128,9,14,28,9,0,0,4,0,8,0,0, - 0,8,0,28,0,20,0,20,0,34,0,34,0,65,0,127, - 0,65,0,128,128,128,128,9,14,28,9,0,0,12,0,18, - 0,0,0,8,0,28,0,20,0,20,0,34,0,34,0,65, - 0,127,0,65,0,128,128,128,128,9,14,28,9,0,0,26, - 0,44,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,13,26,9,0, - 0,54,0,0,0,8,0,28,0,20,0,20,0,34,0,34, - 0,65,0,127,0,65,0,128,128,128,128,9,14,28,9,0, - 0,12,0,18,0,18,0,12,0,12,0,20,0,20,0,34, - 0,34,0,65,0,127,0,65,0,128,128,128,128,12,11,22, - 14,1,0,31,240,18,0,18,0,34,0,34,0,35,240,126, - 0,66,0,66,0,130,0,131,240,8,14,14,10,1,253,28, - 99,65,128,128,128,128,128,65,99,28,8,36,24,7,14,14, - 9,1,0,32,16,0,254,128,128,128,128,252,128,128,128,128, - 254,7,14,14,9,1,0,8,16,0,254,128,128,128,128,252, - 128,128,128,128,254,7,14,14,9,1,0,24,36,0,254,128, - 128,128,128,252,128,128,128,128,254,7,13,13,9,1,0,108, - 0,254,128,128,128,128,252,128,128,128,128,254,2,14,14,4, - 1,0,128,64,0,64,64,64,64,64,64,64,64,64,64,64, - 2,14,14,4,2,0,64,128,0,128,128,128,128,128,128,128, - 128,128,128,128,4,14,14,4,1,0,96,144,0,64,64,64, - 64,64,64,64,64,64,64,64,5,13,13,4,0,0,216,0, - 32,32,32,32,32,32,32,32,32,32,32,9,11,22,10,0, - 0,124,0,67,0,65,0,64,128,64,128,240,128,64,128,64, - 128,65,0,67,0,124,0,8,14,14,10,1,0,26,44,0, - 193,161,161,145,145,137,137,133,133,131,131,9,14,28,11,1, - 0,16,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,14,28, - 11,1,0,4,0,8,0,0,0,28,0,99,0,65,0,128, - 128,128,128,128,128,128,128,128,128,65,0,99,0,28,0,9, - 14,28,11,1,0,12,0,18,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,11,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,13,26,11,1,0,51,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,7,7,7,9,1,1,130,68,40,16,40,68,130, - 11,11,22,11,0,0,14,32,49,192,32,128,65,64,66,64, - 68,64,72,64,80,64,32,128,113,128,142,0,8,14,14,10, - 1,0,16,8,0,129,129,129,129,129,129,129,129,129,66,60, - 8,14,14,10,1,0,4,8,0,129,129,129,129,129,129,129, - 129,129,66,60,8,14,14,10,1,0,24,36,0,129,129,129, - 129,129,129,129,129,129,66,60,8,13,13,10,1,0,102,0, - 129,129,129,129,129,129,129,129,129,66,60,9,14,28,9,0, - 0,4,0,8,0,0,0,128,128,193,128,65,0,34,0,34, - 0,20,0,28,0,8,0,8,0,8,0,8,0,7,11,11, - 9,1,0,128,128,252,134,130,130,134,252,128,128,128,5,11, - 11,7,1,0,112,136,136,136,176,144,136,136,136,136,176,7, - 11,11,8,1,0,32,16,0,120,204,4,124,196,132,204,118, - 7,11,11,8,1,0,16,32,0,120,204,4,124,196,132,204, - 118,7,11,11,8,1,0,48,72,0,120,204,4,124,196,132, - 204,118,7,11,11,8,1,0,52,88,0,120,204,4,124,196, - 132,204,118,7,11,11,8,1,0,72,72,0,120,204,4,124, - 196,132,204,118,7,12,12,8,1,0,48,72,48,0,120,204, - 4,124,196,132,204,118,11,8,16,13,1,0,123,192,198,96, - 4,32,127,224,196,0,132,0,206,96,123,192,6,11,11,8, - 1,253,120,204,128,128,128,132,204,120,16,72,48,6,11,11, - 8,1,0,32,16,0,120,204,132,252,128,128,204,120,6,11, - 11,8,1,0,16,32,0,120,204,132,252,128,128,204,120,6, - 11,11,8,1,0,48,72,0,120,204,132,252,128,128,204,120, - 6,11,11,8,1,0,72,72,0,120,204,132,252,128,128,204, - 120,2,11,11,3,1,0,128,64,0,128,128,128,128,128,128, - 128,128,2,11,11,3,1,0,64,128,0,128,128,128,128,128, - 128,128,128,4,11,11,3,0,0,96,144,0,64,64,64,64, - 64,64,64,64,3,11,11,3,0,0,160,160,0,64,64,64, - 64,64,64,64,64,6,11,11,8,1,0,216,112,144,120,204, - 132,132,132,132,204,120,6,11,11,8,1,0,104,176,0,184, - 204,132,132,132,132,132,132,6,11,11,8,1,0,32,16,0, - 120,204,132,132,132,132,204,120,6,11,11,8,1,0,16,32, - 0,120,204,132,132,132,132,204,120,6,11,11,8,1,0,48, - 72,0,120,204,132,132,132,132,204,120,6,11,11,8,1,0, - 104,176,0,120,204,132,132,132,132,204,120,6,11,11,8,1, - 0,72,72,0,120,204,132,132,132,132,204,120,7,7,7,9, - 1,1,16,16,0,254,0,16,16,8,8,8,8,0,0,61, - 98,70,74,82,98,70,188,6,11,11,8,1,0,32,16,0, - 132,132,132,132,132,132,204,116,6,11,11,8,1,0,16,32, - 0,132,132,132,132,132,132,204,116,6,11,11,8,1,0,48, - 72,0,132,132,132,132,132,132,204,116,6,11,11,8,1,0, - 72,72,0,132,132,132,132,132,132,204,116,7,14,14,7,0, - 253,8,16,0,130,194,68,68,36,40,24,16,16,48,96,6, - 14,14,8,1,253,128,128,128,184,204,132,132,132,132,204,184, - 128,128,128,7,14,14,7,0,253,36,36,0,130,194,68,68, - 36,40,24,16,16,48,96}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=13 h=14 x= 2 y= 9 dx=13 dy= 0 ascent=12 len=24 - Font Bounding box w=17 h=22 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR10r[1648] U8G_FONT_SECTION("u8g_font_helvR10r") = { - 0,17,22,254,251,11,2,10,4,133,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,4,2,0,128,128,128, - 128,128,128,128,128,0,128,128,3,3,3,5,1,8,160,160, - 160,7,10,10,8,0,0,20,20,20,126,40,40,252,80,80, - 80,7,14,14,8,0,254,16,124,146,146,144,80,56,20,18, - 146,146,124,16,16,11,11,22,12,0,0,112,128,137,0,137, - 0,114,0,2,0,4,0,8,0,9,192,18,32,18,32,33, - 192,8,10,10,10,1,0,48,72,72,48,32,82,138,132,138, - 113,1,3,3,3,1,8,128,128,128,3,14,14,5,1,253, - 32,64,64,128,128,128,128,128,128,128,128,64,64,32,3,14, - 14,5,1,253,128,64,64,32,32,32,32,32,32,32,32,64, - 64,128,5,5,5,7,1,6,32,168,112,168,32,7,7,7, - 9,1,1,16,16,16,254,16,16,16,2,4,4,3,0,254, - 64,64,64,128,3,1,1,4,0,4,224,1,2,2,3,1, - 0,128,128,4,11,11,4,0,0,16,16,32,32,32,64,64, - 64,128,128,128,6,11,11,8,1,0,120,132,132,132,132,132, - 132,132,132,132,120,3,11,11,8,2,0,32,224,32,32,32, - 32,32,32,32,32,32,6,11,11,8,1,0,120,132,132,4, - 8,16,32,64,128,128,252,6,11,11,8,1,0,120,132,132, - 4,4,56,4,4,132,132,120,7,11,11,8,1,0,4,12, - 20,36,68,132,132,254,4,4,4,6,11,11,8,1,0,252, - 128,128,128,248,4,4,4,132,132,120,6,11,11,8,1,0, - 120,132,128,128,184,196,132,132,132,132,120,6,11,11,8,1, - 0,252,4,8,8,16,16,32,32,64,64,64,6,11,11,8, - 1,0,120,132,132,132,132,120,132,132,132,132,120,6,11,11, - 8,1,0,120,132,132,132,132,124,4,4,132,132,120,1,8, - 8,3,1,0,128,128,0,0,0,0,128,128,2,10,10,4, - 0,254,64,64,0,0,0,0,64,64,64,128,6,5,5,8, - 1,2,12,48,192,48,12,6,3,3,9,1,3,252,0,252, - 6,5,5,8,1,2,192,48,12,48,192,6,11,11,8,1, - 0,48,204,132,132,4,8,16,32,0,32,32,11,12,24,13, - 1,255,15,0,48,192,64,32,70,160,137,32,145,32,145,32, - 147,64,141,128,64,0,96,128,31,0,9,11,22,9,0,0, - 8,0,28,0,20,0,20,0,34,0,34,0,65,0,127,0, - 65,0,128,128,128,128,7,11,11,9,1,0,252,134,130,130, - 132,248,132,130,130,134,252,8,11,11,10,1,0,28,99,65, - 128,128,128,128,128,65,99,28,8,11,11,10,1,0,248,134, - 130,129,129,129,129,129,130,134,248,7,11,11,9,1,0,254, - 128,128,128,128,252,128,128,128,128,254,7,11,11,8,1,0, - 254,128,128,128,128,252,128,128,128,128,128,9,11,22,11,1, - 0,30,0,97,128,64,128,128,0,128,0,135,128,128,128,128, - 128,64,128,99,128,28,128,8,11,11,10,1,0,129,129,129, - 129,129,255,129,129,129,129,129,1,11,11,4,2,0,128,128, - 128,128,128,128,128,128,128,128,128,6,11,11,7,0,0,4, - 4,4,4,4,4,4,4,132,132,120,8,11,11,9,1,0, - 130,132,136,144,160,224,144,136,132,130,129,6,11,11,8,2, - 0,128,128,128,128,128,128,128,128,128,128,252,11,11,22,12, - 0,0,128,32,192,96,192,96,160,160,160,160,145,32,145,32, - 138,32,138,32,132,32,132,32,8,11,11,10,1,0,193,161, - 161,145,145,137,137,133,133,131,131,9,11,22,11,1,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,11,11,9,1,0,252,134,130,130,134, - 252,128,128,128,128,128,9,11,22,11,1,0,28,0,99,0, - 65,0,128,128,128,128,128,128,136,128,132,128,67,0,99,0, - 28,128,8,11,11,10,1,0,254,131,129,129,130,252,130,129, - 129,129,129,7,11,11,9,1,0,56,198,130,128,96,24,6, - 2,130,198,56,9,11,22,9,0,0,255,128,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,11,11,10,1,0,129,129,129,129,129,129,129,129,129,66, - 60,9,11,22,9,0,0,128,128,128,128,65,0,65,0,99, - 0,34,0,34,0,20,0,20,0,8,0,8,0,13,11,22, - 13,0,0,130,8,130,8,133,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,9,11,22,9,0,0,128, - 128,65,0,34,0,20,0,8,0,8,0,20,0,34,0,65, - 0,65,0,128,128,9,11,22,9,0,0,128,128,193,128,65, - 0,34,0,34,0,20,0,28,0,8,0,8,0,8,0,8, - 0,7,11,11,9,1,0,254,2,4,8,24,16,32,96,64, - 128,254,3,14,14,4,1,253,224,128,128,128,128,128,128,128, - 128,128,128,128,128,224,4,11,11,4,0,0,128,128,64,64, - 64,32,32,32,16,16,16,3,14,14,4,0,253,224,32,32, - 32,32,32,32,32,32,32,32,32,32,224,5,5,5,7,1, - 6,32,80,80,136,136,8,1,1,8,0,253,255,2,2,2, - 5,1,9,128,64,7,8,8,8,1,0,120,204,4,124,196, - 132,204,118,6,11,11,7,1,0,128,128,128,184,204,132,132, - 132,132,204,184,6,8,8,7,1,0,120,204,128,128,128,132, - 204,120,6,11,11,8,1,0,4,4,4,116,204,132,132,132, - 132,204,116,6,8,8,8,1,0,120,204,132,252,128,128,204, - 120,4,11,11,4,0,0,48,64,64,224,64,64,64,64,64, - 64,64,6,11,11,8,1,253,116,204,132,132,132,132,204,116, - 4,204,120,6,11,11,8,1,0,128,128,128,184,204,132,132, - 132,132,132,132,1,11,11,3,1,0,128,128,0,128,128,128, - 128,128,128,128,128,3,14,14,3,255,253,32,32,0,32,32, - 32,32,32,32,32,32,32,32,192,6,11,11,7,1,0,128, - 128,128,136,144,160,192,160,144,136,132,1,11,11,3,1,0, - 128,128,128,128,128,128,128,128,128,128,128,9,8,16,11,1, - 0,179,0,204,128,136,128,136,128,136,128,136,128,136,128,136, - 128,6,8,8,8,1,0,184,204,132,132,132,132,132,132,6, - 8,8,8,1,0,120,204,132,132,132,132,204,120,6,11,11, - 8,1,253,184,204,132,132,132,132,204,184,128,128,128,6,11, - 11,8,1,253,116,204,132,132,132,132,204,116,4,4,4,4, - 8,8,5,1,0,176,192,128,128,128,128,128,128,5,8,8, - 7,1,0,112,136,192,112,24,8,136,112,4,10,10,4,0, - 0,64,64,224,64,64,64,64,64,64,48,6,8,8,7,1, - 0,132,132,132,132,132,132,204,116,7,8,8,7,0,0,130, - 130,68,68,68,40,40,16,9,8,16,10,0,0,136,128,136, - 128,136,128,73,0,73,0,85,0,34,0,34,0,7,8,8, - 7,0,0,198,68,40,16,16,40,68,198,7,11,11,7,0, - 253,130,194,68,68,36,40,24,16,16,48,96,6,8,8,7, - 0,0,252,4,8,16,32,64,128,252,5,14,14,5,0,253, - 24,32,32,32,32,64,128,64,32,32,32,32,32,24,1,14, - 14,3,1,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,5,14,14,5,0,253,192,32,32,32,32,16,8,16, - 32,32,32,32,32,192,6,3,3,8,1,3,100,180,152,255 - }; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=14 h=16 x= 3 y=10 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12[4077] U8G_FONT_SECTION("u8g_font_helvR12") = { - 0,20,26,254,250,12,2,91,5,99,32,255,252,16,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,5,0,1,1,12,12,6,2,253,128, - 128,0,128,128,128,128,128,128,128,128,128,7,13,13,9,1, - 254,4,4,56,76,138,144,144,144,162,100,56,64,64,8,12, - 12,9,0,0,14,17,33,32,32,16,126,8,16,32,121,134, - 8,7,7,9,0,3,189,102,66,66,66,102,189,9,12,24, - 9,0,0,128,128,65,0,65,0,34,0,34,0,20,0,127, - 0,8,0,127,0,8,0,8,0,8,0,1,16,16,4,1, - 252,128,128,128,128,128,128,0,0,0,0,128,128,128,128,128, - 128,7,15,15,9,1,253,56,68,70,96,152,140,134,194,98, - 50,28,4,196,68,56,3,2,2,5,1,10,160,160,12,12, - 24,12,0,0,15,0,48,192,71,32,72,160,144,16,144,16, - 144,16,144,16,72,160,71,32,48,192,15,0,5,7,7,6, - 1,5,96,144,112,144,120,0,248,6,6,6,9,1,2,36, - 72,144,144,72,36,8,5,5,10,0,1,255,1,1,1,1, - 4,1,1,5,0,4,240,12,12,24,12,0,0,15,0,48, - 192,64,32,79,32,136,144,136,144,143,16,138,16,73,32,72, - 160,48,192,15,0,5,1,1,6,0,10,248,5,5,5,7, - 1,7,112,136,136,136,112,9,11,22,10,0,0,8,0,8, - 0,8,0,8,0,255,128,8,0,8,0,8,0,8,0,0, - 0,255,128,5,7,7,6,0,5,112,136,136,16,96,128,248, - 5,7,7,6,0,5,112,136,8,48,8,136,112,3,3,3, - 6,1,10,32,96,128,7,13,13,9,1,252,130,130,130,130, - 130,130,130,134,250,128,128,128,128,7,15,15,9,1,253,62, - 116,244,244,244,244,116,52,20,20,20,20,20,20,20,1,2, - 2,5,2,4,128,128,4,4,4,6,0,252,32,32,144,96, - 3,7,7,6,0,5,32,224,32,32,32,32,32,4,7,7, - 6,1,5,96,144,144,144,96,0,240,6,6,6,9,1,2, - 144,72,36,36,72,144,12,12,24,14,0,0,32,64,224,128, - 32,128,33,0,34,0,34,32,36,96,4,160,9,32,17,240, - 16,32,32,32,12,13,26,14,0,0,0,64,32,128,224,128, - 33,0,34,0,34,0,36,224,37,16,9,16,8,32,16,192, - 33,0,33,240,13,12,24,14,0,0,112,64,136,64,8,128, - 48,128,9,0,137,16,114,48,2,80,4,144,4,248,8,16, - 8,16,7,12,12,10,1,253,16,16,0,16,16,32,64,128, - 130,130,68,56,10,16,32,11,0,0,16,0,24,0,4,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,16,32,11,0,0, - 2,0,6,0,8,0,0,0,12,0,12,0,18,0,18,0, - 18,0,33,0,33,0,127,128,64,128,64,128,128,64,128,64, - 10,16,32,11,0,0,4,0,14,0,17,0,0,0,12,0, - 12,0,18,0,18,0,18,0,33,0,33,0,127,128,64,128, - 64,128,128,64,128,64,10,15,30,11,0,0,26,0,44,0, - 0,0,12,0,12,0,18,0,18,0,18,0,33,0,33,0, - 127,128,64,128,64,128,128,64,128,64,10,15,30,11,0,0, - 18,0,18,0,0,0,12,0,12,0,18,0,18,0,18,0, - 33,0,33,0,127,128,64,128,64,128,128,64,128,64,10,15, - 30,11,0,0,12,0,18,0,18,0,12,0,12,0,18,0, - 18,0,18,0,33,0,33,0,127,128,64,128,64,128,128,64, - 128,64,14,12,24,16,0,0,7,252,9,0,9,0,17,0, - 17,0,33,252,33,0,127,0,65,0,65,0,129,0,129,252, - 10,16,32,12,1,252,15,0,48,128,64,64,64,0,128,0, - 128,0,128,0,128,0,64,0,64,64,48,128,15,0,4,0, - 4,0,18,0,12,0,8,16,16,11,1,0,32,48,8,0, - 255,128,128,128,128,255,128,128,128,128,128,255,8,16,16,11, - 1,0,4,12,16,0,255,128,128,128,128,255,128,128,128,128, - 128,255,8,16,16,11,1,0,16,56,68,0,255,128,128,128, - 128,255,128,128,128,128,128,255,8,15,15,11,1,0,36,36, - 0,255,128,128,128,128,255,128,128,128,128,128,255,3,16,16, - 4,0,0,128,192,32,0,64,64,64,64,64,64,64,64,64, - 64,64,64,3,16,16,4,0,0,32,96,128,0,64,64,64, - 64,64,64,64,64,64,64,64,64,5,16,16,4,255,0,32, - 112,136,0,32,32,32,32,32,32,32,32,32,32,32,32,3, - 15,15,4,0,0,160,160,0,64,64,64,64,64,64,64,64, - 64,64,64,64,12,12,24,12,0,0,63,0,32,192,32,32, - 32,32,32,16,248,16,32,16,32,16,32,32,32,32,32,192, - 63,0,9,15,30,12,1,0,26,0,44,0,0,0,128,128, - 192,128,160,128,160,128,144,128,136,128,136,128,132,128,130,128, - 130,128,129,128,128,128,11,16,32,13,1,0,8,0,12,0, - 2,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,16,32,13, - 1,0,1,0,3,0,4,0,0,0,14,0,49,128,64,64, - 64,64,128,32,128,32,128,32,128,32,64,64,64,64,49,128, - 14,0,11,16,32,13,1,0,4,0,14,0,17,0,0,0, - 14,0,49,128,64,64,64,64,128,32,128,32,128,32,128,32, - 64,64,64,64,49,128,14,0,11,15,30,13,1,0,13,0, - 22,0,0,0,14,0,49,128,64,64,64,64,128,32,128,32, - 128,32,128,32,64,64,64,64,49,128,14,0,11,15,30,13, - 1,0,17,0,17,0,0,0,14,0,49,128,64,64,64,64, - 128,32,128,32,128,32,128,32,64,64,64,64,49,128,14,0, - 8,8,8,10,1,0,129,66,36,24,24,36,66,129,11,14, - 28,13,1,255,0,64,14,128,49,128,65,64,66,64,130,32, - 132,32,132,32,136,32,72,64,80,64,49,128,46,0,64,0, - 9,16,32,12,1,0,32,0,48,0,8,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,12,1,0,2,0,6,0, - 8,0,0,0,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,65,0,62,0,9,16,32,12, - 1,0,8,0,28,0,34,0,0,0,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,65,0, - 62,0,9,15,30,12,1,0,34,0,34,0,0,0,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,65,0,62,0,9,16,32,11,1,0,2,0,6,0, - 8,0,0,0,128,128,65,0,65,0,34,0,34,0,20,0, - 28,0,8,0,8,0,8,0,8,0,8,0,8,12,12,11, - 2,0,128,128,252,130,129,129,130,252,128,128,128,128,7,12, - 12,10,2,0,120,132,130,130,132,188,134,130,130,130,132,184, - 8,13,13,9,1,0,32,48,8,0,124,130,2,6,122,130, - 130,134,123,8,13,13,9,1,0,4,12,16,0,124,130,2, - 6,122,130,130,134,123,8,13,13,9,1,0,16,56,68,0, - 124,130,2,6,122,130,130,134,123,8,12,12,9,1,0,52, - 88,0,124,130,2,6,122,130,130,134,123,8,12,12,9,1, - 0,40,40,0,124,130,2,6,122,130,130,134,123,8,13,13, - 9,1,0,16,40,16,0,124,130,2,6,122,130,130,134,123, - 13,9,18,15,1,0,124,224,131,16,2,8,6,8,123,248, - 130,0,130,8,135,16,120,224,7,13,13,8,1,252,56,68, - 130,128,128,128,130,68,56,16,16,72,48,7,13,13,9,1, - 0,64,96,16,0,56,68,130,130,254,128,130,68,56,7,13, - 13,9,1,0,8,24,32,0,56,68,130,130,254,128,130,68, - 56,7,13,13,9,1,0,16,56,68,0,56,68,130,130,254, - 128,130,68,56,7,12,12,9,1,0,40,40,0,56,68,130, - 130,254,128,130,68,56,3,13,13,4,1,0,128,192,32,0, - 64,64,64,64,64,64,64,64,64,3,13,13,4,1,0,32, - 96,128,0,64,64,64,64,64,64,64,64,64,5,13,13,4, - 0,0,32,112,136,0,32,32,32,32,32,32,32,32,32,3, - 12,12,4,1,0,160,160,0,64,64,64,64,64,64,64,64, - 64,7,12,12,9,1,0,72,48,88,60,68,130,130,130,130, - 130,68,56,7,12,12,9,1,0,52,88,0,188,194,130,130, - 130,130,130,130,130,7,13,13,9,1,0,32,48,8,0,56, - 68,130,130,130,130,130,68,56,7,13,13,9,1,0,8,24, - 32,0,56,68,130,130,130,130,130,68,56,7,13,13,9,1, - 0,16,56,68,0,56,68,130,130,130,130,130,68,56,7,12, - 12,9,1,0,52,88,0,56,68,130,130,130,130,130,68,56, - 7,12,12,9,1,0,40,40,0,56,68,130,130,130,130,130, - 68,56,7,9,9,10,1,0,16,16,0,0,254,0,0,16, - 16,7,10,10,10,1,0,2,60,68,138,146,146,162,162,68, - 184,7,13,13,9,1,0,32,48,8,0,130,130,130,130,130, - 130,130,134,122,7,13,13,9,1,0,4,12,16,0,130,130, - 130,130,130,130,130,134,122,7,13,13,9,1,0,16,56,68, - 0,130,130,130,130,130,130,130,134,122,7,12,12,9,1,0, - 40,40,0,130,130,130,130,130,130,130,134,122,7,16,16,8, - 0,253,8,24,32,0,130,130,68,68,40,40,56,16,16,32, - 32,192,7,16,16,9,1,252,128,128,128,184,196,130,130,130, - 130,130,196,184,128,128,128,128,7,15,15,8,0,253,40,40, - 0,130,130,68,68,40,40,56,16,16,32,32,192}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=13 h=16 x= 3 y=10 dx=17 dy= 0 ascent=13 len=28 - Font Bounding box w=20 h=26 x=-2 y=-6 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =12 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR12r[1907] U8G_FONT_SECTION("u8g_font_helvR12r") = { - 0,20,26,254,250,12,2,91,5,99,32,127,252,13,252,12, - 252,0,0,0,5,0,1,1,12,12,5,2,0,128,128,128, - 128,128,128,128,128,128,0,128,128,4,4,4,6,1,8,144, - 144,144,144,8,11,11,9,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,15,15,9,1,254,16,124,146,146,144,80, - 48,24,20,18,146,146,124,16,16,12,12,24,14,0,0,112, - 64,136,128,136,128,137,0,114,0,2,0,4,0,4,224,9, - 16,17,16,17,16,32,224,10,12,24,11,0,0,24,0,36, - 0,66,0,66,0,36,0,24,0,41,0,69,0,130,0,131, - 0,68,128,56,64,2,4,4,3,0,8,192,192,64,64,3, - 16,16,6,1,252,32,64,64,64,128,128,128,128,128,128,128, - 128,64,64,64,32,3,16,16,6,1,252,128,64,64,64,32, - 32,32,32,32,32,32,32,64,64,64,128,5,5,5,6,0, - 7,32,168,112,80,136,9,9,18,10,0,0,8,0,8,0, - 8,0,8,0,255,128,8,0,8,0,8,0,8,0,2,4, - 4,4,1,254,64,64,64,128,4,1,1,5,0,4,240,1, - 2,2,4,2,0,128,128,4,12,12,5,0,0,16,16,32, - 32,32,32,64,64,64,128,128,128,7,12,12,9,1,0,56, - 68,68,130,130,130,130,130,130,68,68,56,3,12,12,9,3, - 0,32,32,96,160,32,32,32,32,32,32,32,32,7,12,12, - 9,1,0,56,68,130,130,2,4,8,48,64,128,128,254,7, - 12,12,9,1,0,56,68,130,130,4,56,4,2,130,130,68, - 56,8,12,12,9,0,0,12,20,20,36,36,68,68,132,255, - 4,4,4,7,12,12,9,1,0,62,32,32,64,120,68,2, - 2,2,130,68,56,7,12,12,9,1,0,60,66,130,128,184, - 196,130,130,130,130,68,56,8,12,12,9,0,0,255,1,2, - 4,4,8,8,16,16,16,32,32,7,12,12,9,1,0,56, - 68,130,130,68,56,68,130,130,130,68,56,7,12,12,9,1, - 0,56,68,130,130,130,130,70,58,2,130,132,120,1,9,9, - 4,2,0,128,128,0,0,0,0,0,128,128,2,11,11,4, - 1,254,64,64,0,0,0,0,0,64,64,64,128,9,9,18, - 10,0,0,1,128,6,0,24,0,96,0,128,0,96,0,24, - 0,6,0,1,128,8,4,4,10,0,2,255,0,0,255,9, - 9,18,10,1,0,192,0,48,0,12,0,3,0,0,128,3, - 0,12,0,48,0,192,0,7,12,12,9,1,0,56,68,130, - 130,2,4,8,16,16,0,16,16,13,14,28,17,1,254,7, - 128,24,96,32,16,67,208,76,72,136,72,144,136,144,136,144, - 144,153,144,78,96,64,0,48,96,15,128,10,12,24,11,0, - 0,12,0,12,0,18,0,18,0,18,0,33,0,33,0,127, - 128,64,128,64,128,128,64,128,64,9,12,24,11,1,0,252, - 0,130,0,129,0,129,0,130,0,254,0,129,0,128,128,128, - 128,128,128,129,0,254,0,10,12,24,12,1,0,15,0,48, - 128,64,64,64,0,128,0,128,0,128,0,128,0,64,0,64, - 64,48,128,15,0,10,12,24,12,1,0,252,0,131,0,128, - 128,128,128,128,64,128,64,128,64,128,64,128,128,128,128,131, - 0,252,0,8,12,12,11,1,0,255,128,128,128,128,255,128, - 128,128,128,128,255,7,12,12,10,1,0,254,128,128,128,128, - 254,128,128,128,128,128,128,10,12,24,13,1,0,14,0,49, - 128,64,64,64,0,128,0,128,0,135,192,128,64,64,64,64, - 192,49,64,14,64,9,12,24,12,1,0,128,128,128,128,128, - 128,128,128,128,128,255,128,128,128,128,128,128,128,128,128,128, - 128,128,128,1,12,12,4,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,6,12,12,8,0,0,4,4,4,4,4, - 4,4,4,132,132,132,120,8,12,12,11,1,0,129,130,132, - 136,144,176,200,136,132,130,130,129,7,12,12,9,1,0,128, - 128,128,128,128,128,128,128,128,128,128,254,11,12,24,13,1, - 0,128,32,192,96,192,96,160,160,160,160,160,160,145,32,145, - 32,145,32,138,32,138,32,132,32,9,12,24,12,1,0,128, - 128,192,128,160,128,160,128,144,128,136,128,136,128,132,128,130, - 128,130,128,129,128,128,128,11,12,24,13,1,0,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,8,12,12,11,2,0,252,130,129,129,130, - 252,128,128,128,128,128,128,11,13,26,13,1,255,14,0,49, - 128,64,64,64,64,128,32,128,32,128,32,128,32,64,64,66, - 64,49,128,14,128,0,64,9,12,24,12,2,0,252,0,130, - 0,129,0,129,0,130,0,252,0,130,0,129,0,129,0,129, - 0,129,0,128,128,9,12,24,11,1,0,62,0,65,0,128, - 128,128,128,64,0,48,0,14,0,1,0,128,128,128,128,65, - 0,62,0,9,12,24,10,0,0,255,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,9,12,24,12,1,0,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,65,0,62,0,10, - 12,24,11,0,0,128,64,128,64,64,128,64,128,64,128,33, - 0,33,0,18,0,18,0,18,0,12,0,12,0,13,12,24, - 15,1,0,130,8,130,8,130,8,69,16,69,16,69,16,40, - 160,40,160,40,160,16,64,16,64,16,64,8,12,12,11,1, - 0,129,66,66,36,36,24,24,36,36,66,66,129,9,12,24, - 11,1,0,128,128,65,0,65,0,34,0,34,0,20,0,28, - 0,8,0,8,0,8,0,8,0,8,0,9,12,24,10,0, - 0,127,128,1,0,3,0,2,0,4,0,12,0,8,0,16, - 0,48,0,32,0,64,0,255,128,3,15,15,5,1,253,224, - 128,128,128,128,128,128,128,128,128,128,128,128,128,224,4,12, - 12,5,0,0,128,128,64,64,64,64,32,32,32,16,16,16, - 3,15,15,5,0,253,224,32,32,32,32,32,32,32,32,32, - 32,32,32,32,224,7,7,7,8,0,5,16,40,40,68,68, - 130,130,9,1,2,9,0,253,255,128,3,3,3,6,0,10, - 128,192,32,8,9,9,9,1,0,124,130,2,6,122,130,130, - 134,123,7,12,12,9,1,0,128,128,128,184,196,130,130,130, - 130,130,196,184,7,9,9,8,1,0,56,68,130,128,128,128, - 130,68,56,7,12,12,9,1,0,2,2,2,58,70,130,130, - 130,130,130,70,58,7,9,9,9,1,0,56,68,130,130,254, - 128,130,68,56,4,12,12,5,1,0,48,64,64,240,64,64, - 64,64,64,64,64,64,7,13,13,9,1,252,58,70,130,130, - 130,130,130,70,58,2,130,132,120,7,12,12,9,1,0,128, - 128,128,188,194,130,130,130,130,130,130,130,1,12,12,3,1, - 0,128,128,0,128,128,128,128,128,128,128,128,128,3,16,16, - 4,255,252,32,32,0,32,32,32,32,32,32,32,32,32,32, - 32,32,192,7,12,12,8,0,0,128,128,128,132,136,144,160, - 224,144,136,132,130,1,12,12,3,1,0,128,128,128,128,128, - 128,128,128,128,128,128,128,11,9,18,14,2,0,185,192,198, - 32,132,32,132,32,132,32,132,32,132,32,132,32,132,32,7, - 9,9,9,1,0,188,194,130,130,130,130,130,130,130,7,9, - 9,9,1,0,56,68,130,130,130,130,130,68,56,7,13,13, - 9,1,252,184,196,130,130,130,130,130,196,184,128,128,128,128, - 7,13,13,9,1,252,58,70,130,130,130,130,130,70,58,2, - 2,2,2,4,9,9,5,1,0,176,192,128,128,128,128,128, - 128,128,6,9,9,8,1,0,120,132,132,192,48,12,132,132, - 120,4,11,11,5,1,0,64,64,240,64,64,64,64,64,64, - 64,48,7,9,9,9,1,0,130,130,130,130,130,130,130,134, - 122,7,9,9,8,0,0,130,130,68,68,68,40,40,56,16, - 11,9,18,12,0,0,132,32,132,32,68,64,78,64,74,64, - 42,128,42,128,17,0,17,0,7,9,9,8,0,0,130,68, - 68,40,16,40,68,68,130,7,12,12,8,0,253,130,130,68, - 68,40,40,56,16,16,32,32,192,6,9,9,8,1,0,252, - 4,8,16,32,32,64,128,252,3,16,16,6,1,252,32,64, - 64,64,64,64,64,128,64,64,64,64,64,64,64,32,1,16, - 16,4,1,252,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,16,16,6,1,252,128,64,64,64,64,64, - 64,32,64,64,64,64,64,64,64,128,8,2,2,10,1,4, - 113,142,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=12 dx=18 dy= 0 ascent=18 len=36 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14[4920] U8G_FONT_SECTION("u8g_font_helvR14") = { - 0,22,29,254,249,14,2,149,6,82,32,255,252,18,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,5,0,1,2, - 14,14,6,2,252,192,192,0,0,64,64,192,192,192,192,192, - 192,192,192,8,14,14,10,1,254,4,4,62,127,107,200,200, - 200,200,107,127,62,16,16,9,13,26,10,0,0,30,0,63, - 0,97,128,97,128,96,0,48,0,126,0,24,0,24,0,48, - 0,96,128,255,128,223,0,8,7,7,10,1,3,195,255,102, - 102,102,255,195,8,13,13,10,1,0,195,195,102,102,102,60, - 255,24,255,24,24,24,24,2,18,18,5,1,252,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,8, - 18,18,10,1,252,60,126,195,195,240,124,110,199,195,227,115, - 62,14,7,195,195,126,60,5,2,2,6,0,12,216,216,13, - 14,28,15,1,0,15,128,48,96,64,16,71,16,136,136,144, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,7,1,6,112,152,56,72,216,104,0,248,7, - 6,6,9,1,2,54,108,216,216,108,54,9,5,10,11,1, - 3,255,128,255,128,1,128,1,128,1,128,5,1,1,6,0, - 5,248,13,14,28,14,0,0,15,128,48,96,64,16,79,144, - 136,72,136,72,136,72,143,136,137,8,136,136,72,80,64,16, - 48,96,15,128,5,1,1,5,0,12,248,5,5,5,7,1, - 8,112,216,136,216,112,8,11,11,10,1,0,24,24,24,255, - 255,24,24,24,0,255,255,5,8,8,6,0,5,112,248,152, - 24,48,96,248,248,5,8,8,6,0,5,112,248,152,48,48, - 152,248,112,4,3,3,4,0,11,48,96,192,8,14,14,10, - 1,252,195,195,195,195,195,195,195,231,255,219,192,192,192,192, - 8,18,18,10,1,252,63,114,242,242,242,242,242,114,50,18, - 18,18,18,18,18,18,18,18,2,2,2,4,1,4,192,192, - 5,5,5,5,0,252,96,112,24,216,240,4,8,8,6,0, - 5,48,240,240,48,48,48,48,48,5,8,8,7,1,6,112, - 216,136,136,216,112,0,248,7,6,6,9,1,2,216,108,54, - 54,108,216,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,136,49,24,51,56,6,120,6,216,12,252,24, - 24,24,24,14,13,26,15,0,0,48,48,240,48,240,96,48, - 192,48,192,49,184,49,124,51,76,6,12,6,24,12,48,24, - 124,24,124,14,13,26,15,0,0,112,48,248,48,152,96,48, - 192,48,192,153,136,249,24,115,56,6,120,6,216,12,252,24, - 24,24,24,7,14,14,10,1,252,24,24,0,0,24,24,24, - 56,112,224,198,198,254,124,12,18,36,13,0,0,24,0,12, - 0,6,0,0,0,6,0,6,0,15,0,15,0,25,128,25, - 128,48,192,48,192,63,192,127,224,96,96,96,96,192,48,192, - 48,12,18,36,13,0,0,1,128,3,0,6,0,0,0,6, - 0,6,0,15,0,15,0,25,128,25,128,48,192,48,192,63, - 192,127,224,96,96,96,96,192,48,192,48,12,18,36,13,0, - 0,6,0,15,0,25,128,0,0,6,0,6,0,15,0,15, - 0,25,128,25,128,48,192,48,192,63,192,127,224,96,96,96, - 96,192,48,192,48,12,18,36,13,0,0,12,128,22,128,19, - 0,0,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,12, - 17,34,13,0,0,25,128,25,128,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,12,17,34,13,0,0,6,0,9, - 0,9,0,6,0,6,0,15,0,15,0,25,128,25,128,48, - 192,48,192,63,192,127,224,96,96,96,96,192,48,192,48,16, - 14,28,18,1,0,7,255,7,255,13,128,13,128,25,128,25, - 128,49,254,49,254,63,128,127,128,97,128,97,128,193,255,193, - 255,12,18,36,14,1,252,15,128,63,224,112,112,96,48,224, - 0,192,0,192,0,192,0,192,0,224,0,96,48,112,112,63, - 224,15,128,6,0,3,0,27,0,30,0,10,18,36,13,2, - 0,48,0,24,0,12,0,0,0,255,192,255,192,192,0,192, - 0,192,0,192,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,192,255,192,10,18,36,13,2,0,3,0,6,0,12, - 0,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,10, - 18,36,13,2,0,12,0,30,0,51,0,0,0,255,192,255, - 192,192,0,192,0,192,0,192,0,255,128,255,128,192,0,192, - 0,192,0,192,0,255,192,255,192,10,17,34,13,2,0,51, - 0,51,0,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,128,255,128,192,0,192,0,192,0,192,0,255,192,255, - 192,4,18,18,6,0,0,192,96,48,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,4,18,18,6,2,0,48, - 96,192,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,6,18,18,6,0,0,48,120,132,0,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,6,17,17,6,0,0,204, - 204,0,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 14,14,28,14,255,0,63,224,63,240,48,56,48,24,48,12, - 48,12,254,12,254,12,48,12,48,12,48,24,48,56,63,240, - 63,224,11,18,36,14,1,0,12,128,22,128,19,0,0,0, - 192,96,224,96,240,96,240,96,216,96,204,96,204,96,198,96, - 198,96,195,96,193,224,193,224,192,224,192,96,13,18,36,15, - 1,0,24,0,12,0,6,0,0,0,15,128,63,224,112,112, - 96,48,224,56,192,24,192,24,192,24,192,24,224,56,96,48, - 112,112,63,224,15,128,13,18,36,15,1,0,1,128,3,0, - 6,0,0,0,15,128,63,224,112,112,96,48,224,56,192,24, - 192,24,192,24,192,24,224,56,96,48,112,112,63,224,15,128, - 13,18,36,15,1,0,3,0,7,128,12,192,0,0,15,128, - 63,224,112,112,96,48,224,56,192,24,192,24,192,24,192,24, - 224,56,96,48,112,112,63,224,15,128,13,18,36,15,1,0, - 6,64,11,64,9,128,0,0,15,128,63,224,112,112,96,48, - 224,56,192,24,192,24,192,24,192,24,224,56,96,48,112,112, - 63,224,15,128,13,17,34,15,1,0,12,192,12,192,0,0, - 15,128,63,224,112,112,96,48,224,56,192,24,192,24,192,24, - 192,24,224,56,96,48,112,112,63,224,15,128,10,9,18,10, - 0,0,192,192,97,128,51,0,30,0,12,0,30,0,51,0, - 97,128,192,192,14,14,28,15,0,0,7,204,31,248,56,48, - 48,120,112,220,97,140,99,12,98,12,102,12,108,28,56,24, - 56,56,111,240,199,192,11,18,36,14,1,0,24,0,12,0, - 6,0,0,0,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,96,192,127,192,31,0, - 11,18,36,14,1,0,3,0,6,0,12,0,0,0,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,96,192,127,192,31,0,11,18,36,14,1,0, - 6,0,15,0,25,128,0,0,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,96,192, - 127,192,31,0,11,17,34,14,1,0,49,128,49,128,0,0, - 192,96,192,96,192,96,192,96,192,96,192,96,192,96,192,96, - 192,96,192,96,192,96,96,192,127,192,31,0,12,18,36,13, - 0,0,1,128,3,0,6,0,0,0,192,48,192,48,96,96, - 96,96,48,192,57,192,25,128,15,0,6,0,6,0,6,0, - 6,0,6,0,6,0,10,14,28,12,1,0,192,0,192,0, - 192,0,255,0,255,128,193,192,192,192,192,192,193,192,255,128, - 255,0,192,0,192,0,192,0,7,14,14,9,1,0,56,124, - 198,198,198,198,220,220,198,198,198,198,222,220,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,126,0,231,0,195,0, - 7,0,127,0,227,0,195,0,195,0,231,128,121,128,9,14, - 28,11,1,0,12,0,24,0,48,0,0,0,126,0,231,0, - 195,0,7,0,127,0,227,0,195,0,195,0,231,128,121,128, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,126,0, - 231,0,195,0,7,0,127,0,227,0,195,0,195,0,231,128, - 121,128,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 126,0,231,0,195,0,7,0,127,0,227,0,195,0,195,0, - 231,128,121,128,9,14,28,11,1,0,102,0,102,0,0,0, - 0,0,126,0,231,0,195,0,7,0,127,0,227,0,195,0, - 195,0,231,128,121,128,9,14,28,11,1,0,24,0,36,0, - 36,0,24,0,126,0,231,0,195,0,7,0,127,0,227,0, - 195,0,195,0,231,128,121,128,14,10,20,17,2,0,126,240, - 231,248,195,12,7,12,127,252,227,0,195,0,195,140,231,252, - 122,240,8,14,14,10,1,252,62,127,99,192,192,192,192,99, - 127,62,24,12,108,120,8,14,14,10,1,0,48,24,12,0, - 60,126,195,195,255,192,192,227,127,60,8,14,14,10,1,0, - 12,24,48,0,60,126,195,195,255,192,192,227,127,60,8,14, - 14,10,1,0,24,60,102,0,60,126,195,195,255,192,192,227, - 127,60,8,14,14,10,1,0,102,102,0,0,60,126,195,195, - 255,192,192,227,127,60,4,14,14,4,0,0,192,96,48,0, - 96,96,96,96,96,96,96,96,96,96,4,14,14,4,0,0, - 48,96,192,0,96,96,96,96,96,96,96,96,96,96,6,14, - 14,4,255,0,48,120,204,0,48,48,48,48,48,48,48,48, - 48,48,5,14,14,4,0,0,216,216,0,0,96,96,96,96, - 96,96,96,96,96,96,9,14,28,11,1,0,96,0,54,0, - 56,0,76,0,62,0,127,0,99,0,193,128,193,128,193,128, - 193,128,99,0,127,0,62,0,8,14,14,10,1,0,50,90, - 76,0,222,255,227,195,195,195,195,195,195,195,9,14,28,11, - 1,0,48,0,24,0,12,0,0,0,62,0,127,0,99,0, - 193,128,193,128,193,128,193,128,99,0,127,0,62,0,9,14, - 28,11,1,0,6,0,12,0,24,0,0,0,62,0,127,0, - 99,0,193,128,193,128,193,128,193,128,99,0,127,0,62,0, - 9,14,28,11,1,0,24,0,60,0,102,0,0,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,0,50,0,90,0,76,0,0,0, - 62,0,127,0,99,0,193,128,193,128,193,128,193,128,99,0, - 127,0,62,0,9,14,28,11,1,0,51,0,51,0,0,0, - 0,0,62,0,127,0,99,0,193,128,193,128,193,128,193,128, - 99,0,127,0,62,0,8,8,8,10,1,1,24,24,0,255, - 255,0,24,24,11,10,20,11,0,0,14,96,63,192,49,128, - 99,192,102,192,108,192,120,192,49,128,127,128,206,0,8,14, - 14,10,1,0,48,24,12,0,195,195,195,195,195,195,195,199, - 255,123,8,14,14,10,1,0,6,12,24,0,195,195,195,195, - 195,195,195,199,255,123,8,14,14,10,1,0,24,60,102,0, - 195,195,195,195,195,195,195,199,255,123,8,14,14,10,1,0, - 102,102,0,0,195,195,195,195,195,195,195,199,255,123,8,18, - 18,10,1,252,6,12,24,0,195,195,195,102,102,102,36,60, - 24,24,24,24,112,112,9,18,36,11,1,252,192,0,192,0, - 192,0,192,0,222,0,255,0,227,0,193,128,193,128,193,128, - 193,128,227,0,255,0,222,0,192,0,192,0,192,0,192,0, - 8,18,18,10,1,252,102,102,0,0,195,195,195,102,102,102, - 36,60,24,24,24,24,112,112}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 13 - Calculated Max Values w=16 h=18 x= 2 y=11 dx=18 dy= 0 ascent=14 len=34 - Font Bounding box w=22 h=29 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR14r[2281] U8G_FONT_SECTION("u8g_font_helvR14r") = { - 0,22,29,254,249,14,2,149,6,82,32,127,252,14,252,14, - 252,0,0,0,5,0,1,2,14,14,6,2,0,192,192,192, - 192,192,192,192,192,128,128,0,0,192,192,5,5,5,5,0, - 9,216,216,216,216,216,10,13,26,10,0,0,9,0,9,0, - 9,0,127,192,127,192,18,0,18,0,18,0,255,128,255,128, - 36,0,36,0,36,0,9,16,32,10,1,254,8,0,62,0, - 127,0,203,0,200,0,232,0,120,0,62,0,15,0,9,128, - 201,128,235,128,127,0,62,0,8,0,8,0,14,13,26,16, - 1,0,120,96,204,192,204,192,205,128,205,128,123,0,3,0, - 6,120,6,204,12,204,12,204,24,204,24,120,12,13,26,13, - 1,0,60,0,126,0,102,0,102,0,60,0,124,0,238,192, - 198,192,195,192,195,128,231,192,126,224,60,112,1,5,5,3, - 1,9,128,128,128,128,128,4,18,18,6,0,252,16,48,96, - 96,192,192,192,192,192,192,192,192,192,192,96,96,48,16,4, - 18,18,6,1,252,128,192,96,96,48,48,48,48,48,48,48, - 48,48,48,96,96,192,128,5,7,7,7,1,7,32,168,248, - 32,248,168,32,8,10,10,10,1,0,24,24,24,24,255,255, - 24,24,24,24,2,5,5,5,1,253,192,192,64,64,128,5, - 1,1,6,0,5,248,2,2,2,5,1,0,192,192,5,14, - 14,5,0,0,24,24,24,24,48,48,48,96,96,96,192,192, - 192,192,8,13,13,10,1,0,60,126,102,195,195,195,195,195, - 195,195,102,126,60,5,13,13,10,2,0,24,248,248,24,24, - 24,24,24,24,24,24,24,24,8,13,13,10,1,0,60,254, - 195,3,7,14,28,56,112,224,192,255,255,8,13,13,10,1, - 0,62,127,195,195,6,28,30,7,3,195,199,126,60,9,13, - 26,10,0,0,3,0,7,0,15,0,27,0,51,0,51,0, - 99,0,195,0,255,128,255,128,3,0,3,0,3,0,8,13, - 13,10,1,0,254,254,192,192,252,254,199,3,3,195,199,254, - 124,8,13,13,10,1,0,60,127,99,192,192,220,254,195,195, - 195,227,126,60,8,13,13,10,1,0,255,255,3,6,12,12, - 24,24,48,48,96,96,96,8,13,13,10,1,0,60,126,231, - 195,195,102,126,231,195,195,231,126,60,8,13,13,10,1,0, - 60,126,199,195,195,195,127,59,3,3,198,254,124,2,10,10, - 5,1,0,192,192,0,0,0,0,0,0,192,192,2,13,13, - 5,1,253,192,192,0,0,0,0,0,0,192,192,64,64,128, - 8,9,9,10,1,0,3,15,60,112,192,112,60,15,3,7, - 5,5,11,2,2,254,254,0,254,254,8,9,9,10,1,0, - 192,240,60,14,3,14,60,240,192,7,14,14,10,1,0,124, - 254,198,198,14,28,56,48,48,48,0,0,48,48,16,17,34, - 18,1,253,3,240,15,252,28,14,48,6,99,211,103,115,198, - 51,204,99,204,102,204,102,204,204,207,248,103,112,112,0,56, - 0,31,240,7,224,12,14,28,13,0,0,6,0,6,0,15, - 0,15,0,25,128,25,128,48,192,48,192,63,192,127,224,96, - 96,96,96,192,48,192,48,11,14,28,13,1,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,128,255,192,192,224,192, - 96,192,96,192,224,255,192,255,128,12,14,28,14,1,0,15, - 128,63,224,112,112,96,48,224,0,192,0,192,0,192,0,192, - 0,224,0,96,48,112,112,63,224,15,128,12,14,28,14,1, - 0,255,128,255,192,192,224,192,96,192,48,192,48,192,48,192, - 48,192,48,192,48,192,96,192,224,255,192,255,128,10,14,28, - 13,2,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 128,255,128,192,0,192,0,192,0,192,0,255,192,255,192,9, - 14,28,12,2,0,255,128,255,128,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,13,14,28,15,1,0,15,192,63,240,112,56,96,24,224, - 24,192,0,192,0,192,248,192,248,224,24,96,24,112,56,63, - 248,15,216,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,255,224,255,224,192,96,192,96,192,96,192, - 96,192,96,192,96,2,14,14,6,2,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,8,14,14,10,0,0,3, - 3,3,3,3,3,3,3,3,195,195,231,126,60,12,14,28, - 13,2,0,192,224,193,192,195,128,199,0,206,0,220,0,248, - 0,252,0,206,0,199,0,195,128,193,192,192,224,192,112,9, - 14,28,11,1,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,128,255, - 128,14,14,28,16,1,0,192,12,192,12,224,28,224,28,240, - 60,240,60,216,108,216,108,204,204,204,204,196,140,199,140,195, - 12,195,12,11,14,28,14,1,0,192,96,224,96,240,96,240, - 96,216,96,204,96,204,96,198,96,198,96,195,96,193,224,193, - 224,192,224,192,96,13,14,28,15,1,0,15,128,63,224,112, - 112,96,48,224,56,192,24,192,24,192,24,192,24,224,56,96, - 48,112,112,63,224,15,128,10,14,28,13,2,0,255,0,255, - 128,193,192,192,192,192,192,193,192,255,128,255,0,192,0,192, - 0,192,0,192,0,192,0,192,0,13,15,30,15,1,255,15, - 128,63,224,112,112,96,48,224,56,192,24,192,24,192,24,192, - 24,225,184,97,176,112,240,63,224,15,176,0,48,11,14,28, - 14,1,0,255,128,255,192,192,224,192,96,192,96,192,224,255, - 192,255,128,192,192,192,192,192,96,192,96,192,96,192,96,10, - 14,28,13,1,0,30,0,127,128,225,192,192,192,224,0,124, - 0,31,0,3,128,1,192,0,192,192,192,225,192,127,128,63, - 0,10,14,28,12,1,0,255,192,255,192,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,11,14,28,14,1,0,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,96, - 192,127,192,31,0,12,14,28,13,0,0,192,48,192,48,96, - 96,96,96,96,96,48,192,48,192,48,192,25,128,25,128,25, - 128,15,0,15,0,6,0,16,14,28,18,1,0,193,131,193, - 131,193,131,195,195,99,198,98,70,102,102,102,102,54,108,54, - 108,52,44,28,56,24,24,24,24,11,14,28,13,1,0,192, - 96,192,96,96,192,113,192,49,128,27,0,14,0,14,0,27, - 0,49,128,113,192,96,192,192,96,192,96,12,14,28,13,0, - 0,192,48,192,48,96,96,96,96,48,192,57,192,25,128,15, - 0,6,0,6,0,6,0,6,0,6,0,6,0,10,14,28, - 12,1,0,255,192,255,192,0,192,1,128,3,0,6,0,12, - 0,28,0,24,0,48,0,96,0,192,0,255,192,255,192,4, - 18,18,5,0,252,240,240,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,240,240,5,14,14,5,0,0,192,192,192, - 96,96,96,48,48,48,48,24,24,24,24,4,18,18,5,0, - 252,240,240,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,240,240,7,6,6,9,1,7,16,56,108,108,198,198,11, - 2,4,11,0,252,255,224,255,224,4,3,3,4,0,11,192, - 96,48,9,10,20,11,1,0,126,0,231,0,195,0,7,0, - 127,0,227,0,195,0,195,0,231,128,121,128,9,14,28,11, - 1,0,192,0,192,0,192,0,192,0,222,0,255,0,227,0, - 193,128,193,128,193,128,193,128,227,0,255,0,222,0,8,10, - 10,10,1,0,62,127,99,192,192,192,192,99,127,62,9,14, - 28,11,1,0,1,128,1,128,1,128,1,128,61,128,127,128, - 99,128,193,128,193,128,193,128,193,128,99,128,127,128,61,128, - 8,10,10,10,1,0,60,126,195,195,255,192,192,227,127,60, - 6,14,14,6,0,0,28,60,48,48,252,252,48,48,48,48, - 48,48,48,48,9,14,28,11,1,252,61,128,127,128,97,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 99,0,127,0,28,0,8,14,14,10,1,0,192,192,192,192, - 222,255,227,195,195,195,195,195,195,195,2,14,14,4,1,0, - 192,192,0,0,192,192,192,192,192,192,192,192,192,192,4,18, - 18,4,255,252,48,48,0,0,48,48,48,48,48,48,48,48, - 48,48,48,48,240,224,8,14,14,9,1,0,192,192,192,192, - 198,204,216,240,248,216,204,206,198,199,2,14,14,4,1,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,14,10, - 20,16,1,0,222,120,255,252,227,140,195,12,195,12,195,12, - 195,12,195,12,195,12,195,12,8,10,10,10,1,0,222,255, - 227,195,195,195,195,195,195,195,9,10,20,11,1,0,62,0, - 127,0,99,0,193,128,193,128,193,128,193,128,99,0,127,0, - 62,0,9,14,28,11,1,252,222,0,255,0,227,0,193,128, - 193,128,193,128,193,128,227,0,255,0,222,0,192,0,192,0, - 192,0,192,0,9,14,28,11,1,252,61,128,127,128,99,128, - 193,128,193,128,193,128,193,128,99,128,127,128,61,128,1,128, - 1,128,1,128,1,128,5,10,10,6,1,0,216,216,224,192, - 192,192,192,192,192,192,7,10,10,9,1,0,60,126,198,192, - 252,62,6,198,252,120,6,13,13,6,0,0,48,48,48,252, - 252,48,48,48,48,48,48,60,28,8,10,10,10,1,0,195, - 195,195,195,195,195,195,199,255,123,8,10,10,10,1,0,195, - 195,195,102,102,102,36,60,24,24,12,10,20,14,1,0,198, - 48,198,48,198,48,102,96,102,96,105,96,41,64,57,192,25, - 128,25,128,8,10,10,10,1,0,195,231,102,60,24,24,60, - 102,231,195,8,14,14,10,1,252,195,195,195,102,102,102,36, - 60,24,24,24,24,112,112,7,10,10,9,1,0,254,254,6, - 12,24,48,96,192,254,254,6,18,18,6,255,252,12,24,48, - 48,48,48,48,96,192,96,48,48,48,48,48,48,24,12,2, - 18,18,5,1,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,6,18,18,6,0,252,192,96,48, - 48,48,48,48,24,12,24,48,48,48,48,48,48,96,192,8, - 3,3,10,1,4,115,255,206,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=16 dx=25 dy= 0 ascent=24 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18[7307] U8G_FONT_SECTION("u8g_font_helvR18") = { - 0,28,37,253,248,19,4,37,9,49,32,255,251,24,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,6,0,1,2,19,19,6,2, - 251,192,192,192,0,0,64,64,192,192,192,192,192,192,192,192, - 192,192,192,192,10,18,36,13,1,254,1,128,1,128,31,0, - 63,128,115,192,102,192,198,0,204,0,204,0,204,0,216,0, - 216,0,216,192,113,192,127,128,63,0,96,0,96,0,12,18, - 36,14,1,0,31,128,63,224,112,112,96,48,96,0,112,0, - 48,0,24,0,255,128,255,128,24,0,24,0,24,0,48,0, - 48,0,103,48,255,240,240,224,11,12,24,13,1,3,192,96, - 238,224,127,192,49,128,96,192,96,192,96,192,96,192,49,128, - 127,192,238,224,192,96,14,18,36,14,0,0,224,28,96,24, - 112,56,48,48,56,112,24,96,28,224,12,192,63,240,63,240, - 3,0,63,240,63,240,3,0,3,0,3,0,3,0,3,0, - 2,24,24,6,2,251,192,192,192,192,192,192,192,192,192,192, - 0,0,0,0,192,192,192,192,192,192,192,192,192,192,11,24, - 48,13,1,251,31,0,63,128,113,192,96,192,112,192,56,0, - 28,0,126,0,231,0,195,128,193,192,192,192,96,96,112,96, - 56,96,28,192,15,128,7,0,3,128,97,192,96,192,113,192, - 63,128,31,0,6,2,2,8,1,16,204,204,19,19,57,19, - 1,0,3,248,0,14,14,0,48,1,128,96,0,192,65,240, - 64,195,24,96,134,12,32,132,0,32,132,0,32,132,0,32, - 132,0,32,134,12,32,195,24,96,65,240,64,96,0,192,48, - 1,128,24,3,0,14,14,0,3,248,0,7,12,12,9,1, - 7,120,204,204,28,108,204,204,220,118,0,254,254,9,8,16, - 14,2,3,25,128,51,0,102,0,204,0,204,0,102,0,51, - 0,25,128,13,8,16,15,1,2,255,248,255,248,0,24,0, - 24,0,24,0,24,0,24,0,24,6,2,2,8,1,6,252, - 252,18,19,57,19,1,0,7,248,0,28,14,0,48,3,0, - 96,1,128,67,240,128,194,24,192,130,8,64,130,8,64,130, - 8,64,130,16,64,131,240,64,130,32,64,130,16,64,194,16, - 192,66,8,128,96,1,128,48,3,0,28,14,0,7,248,0, - 6,2,2,8,1,16,252,252,8,7,7,9,0,11,60,102, - 195,195,195,102,60,12,13,26,14,1,0,6,0,6,0,6, - 0,6,0,255,240,255,240,6,0,6,0,6,0,6,0,0, - 0,255,240,255,240,7,10,10,7,0,8,60,126,198,6,12, - 24,48,96,254,254,7,10,10,7,0,8,124,254,198,6,60, - 60,6,198,254,124,5,4,4,7,1,15,24,48,96,192,10, - 19,38,14,2,251,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,227,192,254,192,220, - 192,192,0,192,0,192,0,192,0,192,0,10,24,48,12,1, - 251,31,192,127,192,125,128,253,128,253,128,253,128,253,128,253, - 128,253,128,125,128,125,128,61,128,13,128,13,128,13,128,13, - 128,13,128,13,128,13,128,13,128,13,128,13,128,13,128,13, - 128,2,3,3,6,2,6,192,192,192,5,6,6,7,1,251, - 96,112,24,24,248,112,4,10,10,7,0,8,48,48,240,240, - 48,48,48,48,48,48,7,12,12,9,1,7,56,108,198,198, - 198,198,198,108,56,0,254,254,9,8,16,14,3,3,204,0, - 102,0,51,0,25,128,25,128,51,0,102,0,204,0,18,18, - 54,19,1,0,48,24,0,48,24,0,240,48,0,240,48,0, - 48,96,0,48,96,0,48,192,0,48,192,0,49,131,0,49, - 135,0,3,15,0,3,15,0,6,27,0,6,51,0,12,127, - 192,12,127,192,24,3,0,24,3,0,18,18,54,19,1,0, - 48,24,0,48,24,0,240,48,0,240,48,0,48,96,0,48, - 96,0,48,192,0,48,192,0,49,135,128,49,143,192,3,24, - 192,3,0,192,6,1,128,6,3,0,12,6,0,12,12,0, - 24,31,192,24,31,192,19,18,54,19,0,0,124,12,0,254, - 12,0,198,24,0,6,24,0,60,48,0,60,48,0,6,96, - 0,198,96,0,254,193,128,124,195,128,1,135,128,1,135,128, - 3,13,128,3,25,128,6,63,224,6,63,224,12,1,128,12, - 1,128,10,19,38,12,1,251,12,0,12,0,12,0,0,0, - 0,0,12,0,12,0,12,0,12,0,24,0,56,0,112,0, - 96,0,224,192,192,192,193,192,227,128,127,128,62,0,15,24, - 48,17,1,0,12,0,6,0,3,0,1,128,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,24,48,17,1,0,0,96,0,192,1,128, - 3,0,0,0,3,128,3,128,6,192,6,192,12,64,12,96, - 12,96,24,48,24,48,24,48,48,24,63,248,63,248,96,12, - 96,12,96,12,192,6,192,6,192,6,15,24,48,17,1,0, - 1,128,3,192,6,96,12,48,0,0,3,128,3,128,6,192, - 6,192,12,64,12,96,12,96,24,48,24,48,24,48,48,24, - 63,248,63,248,96,12,96,12,96,12,192,6,192,6,192,6, - 15,23,46,17,1,0,7,16,13,176,8,224,0,0,3,128, - 3,128,6,192,6,192,12,64,12,96,12,96,24,48,24,48, - 24,48,48,24,63,248,63,248,96,12,96,12,96,12,192,6, - 192,6,192,6,15,23,46,17,1,0,12,96,12,96,0,0, - 0,0,3,128,3,128,6,192,6,192,12,64,12,96,12,96, - 24,48,24,48,24,48,48,24,63,248,63,248,96,12,96,12, - 96,12,192,6,192,6,192,6,15,24,48,17,1,0,3,128, - 4,64,4,64,3,128,0,0,3,128,3,128,6,192,6,192, - 12,64,12,96,12,96,24,48,24,48,24,48,48,24,63,248, - 63,248,96,12,96,12,96,12,192,6,192,6,192,6,21,19, - 57,23,1,0,3,255,248,3,255,248,6,96,0,6,96,0, - 12,96,0,12,96,0,12,96,0,24,96,0,24,127,248,24, - 127,248,48,96,0,63,224,0,63,224,0,96,96,0,96,96, - 0,96,96,0,192,96,0,192,127,248,192,127,248,15,24,48, - 18,1,251,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,1,128,0,192,0,192,7, - 192,3,128,12,24,48,16,2,0,48,0,24,0,12,0,6, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,12,24,48,16,2,0,1, - 128,3,0,6,0,12,0,0,0,255,240,255,240,192,0,192, - 0,192,0,192,0,192,0,192,0,255,224,255,224,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,255,240,255,240,12, - 24,48,16,2,0,6,0,15,0,25,128,48,192,0,0,255, - 240,255,240,192,0,192,0,192,0,192,0,192,0,192,0,255, - 224,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,255,240,255,240,12,23,46,16,2,0,24,192,24,192,0, - 0,0,0,255,240,255,240,192,0,192,0,192,0,192,0,192, - 0,192,0,255,224,255,224,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,255,240,255,240,5,24,24,8,1,0,192, - 96,48,24,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,5,24,24,8,2,0,24,48,96, - 192,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,8,24,24,8,0,0,24,60,102,195,0, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,6,23,23,8,1,0,204,204,0,0,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 18,19,57,18,255,0,31,248,0,31,254,0,24,15,0,24, - 3,128,24,1,128,24,1,192,24,0,192,24,0,192,255,128, - 192,255,128,192,24,0,192,24,0,192,24,0,192,24,1,192, - 24,1,128,24,3,128,24,15,0,31,254,0,31,248,0,14, - 23,46,18,2,0,14,32,27,96,17,192,0,0,224,12,240, - 12,240,12,216,12,220,12,204,12,206,12,198,12,199,12,195, - 12,195,140,193,140,193,204,192,204,192,236,192,108,192,60,192, - 60,192,28,16,24,48,18,1,0,12,0,6,0,3,0,1, - 128,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,24,48,18,1,0,0, - 48,0,96,0,192,1,128,0,0,7,224,31,248,60,60,112, - 14,96,6,224,7,192,3,192,3,192,3,192,3,192,3,192, - 3,192,3,224,7,96,6,112,14,60,60,31,248,7,224,16, - 24,48,18,1,0,0,192,1,224,3,48,6,24,0,0,7, - 224,31,248,60,60,112,14,96,6,224,7,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,224,7,96,6,112,14,60, - 60,31,248,7,224,16,23,46,18,1,0,3,136,6,216,4, - 112,0,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,16,23,46,18,1,0,6, - 48,6,48,0,0,0,0,7,224,31,248,60,60,112,14,96, - 6,224,7,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,224,7,96,6,112,14,60,60,31,248,7,224,13,12,24, - 14,0,1,192,24,96,48,48,96,24,192,13,128,7,0,7, - 0,13,128,24,192,48,96,96,48,192,24,18,19,57,18,0, - 0,3,240,192,15,253,192,30,31,128,56,7,0,48,15,0, - 112,29,128,96,57,128,96,113,128,96,225,128,97,193,128,99, - 129,128,103,1,128,110,1,128,124,3,128,56,3,0,56,7, - 0,126,30,0,239,252,0,195,240,0,14,24,48,18,2,0, - 24,0,12,0,6,0,3,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,18,2,0,0,96,0,192,1,128,3,0,0,0, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 112,56,63,240,15,192,14,24,48,18,2,0,3,0,7,128, - 12,192,24,96,0,0,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,112,56,63,240,15,192,14,23,46,18, - 2,0,24,192,24,192,0,0,0,0,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,192,12,192,12,192,12,192,12, - 192,12,192,12,192,12,192,12,96,24,112,56,63,240,15,192, - 14,24,48,16,1,0,0,96,0,192,1,128,3,0,0,0, - 192,12,224,28,96,24,112,56,48,48,56,112,24,96,28,224, - 12,192,15,192,7,128,7,128,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,13,19,38,16,2,0,192,0,192,0, - 192,0,192,0,255,224,255,240,192,48,192,24,192,24,192,24, - 192,24,192,48,255,240,255,224,192,0,192,0,192,0,192,0, - 192,0,10,19,38,15,3,0,28,0,127,0,227,0,193,128, - 193,128,193,128,195,0,199,0,206,0,207,0,195,128,193,128, - 192,192,192,192,192,192,193,128,195,128,207,0,206,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,31,0, - 63,128,97,192,96,192,0,192,7,192,63,192,120,192,224,192, - 192,192,193,192,227,192,126,224,60,96,11,19,38,13,1,0, - 1,128,3,0,6,0,12,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,11,18,36,13,1,0,28,64,54,192,35,128,0,0, - 31,0,63,128,97,192,96,192,0,192,7,192,63,192,120,192, - 224,192,192,192,193,192,227,192,126,224,60,96,11,18,36,13, - 1,0,51,0,51,0,0,0,0,0,31,0,63,128,97,192, - 96,192,0,192,7,192,63,192,120,192,224,192,192,192,193,192, - 227,192,126,224,60,96,11,19,38,13,1,0,6,0,9,0, - 9,0,6,0,0,0,31,0,63,128,97,192,96,192,0,192, - 7,192,63,192,120,192,224,192,192,192,193,192,227,192,126,224, - 60,96,19,14,42,21,1,0,31,14,0,63,191,128,97,241, - 192,96,224,192,0,192,96,7,192,96,63,255,224,120,255,224, - 224,192,0,192,192,0,193,224,96,227,240,224,126,63,192,60, - 15,0,10,19,38,12,1,251,31,0,63,128,113,192,96,192, - 224,0,192,0,192,0,192,0,192,0,224,0,96,192,113,192, - 63,128,31,0,12,0,6,0,6,0,62,0,28,0,11,19, - 38,13,1,0,24,0,12,0,6,0,3,0,0,0,14,0, - 63,128,113,192,96,192,192,96,192,96,255,224,255,224,192,0, - 192,0,96,96,112,224,63,192,15,0,11,19,38,13,1,0, - 3,0,6,0,12,0,24,0,0,0,14,0,63,128,113,192, - 96,192,192,96,192,96,255,224,255,224,192,0,192,0,96,96, - 112,224,63,192,15,0,11,19,38,13,1,0,12,0,30,0, - 51,0,97,128,0,0,14,0,63,128,113,192,96,192,192,96, - 192,96,255,224,255,224,192,0,192,0,96,96,112,224,63,192, - 15,0,11,18,36,13,1,0,51,0,51,0,0,0,0,0, - 14,0,63,128,113,192,96,192,192,96,192,96,255,224,255,224, - 192,0,192,0,96,96,112,224,63,192,15,0,5,19,19,6, - 0,0,192,96,48,24,0,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,5,19,19,6,1,0,24,48,96,192,0, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,8,19, - 19,6,255,0,24,60,102,195,0,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,6,18,18,6,0,0,204,204,0, - 0,48,48,48,48,48,48,48,48,48,48,48,48,48,48,11, - 19,38,13,1,0,96,0,57,128,14,0,30,0,99,0,31, - 128,63,128,113,192,96,192,224,224,192,96,192,96,192,96,192, - 96,224,224,96,192,113,192,63,128,31,0,10,18,36,14,2, - 0,56,128,109,128,71,0,0,0,206,0,223,128,241,128,224, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,11,19,38,13,1,0,24,0,12,0,6, - 0,3,0,0,0,31,0,63,128,113,192,96,192,224,224,192, - 96,192,96,192,96,192,96,224,224,96,192,113,192,63,128,31, - 0,11,19,38,13,1,0,3,0,6,0,12,0,24,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,11,19,38, - 13,1,0,12,0,30,0,51,0,97,128,0,0,31,0,63, - 128,113,192,96,192,224,224,192,96,192,96,192,96,192,96,224, - 224,96,192,113,192,63,128,31,0,11,18,36,13,1,0,28, - 64,54,192,35,128,0,0,31,0,63,128,113,192,96,192,224, - 224,192,96,192,96,192,96,192,96,224,224,96,192,113,192,63, - 128,31,0,11,18,36,13,1,0,51,0,51,0,0,0,0, - 0,31,0,63,128,113,192,96,192,224,224,192,96,192,96,192, - 96,192,96,224,224,96,192,113,192,63,128,31,0,12,12,24, - 14,1,1,6,0,6,0,6,0,0,0,0,0,255,240,255, - 240,0,0,0,0,6,0,6,0,6,0,13,14,28,13,0, - 0,15,152,31,248,56,112,48,224,113,240,99,176,99,48,102, - 48,108,48,124,112,56,96,112,224,255,192,207,128,10,19,38, - 14,2,0,48,0,24,0,12,0,6,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,193,192,99,192,126,192,28,192,10,19,38,14,2,0,3, - 0,6,0,12,0,24,0,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,193,192,99, - 192,126,192,28,192,10,19,38,14,2,0,12,0,30,0,51, - 0,97,128,0,0,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,193,192,99,192,126,192,28, - 192,10,18,36,14,2,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,193,192,99,192,126,192,28,192,12,24,48,13,0, - 251,0,192,1,128,3,0,6,0,0,0,192,48,192,48,96, - 48,112,96,48,96,56,224,24,192,24,192,13,128,13,128,7, - 128,7,0,3,0,3,0,6,0,6,0,12,0,60,0,56, - 0,11,24,48,14,2,251,192,0,192,0,192,0,192,0,192, - 0,207,0,223,128,241,192,224,192,192,224,192,96,192,96,192, - 96,192,96,192,224,224,192,241,192,223,128,207,0,192,0,192, - 0,192,0,192,0,192,0,12,23,46,13,0,251,25,128,25, - 128,0,0,0,0,192,48,192,48,96,48,112,96,48,96,56, - 224,24,192,24,192,13,128,13,128,7,128,7,0,3,0,3, - 0,6,0,6,0,12,0,60,0,56,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--25-180-100-100-P-130-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 19, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y=15 dx=25 dy= 0 ascent=20 len=69 - Font Bounding box w=28 h=37 x=-3 y=-8 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =19 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR18r[3381] U8G_FONT_SECTION("u8g_font_helvR18r") = { - 0,28,37,253,248,19,4,37,9,49,32,127,251,20,251,19, - 251,0,0,0,6,0,1,2,19,19,6,2,0,192,192,192, - 192,192,192,192,192,192,192,192,192,128,128,0,0,192,192,192, - 6,6,6,8,1,13,204,204,204,204,204,68,11,17,34,14, - 2,0,12,192,12,192,12,192,25,128,255,224,255,224,25,128, - 25,128,51,0,51,0,255,224,255,224,51,0,51,0,102,0, - 102,0,102,0,11,22,44,13,1,254,6,0,6,0,31,128, - 63,192,118,224,102,96,102,96,102,0,118,0,62,0,62,0, - 15,128,7,192,6,224,6,96,198,96,198,96,230,224,127,192, - 63,128,6,0,6,0,19,18,54,22,1,0,0,6,0,60, - 12,0,126,12,0,195,24,0,195,24,0,195,48,0,195,48, - 0,126,96,0,60,96,0,0,192,0,0,199,128,1,143,192, - 1,152,96,3,24,96,3,24,96,6,24,96,6,15,192,4, - 7,128,14,18,36,17,2,0,15,0,31,128,57,192,48,192, - 48,192,48,192,25,128,15,0,30,0,63,24,115,152,97,216, - 192,240,192,96,192,240,225,216,127,156,30,0,2,6,6,6, - 2,13,192,192,192,192,192,64,5,24,24,8,2,251,24,24, - 48,48,96,96,96,192,192,192,192,192,192,192,192,192,192,96, - 96,96,48,48,24,24,5,24,24,8,1,251,192,192,96,96, - 48,48,48,24,24,24,24,24,24,24,24,24,24,48,48,48, - 96,96,192,192,7,7,7,10,1,12,16,16,214,124,56,108, - 68,12,12,24,14,1,1,6,0,6,0,6,0,6,0,6, - 0,255,240,255,240,6,0,6,0,6,0,6,0,6,0,2, - 6,6,6,2,253,192,192,192,64,64,128,6,2,2,8,1, - 6,252,252,2,3,3,6,2,0,192,192,192,7,19,19,7, - 0,0,6,4,12,12,8,24,24,16,16,48,48,32,96,96, - 64,192,192,128,128,11,18,36,13,1,0,31,0,63,128,113, - 192,96,192,96,192,224,224,192,96,192,96,192,96,192,96,192, - 96,192,96,224,224,96,192,96,192,113,192,63,128,31,0,6, - 18,18,13,2,0,12,12,28,252,252,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,18,36,13,1,0,30,0,127, - 128,97,192,192,192,192,96,192,96,0,224,0,192,1,192,3, - 128,15,0,28,0,56,0,112,0,224,0,192,0,255,224,255, - 224,11,18,36,13,1,0,31,0,127,128,97,128,192,192,192, - 192,192,192,0,192,1,128,15,0,15,192,0,192,0,96,0, - 96,192,96,192,192,97,192,127,128,31,0,11,18,36,13,1, - 0,1,128,3,128,3,128,7,128,15,128,13,128,25,128,57, - 128,49,128,97,128,225,128,193,128,255,224,255,224,1,128,1, - 128,1,128,1,128,11,18,36,13,1,0,127,192,127,192,96, - 0,96,0,96,0,96,0,126,0,127,128,113,192,0,192,0, - 224,0,96,0,96,192,224,192,192,225,192,127,128,30,0,11, - 18,36,13,1,0,15,0,63,192,112,192,96,96,224,96,192, - 0,192,0,207,0,223,128,241,192,224,192,192,96,192,96,192, - 96,224,224,113,192,127,192,31,0,11,18,36,13,1,0,255, - 224,255,224,0,224,0,192,1,128,1,128,3,0,3,0,6, - 0,6,0,12,0,12,0,28,0,24,0,24,0,56,0,48, - 0,48,0,11,18,36,13,1,0,14,0,63,128,49,128,96, - 192,96,192,96,192,49,128,31,0,63,128,113,192,96,192,192, - 96,192,96,192,96,192,96,96,192,127,192,31,0,11,18,36, - 13,1,0,31,0,127,192,113,192,224,192,192,96,192,96,192, - 96,192,96,224,224,113,224,127,96,30,96,0,96,0,224,192, - 192,225,192,127,128,30,0,2,14,14,6,2,0,192,192,192, - 0,0,0,0,0,0,0,0,192,192,192,2,17,17,6,2, - 253,192,192,192,0,0,0,0,0,0,0,0,192,192,192,64, - 64,128,12,12,24,15,1,1,0,48,0,240,3,192,15,0, - 60,0,224,0,224,0,60,0,15,0,3,192,0,240,0,48, - 10,5,10,15,2,5,255,192,255,192,0,0,255,192,255,192, - 12,12,24,15,1,1,192,0,240,0,60,0,15,0,3,192, - 0,112,0,112,3,192,15,0,60,0,240,0,192,0,10,19, - 38,12,1,0,31,0,127,128,113,192,224,192,192,192,193,192, - 1,128,3,128,7,0,6,0,12,0,12,0,12,0,12,0, - 0,0,0,0,12,0,12,0,12,0,22,23,69,25,2,252, - 0,255,0,3,255,192,15,1,224,28,0,112,56,0,24,48, - 0,24,96,115,12,96,251,12,193,199,12,195,134,12,195,6, - 12,198,6,12,198,12,28,198,12,24,198,12,56,231,28,112, - 99,247,224,113,227,128,56,0,0,28,0,0,15,3,0,7, - 255,0,0,252,0,15,19,38,17,1,0,3,128,3,128,6, - 192,6,192,12,64,12,96,12,96,24,48,24,48,24,48,48, - 24,63,248,63,248,96,12,96,12,96,12,192,6,192,6,192, - 6,14,19,38,17,2,0,255,192,255,240,192,112,192,24,192, - 24,192,24,192,24,192,48,255,224,255,240,192,24,192,12,192, - 12,192,12,192,12,192,28,192,120,255,240,255,192,15,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,224,6,96, - 6,112,14,60,60,31,248,7,224,15,19,38,18,2,0,255, - 192,255,240,192,120,192,28,192,12,192,14,192,6,192,6,192, - 6,192,6,192,6,192,6,192,6,192,14,192,12,192,28,192, - 120,255,240,255,192,12,19,38,16,2,0,255,240,255,240,192, - 0,192,0,192,0,192,0,192,0,192,0,255,224,255,224,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,255,240,255, - 240,11,19,38,14,2,0,255,224,255,224,192,0,192,0,192, - 0,192,0,192,0,192,0,255,192,255,192,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,16,19,38, - 19,1,0,7,224,31,248,60,60,112,14,96,6,224,6,192, - 0,192,0,192,0,192,127,192,127,192,3,192,3,224,3,96, - 7,112,15,60,63,31,251,7,227,14,19,38,18,2,0,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,255, - 252,255,252,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,2,19,19,8,3,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,10,19, - 38,13,1,0,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,192,192,192,192, - 192,192,192,192,97,128,127,128,63,0,13,19,38,18,3,0, - 192,56,192,112,192,224,193,192,195,128,199,0,206,0,220,0, - 252,0,254,0,231,0,195,128,193,128,193,192,192,224,192,96, - 192,112,192,56,192,24,11,19,38,14,2,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,255,224, - 255,224,17,19,57,21,2,0,192,1,128,224,3,128,224,3, - 128,240,7,128,240,7,128,216,13,128,216,13,128,216,13,128, - 204,25,128,204,25,128,204,25,128,198,49,128,198,49,128,198, - 49,128,195,97,128,195,97,128,195,97,128,193,193,128,193,193, - 128,14,19,38,18,2,0,224,12,240,12,240,12,216,12,220, - 12,204,12,206,12,198,12,199,12,195,12,195,140,193,140,193, - 204,192,204,192,236,192,108,192,60,192,60,192,28,16,19,38, - 18,1,0,7,224,31,248,60,60,112,14,96,6,224,7,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,224,7,96, - 6,112,14,60,60,31,248,7,224,13,19,38,16,2,0,255, - 224,255,240,192,48,192,24,192,24,192,24,192,24,192,48,255, - 240,255,224,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,16,19,38,18,1,0,7,224,31,248,60, - 60,112,14,96,6,224,7,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,224,7,96,230,112,126,60,28,31,254,7, - 231,13,19,38,17,2,0,255,224,255,240,192,48,192,24,192, - 24,192,24,192,24,192,48,255,240,255,224,192,112,192,48,192, - 24,192,24,192,24,192,24,192,24,192,24,192,24,13,19,38, - 16,2,0,15,128,63,224,96,96,192,48,192,48,192,0,224, - 0,124,0,63,128,7,224,0,240,0,56,0,24,0,24,192, - 24,192,56,240,112,127,224,31,128,14,19,38,16,1,0,255, - 252,255,252,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,14,19,38,18,2,0,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,192,12,192,12,192,12,192, - 12,192,12,192,12,192,12,192,12,96,24,112,56,63,240,15, - 192,15,19,38,17,1,0,192,6,192,6,224,14,96,12,112, - 28,48,24,48,24,56,56,24,48,24,48,28,112,12,96,12, - 96,14,224,6,192,6,192,3,128,3,128,3,128,20,19,57, - 22,1,0,192,96,48,192,96,48,192,96,48,192,240,48,96, - 240,96,97,152,96,97,152,96,97,152,96,97,152,96,49,152, - 192,51,12,192,51,12,192,51,12,192,27,13,128,27,13,128, - 30,7,128,14,7,0,12,3,0,12,3,0,15,19,38,17, - 1,0,192,6,224,14,112,28,48,24,24,48,28,112,14,224, - 7,192,3,128,3,128,7,192,14,224,12,96,28,112,56,56, - 48,24,96,12,224,14,192,6,14,19,38,16,1,0,192,12, - 224,28,96,24,112,56,48,48,56,112,24,96,28,224,12,192, - 15,192,7,128,7,128,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,13,19,38,15,1,0,255,248,255,248,0,56, - 0,112,0,224,1,192,1,192,3,128,7,0,7,0,14,0, - 28,0,28,0,56,0,112,0,112,0,224,0,255,248,255,248, - 4,24,24,7,2,251,240,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,240,240,8,19, - 19,7,0,0,192,64,64,96,32,32,48,16,16,16,24,8, - 8,12,4,4,6,2,3,4,24,24,7,1,251,240,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,240,240,10,9,18,12,1,10,12,0,12,0,30, - 0,18,0,51,0,97,128,97,128,192,192,192,192,14,2,4, - 14,0,251,255,252,255,252,5,4,4,7,1,15,192,96,48, - 24,11,14,28,13,1,0,31,0,63,128,97,192,96,192,0, - 192,7,192,63,192,120,192,224,192,192,192,193,192,227,192,126, - 224,60,96,11,19,38,14,2,0,192,0,192,0,192,0,192, - 0,192,0,207,0,223,128,241,192,224,192,192,224,192,96,192, - 96,192,96,192,96,192,224,224,192,241,192,223,128,207,0,10, - 14,28,12,1,0,31,0,63,128,113,192,96,192,224,0,192, - 0,192,0,192,0,192,0,224,0,96,192,113,192,63,128,31, - 0,11,19,38,14,1,0,0,96,0,96,0,96,0,96,0, - 96,30,96,63,96,113,224,96,224,224,96,192,96,192,96,192, - 96,192,96,224,96,96,224,113,224,63,96,30,96,11,14,28, - 13,1,0,14,0,63,128,113,192,96,192,192,96,192,96,255, - 224,255,224,192,0,192,0,96,96,112,224,63,192,15,0,6, - 19,19,8,1,0,28,60,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,48,48,11,19,38,14,1,251,30,96, - 63,96,113,224,96,224,224,96,192,96,192,96,192,96,192,96, - 224,96,96,224,113,224,63,96,30,96,0,96,192,96,224,192, - 127,192,31,0,10,19,38,13,2,0,192,0,192,0,192,0, - 192,0,192,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 2,19,19,6,2,0,192,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,4,24,24,6,0,251,48, - 48,48,0,0,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,240,224,10,19,38,12,2,0,192,0,192, - 0,192,0,192,0,192,0,193,128,195,128,199,0,206,0,220, - 0,248,0,252,0,206,0,198,0,199,0,195,128,193,128,193, - 192,192,192,2,19,19,6,2,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,16,14,28,20, - 2,0,206,60,255,126,227,199,193,131,193,131,193,131,193,131, - 193,131,193,131,193,131,193,131,193,131,193,131,193,131,10,14, - 28,14,2,0,206,0,223,128,241,128,224,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 11,14,28,13,1,0,31,0,63,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,63,128, - 31,0,11,19,38,14,2,251,207,0,223,128,241,192,224,192, - 192,224,192,96,192,96,192,96,192,96,192,224,224,192,241,192, - 223,128,207,0,192,0,192,0,192,0,192,0,192,0,11,19, - 38,14,1,251,30,96,63,96,113,224,96,224,224,96,192,96, - 192,96,192,96,192,96,224,96,96,224,113,224,63,96,30,96, - 0,96,0,96,0,96,0,96,0,96,6,14,14,9,2,0, - 204,220,248,240,224,192,192,192,192,192,192,192,192,192,10,14, - 28,12,1,0,63,0,127,128,225,192,192,192,192,0,248,0, - 127,0,15,128,1,192,192,192,192,192,225,192,127,128,63,0, - 6,18,18,8,1,0,48,48,48,48,252,252,48,48,48,48, - 48,48,48,48,48,48,60,28,10,14,28,14,2,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,193,192,99,192,126,192,28,192,11,14,28,13,1,0, - 192,96,192,96,192,96,96,192,96,192,113,192,49,128,49,128, - 27,0,27,0,27,0,14,0,14,0,14,0,18,14,42,18, - 0,0,192,192,192,192,192,192,97,225,128,97,225,128,97,225, - 128,49,35,0,51,51,0,51,51,0,27,54,0,26,22,0, - 30,30,0,14,28,0,12,12,0,12,12,0,10,14,28,12, - 1,0,192,192,225,192,97,128,51,0,30,0,30,0,12,0, - 30,0,30,0,51,0,115,128,97,128,192,192,192,192,12,19, - 38,13,0,251,192,48,192,48,96,48,112,96,48,96,56,224, - 24,192,24,192,13,128,13,128,7,128,7,0,3,0,3,0, - 6,0,6,0,12,0,60,0,56,0,10,14,28,12,1,0, - 255,192,255,192,1,128,3,0,7,0,14,0,12,0,28,0, - 56,0,48,0,96,0,224,0,255,192,255,192,6,24,24,8, - 1,251,12,24,48,48,48,48,48,48,48,48,96,192,192,96, - 48,48,48,48,48,48,48,48,24,12,1,24,24,6,2,251, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,24,24,8,1,251,192,96, - 48,48,48,48,48,48,48,48,24,12,12,24,48,48,48,48, - 48,48,48,48,96,192,10,4,8,14,2,5,112,192,252,192, - 207,192,195,128,255}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=22 dx=34 dy= 0 ascent=31 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =31 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24[10931] U8G_FONT_SECTION("u8g_font_helvR24") = { - 0,39,48,251,245,25,5,215,14,105,32,255,249,31,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,9,0,1,3,25,25,11,4,249,224,224,224,224, - 0,0,64,64,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,14,25,50,19,2,252,0,32,0,96,0, - 64,7,224,31,240,60,248,120,188,112,156,112,156,225,128,225, - 0,225,0,227,0,227,0,226,12,226,28,118,28,124,60,60, - 120,31,240,15,224,8,0,24,0,16,0,16,0,15,24,48, - 19,1,0,3,192,15,248,31,252,60,60,120,30,112,14,112, - 14,112,0,112,0,56,0,56,0,255,192,255,192,12,0,14, - 0,14,0,12,0,28,0,24,0,56,0,115,134,255,254,255, - 254,96,124,12,13,26,18,3,5,230,48,255,240,127,240,112, - 224,96,96,224,112,224,112,224,112,96,96,112,224,127,240,255, - 240,230,48,16,24,48,18,1,0,224,7,224,7,112,14,112, - 14,56,28,56,28,28,56,28,56,14,112,14,112,7,224,127, - 254,127,254,127,254,1,192,1,192,127,254,127,254,127,254,1, - 192,1,192,1,192,1,192,1,192,2,32,32,9,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,15, - 32,64,18,1,249,3,192,15,240,31,248,28,120,56,60,56, - 28,56,28,60,0,30,0,31,128,63,224,113,240,224,248,224, - 124,224,28,224,30,112,14,124,14,62,14,31,28,15,156,3, - 248,1,240,0,240,0,120,112,56,112,56,120,56,56,112,63, - 240,31,224,7,128,8,3,3,11,1,22,231,231,231,24,25, - 75,25,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,24,48,126,12,96,255,134,97,193,198,195,128,195,195, - 0,3,199,0,3,134,0,1,134,0,1,134,0,1,134,0, - 1,199,0,3,195,128,195,97,225,198,96,255,134,48,62,12, - 24,0,24,28,0,56,7,1,224,3,255,128,0,254,0,10, - 15,30,12,1,10,63,0,119,128,97,128,1,128,7,128,127, - 128,225,128,193,128,195,128,231,128,125,192,0,0,0,0,255, - 192,255,192,12,9,18,18,3,5,28,112,56,224,113,192,227, - 128,195,0,227,128,113,192,56,224,28,112,16,9,18,19,1, - 3,255,255,255,255,255,255,0,7,0,7,0,7,0,7,0, - 7,0,7,8,2,2,11,1,8,255,255,24,25,75,25,0, - 0,0,126,0,3,255,128,7,1,224,12,0,112,24,0,24, - 48,0,12,97,255,6,97,255,134,193,129,195,193,128,195,193, - 128,195,129,129,129,129,255,1,129,252,1,129,142,1,193,134, - 3,193,131,3,97,129,134,97,129,198,48,0,12,24,0,24, - 28,0,56,7,1,224,3,255,128,0,126,0,9,2,4,11, - 1,22,255,128,255,128,9,9,18,13,2,15,62,0,127,0, - 227,128,193,128,193,128,193,128,227,128,127,0,62,0,17,21, - 63,19,1,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,1,192,0,255,255,128,255,255,128,255, - 255,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,0,0,0,0,0,0,255,255,128,255,255,128, - 255,255,128,9,15,30,11,1,9,30,0,127,0,99,0,193, - 128,193,128,1,128,3,0,7,0,30,0,56,0,112,0,224, - 0,192,0,255,128,255,128,9,15,30,11,1,9,62,0,127, - 0,227,128,193,128,193,128,3,128,15,0,15,0,3,128,1, - 128,193,128,193,128,227,128,127,0,62,0,7,5,5,11,3, - 22,30,60,56,112,224,14,24,48,19,2,250,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,240,124,255,252,255,220,255,28, - 224,0,224,0,224,0,224,0,224,0,224,0,16,30,60,17, - 1,251,7,255,31,255,63,140,63,140,127,140,127,140,255,140, - 255,140,255,140,255,140,127,140,127,140,63,140,63,140,31,140, - 3,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140, - 1,140,1,140,1,140,1,140,1,140,1,140,1,140,4,4, - 4,9,3,11,96,240,240,96,7,7,7,11,2,249,24,24, - 60,14,6,206,124,5,15,15,11,2,9,24,56,248,248,24, - 24,24,24,24,24,24,24,24,24,24,10,15,30,12,1,10, - 30,0,127,128,97,128,225,192,192,192,192,192,192,192,192,192, - 225,192,97,128,127,128,30,0,0,0,255,192,255,192,12,9, - 18,18,3,5,227,128,113,192,56,224,28,112,12,48,28,112, - 56,224,113,192,227,128,25,25,100,28,1,0,0,0,48,0, - 24,0,112,0,56,0,96,0,248,0,224,0,248,1,192,0, - 24,1,128,0,24,3,128,0,24,3,0,0,24,7,0,0, - 24,14,0,0,24,12,0,0,24,28,6,0,24,24,14,0, - 24,56,30,0,24,112,62,0,24,96,118,0,0,224,102,0, - 1,192,198,0,1,129,198,0,3,131,134,0,3,3,255,128, - 7,3,255,128,6,0,6,0,14,0,6,0,12,0,6,0, - 25,25,100,28,1,0,0,0,96,0,24,0,224,0,56,0, - 192,0,248,1,128,0,248,3,128,0,24,3,0,0,24,6, - 0,0,24,14,0,0,24,12,0,0,24,28,0,0,24,24, - 0,0,24,56,60,0,24,48,255,0,24,112,195,128,24,97, - 129,128,24,193,129,128,1,192,3,128,1,128,7,0,3,128, - 14,0,3,0,60,0,6,0,112,0,14,0,224,0,12,1, - 192,0,28,1,255,128,24,1,255,128,25,24,96,28,1,0, - 62,0,14,0,127,0,12,0,99,128,24,0,193,128,56,0, - 193,128,48,0,3,128,96,0,15,0,224,0,15,128,192,0, - 1,193,128,0,0,195,128,0,192,195,6,0,192,199,14,0, - 97,206,30,0,127,140,62,0,30,24,118,0,0,56,102,0, - 0,48,198,0,0,97,198,0,0,227,134,0,1,195,255,128, - 1,131,255,128,3,0,6,0,7,0,6,0,6,0,6,0, - 14,25,50,19,3,249,3,128,3,128,3,128,3,128,0,0, - 0,0,3,128,3,128,3,128,7,128,7,0,15,0,30,0, - 60,0,120,0,112,0,240,0,224,28,224,28,224,28,240,60, - 120,120,127,240,63,224,7,128,20,31,93,22,1,0,3,192, - 0,1,224,0,0,224,0,0,112,0,0,56,0,0,0,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,3, - 252,0,3,156,0,3,156,0,7,158,0,7,14,0,7,14, - 0,15,15,0,14,15,0,14,7,0,30,7,128,31,255,128, - 31,255,128,63,255,192,60,3,192,56,1,192,120,1,224,120, - 1,224,112,0,224,240,0,240,240,0,240,20,31,93,22,1, - 0,0,60,0,0,120,0,0,112,0,0,224,0,1,192,0, - 0,0,0,0,240,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,3,156,0,7,158,0,7,14, - 0,7,14,0,15,15,0,15,15,0,14,7,0,30,7,128, - 31,255,128,31,255,128,63,255,192,60,3,192,120,1,192,120, - 1,224,120,1,224,112,0,224,240,0,240,240,0,240,20,31, - 93,22,1,0,0,64,0,0,224,0,1,240,0,3,184,0, - 7,28,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,1,198,0,3,254,0,7,252,0, - 6,56,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,30,90,22,1,0,3,156,0,3,156,0,3,156,0, - 0,0,0,0,0,0,0,240,0,0,240,0,0,240,0,1, - 248,0,1,248,0,3,252,0,3,156,0,3,156,0,7,158, - 0,7,14,0,7,14,0,15,15,0,15,15,0,14,7,0, - 30,7,128,31,255,128,31,255,128,63,255,192,60,3,192,56, - 1,192,120,1,224,120,1,224,112,0,224,240,0,240,240,0, - 240,20,31,93,22,1,0,0,240,0,1,152,0,1,8,0, - 1,8,0,1,152,0,0,240,0,0,0,0,0,240,0,0, - 240,0,1,248,0,1,248,0,3,252,0,3,156,0,3,156, - 0,7,158,0,7,14,0,7,14,0,15,15,0,14,15,0, - 14,7,0,30,7,128,31,255,128,31,255,128,63,255,192,60, - 3,192,56,1,192,120,1,224,120,1,224,112,0,224,240,0, - 240,240,0,240,29,25,100,32,1,0,0,127,255,248,0,127, - 255,248,0,255,255,248,0,227,128,0,1,195,128,0,1,195, - 128,0,3,195,128,0,3,131,128,0,3,131,128,0,7,131, - 128,0,7,3,128,0,7,3,255,240,15,3,255,240,14,3, - 255,240,30,3,128,0,31,255,128,0,31,255,128,0,63,255, - 128,0,56,3,128,0,120,3,128,0,120,3,128,0,112,3, - 128,0,240,3,255,248,224,3,255,248,224,3,255,248,20,32, - 96,23,2,249,1,248,0,7,254,0,15,255,128,31,7,128, - 60,3,192,120,1,224,112,0,224,112,0,224,240,0,0,240, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,240,0,112,240,0,112,112,0,240,112,0,224,120,1,224, - 60,3,192,31,7,192,15,255,128,7,254,0,1,248,0,0, - 96,0,0,96,0,0,240,0,0,56,0,0,24,0,3,56, - 0,1,240,0,17,31,93,22,3,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,224,0,0,0,0,255,255,0,255, - 255,0,255,255,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,255,255,0, - 255,255,0,255,255,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,255,255, - 128,255,255,128,255,255,128,17,31,93,22,3,0,0,120,0, - 0,240,0,0,224,0,1,192,0,3,128,0,0,0,0,255, - 255,0,255,255,0,255,255,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 255,255,0,255,255,0,255,255,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,255,255,128,255,255,128,255,255,128,17,31,93,22,3,0, - 0,128,0,1,192,0,3,224,0,7,112,0,14,56,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,17,30,90, - 22,3,0,28,56,0,28,56,0,28,56,0,0,0,0,0, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,0,255,255,0,255,255,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,255,255,128,255,255,128,255,255,128,7,31,31, - 9,0,0,240,120,56,28,14,0,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,7,31,31,9,2,0,30,60,56,112,224,0,112,112, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,9,31,62,9,0,0,8,0,28, - 0,62,0,119,0,227,128,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,9,30,60,9,0, - 0,227,128,227,128,227,128,0,0,0,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,21,25,75, - 23,0,0,31,254,0,31,255,128,31,255,192,28,3,224,28, - 0,224,28,0,240,28,0,112,28,0,112,28,0,56,28,0, - 56,28,0,56,255,192,56,255,192,56,28,0,56,28,0,56, - 28,0,56,28,0,120,28,0,112,28,0,112,28,0,240,28, - 0,224,28,3,192,31,255,192,31,255,128,31,254,0,19,30, - 90,24,2,0,1,198,0,3,254,0,7,252,0,6,56,0, - 0,0,0,240,0,224,248,0,224,248,0,224,252,0,224,252, - 0,224,254,0,224,239,0,224,231,0,224,231,128,224,227,192, - 224,227,192,224,225,224,224,224,224,224,224,240,224,224,120,224, - 224,56,224,224,60,224,224,28,224,224,30,224,224,15,224,224, - 7,224,224,7,224,224,3,224,224,1,224,224,1,224,23,31, - 93,25,1,0,0,240,0,0,120,0,0,56,0,0,28,0, - 0,14,0,0,0,0,0,254,0,3,255,128,15,255,224,31, - 1,240,62,0,248,60,0,120,120,0,60,112,0,28,112,0, - 28,240,0,30,224,0,14,224,0,14,224,0,14,224,0,14, - 224,0,14,240,0,30,240,0,30,112,0,28,120,0,60,60, - 0,120,62,0,248,31,1,240,15,255,224,3,255,128,0,254, - 0,23,31,93,25,1,0,0,15,0,0,30,0,0,28,0, - 0,56,0,0,112,0,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,23,31,93,25,1,0,0,16,0,0,56,0, - 0,124,0,0,238,0,1,199,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,30,90,25,1,0,0,113,128, - 0,255,128,1,255,0,1,142,0,0,0,0,0,254,0,3, - 255,128,15,255,224,31,1,240,62,0,248,60,0,120,120,0, - 60,112,0,28,112,0,28,240,0,30,224,0,14,224,0,14, - 224,0,14,224,0,14,224,0,14,240,0,30,240,0,30,112, - 0,28,120,0,60,60,0,120,62,0,248,31,1,240,15,255, - 224,3,255,128,0,254,0,23,29,87,25,1,0,1,195,128, - 1,195,128,1,195,128,0,0,0,0,254,0,3,255,128,15, - 255,224,31,1,240,62,0,248,60,0,120,120,0,60,112,0, - 28,112,0,28,240,0,30,224,0,14,224,0,14,224,0,14, - 224,0,14,224,0,14,240,0,30,240,0,30,112,0,28,120, - 0,60,60,0,120,62,0,248,31,1,240,15,255,224,3,255, - 128,0,254,0,15,15,30,19,2,1,64,4,224,14,240,30, - 120,60,60,120,31,240,15,224,7,192,7,192,15,224,30,240, - 60,120,120,60,240,30,96,12,23,25,75,25,1,0,0,254, - 6,3,255,140,15,255,248,31,1,240,62,0,248,60,0,248, - 120,1,188,112,3,28,112,6,28,240,6,30,224,12,14,224, - 24,14,224,48,14,224,96,14,224,192,14,225,128,30,243,0, - 30,118,0,28,124,0,60,60,0,120,62,0,248,63,1,240, - 111,255,224,195,255,128,0,254,0,18,31,93,24,3,0,7, - 128,0,3,192,0,1,192,0,0,224,0,0,112,0,0,0, - 0,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,240,3,192,120,7,128, - 124,15,128,63,255,0,31,254,0,3,240,0,18,31,93,24, - 3,0,0,120,0,0,240,0,0,224,0,1,192,0,3,128, - 0,0,0,0,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,240,3,192, - 120,7,128,124,15,128,63,255,0,31,254,0,3,240,0,18, - 31,93,24,3,0,0,64,0,0,224,0,1,240,0,3,184, - 0,7,28,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,18,30,90,24,3,0,14,28,0,14,28,0,14,28, - 0,0,0,0,0,0,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,31,93,22,1,0,0,60,0,0,120,0,0,112, - 0,0,224,0,1,192,0,0,0,0,224,0,224,240,1,224, - 112,1,192,120,3,192,56,3,128,60,7,128,28,15,0,30, - 15,0,15,30,0,7,28,0,7,188,0,3,184,0,3,248, - 0,1,240,0,1,240,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,17,25,75,22,3,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,255,248,0,255,254,0, - 255,255,0,224,15,0,224,7,0,224,7,128,224,3,128,224, - 3,128,224,7,128,224,7,0,224,15,0,255,254,0,255,252, - 0,255,248,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,14,25,50,20,4,0,15,128,63,224, - 127,240,120,240,240,120,224,56,224,56,224,56,224,120,224,240, - 227,224,227,224,227,240,224,120,224,60,224,28,224,28,224,28, - 224,28,224,28,224,56,224,120,231,240,231,224,231,128,16,25, - 50,18,1,0,15,0,7,128,3,128,1,192,0,224,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 121,252,127,223,63,143,16,25,50,18,1,0,0,240,1,224, - 1,192,3,128,7,0,0,0,0,0,15,224,63,248,60,124, - 112,28,112,28,0,28,0,28,0,252,31,252,127,156,120,28, - 240,28,224,28,224,60,224,124,120,252,127,223,63,143,16,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,15,224,63,248,60,124,112,28,112,28,0,28,0,28, - 0,252,31,252,127,156,120,28,240,28,224,28,224,60,224,124, - 120,252,127,223,63,143,16,24,48,18,1,0,7,24,15,248, - 31,240,24,224,0,0,0,0,15,224,63,248,60,124,112,28, - 112,28,0,28,0,28,0,252,31,252,127,156,120,28,240,28, - 224,28,224,60,224,124,120,252,127,223,63,143,16,23,46,18, - 1,0,14,112,14,112,14,112,0,0,0,0,15,224,63,248, - 60,252,112,28,112,28,0,28,0,28,0,252,31,252,127,156, - 120,28,240,28,224,28,224,60,224,124,121,252,127,223,63,143, - 16,25,50,18,1,0,3,128,6,192,4,64,4,64,6,192, - 3,128,0,0,15,224,63,248,60,124,112,28,112,28,0,28, - 0,28,0,252,31,252,127,156,120,28,240,28,224,28,224,60, - 224,124,120,252,127,223,63,143,26,18,72,29,1,0,7,192, - 248,0,31,241,254,0,60,127,143,0,112,62,3,128,112,30, - 3,128,0,28,1,192,0,28,1,192,0,252,1,192,15,255, - 255,192,63,255,255,192,126,31,255,192,240,28,0,0,224,28, - 1,192,224,30,1,192,224,126,3,128,248,247,143,0,127,231, - 255,0,63,129,252,0,14,25,50,17,1,249,7,192,31,240, - 63,248,56,56,112,28,112,28,224,0,224,0,224,0,224,0, - 224,0,224,28,224,28,112,56,120,120,63,240,31,224,7,128, - 3,0,3,0,7,128,1,192,0,192,25,192,15,128,15,25, - 50,18,1,0,30,0,15,0,7,0,3,128,1,192,0,0, - 0,0,7,192,31,240,62,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,15,224,15,25,50,18,1,0,1,224,3,192, - 3,128,7,0,14,0,0,0,0,0,7,192,31,240,60,120, - 120,28,112,28,240,14,224,14,224,14,255,254,255,254,224,0, - 224,0,224,14,112,14,120,28,60,124,31,240,15,224,15,25, - 50,18,1,0,1,0,3,128,7,192,14,224,28,112,0,0, - 0,0,7,192,31,240,60,120,120,28,112,28,240,14,224,14, - 224,14,255,254,255,254,224,0,224,0,224,14,112,14,120,28, - 60,124,31,240,7,192,15,23,46,18,1,0,28,112,28,112, - 28,112,0,0,0,0,7,192,31,240,60,120,120,28,112,28, - 240,14,224,14,224,14,255,254,255,254,224,0,224,0,224,14, - 112,14,120,28,60,124,31,240,7,192,7,25,25,9,0,0, - 240,120,56,28,14,0,0,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,7,25,25,9,2,0,30, - 60,56,112,224,0,0,112,112,112,112,112,112,112,112,112,112, - 112,112,112,112,112,112,112,112,9,25,50,9,0,0,8,0, - 28,0,62,0,119,0,227,128,0,0,0,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 8,23,23,9,1,0,231,231,231,0,0,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,15,25,50, - 19,1,0,120,64,60,224,31,192,15,128,31,128,59,192,17, - 224,7,240,31,248,63,248,120,60,112,28,112,28,224,14,224, - 14,224,14,224,14,224,14,224,14,112,28,112,28,120,60,63, - 248,31,240,7,192,14,24,48,18,2,0,14,48,31,240,63, - 224,49,192,0,0,0,0,3,192,239,240,255,248,248,60,240, - 28,240,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,15,25,50,19,1, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,25,50,19,1,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,7,192,31,240,63,248,120,60,112, - 28,112,28,224,14,224,14,224,14,224,14,224,14,224,14,112, - 28,112,28,120,60,63,248,31,240,7,192,15,25,50,19,1, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,7, - 192,31,240,63,248,120,60,112,28,112,28,224,14,224,14,224, - 14,224,14,224,14,224,14,112,28,112,28,120,60,63,248,31, - 240,7,192,15,24,48,19,1,0,14,48,31,240,63,224,49, - 192,0,0,0,0,7,192,31,240,63,248,120,60,112,28,112, - 28,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,120,60,63,248,31,240,7,192,15,23,46,19,1,0,28, - 112,28,112,28,112,0,0,0,0,7,192,31,240,63,248,120, - 60,112,28,112,28,224,14,224,14,224,14,224,14,224,14,224, - 14,112,28,112,28,120,60,63,248,31,240,7,192,15,15,30, - 19,2,1,3,128,3,128,3,128,0,0,0,0,0,0,255, - 254,255,254,255,254,0,0,0,0,0,0,3,128,3,128,3, - 128,16,18,36,19,2,0,7,195,31,246,63,252,120,120,112, - 28,112,60,224,110,224,206,225,142,227,14,230,14,236,14,120, - 28,112,28,56,60,127,248,223,240,135,192,14,25,50,19,2, - 0,30,0,15,0,7,0,3,128,1,192,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,25,50,19,2,0,1,224,3,192,3,128,7, - 0,14,0,0,0,0,0,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 60,224,60,240,252,127,252,63,220,15,0,14,25,50,19,2, - 0,1,0,3,128,7,192,14,224,28,112,0,0,0,0,224, - 28,224,28,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,60,224,60,240,252,127,252,63, - 220,15,0,14,23,46,19,2,0,28,224,28,224,28,224,0, - 0,0,0,224,28,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,28,224,28,224,60,224,60,240, - 252,127,252,63,220,15,0,14,32,64,17,1,249,0,240,1, - 224,1,192,3,128,7,0,0,0,0,0,224,28,224,28,224, - 60,112,56,112,56,112,56,120,112,56,112,56,240,60,224,28, - 224,29,192,29,192,15,192,15,128,15,128,7,0,7,0,7, - 0,14,0,14,0,30,0,124,0,124,0,112,0,15,31,62, - 19,2,250,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,231,224,239,240,255,248,248,60,240,28,240,30,224,14,224, - 14,224,14,224,14,224,14,224,14,240,28,240,28,248,60,255, - 248,239,240,227,192,224,0,224,0,224,0,224,0,224,0,224, - 0,14,30,60,17,1,249,28,112,28,112,28,112,0,0,0, - 0,224,28,224,28,224,60,112,56,112,56,112,120,120,112,56, - 112,56,240,60,224,28,224,29,192,29,192,15,192,15,128,15, - 128,7,0,7,0,7,0,14,0,14,0,30,0,124,0,124, - 0,112,0}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=24 x= 4 y=15 dx=19 dy= 0 ascent=26 len=48 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =26 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24n[726] U8G_FONT_SECTION("u8g_font_helvR24n") = { - 0,39,48,251,245,24,0,0,0,0,42,58,0,26,251,24, - 0,10,11,22,13,1,15,12,0,12,0,76,128,237,192,127, - 128,63,0,30,0,63,0,115,128,225,192,64,128,17,16,48, - 19,1,1,1,192,0,1,192,0,1,192,0,1,192,0,1, - 192,0,1,192,0,1,192,0,255,255,128,255,255,128,255,255, - 128,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,3,9,9,9,3,251,224,224,224,224,32,96,96, - 192,128,8,2,2,11,1,8,255,255,3,4,4,9,3,0, - 224,224,224,224,9,24,48,9,0,0,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,8,0,24,0,24,0,24,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,15,24,48,18,1,0, - 7,192,31,240,63,248,60,120,120,60,112,28,112,28,224,14, - 224,14,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,112,28,112,28,112,60,60,120,63,248,31,240,7,192, - 8,24,24,18,3,0,3,7,7,15,63,255,255,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,24, - 48,18,1,0,7,192,31,240,63,248,120,60,112,28,240,14, - 224,14,224,14,0,14,0,28,0,60,0,120,0,240,3,224, - 7,192,31,0,60,0,120,0,112,0,224,0,224,0,255,254, - 255,254,255,254,15,24,48,18,1,0,7,192,31,240,63,248, - 56,56,112,28,112,28,112,28,112,28,0,28,0,56,3,248, - 3,240,3,248,0,60,0,30,0,14,224,14,224,14,224,14, - 112,28,120,60,63,248,31,240,7,192,16,24,48,18,0,0, - 0,24,0,56,0,120,0,120,0,248,1,248,3,184,3,184, - 7,56,14,56,14,56,28,56,56,56,56,56,112,56,224,56, - 255,255,255,255,255,255,0,56,0,56,0,56,0,56,0,56, - 15,24,48,18,1,0,63,252,63,252,63,252,56,0,56,0, - 56,0,112,0,112,0,119,192,127,240,127,248,120,124,112,28, - 0,30,0,14,0,14,0,14,224,14,224,30,240,28,120,124, - 127,248,63,240,15,128,15,24,48,18,1,0,3,192,15,240, - 31,248,60,56,56,28,112,28,112,0,112,0,96,0,227,192, - 239,240,255,248,248,60,240,28,240,14,224,14,224,14,96,14, - 112,14,112,28,56,60,63,248,31,240,7,192,15,24,48,18, - 1,0,255,254,255,254,255,254,0,14,0,28,0,24,0,56, - 0,112,0,112,0,224,0,224,1,192,1,192,3,128,3,128, - 7,0,7,0,7,0,14,0,14,0,14,0,28,0,28,0, - 28,0,15,24,48,18,1,0,7,192,31,240,63,248,56,60, - 112,28,112,28,112,28,112,28,120,60,60,120,31,240,15,224, - 63,248,120,60,112,28,224,14,224,14,224,14,224,14,240,28, - 120,60,63,248,31,240,7,192,15,24,48,18,1,0,7,192, - 31,240,63,248,120,124,112,60,240,28,224,30,224,14,224,14, - 224,14,224,30,224,30,112,62,127,254,63,238,15,206,0,14, - 0,28,224,28,240,60,120,120,63,240,63,224,15,128,3,18, - 18,9,4,0,224,224,224,224,0,0,0,0,0,0,0,0, - 0,0,224,224,224,224}; -/* - Fontname: -Adobe-Helvetica-Medium-R-Normal--34-240-100-100-P-176-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=29 h=32 x= 4 y=20 dx=34 dy= 0 ascent=27 len=120 - Font Bounding box w=39 h=48 x=-5 y=-11 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_helvR24r[4992] U8G_FONT_SECTION("u8g_font_helvR24r") = { - 0,39,48,251,245,25,5,215,14,105,32,127,249,27,249,25, - 249,0,0,0,9,0,1,3,25,25,9,4,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,64,64, - 0,0,224,224,224,224,8,8,8,12,2,15,231,231,231,231, - 231,231,66,66,17,23,69,19,1,0,3,135,0,3,135,0, - 3,6,0,3,6,0,7,14,0,7,14,0,127,255,128,127, - 255,128,127,255,128,14,28,0,14,28,0,12,24,0,28,56, - 0,28,56,0,255,255,0,255,255,0,255,255,0,56,112,0, - 56,112,0,48,96,0,48,96,0,112,224,0,112,224,0,16, - 31,62,18,1,252,1,128,1,128,1,128,15,240,31,248,61, - 188,113,142,113,142,225,142,225,128,225,128,113,128,125,128,63, - 192,31,240,7,252,1,254,1,158,1,143,1,135,225,135,225, - 135,113,142,113,142,61,188,63,248,15,240,1,128,1,128,1, - 128,1,128,26,24,96,29,1,0,0,0,48,0,31,0,112, - 0,127,128,96,0,115,192,224,0,224,192,192,0,192,225,192, - 0,192,225,128,0,192,227,128,0,224,195,0,0,115,199,0, - 0,127,134,0,0,31,14,0,0,0,12,0,0,0,28,62, - 0,0,24,127,128,0,56,243,128,0,48,193,192,0,113,192, - 192,0,97,192,192,0,225,192,192,0,192,193,192,1,192,227, - 128,1,128,127,128,3,128,62,0,18,23,69,22,2,0,7, - 192,0,15,224,0,30,112,0,60,56,0,56,56,0,56,56, - 0,60,112,0,30,240,0,15,224,0,7,192,0,15,128,0, - 63,192,0,121,199,0,112,231,0,224,246,0,224,126,0,224, - 60,0,224,28,0,240,62,0,120,127,0,127,247,128,63,227, - 192,15,0,0,3,8,8,6,2,15,224,224,224,224,224,224, - 224,64,7,31,31,11,2,249,6,12,12,24,24,56,48,112, - 112,112,96,224,224,224,224,224,224,224,224,224,96,112,112,112, - 48,56,24,24,12,12,6,7,31,31,11,1,249,192,96,96, - 48,48,56,24,28,28,28,12,14,14,14,14,14,14,14,14, - 12,12,28,28,24,24,56,48,112,96,96,192,10,11,22,13, - 1,15,12,0,12,0,76,128,237,192,127,128,63,0,30,0, - 63,0,115,128,225,192,64,128,17,16,48,19,1,1,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,255,255,128,255,255,128,255,255,128,1,192,0,1, - 192,0,1,192,0,1,192,0,1,192,0,1,192,0,3,9, - 9,9,3,251,224,224,224,224,32,96,96,192,128,8,2,2, - 11,1,8,255,255,3,4,4,9,3,0,224,224,224,224,9, - 24,48,9,0,0,1,128,1,128,1,128,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,8,0,24, - 0,24,0,24,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,15,24,48,18,1,0,7,192,31,240,63, - 248,60,120,120,60,112,28,112,28,224,14,224,14,224,14,224, - 14,224,14,224,14,224,14,224,14,224,14,224,14,112,28,112, - 28,112,60,60,120,63,248,31,240,7,192,8,24,24,18,3, - 0,3,7,7,15,63,255,255,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,15,24,48,18,1,0,7, - 192,31,240,63,248,120,60,112,28,240,14,224,14,224,14,0, - 14,0,28,0,60,0,120,0,240,3,224,7,192,31,0,60, - 0,120,0,112,0,224,0,224,0,255,254,255,254,255,254,15, - 24,48,18,1,0,7,192,31,240,63,248,56,56,112,28,112, - 28,112,28,112,28,0,28,0,56,3,248,3,240,3,248,0, - 60,0,30,0,14,224,14,224,14,224,14,112,28,120,60,63, - 248,31,240,7,192,16,24,48,18,0,0,0,24,0,56,0, - 120,0,120,0,248,1,248,3,184,3,184,7,56,14,56,14, - 56,28,56,56,56,56,56,112,56,224,56,255,255,255,255,255, - 255,0,56,0,56,0,56,0,56,0,56,15,24,48,18,1, - 0,63,252,63,252,63,252,56,0,56,0,56,0,112,0,112, - 0,119,192,127,240,127,248,120,124,112,28,0,30,0,14,0, - 14,0,14,224,14,224,30,240,28,120,124,127,248,63,240,15, - 128,15,24,48,18,1,0,3,192,15,240,31,248,60,56,56, - 28,112,28,112,0,112,0,96,0,227,192,239,240,255,248,248, - 60,240,28,240,14,224,14,224,14,96,14,112,14,112,28,56, - 60,63,248,31,240,7,192,15,24,48,18,1,0,255,254,255, - 254,255,254,0,14,0,28,0,24,0,56,0,112,0,112,0, - 224,0,224,1,192,1,192,3,128,3,128,7,0,7,0,7, - 0,14,0,14,0,14,0,28,0,28,0,28,0,15,24,48, - 18,1,0,7,192,31,240,63,248,56,60,112,28,112,28,112, - 28,112,28,120,60,60,120,31,240,15,224,63,248,120,60,112, - 28,224,14,224,14,224,14,224,14,240,28,120,60,63,248,31, - 240,7,192,15,24,48,18,1,0,7,192,31,240,63,248,120, - 124,112,60,240,28,224,30,224,14,224,14,224,14,224,30,224, - 30,112,62,127,254,63,238,15,206,0,14,0,28,224,28,240, - 60,120,120,63,240,63,224,15,128,3,18,18,9,4,0,224, - 224,224,224,0,0,0,0,0,0,0,0,0,0,224,224,224, - 224,3,22,22,9,4,251,224,224,224,224,0,0,0,0,0, - 0,0,0,0,224,224,224,224,32,96,96,192,128,16,16,32, - 19,2,0,0,3,0,15,0,63,1,252,7,224,31,128,254, - 0,240,0,240,0,254,0,31,128,7,224,1,252,0,127,0, - 15,0,3,15,9,18,19,2,4,255,254,255,254,255,254,0, - 0,0,0,0,0,255,254,255,254,255,254,16,16,32,19,1, - 0,192,0,240,0,254,0,63,128,7,224,1,248,0,127,0, - 15,0,15,0,127,1,248,7,224,63,128,254,0,240,0,192, - 0,14,25,50,18,2,0,7,192,31,240,63,248,120,56,112, - 28,240,28,224,28,224,28,0,28,0,56,0,56,0,112,0, - 224,1,224,1,192,3,128,3,128,3,128,3,128,0,0,0, - 0,3,128,3,128,3,128,3,128,29,30,120,34,1,251,0, - 7,192,0,0,63,248,0,0,255,254,0,3,240,63,128,7, - 192,7,192,15,0,3,224,30,0,1,224,28,0,0,240,56, - 15,140,112,56,31,220,56,112,60,252,56,112,112,124,56,96, - 224,56,24,224,224,56,24,225,224,56,24,225,192,112,56,225, - 192,112,56,225,192,112,112,225,192,224,112,225,224,224,224,112, - 243,243,192,112,255,127,128,120,62,127,0,60,0,0,0,30, - 0,0,0,31,0,0,0,15,128,0,0,3,224,120,0,1, - 255,248,0,0,127,224,0,20,25,75,22,1,0,0,240,0, - 0,240,0,0,248,0,1,248,0,1,248,0,3,156,0,3, - 156,0,3,156,0,7,158,0,7,14,0,7,14,0,15,15, - 0,15,15,0,14,7,0,30,7,128,31,255,128,31,255,128, - 63,255,192,60,3,192,56,1,192,120,1,224,120,1,224,112, - 0,224,240,0,240,240,0,240,17,25,75,22,3,0,255,240, - 0,255,252,0,255,254,0,224,62,0,224,15,0,224,15,0, - 224,7,0,224,7,0,224,15,0,224,14,0,224,62,0,255, - 252,0,255,252,0,255,254,0,224,31,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,7,128,224,15,0, - 255,254,0,255,254,0,255,248,0,20,25,75,24,2,0,1, - 252,0,7,255,0,15,255,128,31,7,192,60,1,224,56,0, - 224,112,0,240,112,0,112,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,112,240,0,112,112,0,240,120,0,224,60,1,224,63,7, - 192,31,255,128,7,254,0,1,248,0,18,25,75,24,3,0, - 255,240,0,255,252,0,255,254,0,224,31,0,224,15,0,224, - 7,128,224,3,128,224,3,128,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,3,192,224,3,128,224,3,128,224,7,128,224,15,0,224, - 30,0,255,254,0,255,252,0,255,240,0,17,25,75,22,3, - 0,255,255,0,255,255,0,255,255,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,255,255,0,255,255,0,255,255,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,255,255,128,255,255,128,255,255,128,16,25,50,20, - 3,0,255,255,255,255,255,255,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,22,25,75,25,1,0,0,254,0,3,255,128, - 15,255,192,31,131,240,62,0,240,60,0,120,120,0,56,112, - 0,56,240,0,0,224,0,0,224,0,0,224,0,0,224,15, - 252,224,15,252,224,15,252,224,0,28,240,0,28,112,0,28, - 120,0,60,56,0,60,60,0,252,31,1,252,15,255,220,7, - 255,28,1,252,28,18,25,75,24,3,0,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,255,255,192,255, - 255,192,255,255,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,3,25,25,9,3,0,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,13,25,50,16,1,0,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,224,56,224,56,224, - 56,224,56,240,120,120,240,127,240,63,224,31,128,20,25,75, - 22,3,0,224,3,192,224,7,128,224,15,0,224,30,0,224, - 60,0,224,120,0,224,240,0,225,224,0,227,192,0,231,192, - 0,239,128,0,255,192,0,255,192,0,249,224,0,240,240,0, - 224,112,0,224,120,0,224,60,0,224,28,0,224,30,0,224, - 15,0,224,7,128,224,3,192,224,3,224,224,1,240,14,25, - 50,18,3,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,21,25,75,27,3,0,240,0,120,240, - 0,120,248,0,248,248,0,248,252,1,248,252,1,248,252,1, - 248,236,1,184,238,3,184,238,3,184,230,3,56,231,7,56, - 231,7,56,227,6,56,227,142,56,227,142,56,227,142,56,225, - 140,56,225,220,56,225,220,56,224,216,56,224,248,56,224,248, - 56,224,112,56,224,112,56,19,25,75,24,2,0,240,0,224, - 240,0,224,248,0,224,252,0,224,252,0,224,254,0,224,239, - 0,224,231,0,224,231,128,224,227,192,224,227,192,224,225,224, - 224,224,224,224,224,240,224,224,120,224,224,56,224,224,60,224, - 224,28,224,224,30,224,224,15,224,224,7,224,224,7,224,224, - 3,224,224,1,224,224,1,224,23,25,75,25,1,0,0,254, - 0,3,255,128,15,239,224,31,1,240,62,0,248,60,0,120, - 120,0,60,112,0,28,240,0,30,224,0,14,224,0,14,224, - 0,14,224,0,14,224,0,14,224,0,14,224,0,14,240,0, - 30,240,0,30,120,0,60,60,0,120,62,0,248,31,1,240, - 15,239,224,3,255,128,0,254,0,17,25,75,22,3,0,255, - 248,0,255,254,0,255,255,0,224,15,0,224,7,128,224,3, - 128,224,3,128,224,3,128,224,3,128,224,3,128,224,7,128, - 224,15,0,255,255,0,255,254,0,255,248,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,23,26,78,26,1,255, - 0,254,0,3,255,128,15,239,224,31,1,240,62,0,248,60, - 0,120,120,0,60,112,0,28,240,0,30,224,0,14,224,0, - 14,224,0,14,224,0,14,224,0,14,224,0,14,224,0,14, - 240,0,30,240,2,30,120,7,60,60,7,184,62,3,248,31, - 1,240,15,239,248,3,255,188,0,254,30,0,0,12,19,25, - 75,24,3,0,255,252,0,255,255,0,255,255,128,224,7,128, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 3,192,224,3,128,224,15,128,255,255,0,255,254,0,255,255, - 0,224,15,128,224,7,128,224,3,128,224,3,192,224,3,192, - 224,3,192,224,1,192,224,1,192,224,1,192,224,1,224,19, - 25,75,22,1,0,3,248,0,15,254,0,31,255,0,60,15, - 128,56,3,192,112,1,192,112,1,192,112,0,0,120,0,0, - 124,0,0,63,192,0,31,248,0,7,255,0,0,127,128,0, - 15,192,0,1,224,0,0,224,224,0,224,240,0,224,112,1, - 224,120,1,192,62,7,192,63,255,128,15,254,0,3,248,0, - 19,25,75,20,0,0,255,255,224,255,255,224,255,255,224,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,18,25,75,24,3,0,224,1,192,224,1,192,224,1,192, - 224,1,192,224,1,192,224,1,192,224,1,192,224,1,192,224, - 1,192,224,1,192,224,1,192,224,1,192,224,1,192,224,1, - 192,224,1,192,224,1,192,224,1,192,224,1,192,224,1,192, - 240,3,192,120,7,128,124,15,128,63,255,0,31,254,0,3, - 240,0,19,25,75,22,1,0,240,1,224,240,1,224,240,1, - 224,112,1,192,120,3,192,120,3,192,56,3,128,56,3,128, - 60,7,128,28,7,0,28,7,0,30,15,0,14,14,0,14, - 14,0,15,14,0,7,28,0,7,28,0,7,156,0,3,184, - 0,3,184,0,3,184,0,1,240,0,1,240,0,0,224,0, - 0,224,0,29,25,100,31,1,0,240,7,0,120,240,7,0, - 120,240,15,128,120,112,15,128,112,112,15,128,112,120,29,192, - 240,120,29,192,240,56,29,192,224,56,29,192,224,56,56,224, - 224,60,56,225,224,28,56,225,192,28,48,225,192,28,112,113, - 192,28,112,113,192,14,112,115,128,14,224,59,128,14,224,59, - 128,14,224,59,128,7,224,63,128,7,192,31,0,7,192,31, - 0,7,192,31,0,3,128,14,0,3,128,14,0,20,25,75, - 22,1,0,248,0,240,120,1,224,60,3,192,28,3,192,30, - 7,128,15,7,0,15,15,0,7,158,0,3,156,0,3,252, - 0,1,248,0,0,240,0,0,240,0,1,248,0,1,248,0, - 3,156,0,7,158,0,7,14,0,15,15,0,30,7,128,30, - 7,128,60,3,192,120,1,224,120,1,224,240,0,240,21,25, - 75,22,0,0,240,0,120,120,0,240,120,0,224,60,1,224, - 28,1,192,30,3,192,14,7,128,15,7,128,7,143,0,3, - 142,0,3,222,0,1,220,0,1,252,0,0,248,0,0,248, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,18, - 25,75,20,1,0,127,255,192,127,255,192,127,255,192,0,7, - 128,0,15,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,1,224,0,1,224,0,3,192,0,7, - 128,0,7,128,0,15,0,0,30,0,0,60,0,0,60,0, - 0,120,0,0,240,0,0,255,255,192,255,255,192,255,255,192, - 6,32,32,9,2,249,252,252,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,252,252,9,24,48,9,0,0,192,0,192,0, - 96,0,96,0,96,0,48,0,48,0,48,0,16,0,24,0, - 24,0,24,0,12,0,12,0,12,0,6,0,6,0,6,0, - 2,0,3,0,3,0,3,0,1,128,1,128,6,32,32,9, - 1,249,252,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 252,252,12,13,26,16,1,11,6,0,15,0,15,0,31,128, - 25,128,25,128,57,192,48,192,112,224,96,96,96,96,224,112, - 192,48,18,2,6,18,0,250,255,255,192,255,255,192,6,5, - 5,11,1,20,224,240,112,56,28,16,18,36,18,1,0,15, - 224,63,248,60,120,112,60,112,28,0,28,0,60,1,252,31, - 252,126,28,120,28,240,28,224,28,224,60,224,124,121,254,127, - 223,63,143,15,25,50,18,2,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,227,224,239,240,255,248,248,60,240, - 28,240,30,224,14,224,14,224,14,224,14,224,14,224,14,240, - 30,240,28,252,60,255,248,239,240,231,224,14,18,36,16,1, - 0,7,192,31,240,63,248,56,60,112,28,112,28,224,0,224, - 0,224,0,224,0,224,0,224,28,224,28,112,28,120,56,63, - 248,31,240,7,192,15,25,50,18,1,0,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,7,206,31,238,63,254,124, - 62,112,30,240,30,224,14,224,14,224,14,224,14,224,14,224, - 14,240,30,240,30,120,62,127,254,63,238,15,206,15,18,36, - 18,2,0,7,192,31,240,63,248,120,60,112,28,240,14,224, - 14,224,14,255,254,255,254,224,0,224,0,240,14,112,30,120, - 60,63,248,31,240,7,192,8,25,25,9,1,0,15,31,60, - 56,56,56,56,255,255,255,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,15,25,50,18,1,249,7,206,31,238, - 63,254,124,62,112,30,240,30,224,14,224,14,224,14,224,14, - 224,14,224,14,240,30,112,62,120,62,63,254,31,238,7,142, - 0,14,224,14,224,28,240,28,124,120,63,248,31,224,14,25, - 50,18,2,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,227,224,239,240,255,248,248,60,240,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,3,25,25,7,2,0,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,6,32,32,7,255,249,28,28,28,28,0, - 0,0,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,60,252,248,15,25,50,16,1, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 120,224,240,225,224,227,192,231,128,239,0,255,0,255,0,251, - 128,243,192,225,192,225,224,224,224,224,240,224,120,224,56,224, - 60,224,30,3,25,25,7,2,0,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,23,18,54,27,2,0,227,192,240,239,243,252,255,247, - 252,248,126,30,240,60,14,224,56,14,224,56,14,224,56,14, - 224,56,14,224,56,14,224,56,14,224,56,14,224,56,14,224, - 56,14,224,56,14,224,56,14,224,56,14,224,56,14,14,18, - 36,18,2,0,227,224,239,248,255,248,248,60,240,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,15,18,36,18,1,0,7,192, - 31,240,63,248,120,60,112,28,240,30,224,14,224,14,224,14, - 224,14,224,14,224,14,240,30,112,28,120,60,63,248,31,240, - 7,192,15,25,50,18,2,249,3,192,239,240,255,248,248,60, - 240,28,240,30,224,14,224,14,224,14,224,14,224,14,224,14, - 240,30,240,28,248,60,255,248,239,240,231,224,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,15,25,50,18,1,249, - 7,192,31,238,63,254,124,62,112,30,240,30,224,14,224,14, - 224,14,224,14,224,14,224,14,240,30,112,30,120,62,63,254, - 31,238,15,206,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,8,18,18,11,2,0,231,239,255,252,240,240,224,224, - 224,224,224,224,224,224,224,224,224,224,13,18,36,16,2,0, - 15,128,63,224,127,224,112,240,224,112,224,0,112,0,126,0, - 63,192,7,240,0,240,0,120,224,56,224,56,240,112,127,240, - 127,224,31,128,8,22,22,9,1,0,56,56,56,56,255,255, - 255,56,56,56,56,56,56,56,56,56,56,56,56,60,63,31, - 14,18,36,18,2,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,60,240,124,127,252,127,220,31,28,15,18,36,16,0,0, - 224,14,224,14,112,28,112,28,112,28,56,56,56,56,56,56, - 28,112,28,112,28,112,14,224,14,224,14,224,7,192,7,192, - 3,128,3,128,23,18,54,23,0,0,224,56,14,224,56,14, - 112,124,28,112,124,28,112,108,28,56,238,28,56,238,56,56, - 238,56,56,198,56,24,198,48,29,199,112,29,199,112,29,199, - 112,13,131,96,15,131,224,15,131,224,7,1,192,7,1,192, - 15,18,36,16,0,0,240,30,120,28,56,56,60,112,28,112, - 14,224,15,224,7,192,3,128,7,192,7,192,15,224,30,224, - 28,112,56,120,56,56,112,28,240,30,14,25,50,16,1,249, - 224,28,224,28,240,56,112,56,112,56,112,112,56,112,56,112, - 56,224,60,224,28,224,29,192,29,192,15,192,15,128,15,128, - 7,0,7,0,7,0,14,0,14,0,28,0,124,0,120,0, - 112,0,14,18,36,16,1,0,127,248,127,248,127,248,0,120, - 0,240,0,224,1,192,3,192,7,128,7,0,14,0,28,0, - 60,0,120,0,112,0,255,252,255,252,255,252,8,32,32,11, - 1,249,15,31,28,24,24,24,24,24,24,24,24,24,56,56, - 112,224,224,112,56,56,24,24,24,24,24,24,24,24,24,28, - 31,15,2,31,31,9,3,249,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,8,32,32,11,1,249,240,248,56, - 24,24,24,24,24,24,24,24,24,28,28,14,7,7,14,28, - 28,24,24,24,24,24,24,24,24,24,56,248,240,14,6,12, - 19,2,9,24,0,124,12,127,12,199,220,193,248,0,240,255 - }; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 4 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent =10 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternate[2193] U8G_FONT_SECTION("u8g_font_lucasfont_alternate") = { - 0,9,11,0,255,7,1,148,3,22,32,255,255,10,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,1,7,7,2,0,0,128,0,0,128,128,128,128, - 5,7,7,6,0,0,32,112,168,160,168,112,32,5,7,7, - 6,0,0,56,64,64,240,64,64,248,255,5,7,7,6,0, - 0,136,136,80,32,248,32,32,1,7,7,2,0,0,128,128, - 128,0,128,128,128,255,255,8,8,8,9,0,255,60,66,153, - 161,161,153,66,60,255,6,5,5,7,0,1,36,72,144,72, - 36,5,3,3,6,0,1,248,8,8,5,1,1,6,0,3, - 248,255,255,255,5,7,7,6,0,0,32,32,248,32,32,0, - 248,255,255,255,255,6,7,7,7,0,0,124,244,244,116,20, - 20,20,1,1,1,2,0,3,128,255,255,255,6,5,5,7, - 0,1,144,72,36,72,144,255,255,255,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,10,10,6,0,0,64,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,16,32,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,32,80,0, - 112,136,136,248,136,136,136,5,10,10,6,0,0,104,144,0, - 112,136,136,248,136,136,136,5,9,9,6,0,0,80,0,112, - 136,136,248,136,136,136,5,10,10,6,0,0,32,80,32,112, - 136,136,248,136,136,136,9,7,14,10,0,0,119,128,136,0, - 136,0,255,0,136,0,136,0,143,128,255,5,10,10,6,0, - 0,64,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,16,32,0,248,128,128,240,128,128,248,5,10,10,6,0, - 0,32,80,0,248,128,128,240,128,128,248,5,9,9,6,0, - 0,80,0,248,128,128,240,128,128,248,2,10,10,3,0,0, - 128,64,0,64,64,64,64,64,64,64,2,10,10,4,1,0, - 64,128,0,128,128,128,128,128,128,128,3,10,10,4,0,0, - 64,160,0,64,64,64,64,64,64,64,3,9,9,4,0,0, - 160,0,64,64,64,64,64,64,64,6,7,7,7,0,0,120, - 68,68,244,68,68,120,6,10,10,7,0,0,100,152,0,132, - 196,164,148,140,132,132,5,10,10,6,0,0,64,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,16,32,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,32,80,0,112, - 136,136,136,136,136,112,5,10,10,6,0,0,104,144,0,112, - 136,136,136,136,136,112,5,8,8,6,0,0,136,112,136,136, - 136,136,136,112,5,5,5,6,0,1,136,80,32,80,136,255, - 5,10,10,6,0,0,64,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,16,32,0,136,136,136,136,136,136,112, - 5,10,10,6,0,0,32,80,0,136,136,136,136,136,136,112, - 5,8,8,6,0,0,136,0,136,136,136,136,136,112,5,10, - 10,6,0,0,16,32,0,136,136,136,80,32,32,32,255,4, - 8,8,5,0,255,96,144,144,160,144,144,160,128,5,8,8, - 6,0,0,64,32,0,112,8,120,136,120,5,8,8,6,0, - 0,16,32,0,112,8,120,136,120,5,8,8,6,0,0,32, - 80,0,112,8,120,136,120,5,8,8,6,0,0,104,144,0, - 112,8,120,136,120,5,7,7,6,0,0,80,0,112,8,120, - 136,120,5,9,9,6,0,0,32,80,32,0,112,8,120,136, - 120,9,5,10,10,0,0,119,0,8,128,127,0,136,0,119, - 128,255,5,8,8,6,0,0,64,32,0,112,136,240,128,120, - 5,8,8,6,0,0,16,32,0,112,136,240,128,120,5,8, - 8,6,0,0,32,80,0,112,136,240,128,120,5,7,7,6, - 0,0,80,0,112,136,240,128,120,2,7,7,3,0,0,128, - 64,0,64,64,64,64,2,7,7,3,0,0,64,128,0,128, - 128,128,128,3,7,7,4,0,0,64,160,0,64,64,64,64, - 3,6,6,4,0,0,160,0,64,64,64,64,255,5,8,8, - 6,0,0,104,144,0,240,136,136,136,136,5,8,8,6,0, - 0,64,32,0,112,136,136,136,112,5,8,8,6,0,0,16, - 32,0,112,136,136,136,112,5,8,8,6,0,0,32,80,0, - 112,136,136,136,112,5,8,8,6,0,0,104,144,0,112,136, - 136,136,112,5,7,7,6,0,0,80,0,112,136,136,136,112, - 5,5,5,6,0,1,32,0,248,0,32,255,5,8,8,6, - 0,0,64,32,0,136,136,136,136,120,5,8,8,6,0,0, - 16,32,0,136,136,136,136,120,5,8,8,6,0,0,32,80, - 0,136,136,136,136,120,5,7,7,6,0,0,80,0,136,136, - 136,136,120,5,9,9,6,0,255,16,32,0,136,136,136,120, - 8,112,255,5,8,8,6,0,255,80,0,136,136,136,120,8, - 112}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 0, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 3 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent= 0 - X Font ascent = 7 descent= 0 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternaten[216] U8G_FONT_SECTION("u8g_font_lucasfont_alternaten") = { - 0,9,11,0,255,7,0,0,0,0,42,58,0,7,255,7, - 0,7,5,5,8,0,1,68,40,254,40,68,5,5,5,6, - 0,1,32,32,248,32,32,2,3,3,3,0,255,64,64,128, - 6,1,1,7,0,3,252,1,2,2,2,0,0,128,128,7, - 7,7,8,0,0,2,4,8,16,32,64,128,5,7,7,6, - 0,0,112,136,136,136,136,136,112,5,7,7,6,0,0,32, - 96,32,32,32,32,248,5,7,7,6,0,0,112,136,8,16, - 32,64,248,5,7,7,6,0,0,240,8,8,120,8,8,240, - 5,7,7,6,0,0,16,48,80,144,248,16,16,5,7,7, - 6,0,0,248,128,112,8,8,136,112,5,7,7,6,0,0, - 112,136,128,240,136,136,112,5,7,7,6,0,0,248,8,16, - 32,32,32,32,5,7,7,6,0,0,112,136,136,112,136,136, - 112,5,7,7,6,0,0,112,136,136,120,8,136,112,1,4, - 4,2,0,1,128,0,0,128}; -/* - Fontname: -FreeType-Lucasfont Alternate-Medium-R-Normal--8-80-72-72-P-50-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 Lucasfont Alternate is based on Lucasfont by Patrick Lauke (http://fontstruct.com/fontstructors/redux) - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 7 h= 7 x= 0 y= 4 dx= 8 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 9 h=11 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_lucasfont_alternater[1138] U8G_FONT_SECTION("u8g_font_lucasfont_alternater") = { - 0,9,11,0,255,7,1,148,3,22,32,127,255,7,255,7, - 255,0,0,0,4,0,0,1,7,7,2,0,0,128,128,128, - 128,0,0,128,3,3,3,4,0,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,7,7,6,0,0, - 32,120,128,248,8,240,32,7,7,7,8,0,0,2,68,8, - 16,32,68,128,6,7,7,7,0,0,96,144,144,96,148,136, - 116,1,3,3,2,0,4,128,128,128,3,7,7,4,0,0, - 32,64,128,128,128,64,32,3,7,7,4,0,0,128,64,32, - 32,32,64,128,7,5,5,8,0,1,68,40,254,40,68,5, - 5,5,6,0,1,32,32,248,32,32,2,3,3,3,0,255, - 64,64,128,6,1,1,7,0,3,252,1,2,2,2,0,0, - 128,128,7,7,7,8,0,0,2,4,8,16,32,64,128,5, - 7,7,6,0,0,112,136,136,136,136,136,112,5,7,7,6, - 0,0,32,96,32,32,32,32,248,5,7,7,6,0,0,112, - 136,8,16,32,64,248,5,7,7,6,0,0,240,8,8,120, - 8,8,240,5,7,7,6,0,0,16,48,80,144,248,16,16, - 5,7,7,6,0,0,248,128,112,8,8,136,112,5,7,7, - 6,0,0,112,136,128,240,136,136,112,5,7,7,6,0,0, - 248,8,16,32,32,32,32,5,7,7,6,0,0,112,136,136, - 112,136,136,112,5,7,7,6,0,0,112,136,136,120,8,136, - 112,1,4,4,2,0,1,128,0,0,128,2,6,6,3,0, - 255,64,0,0,64,64,128,4,7,7,5,0,0,16,32,64, - 128,64,32,16,5,3,3,6,0,2,248,0,248,4,7,7, - 5,0,0,128,64,32,16,32,64,128,5,7,7,6,0,0, - 112,136,8,16,32,0,32,7,7,7,8,0,0,124,130,154, - 170,190,128,124,5,7,7,6,0,0,112,136,136,248,136,136, - 136,5,7,7,6,0,0,240,136,136,240,136,136,240,5,7, - 7,6,0,0,120,128,128,128,128,128,120,5,7,7,6,0, - 0,240,136,136,136,136,136,240,5,7,7,6,0,0,248,128, - 128,240,128,128,248,5,7,7,6,0,0,248,128,128,240,128, - 128,128,5,7,7,6,0,0,112,136,128,184,136,136,112,5, - 7,7,6,0,0,136,136,136,248,136,136,136,1,7,7,2, - 0,0,128,128,128,128,128,128,128,5,7,7,6,0,0,8, - 8,8,8,8,136,112,5,7,7,6,0,0,136,144,160,192, - 160,144,136,5,7,7,6,0,0,128,128,128,128,128,128,248, - 7,7,7,8,0,0,130,198,170,146,130,130,130,6,7,7, - 7,0,0,132,196,164,148,140,132,132,5,7,7,6,0,0, - 112,136,136,136,136,136,112,5,7,7,6,0,0,240,136,136, - 240,128,128,128,5,7,7,6,0,0,112,136,136,136,168,144, - 104,5,7,7,6,0,0,240,136,136,240,160,144,136,5,7, - 7,6,0,0,112,136,128,112,8,136,112,5,7,7,6,0, - 0,248,32,32,32,32,32,32,5,7,7,6,0,0,136,136, - 136,136,136,136,112,5,7,7,6,0,0,136,136,136,136,136, - 80,32,7,7,7,8,0,0,130,130,130,146,170,198,130,5, - 7,7,6,0,0,136,136,80,32,80,136,136,5,7,7,6, - 0,0,136,136,136,80,32,32,32,5,7,7,6,0,0,248, - 8,16,32,64,128,248,3,7,7,4,0,0,224,128,128,128, - 128,128,224,7,7,7,8,0,0,128,64,32,16,8,4,2, - 3,7,7,4,0,0,224,32,32,32,32,32,224,255,7,1, - 1,8,0,0,254,255,5,5,5,6,0,0,112,8,120,136, - 120,5,6,6,6,0,0,128,128,240,136,136,240,4,5,5, - 5,0,0,112,128,128,128,112,5,6,6,6,0,0,8,8, - 120,136,136,120,5,5,5,6,0,0,112,136,240,128,120,4, - 6,6,5,0,0,48,64,240,64,64,64,5,6,6,6,0, - 255,112,136,136,120,8,112,5,6,6,6,0,0,128,128,240, - 136,136,136,1,6,6,2,0,0,128,0,128,128,128,128,3, - 7,7,4,0,255,32,0,32,32,32,32,192,4,6,6,5, - 0,0,128,128,144,224,160,144,2,6,6,3,0,0,192,64, - 64,64,64,64,7,5,5,8,0,0,252,146,146,146,146,5, - 5,5,6,0,0,240,136,136,136,136,5,5,5,6,0,0, - 112,136,136,136,112,5,6,6,6,0,255,240,136,136,240,128, - 128,5,6,6,6,0,255,120,136,136,120,8,8,5,5,5, - 6,0,0,240,136,128,128,128,5,5,5,6,0,0,120,128, - 112,8,240,5,6,6,6,0,0,32,248,32,32,32,16,5, - 5,5,6,0,0,136,136,136,136,120,5,5,5,6,0,0, - 136,136,136,80,32,7,5,5,8,0,0,146,146,146,146,126, - 5,5,5,6,0,0,136,80,32,80,136,5,6,6,6,0, - 255,136,136,136,120,8,112,5,5,5,6,0,0,248,16,32, - 64,248,4,7,7,5,0,0,48,64,64,128,64,64,48,1, - 7,7,2,0,0,128,128,128,128,128,128,128,4,7,7,5, - 0,0,192,32,32,16,32,32,192,6,2,2,7,0,3,100, - 152,255}; -/* - Fontname: m2icon5 - Copyright: public domain - Capital A Height: 5, '1' Height: 0 - Calculated Max Values w= 9 h= 6 x= 0 y= 0 dx=10 dy= 0 ascent= 5 len=10 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_5[221] U8G_FONT_SECTION("u8g_font_m2icon_5") = { - 1,9,6,0,255,5,0,17,0,172,65,104,255,5,255,5, - 255,2,117,149,28,254,130,130,254,2,69,133,112,208,144,144, - 240,2,84,100,216,112,112,216,2,117,133,6,12,216,112,32, - 2,68,84,240,144,144,240,2,68,84,240,144,208,240,2,68, - 84,240,240,240,240,2,85,101,248,136,136,136,248,2,85,101, - 248,136,168,136,248,2,85,101,248,248,248,248,248,2,68,84, - 224,176,240,112,2,68,84,224,176,240,112,2,68,84,224,240, - 240,112,2,85,101,240,152,152,248,120,2,85,101,240,152,216, - 248,120,2,85,101,240,248,248,248,120,2,68,84,96,144,144, - 96,2,68,84,96,144,208,96,2,68,84,96,240,240,96,255, - 255,255,255,255,255,255,255,255,255,255,255,255,2,117,133,32, - 64,254,64,32,2,85,101,32,112,168,32,32,255,255,255,2, - 149,170,28,0,254,0,130,0,191,128,255,0,1,22,38,128, - 128,128,128,128,128,2,85,101,32,32,248,32,32}; -/* - Fontname: m2icon_7 - Copyright: public domain - Capital A Height: 7, '1' Height: 0 - Calculated Max Values w=12 h= 8 x= 0 y= 1 dx=13 dy= 0 ascent= 7 len=14 - Font Bounding box w=12 h= 8 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-1 - X Font ascent = 7 descent=-1 - Max Font ascent = 7 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_7[275] U8G_FONT_SECTION("u8g_font_m2icon_7") = { - 1,12,8,0,255,7,0,17,0,214,65,104,255,7,255,7, - 255,2,151,174,15,0,255,128,128,128,128,128,128,128,128,128, - 255,128,2,87,103,56,104,232,136,136,136,248,3,84,100,216, - 112,112,216,2,134,150,3,6,12,216,112,32,2,102,118,252, - 132,132,132,132,252,2,102,118,252,132,180,180,132,252,2,102, - 118,252,252,252,252,252,252,2,119,151,254,130,130,130,130,130, - 254,2,119,151,254,130,186,186,186,130,254,2,119,151,254,254, - 254,254,254,254,254,2,102,118,248,140,140,140,252,124,2,102, - 118,248,140,172,140,252,124,2,102,134,248,252,252,252,252,124, - 2,119,151,252,134,134,134,134,254,126,2,119,151,252,134,182, - 182,134,254,126,2,119,151,252,254,254,254,254,254,126,2,102, - 118,120,204,132,132,204,120,2,102,118,120,204,180,180,204,120, - 2,102,118,120,252,252,252,252,120,255,255,255,255,255,255,255, - 255,255,255,255,255,255,2,135,151,16,48,95,129,95,48,16, - 2,119,135,16,40,68,238,40,40,56,255,255,255,2,199,222, - 15,0,255,128,128,128,159,240,160,32,192,64,255,128,1,24, - 40,128,128,128,128,128,128,128,128,2,119,199,16,0,16,186, - 16,0,16}; -/* - Fontname: m2icon_9 - Copyright: public domain - Capital A Height: 8, '1' Height: 0 - Calculated Max Values w=13 h=11 x= 0 y= 1 dx=12 dy= 0 ascent= 9 len=18 - Font Bounding box w=13 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_m2icon_9[471] U8G_FONT_SECTION("u8g_font_m2icon_9") = { - 0,13,11,0,254,8,0,17,1,111,65,105,254,9,254,8, - 254,10,8,16,11,0,0,15,128,255,192,128,64,128,64,128, - 64,128,64,128,64,255,192,6,8,8,7,0,0,60,84,148, - 244,132,132,132,252,6,5,5,7,0,1,204,120,48,120,204, - 10,7,14,12,0,0,0,192,1,128,3,0,198,0,108,0, - 56,0,16,0,8,8,8,9,0,0,255,129,129,129,129,129, - 129,255,8,8,8,9,0,0,255,129,189,189,189,189,129,255, - 8,8,8,9,0,0,255,255,255,255,255,255,255,255,9,9, - 18,10,0,0,255,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,255,128,9,9,18,10,0,0,255,128,128,128, - 190,128,190,128,190,128,190,128,190,128,128,128,255,128,9,9, - 18,11,0,0,255,128,255,128,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,8,8,8,8,0,0,254,131,131,131, - 131,131,255,127,8,8,8,9,0,0,254,131,187,187,187,131, - 255,127,8,8,8,9,0,0,254,255,255,255,255,255,255,127, - 9,9,18,10,0,0,255,0,129,128,129,128,129,128,129,128, - 129,128,129,128,255,128,127,128,9,9,18,10,0,0,255,0, - 129,128,189,128,189,128,189,128,189,128,129,128,255,128,127,128, - 9,9,18,10,0,0,255,0,255,128,255,128,255,128,255,128, - 255,128,255,128,255,128,127,128,8,8,8,9,0,0,60,66, - 129,129,129,129,66,60,8,8,8,9,0,0,60,66,153,189, - 189,153,66,60,8,8,8,9,0,0,60,126,255,255,255,255, - 126,60,255,255,255,255,255,255,255,255,255,255,255,255,255,10, - 8,16,11,0,0,24,0,40,0,79,192,128,64,128,64,79, - 192,40,0,24,0,8,9,9,9,0,0,24,36,66,129,231, - 36,36,36,60,255,255,255,13,8,16,11,0,0,15,128,255, - 192,128,64,128,64,159,248,160,16,192,32,255,192,1,11,11, - 2,0,254,128,128,128,128,128,128,128,128,128,128,128,9,9, - 18,10,0,0,8,0,0,0,8,0,8,0,190,128,8,0, - 8,0,0,0,8,0,255}; -/* - Fontname: micro - Copyright: Public domain font. Share and enjoy. - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 1 y= 5 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 4 h= 5 x= 0 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_micro[855] U8G_FONT_SECTION("u8g_font_micro") = { - 1,4,5,0,0,5,0,255,1,245,32,255,0,5,0,5, - 0,7,0,64,2,37,69,192,192,192,0,192,5,50,66,160, - 160,2,53,69,160,224,160,224,160,2,53,69,64,224,192,96, - 224,3,52,68,160,96,192,160,2,53,69,64,64,224,192,64, - 21,34,66,64,192,18,37,69,64,128,128,128,64,2,37,69, - 128,64,64,64,128,2,53,69,160,64,224,64,160,3,51,67, - 64,224,64,2,34,66,64,192,4,49,65,224,2,34,66,192, - 192,2,53,69,32,32,64,64,128,2,53,69,64,160,160,160, - 64,2,37,69,64,192,64,64,64,2,53,69,192,32,64,128, - 224,2,53,69,192,32,96,32,224,2,53,69,160,160,160,224, - 32,2,53,69,224,128,192,32,192,2,53,69,96,128,224,160, - 224,2,53,69,224,32,32,64,64,2,53,69,224,160,224,160, - 224,2,53,69,224,160,224,32,192,2,37,69,192,192,0,192, - 192,2,37,69,192,192,0,64,192,2,53,69,32,64,128,64, - 32,3,51,67,224,0,224,2,53,69,128,64,32,64,128,2, - 53,69,224,32,96,0,64,2,53,69,96,160,192,128,96,2, - 53,69,224,160,224,160,160,2,53,69,224,160,192,160,224,2, - 53,69,224,128,128,128,224,2,53,69,192,160,160,160,192,2, - 53,69,224,128,224,128,224,2,53,69,224,128,224,128,128,2, - 53,69,224,128,160,160,224,2,53,69,160,160,224,160,160,2, - 53,69,224,64,64,64,224,2,53,69,32,32,32,160,224,2, - 53,69,160,160,192,160,160,2,53,69,128,128,128,128,224,2, - 53,69,160,224,160,160,160,2,53,69,224,160,160,160,160,2, - 53,69,224,160,160,160,224,2,53,69,224,160,224,128,128,2, - 53,69,224,160,160,192,96,2,53,69,224,160,192,160,160,2, - 53,69,224,128,224,32,224,2,53,69,224,64,64,64,64,2, - 53,69,160,160,160,160,224,2,53,69,160,160,160,160,64,2, - 53,69,160,160,160,224,160,2,53,69,160,224,64,224,160,2, - 53,69,160,160,224,64,64,2,53,69,224,32,64,128,224,18, - 37,69,192,128,128,128,192,2,53,69,128,128,64,64,32,2, - 37,69,192,64,64,64,192,5,50,66,64,160,2,49,65,224, - 21,34,66,128,192,2,52,68,224,96,160,224,2,53,69,128, - 224,160,160,224,2,52,68,224,128,128,224,2,53,69,32,224, - 160,160,224,2,52,68,224,160,192,224,2,53,69,96,128,192, - 128,128,2,52,68,224,160,96,224,2,53,69,128,224,160,160, - 160,18,20,68,128,128,128,128,2,52,68,32,32,160,224,2, - 53,69,128,160,192,192,160,2,37,69,192,64,64,64,64,2, - 52,68,160,224,160,160,2,52,68,224,160,160,160,2,52,68, - 224,160,160,224,2,52,68,224,160,224,128,2,52,68,224,160, - 224,32,2,52,68,224,160,128,128,2,52,68,224,192,96,224, - 2,53,69,64,224,64,64,96,2,52,68,160,160,160,224,2, - 52,68,160,160,160,64,2,52,68,160,160,224,160,2,52,68, - 160,64,64,160,2,52,68,160,160,96,192,2,52,68,224,96, - 192,224,2,53,69,96,64,192,64,96,18,21,69,128,128,128, - 128,128,2,53,69,192,64,96,64,192,4,50,66,192,96,2, - 53,69,96,64,64,64,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=22 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08[2760] U8G_FONT_SECTION("u8g_font_ncenB08") = { - 0,17,19,254,251,8,1,193,3,159,32,255,254,11,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,2,8,8,3,0,254,192, - 192,0,64,64,192,192,192,5,7,7,6,0,255,8,120,208, - 208,232,112,64,7,8,8,8,0,0,60,100,96,252,48,98, - 190,220,7,5,5,8,0,1,186,108,108,108,186,8,8,8, - 9,0,0,247,98,52,54,24,62,24,60,1,8,8,6,2, - 0,128,128,128,0,128,128,128,128,4,10,10,5,0,254,112, - 144,192,96,176,208,96,48,144,224,3,2,2,4,0,6,160, - 160,8,8,8,9,0,0,60,66,157,165,161,157,66,60,3, - 6,6,4,0,2,192,32,224,160,0,224,6,5,5,7,0, - 0,36,108,216,108,36,5,3,3,6,0,2,248,8,8,3, - 1,1,4,0,3,224,8,8,8,9,0,0,60,66,189,165, - 185,173,66,60,4,1,1,5,0,6,240,3,4,4,4,0, - 4,64,160,160,64,5,5,5,6,0,1,32,248,32,0,248, - 3,4,4,3,0,4,96,160,64,224,3,4,4,3,0,4, - 224,64,32,192,3,2,2,4,0,6,96,192,6,7,7,7, - 0,254,204,204,204,220,236,192,192,7,8,8,8,0,0,126, - 244,244,116,20,20,20,62,2,2,2,3,0,3,192,192,2, - 3,3,4,1,254,128,64,192,3,4,4,3,0,4,64,192, - 64,224,4,6,6,5,0,2,96,144,144,96,0,240,6,5, - 5,7,0,0,144,216,108,216,144,8,8,8,9,0,0,68, - 196,72,232,18,22,47,34,8,8,8,9,0,0,68,196,72, - 232,19,21,34,39,8,8,8,9,0,0,228,68,40,200,18, - 22,47,34,5,8,8,6,0,254,48,48,0,16,96,192,216, - 112,9,11,22,8,255,0,48,0,24,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,6,0,12,0,0,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,9,11,22,8,255,0,28, - 0,54,0,0,0,8,0,28,0,28,0,38,0,38,0,127, - 0,67,0,231,128,9,11,22,8,255,0,26,0,44,0,0, - 0,8,0,28,0,28,0,38,0,38,0,127,0,67,0,231, - 128,9,11,22,8,255,0,20,0,20,0,0,0,8,0,28, - 0,28,0,38,0,38,0,127,0,67,0,231,128,9,11,22, - 8,255,0,24,0,36,0,24,0,8,0,28,0,28,0,38, - 0,38,0,127,0,67,0,231,128,10,8,16,11,0,0,63, - 192,22,64,22,128,39,128,62,128,70,64,70,64,239,192,7, - 10,10,8,0,254,58,70,194,192,192,194,66,60,16,48,6, - 11,11,7,0,0,96,48,0,252,100,104,120,104,100,100,252, - 6,11,11,7,0,0,24,48,0,252,100,104,120,104,100,100, - 252,6,11,11,7,0,0,56,108,0,252,100,104,120,104,100, - 100,252,6,11,11,7,0,0,40,40,0,252,100,104,120,104, - 100,100,252,4,11,11,5,0,0,192,96,0,240,96,96,96, - 96,96,96,240,4,11,11,5,0,0,48,96,0,240,96,96, - 96,96,96,96,240,5,11,11,5,0,0,112,216,0,240,96, - 96,96,96,96,96,240,4,11,11,5,0,0,80,80,0,240, - 96,96,96,96,96,96,240,8,8,8,9,0,0,252,98,99, - 243,99,99,98,252,8,11,11,9,0,0,26,44,0,199,98, - 114,122,94,78,70,226,7,11,11,8,0,0,48,24,0,56, - 68,198,198,198,198,68,56,7,11,11,8,0,0,24,48,0, - 56,68,198,198,198,198,68,56,7,11,11,8,0,0,56,108, - 0,56,68,198,198,198,198,68,56,7,11,11,8,0,0,52, - 88,0,56,68,198,198,198,198,68,56,7,11,11,8,0,0, - 40,40,0,56,68,198,198,198,198,68,56,5,5,5,6,0, - 1,216,112,32,112,216,7,8,8,8,0,0,58,68,206,214, - 214,230,68,184,8,11,11,9,0,0,48,24,0,247,98,98, - 98,98,98,98,60,8,11,11,9,0,0,12,24,0,247,98, - 98,98,98,98,98,60,8,11,11,9,0,0,28,54,0,247, - 98,98,98,98,98,98,60,8,11,11,9,0,0,20,20,0, - 247,98,98,98,98,98,98,60,8,11,11,9,0,0,12,24, - 0,247,98,52,52,24,24,24,60,7,8,8,8,0,0,224, - 124,102,102,102,124,96,240,7,8,8,8,0,0,60,102,102, - 108,102,102,102,236,4,8,8,5,0,0,192,96,0,224,48, - 112,176,240,4,8,8,5,0,0,48,96,0,224,48,112,176, - 240,5,9,9,5,0,0,32,112,216,0,224,48,112,176,240, - 5,8,8,5,0,0,104,176,0,224,48,112,176,240,4,8, - 8,5,0,0,160,160,0,224,48,112,176,240,4,8,8,5, - 0,0,96,144,96,224,48,112,176,240,8,5,5,9,0,0, - 238,155,127,216,239,5,7,7,6,0,254,112,200,192,200,112, - 32,96,5,8,8,6,0,0,96,48,0,112,216,248,192,120, - 5,8,8,6,0,0,48,96,0,112,216,248,192,120,5,9, - 9,6,0,0,32,112,216,0,112,216,248,192,120,5,8,8, - 6,0,0,80,80,0,112,216,248,192,120,4,8,8,5,0, - 0,192,96,0,224,96,96,96,240,4,8,8,5,0,0,48, - 96,0,224,96,96,96,240,5,9,9,5,0,0,32,112,216, - 0,224,96,96,96,240,4,8,8,5,0,0,160,160,0,224, - 96,96,96,240,6,8,8,7,0,0,200,112,144,120,204,204, - 204,120,6,8,8,7,0,0,104,176,0,216,236,204,204,204, - 6,8,8,7,0,0,96,48,0,120,204,204,204,120,6,8, - 8,7,0,0,24,48,0,120,204,204,204,120,6,9,9,7, - 0,0,32,112,216,0,120,204,204,204,120,6,8,8,7,0, - 0,52,88,0,120,204,204,204,120,6,8,8,7,0,0,80, - 80,0,120,204,204,204,120,5,5,5,6,0,1,32,0,248, - 0,32,6,7,7,7,0,255,4,120,220,236,204,120,128,6, - 8,8,7,0,0,96,48,0,204,204,204,220,108,6,8,8, - 7,0,0,24,48,0,204,204,204,220,108,6,9,9,7,0, - 0,32,112,216,0,204,204,204,220,108,6,8,8,7,0,0, - 80,80,0,204,204,204,220,108,6,10,10,7,0,254,24,48, - 0,236,104,104,48,48,224,192,6,10,10,7,0,254,192,192, - 192,216,236,204,204,248,192,224,6,10,10,7,0,254,80,80, - 0,236,104,104,48,48,224,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--11-80-100-100-P-66-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=20 - Font Bounding box w=17 h=19 x=-2 y=-5 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB08r[1315] U8G_FONT_SECTION("u8g_font_ncenB08r") = { - 0,17,19,254,251,8,1,193,3,159,32,127,254,9,254,8, - 254,0,0,0,3,0,1,2,8,8,3,0,0,192,192,192, - 128,128,0,192,192,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,5,10,10,6, - 0,255,32,120,168,160,240,120,40,168,240,32,10,8,16,11, - 0,0,102,0,218,0,212,0,213,128,107,64,11,64,19,64, - 17,128,8,8,8,9,0,0,48,104,104,48,88,204,207,118, - 1,3,3,4,1,5,128,128,128,4,10,10,5,0,254,16, - 32,96,192,192,192,192,96,32,16,4,10,10,5,0,254,128, - 64,96,48,48,48,48,96,64,128,5,5,5,6,0,3,32, - 168,112,168,32,5,5,5,6,0,1,32,32,248,32,32,2, - 4,4,3,0,254,192,192,64,128,3,1,1,4,0,3,224, - 2,2,2,3,0,0,192,192,4,8,8,5,0,0,16,16, - 32,32,64,64,128,128,5,8,8,6,0,0,112,216,216,216, - 216,216,216,112,4,8,8,6,1,0,96,224,96,96,96,96, - 96,240,5,8,8,6,0,0,112,216,216,24,48,64,248,248, - 5,8,8,6,0,0,112,216,216,48,24,216,216,112,5,8, - 8,6,0,0,56,56,88,88,152,248,24,56,5,8,8,6, - 0,0,248,240,128,240,24,216,216,112,5,8,8,6,0,0, - 112,216,192,240,216,216,216,112,4,8,8,6,0,0,240,240, - 16,32,32,96,96,96,5,8,8,6,0,0,112,216,216,112, - 216,216,216,112,5,8,8,6,0,0,112,216,216,216,120,24, - 216,112,2,5,5,3,0,0,192,192,0,192,192,2,7,7, - 3,0,254,192,192,0,192,192,64,128,6,5,5,7,0,1, - 12,48,192,48,12,5,3,3,6,0,2,248,0,248,6,5, - 5,7,0,1,192,48,12,48,192,5,8,8,6,0,0,112, - 216,24,48,64,0,96,96,9,10,20,10,0,255,28,0,99, - 0,65,0,158,128,182,128,182,128,155,0,64,0,96,0,30, - 0,9,8,16,8,255,0,8,0,28,0,28,0,38,0,38, - 0,127,0,67,0,231,128,7,8,8,8,0,0,252,102,102, - 124,102,102,102,252,7,8,8,8,0,0,58,70,194,192,192, - 194,66,60,8,8,8,9,0,0,252,98,99,99,99,99,98, - 252,6,8,8,7,0,0,252,100,104,120,104,100,100,252,6, - 8,8,7,0,0,252,100,100,104,120,104,96,240,7,8,8, - 8,0,0,58,70,194,192,206,198,70,58,9,8,16,10,0, - 0,247,128,99,0,99,0,127,0,99,0,99,0,99,0,247, - 128,4,8,8,5,0,0,240,96,96,96,96,96,96,240,6, - 8,8,7,0,0,60,24,24,24,216,216,152,112,9,8,16, - 9,0,0,243,0,98,0,100,0,104,0,124,0,102,0,99, - 0,243,128,6,8,8,7,0,0,240,96,96,96,96,100,100, - 252,11,8,16,12,0,0,241,224,113,192,90,192,90,192,90, - 192,76,192,76,192,237,224,8,8,8,9,0,0,199,98,114, - 122,94,78,70,226,7,8,8,8,0,0,56,68,198,198,198, - 198,68,56,7,8,8,8,0,0,252,102,102,102,124,96,96, - 240,8,9,9,8,0,255,56,68,198,198,198,246,108,61,6, - 8,8,8,9,0,0,252,102,102,100,124,102,102,247,6,8, - 8,7,0,0,116,204,196,240,60,140,204,184,6,8,8,7, - 0,0,252,180,180,48,48,48,48,120,8,8,8,9,0,0, - 247,98,98,98,98,98,98,60,8,8,8,9,0,0,247,98, - 98,52,52,52,24,24,11,8,16,12,0,0,246,224,102,64, - 102,64,107,64,107,64,59,128,49,128,49,128,8,8,8,9, - 0,0,247,98,116,56,28,46,70,239,8,8,8,9,0,0, - 247,98,52,52,24,24,24,60,6,8,8,7,0,0,252,140, - 28,56,112,224,196,252,3,10,10,4,0,254,224,192,192,192, - 192,192,192,192,192,224,4,8,8,5,0,0,128,128,64,64, - 32,32,16,16,3,10,10,4,0,254,224,96,96,96,96,96, - 96,96,96,224,5,6,6,6,0,2,32,32,112,80,136,136, - 6,1,1,6,0,254,252,3,2,2,4,0,6,192,96,4, - 5,5,5,0,0,224,48,112,176,240,6,8,8,7,0,0, - 192,192,192,216,236,204,204,184,5,5,5,6,0,0,112,200, - 192,200,112,6,8,8,7,0,0,28,12,12,124,204,204,220, - 108,5,5,5,6,0,0,112,216,248,192,120,5,8,8,5, - 0,0,56,104,96,240,96,96,96,240,6,8,8,6,0,254, - 8,112,216,216,112,124,140,248,6,8,8,7,0,0,192,192, - 192,216,236,204,204,204,4,8,8,5,0,0,96,96,0,224, - 96,96,96,240,3,10,10,5,0,254,96,96,0,224,96,96, - 96,96,96,192,6,8,8,6,0,0,192,192,192,216,240,240, - 216,220,4,8,8,5,0,0,224,96,96,96,96,96,96,240, - 10,5,10,11,0,0,217,128,238,192,204,192,204,192,204,192, - 6,5,5,7,0,0,216,236,204,204,204,6,5,5,7,0, - 0,120,204,204,204,120,6,7,7,7,0,254,216,236,204,204, - 248,192,224,7,7,7,7,0,254,124,204,204,220,108,12,30, - 4,5,5,5,0,0,208,240,192,192,192,4,5,5,5,0, - 0,112,192,240,48,224,3,7,7,4,0,0,64,192,224,192, - 192,192,96,6,5,5,7,0,0,204,204,204,220,108,6,5, - 5,7,0,0,236,104,104,48,48,9,5,10,10,0,0,237, - 128,109,0,109,0,54,0,54,0,6,5,5,7,0,0,236, - 104,48,88,220,6,7,7,7,0,254,236,104,104,48,48,224, - 192,5,5,5,6,0,0,248,176,96,200,248,4,10,10,5, - 0,254,48,96,96,96,192,96,96,96,96,48,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,4,10,10,5,0,254, - 192,96,96,96,48,96,96,96,96,192,6,2,2,7,0,3, - 116,184,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 3 y= 8 dx=15 dy= 0 ascent=15 len=30 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =15 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10[4003] U8G_FONT_SECTION("u8g_font_ncenB10") = { - 0,20,25,254,250,11,2,24,5,41,32,255,253,15,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0, - 4,0,1,2,11,11,5,1,253,192,192,192,0,64,64,192, - 192,192,192,192,7,9,9,8,0,255,4,60,110,206,208,210, - 118,60,32,8,11,11,9,0,0,28,38,102,96,252,48,48, - 32,225,191,222,8,8,8,9,0,2,153,126,102,195,195,102, - 126,153,10,11,22,11,0,0,241,192,96,128,49,0,49,0, - 26,0,26,0,63,0,12,0,63,0,12,0,30,0,1,11, - 11,8,3,0,128,128,128,128,0,0,128,128,128,128,128,6, - 13,13,7,0,254,56,108,76,96,120,156,204,228,120,28,204, - 200,112,5,2,2,7,1,8,216,216,11,11,22,12,0,0, - 14,0,49,128,64,64,79,64,153,32,144,32,153,32,78,64, - 64,64,49,128,14,0,5,7,7,6,0,4,224,48,112,176, - 216,0,248,7,5,5,8,0,1,54,108,216,108,54,7,4, - 4,8,0,2,254,2,2,2,4,2,2,5,0,3,240,240, - 11,11,22,12,0,0,14,0,49,128,64,64,94,64,137,32, - 142,32,138,32,91,64,64,64,49,128,14,0,5,1,1,7, - 1,8,248,4,4,4,6,1,7,96,144,144,96,7,7,7, - 8,0,1,16,16,254,16,16,0,254,5,6,6,5,255,5, - 112,152,24,48,96,248,5,6,6,5,255,5,112,152,48,24, - 152,112,4,3,3,6,1,8,48,96,128,9,10,20,10,0, - 253,247,0,99,0,99,0,99,0,99,0,103,0,123,128,64, - 0,96,0,96,0,9,11,22,10,0,0,127,128,251,0,251, - 0,251,0,251,0,123,0,27,0,27,0,27,0,27,0,63, - 128,2,2,2,5,1,4,192,192,3,3,3,5,1,253,64, - 32,224,4,6,6,5,0,5,96,224,96,96,96,240,5,7, - 7,6,0,4,112,216,216,216,112,0,248,7,5,5,8,0, - 1,216,108,54,108,216,11,11,22,12,0,0,97,0,227,0, - 98,0,102,0,100,0,252,192,9,192,26,192,20,192,55,224, - 32,192,11,11,22,12,0,0,97,0,227,0,98,0,102,0, - 100,0,253,192,10,96,24,96,16,192,49,128,35,224,12,11, - 22,12,255,0,112,128,153,128,49,0,27,0,154,0,118,96, - 4,224,13,96,10,96,27,240,16,96,6,11,11,7,0,253, - 48,48,48,0,16,48,96,192,204,204,120,10,15,30,11,0, - 0,48,0,24,0,4,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,10, - 15,30,11,0,0,3,0,6,0,8,0,0,0,12,0,12, - 0,22,0,22,0,18,0,35,0,35,0,63,0,65,128,65, - 128,227,192,10,15,30,11,0,0,4,0,14,0,17,0,0, - 0,12,0,12,0,22,0,22,0,18,0,35,0,35,0,63, - 0,65,128,65,128,227,192,10,14,28,11,0,0,29,0,46, - 0,0,0,12,0,12,0,22,0,22,0,18,0,35,0,35, - 0,63,0,65,128,65,128,227,192,10,14,28,11,0,0,51, - 0,51,0,0,0,12,0,12,0,22,0,22,0,18,0,35, - 0,35,0,63,0,65,128,65,128,227,192,10,15,30,11,0, - 0,12,0,18,0,12,0,0,0,12,0,12,0,22,0,22, - 0,18,0,35,0,35,0,63,0,65,128,65,128,227,192,15, - 11,22,15,255,0,15,254,5,134,5,130,9,146,9,144,17, - 240,31,144,33,146,33,130,65,134,227,254,10,14,28,11,0, - 253,31,64,112,192,96,64,192,64,192,0,192,0,192,0,192, - 0,96,64,112,192,31,0,4,0,2,0,14,0,9,15,30, - 10,0,0,24,0,12,0,2,0,0,0,255,128,97,128,96, - 128,100,128,100,0,124,0,100,0,100,128,96,128,97,128,255, - 128,9,15,30,10,0,0,3,0,6,0,8,0,0,0,255, - 128,97,128,96,128,100,128,100,0,124,0,100,0,100,128,96, - 128,97,128,255,128,9,15,30,10,0,0,4,0,14,0,17, - 0,0,0,255,128,97,128,96,128,100,128,100,0,124,0,100, - 0,100,128,96,128,97,128,255,128,9,14,28,10,0,0,51, - 0,51,0,0,0,255,128,97,128,96,128,100,128,100,0,124, - 0,100,0,100,128,96,128,97,128,255,128,4,15,15,7,1, - 0,192,96,16,0,240,96,96,96,96,96,96,96,96,96,240, - 5,15,15,7,1,0,24,48,64,0,240,96,96,96,96,96, - 96,96,96,96,240,5,15,15,7,1,0,32,112,136,0,240, - 96,96,96,96,96,96,96,96,96,240,6,14,14,7,0,0, - 204,204,0,120,48,48,48,48,48,48,48,48,48,120,11,11, - 22,12,0,0,255,0,97,192,96,192,96,96,96,96,248,96, - 96,96,96,96,96,192,97,192,255,0,11,14,28,12,0,0, - 14,128,23,0,0,0,224,224,112,64,120,64,92,64,76,64, - 70,64,71,64,67,192,65,192,64,192,224,64,11,15,30,12, - 0,0,24,0,12,0,2,0,0,0,31,0,113,192,96,192, - 192,96,192,96,192,96,192,96,192,96,96,192,113,192,31,0, - 11,15,30,12,0,0,0,192,1,128,2,0,0,0,31,0, - 113,192,96,192,192,96,192,96,192,96,192,96,192,96,96,192, - 113,192,31,0,11,15,30,12,0,0,4,0,14,0,17,0, - 0,0,31,0,113,192,96,192,192,96,192,96,192,96,192,96, - 192,96,96,192,113,192,31,0,11,14,28,12,0,0,14,128, - 23,0,0,0,31,0,113,192,96,192,192,96,192,96,192,96, - 192,96,192,96,96,192,113,192,31,0,11,14,28,12,0,0, - 25,128,25,128,0,0,31,0,113,192,96,192,192,96,192,96, - 192,96,192,96,192,96,96,192,113,192,31,0,8,7,7,8, - 0,1,195,102,60,24,60,102,195,11,11,22,12,0,0,31, - 32,113,192,96,192,193,96,194,96,196,96,200,96,208,96,96, - 192,113,192,159,0,11,15,30,12,0,0,12,0,6,0,1, - 0,0,0,240,224,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,48,128,31,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,48,128,31,0,11,15,30, - 12,0,0,4,0,14,0,17,0,0,0,240,224,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,48,128,31, - 0,11,14,28,12,0,0,25,128,25,128,0,0,240,224,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,96,64,48, - 128,31,0,10,15,30,11,0,0,1,128,3,0,4,0,0, - 0,241,192,96,128,49,0,49,0,26,0,26,0,12,0,12, - 0,12,0,12,0,30,0,9,11,22,10,0,0,240,0,96, - 0,127,0,99,128,97,128,97,128,99,128,126,0,96,0,96, - 0,240,0,8,11,11,9,0,0,30,35,99,98,108,98,99, - 99,99,99,238,8,11,11,9,0,0,48,24,4,0,60,102, - 6,62,198,206,119,8,11,11,9,0,0,12,24,32,0,60, - 102,6,62,198,206,119,8,11,11,9,0,0,16,56,108,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,52,88,0, - 60,102,6,62,198,206,119,8,10,10,9,0,0,108,108,0, - 60,102,6,62,198,206,119,8,11,11,9,0,0,24,36,24, - 0,60,102,6,62,198,206,119,13,7,14,14,0,0,57,224, - 103,48,6,24,63,248,198,0,199,24,121,240,7,10,10,8, - 0,253,60,102,198,192,194,102,60,16,8,56,8,11,11,9, - 0,0,48,24,4,0,60,102,195,255,192,99,62,8,11,11, - 9,0,0,12,24,32,0,60,102,195,255,192,99,62,8,11, - 11,9,0,0,16,56,108,0,60,102,195,255,192,99,62,8, - 10,10,9,0,0,108,108,0,60,102,195,255,192,99,62,4, - 11,11,5,0,0,192,96,16,0,224,96,96,96,96,96,240, - 4,11,11,5,0,0,48,96,128,0,224,96,96,96,96,96, - 240,5,11,11,5,0,0,32,112,216,0,224,96,96,96,96, - 96,240,5,10,10,5,0,0,216,216,0,224,96,96,96,96, - 96,240,8,11,11,9,0,0,198,56,120,140,62,102,195,195, - 195,102,60,9,10,20,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,247,128,8,11,11, - 9,0,0,48,24,4,0,60,102,195,195,195,102,60,8,11, - 11,9,0,0,12,24,32,0,60,102,195,195,195,102,60,8, - 11,11,9,0,0,16,56,108,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,52,88,0,60,102,195,195,195,102,60, - 8,10,10,9,0,0,108,108,0,60,102,195,195,195,102,60, - 8,7,7,8,0,1,24,24,0,255,0,24,24,8,9,9, - 9,0,255,2,60,110,203,211,211,102,60,64,9,11,22,10, - 0,0,48,0,24,0,4,0,0,0,247,128,99,0,99,0, - 99,0,99,0,103,0,59,128,9,11,22,10,0,0,12,0, - 24,0,32,0,0,0,247,128,99,0,99,0,99,0,99,0, - 103,0,59,128,9,11,22,10,0,0,8,0,28,0,54,0, - 0,0,247,128,99,0,99,0,99,0,99,0,103,0,59,128, - 9,10,20,10,0,0,54,0,54,0,0,0,247,128,99,0, - 99,0,99,0,99,0,103,0,59,128,8,14,14,7,255,253, - 6,12,16,0,247,98,98,52,52,24,24,16,208,224,9,14, - 28,10,0,253,224,0,96,0,96,0,96,0,110,0,115,0, - 97,128,97,128,97,128,115,0,110,0,96,0,96,0,240,0, - 8,13,13,7,255,253,54,54,0,247,98,98,52,52,24,24, - 16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--14-100-100-100-P-87-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=14 h=14 x= 3 y= 8 dx=15 dy= 0 ascent=12 len=28 - Font Bounding box w=20 h=25 x=-2 y=-6 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB10r[1853] U8G_FONT_SECTION("u8g_font_ncenB10r") = { - 0,20,25,254,250,11,2,24,5,41,32,127,253,12,253,11, - 253,0,0,0,4,0,1,2,11,11,4,1,0,192,192,192, - 192,192,128,128,0,192,192,192,3,4,4,5,1,7,160,160, - 160,160,7,10,10,8,0,0,20,20,20,126,40,40,252,80, - 80,80,7,13,13,8,0,255,16,124,214,150,208,240,124,30, - 22,210,214,124,16,12,11,22,13,0,0,48,128,111,0,201, - 0,202,0,210,0,100,96,4,208,9,144,9,144,17,160,16, - 192,12,11,22,13,0,0,30,0,51,0,51,0,50,0,28, - 0,60,224,78,64,199,128,195,144,227,224,124,192,1,4,4, - 3,1,7,128,128,128,128,4,13,13,5,0,254,16,32,96, - 64,192,192,192,192,192,64,96,32,16,4,13,13,5,0,254, - 128,64,96,32,48,48,48,48,48,32,96,64,128,5,5,5, - 6,0,6,32,168,112,168,32,7,7,7,8,0,1,16,16, - 16,254,16,16,16,2,5,5,4,1,254,192,192,192,64,128, - 4,2,2,5,0,3,240,240,2,3,3,4,1,0,192,192, - 192,4,11,11,5,0,0,16,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,108,198,198,198,198,198,198, - 198,108,56,5,11,11,8,1,0,48,240,48,48,48,48,48, - 48,48,48,120,7,11,11,8,0,0,120,206,198,6,6,12, - 24,48,98,254,254,7,11,11,8,0,0,120,206,198,6,12, - 60,6,6,198,206,120,7,11,11,8,0,0,12,28,28,44, - 44,76,76,254,12,12,30,7,11,11,8,0,0,126,124,64, - 64,92,110,6,6,198,206,120,7,11,11,8,0,0,60,102, - 198,192,220,238,198,198,198,230,120,7,11,11,8,0,0,254, - 254,132,140,12,24,24,24,48,48,48,7,11,11,8,0,0, - 120,230,198,198,244,60,94,198,198,206,60,7,11,11,8,0, - 0,60,206,198,198,198,238,118,6,198,204,120,2,7,7,4, - 1,0,192,192,192,0,192,192,192,2,9,9,4,1,254,192, - 192,192,0,192,192,192,64,128,7,7,7,8,0,1,2,14, - 56,224,56,14,2,7,3,3,8,0,3,254,0,254,7,7, - 7,8,0,1,128,224,56,14,56,224,128,6,11,11,7,0, - 0,120,204,204,12,24,48,32,0,48,48,48,13,11,22,14, - 0,0,15,192,56,112,99,152,108,216,204,216,217,152,217,176, - 219,176,205,192,96,16,63,224,10,11,22,11,0,0,12,0, - 12,0,22,0,22,0,18,0,35,0,35,0,63,0,65,128, - 65,128,227,192,9,11,22,10,0,0,254,0,99,0,99,0, - 99,0,102,0,127,0,97,128,97,128,97,128,99,128,254,0, - 10,11,22,11,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,192,0,192,0,96,64,112,192,31,0,11,11,22,12, - 0,0,255,0,97,192,96,192,96,96,96,96,96,96,96,96, - 96,96,96,192,97,192,255,0,9,11,22,10,0,0,255,128, - 97,128,96,128,100,128,100,0,124,0,100,0,100,128,96,128, - 97,128,255,128,9,11,22,10,0,0,255,128,97,128,96,128, - 100,128,100,0,124,0,100,0,100,0,96,0,96,0,240,0, - 11,11,22,12,0,0,31,64,112,192,96,64,192,64,192,0, - 192,0,195,224,192,192,96,192,113,192,30,64,11,11,22,12, - 0,0,241,224,96,192,96,192,96,192,96,192,127,192,96,192, - 96,192,96,192,96,192,241,224,4,11,11,7,1,0,240,96, - 96,96,96,96,96,96,96,96,240,7,11,11,9,0,0,30, - 12,12,12,12,12,12,204,204,156,112,11,11,22,12,0,0, - 243,192,97,0,98,0,100,0,104,0,124,0,110,0,103,0, - 99,128,97,192,243,224,9,11,22,10,0,0,240,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,128,96,128,97,128, - 255,128,13,11,22,14,0,0,240,120,112,112,112,112,88,176, - 88,176,88,176,77,48,77,48,77,48,70,48,230,120,11,11, - 22,12,0,0,224,224,112,64,120,64,92,64,76,64,70,64, - 71,64,67,192,65,192,64,192,224,64,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,9,11,22,10,0,0,255,0,99,128, - 97,128,97,128,99,128,126,0,96,0,96,0,96,0,96,0, - 240,0,11,14,28,12,0,253,31,0,113,192,96,192,192,96, - 192,96,192,96,192,96,220,96,102,192,115,192,31,0,3,32, - 3,160,1,192,11,11,22,12,0,0,255,0,99,128,97,128, - 97,128,99,0,126,0,99,0,99,0,97,128,97,160,241,192, - 9,11,22,10,0,0,61,0,227,0,193,0,193,0,240,0, - 126,0,15,128,129,128,129,128,195,128,190,0,10,11,22,11, - 0,0,255,192,204,192,140,64,140,64,12,0,12,0,12,0, - 12,0,12,0,12,0,30,0,11,11,22,12,0,0,240,224, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,96,64, - 48,128,31,0,10,11,22,11,0,0,241,192,96,128,96,128, - 49,0,49,0,49,0,26,0,26,0,26,0,12,0,12,0, - 13,11,22,14,0,0,247,184,99,16,99,16,99,16,53,160, - 53,160,53,160,53,160,24,192,24,192,24,192,11,11,22,12, - 0,0,249,224,112,192,48,128,25,0,13,0,14,0,22,0, - 19,0,33,128,97,192,243,224,10,11,22,11,0,0,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,12,0, - 12,0,30,0,8,11,11,9,0,0,255,195,135,142,12,24, - 48,113,225,195,255,4,13,13,5,0,254,240,192,192,192,192, - 192,192,192,192,192,192,192,240,6,11,11,7,0,0,128,128, - 64,64,32,32,16,16,8,8,4,4,13,13,5,0,254,240, - 48,48,48,48,48,48,48,48,48,48,48,240,7,7,7,8, - 0,4,16,16,56,40,108,68,198,7,1,1,7,0,254,254, - 4,3,3,6,1,8,192,96,16,8,7,7,9,0,0,60, - 102,6,62,198,206,119,9,11,22,10,0,0,224,0,96,0, - 96,0,96,0,110,0,115,0,97,128,97,128,97,128,99,0, - 94,0,7,7,7,8,0,0,60,102,198,192,194,102,60,9, - 11,22,10,0,0,7,0,3,0,3,0,3,0,59,0,103, - 0,195,0,195,0,195,0,103,0,59,128,8,7,7,9,0, - 0,60,102,195,255,192,99,62,6,11,11,6,0,0,56,108, - 108,96,248,96,96,96,96,96,240,7,11,11,8,0,253,6, - 124,198,198,124,128,252,126,130,134,124,9,11,22,10,0,0, - 224,0,96,0,96,0,96,0,110,0,115,0,99,0,99,0, - 99,0,99,0,247,128,4,10,10,5,0,0,96,96,0,224, - 96,96,96,96,96,240,5,13,13,5,254,253,24,24,0,56, - 24,24,24,24,24,24,24,216,112,8,11,11,9,0,0,224, - 96,96,96,103,102,108,120,108,102,231,4,11,11,5,0,0, - 224,96,96,96,96,96,96,96,96,96,240,14,7,14,15,0, - 0,238,112,115,152,99,24,99,24,99,24,99,24,247,188,9, - 7,14,10,0,0,238,0,115,0,99,0,99,0,99,0,99, - 0,247,128,8,7,7,9,0,0,60,102,195,195,195,102,60, - 9,10,20,10,0,253,238,0,115,0,97,128,97,128,97,128, - 115,0,110,0,96,0,96,0,240,0,9,10,20,9,0,253, - 61,0,103,0,195,0,195,0,195,0,103,0,59,0,3,0, - 3,0,7,128,7,7,7,7,0,0,238,118,96,96,96,96, - 240,6,7,7,7,0,0,124,196,224,120,28,140,248,6,10, - 10,6,0,0,32,32,96,248,96,96,96,100,100,56,9,7, - 14,10,0,0,231,0,99,0,99,0,99,0,99,0,103,0, - 59,128,8,7,7,7,255,0,247,98,98,52,52,24,24,13, - 7,14,12,255,0,247,184,99,16,99,16,53,160,53,160,24, - 192,24,192,8,7,7,9,0,0,231,102,60,24,60,70,231, - 8,10,10,7,255,253,247,98,98,52,52,24,24,16,208,224, - 6,7,7,7,0,0,252,140,24,48,96,196,252,5,13,13, - 6,0,254,24,32,96,96,96,64,128,64,96,96,96,32,24, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,5,13,13,6,0,254,192,32,48,48,48,16,8,16,48, - 48,48,32,192,7,2,2,8,0,4,118,220,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=16 len=32 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12[4735] U8G_FONT_SECTION("u8g_font_ncenB12") = { - 0,22,27,253,249,12,2,152,5,246,32,255,253,16,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,4,1,1,3,12,12,5,1,253,64,224, - 224,64,0,64,64,224,224,224,224,64,8,12,12,10,0,254, - 1,2,62,115,231,231,232,233,114,60,32,64,9,12,24,10, - 0,0,31,0,57,128,115,128,115,128,113,0,56,0,254,0, - 24,0,24,0,120,128,191,0,110,0,8,8,8,10,1,2, - 90,255,102,195,195,102,255,90,10,12,24,10,0,0,251,192, - 113,128,49,0,59,0,26,0,30,0,63,0,12,0,63,0, - 12,0,12,0,63,0,2,12,12,10,4,0,192,192,192,192, - 192,0,0,192,192,192,192,192,6,15,15,9,1,253,56,76, - 76,96,48,120,140,132,196,120,48,24,200,200,112,5,2,2, - 6,0,9,216,216,12,12,24,12,0,0,31,128,57,192,96, - 96,207,176,217,48,152,16,152,16,217,176,207,48,96,96,57, - 192,31,128,6,7,7,6,0,5,112,152,120,216,108,0,248, - 6,5,5,8,1,2,36,108,216,108,36,8,5,5,10,0, - 2,255,255,3,3,3,4,2,2,5,0,3,240,240,12,12, - 24,12,0,0,31,128,57,192,96,96,223,48,201,48,142,16, - 139,16,201,176,221,240,96,96,57,192,31,128,5,1,1,6, - 0,10,248,5,5,5,7,1,7,112,216,136,216,112,8,9, - 9,10,1,0,24,24,255,255,24,24,0,255,255,5,7,7, - 6,0,5,112,152,216,16,32,120,248,6,7,7,6,0,5, - 120,204,76,24,76,204,120,4,3,3,6,1,9,48,112,192, - 11,11,22,11,0,253,243,192,113,192,113,192,113,192,113,192, - 113,192,123,192,110,224,96,0,112,0,112,0,11,12,24,12, - 0,0,127,224,249,128,249,128,249,128,249,128,121,128,25,128, - 25,128,25,128,25,128,25,128,127,224,4,3,3,5,0,3, - 96,240,96,4,4,4,6,0,253,64,96,48,224,4,7,7, - 6,1,5,32,224,96,96,96,96,240,5,7,7,6,0,5, - 112,216,216,216,112,0,248,6,5,5,8,1,2,144,216,108, - 216,144,12,12,24,14,1,0,32,64,224,192,97,128,97,0, - 99,0,98,32,246,96,12,224,9,32,27,240,48,96,32,240, - 12,12,24,14,1,0,32,64,224,192,97,128,97,0,99,0, - 98,224,247,48,13,176,8,32,24,64,48,240,33,240,13,12, - 24,14,0,0,120,32,204,96,76,192,24,128,77,128,205,16, - 123,48,6,112,4,144,13,248,24,48,16,120,8,12,12,8, - 0,253,8,28,28,8,0,8,48,112,230,239,102,60,13,16, - 32,13,0,0,24,0,28,0,6,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,16,32,13,0,0,1,128,3,128,6,0, - 0,0,6,0,7,0,7,0,15,0,11,128,27,128,17,192, - 63,192,49,192,32,224,96,224,241,248,13,16,32,13,0,0, - 2,0,7,0,13,128,0,0,6,0,7,0,7,0,15,0, - 11,128,27,128,17,192,63,192,49,192,32,224,96,224,241,248, - 13,15,30,13,0,0,14,128,23,0,0,0,6,0,7,0, - 7,0,15,0,11,128,27,128,17,192,63,192,49,192,32,224, - 96,224,241,248,13,15,30,13,0,0,25,128,25,128,0,0, - 6,0,7,0,7,0,15,0,11,128,27,128,17,192,63,192, - 49,192,32,224,96,224,241,248,13,16,32,13,0,0,6,0, - 11,0,6,0,0,0,6,0,7,0,7,0,15,0,11,128, - 27,128,17,192,63,192,49,192,32,224,96,224,241,248,16,12, - 24,16,255,0,31,255,7,195,5,195,5,201,9,216,9,248, - 17,216,31,201,33,193,33,195,97,195,247,255,11,15,30,13, - 1,253,15,160,56,224,112,96,112,32,224,32,224,0,224,0, - 224,32,112,32,112,64,56,192,15,0,12,0,6,0,28,0, - 11,16,32,12,0,0,24,0,28,0,6,0,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,11,16,32,12,0,0,1,128,3,128, - 6,0,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,32,56,32,56,96,56,96,255,224,11,16,32,12, - 0,0,2,0,7,0,13,128,0,0,255,224,56,96,56,96, - 57,32,59,0,63,0,59,0,57,32,56,32,56,96,56,96, - 255,224,11,15,30,12,0,0,25,128,25,128,0,0,255,224, - 56,96,56,96,57,32,59,0,63,0,59,0,57,32,56,32, - 56,96,56,96,255,224,7,16,16,7,0,0,96,112,24,0, - 254,56,56,56,56,56,56,56,56,56,56,254,7,16,16,7, - 0,0,12,28,48,0,254,56,56,56,56,56,56,56,56,56, - 56,254,7,16,16,7,0,0,16,56,108,0,254,56,56,56, - 56,56,56,56,56,56,56,254,7,15,15,7,0,0,108,108, - 0,254,56,56,56,56,56,56,56,56,56,56,254,13,12,24, - 14,0,0,255,128,56,224,56,112,56,112,56,56,126,56,56, - 56,56,56,56,112,56,112,56,224,255,128,14,15,30,14,0, - 0,7,64,11,128,0,0,240,124,56,16,60,16,62,16,47, - 16,39,144,35,208,33,240,32,240,32,112,32,48,248,16,12, - 16,32,14,1,0,24,0,28,0,6,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,16,32,14,1,0,1,128,3,128,6, - 0,0,0,15,0,57,192,112,224,112,224,224,112,224,112,224, - 112,224,112,112,224,112,224,57,192,15,0,12,16,32,14,1, - 0,6,0,15,0,25,128,0,0,15,0,57,192,112,224,112, - 224,224,112,224,112,224,112,224,112,112,224,112,224,57,192,15, - 0,12,15,30,14,1,0,14,128,23,0,0,0,15,0,57, - 192,112,224,112,224,224,112,224,112,224,112,224,112,112,224,112, - 224,57,192,15,0,12,15,30,14,1,0,25,128,25,128,0, - 0,15,0,57,192,112,224,112,224,224,112,224,112,224,112,224, - 112,112,224,112,224,57,192,15,0,8,8,8,10,1,0,66, - 231,126,56,28,126,231,66,12,14,28,14,1,255,0,16,15, - 32,57,192,112,224,112,224,225,112,226,112,228,112,232,112,112, - 224,112,224,57,192,79,0,128,0,14,16,32,14,0,0,6, - 0,7,0,1,128,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,14, - 16,32,14,0,0,0,96,0,224,1,128,0,0,254,124,56, - 16,56,16,56,16,56,16,56,16,56,16,56,16,56,16,28, - 32,30,96,7,128,14,16,32,14,0,0,1,128,3,192,6, - 96,0,0,254,124,56,16,56,16,56,16,56,16,56,16,56, - 16,56,16,56,16,28,32,30,96,7,128,14,15,30,14,0, - 0,6,96,6,96,0,0,254,124,56,16,56,16,56,16,56, - 16,56,16,56,16,56,16,56,16,28,32,30,96,7,128,13, - 16,32,12,255,0,0,192,1,192,3,0,0,0,254,248,56, - 96,28,64,28,128,14,128,15,0,7,0,7,0,7,0,7, - 0,7,0,31,192,12,12,24,13,0,0,254,0,56,0,63, - 192,56,224,56,112,56,112,56,112,56,224,63,192,56,0,56, - 0,254,0,10,12,24,10,0,0,31,0,51,128,115,128,115, - 128,115,0,119,0,113,128,113,192,113,192,113,192,123,128,247, - 0,9,12,24,10,0,0,96,0,112,0,24,0,0,0,126, - 0,231,0,199,0,31,0,103,0,231,0,239,0,119,128,9, - 12,24,10,0,0,6,0,14,0,24,0,0,0,126,0,231, - 0,199,0,31,0,103,0,231,0,239,0,119,128,9,12,24, - 10,0,0,16,0,56,0,108,0,0,0,126,0,231,0,199, - 0,31,0,103,0,231,0,239,0,119,128,9,11,22,10,0, - 0,58,0,92,0,0,0,126,0,231,0,199,0,31,0,103, - 0,231,0,239,0,119,128,9,11,22,10,0,0,108,0,108, - 0,0,0,126,0,231,0,199,0,31,0,103,0,231,0,239, - 0,119,128,9,12,24,10,0,0,24,0,44,0,24,0,0, - 0,126,0,231,0,199,0,31,0,103,0,231,0,239,0,119, - 128,13,8,16,15,0,0,125,224,231,48,199,56,63,248,103, - 0,231,24,239,48,123,224,8,11,11,9,0,253,62,115,231, - 227,224,227,118,60,24,12,56,9,12,24,10,0,0,48,0, - 56,0,12,0,0,0,62,0,119,0,227,128,255,128,224,0, - 225,128,115,0,62,0,9,12,24,10,0,0,6,0,14,0, - 24,0,0,0,62,0,119,0,227,128,255,128,224,0,225,128, - 115,0,62,0,9,12,24,10,0,0,8,0,28,0,54,0, - 0,0,62,0,119,0,227,128,255,128,224,0,225,128,115,0, - 62,0,9,11,22,10,0,0,54,0,54,0,0,0,62,0, - 119,0,227,128,255,128,224,0,225,128,115,0,62,0,5,12, - 12,6,0,0,192,224,48,0,240,112,112,112,112,112,112,248, - 5,12,12,6,0,0,24,56,96,0,240,112,112,112,112,112, - 112,248,5,12,12,6,0,0,32,112,216,0,240,112,112,112, - 112,112,112,248,5,11,11,6,0,0,216,216,0,240,112,112, - 112,112,112,112,248,9,13,26,11,0,0,96,0,59,0,28, - 0,54,0,7,0,31,0,119,128,227,128,227,128,227,128,227, - 128,119,0,28,0,11,11,22,11,255,0,14,128,23,0,0, - 0,247,128,121,192,113,192,113,192,113,192,113,192,113,192,251, - 224,10,12,24,11,0,0,24,0,28,0,6,0,0,0,63, - 0,115,128,225,192,225,192,225,192,225,192,115,128,63,0,10, - 12,24,11,0,0,3,0,7,0,12,0,0,0,63,0,115, - 128,225,192,225,192,225,192,225,192,115,128,63,0,10,12,24, - 11,0,0,12,0,30,0,51,0,0,0,63,0,115,128,225, - 192,225,192,225,192,225,192,115,128,63,0,10,11,22,11,0, - 0,29,0,46,0,0,0,63,0,115,128,225,192,225,192,225, - 192,225,192,115,128,63,0,10,11,22,11,0,0,54,0,54, - 0,0,0,63,0,115,128,225,192,225,192,225,192,225,192,115, - 128,63,0,8,8,8,10,1,0,24,24,0,255,255,0,24, - 24,9,12,24,10,0,254,0,128,1,0,30,0,115,0,231, - 128,235,128,235,128,243,128,103,0,60,0,64,0,128,0,11, - 12,24,11,255,0,24,0,28,0,6,0,0,0,243,192,113, - 192,113,192,113,192,113,192,113,192,123,192,62,224,11,12,24, - 11,255,0,3,0,7,0,12,0,0,0,243,192,113,192,113, - 192,113,192,113,192,113,192,123,192,62,224,11,12,24,11,255, - 0,4,0,14,0,27,0,0,0,243,192,113,192,113,192,113, - 192,113,192,113,192,123,192,62,224,11,11,22,11,255,0,27, - 0,27,0,0,0,243,192,113,192,113,192,113,192,113,192,113, - 192,123,192,62,224,11,15,30,10,255,253,3,0,7,0,12, - 0,0,0,251,224,112,192,56,128,25,128,29,0,15,0,14, - 0,6,0,52,0,116,0,56,0,10,15,30,11,255,253,240, - 0,112,0,112,0,112,0,119,0,123,128,113,192,113,192,113, - 192,113,192,123,128,119,0,112,0,112,0,252,0,11,14,28, - 10,255,253,27,0,27,0,0,0,251,224,48,192,56,128,25, - 128,29,0,15,0,14,0,6,0,52,0,116,0,56,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--17-120-100-100-P-99-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=14 len=30 - Font Bounding box w=22 h=27 x=-3 y=-7 - Calculated Min Values x=-2 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB12r[2194] U8G_FONT_SECTION("u8g_font_ncenB12r") = { - 0,22,27,253,249,12,2,152,5,246,32,127,253,14,253,12, - 253,0,0,0,4,1,1,3,12,12,5,1,0,64,224,224, - 224,224,64,64,0,64,224,224,64,5,5,5,6,0,7,216, - 216,216,144,144,10,12,24,10,0,0,25,128,25,128,25,128, - 127,192,127,192,51,0,51,0,255,128,255,128,102,0,102,0, - 102,0,9,15,30,10,0,255,8,0,8,0,62,0,105,0, - 203,128,201,0,252,0,127,0,31,128,73,128,233,128,201,128, - 107,0,62,0,8,0,12,12,24,14,1,0,56,128,119,128, - 101,0,197,0,202,0,202,224,117,208,5,144,11,16,11,32, - 19,32,17,192,12,12,24,14,1,0,15,0,25,128,25,128, - 25,0,30,0,60,240,110,96,231,64,199,128,227,144,243,240, - 124,224,2,5,5,4,1,7,192,192,192,128,128,4,14,14, - 6,1,254,16,32,96,96,192,192,192,192,192,192,96,96,32, - 16,4,14,14,6,0,254,128,64,96,96,48,48,48,48,48, - 48,96,96,64,128,7,7,7,8,0,5,16,84,214,56,214, - 84,16,8,8,8,10,1,0,24,24,24,255,255,24,24,24, - 4,6,6,5,0,253,96,240,112,32,96,128,4,2,2,5, - 0,3,240,240,4,3,3,5,0,0,96,240,96,5,12,12, - 5,0,0,8,8,16,16,16,32,32,64,64,64,128,128,9, - 12,24,10,0,0,28,0,54,0,99,0,99,0,227,128,227, - 128,227,128,227,128,99,0,99,0,54,0,28,0,7,12,12, - 10,1,0,24,248,56,56,56,56,56,56,56,56,56,254,8, - 12,12,10,1,0,60,70,231,231,71,14,12,24,49,97,255, - 255,9,12,24,10,0,0,62,0,103,0,115,0,35,0,6, - 0,31,0,7,0,3,128,99,128,243,128,103,0,62,0,9, - 12,24,10,0,0,2,0,6,0,14,0,30,0,46,0,46, - 0,78,0,142,0,255,128,14,0,14,0,63,128,8,12,12, - 10,1,0,127,126,64,64,124,78,7,71,231,231,206,124,9, - 12,24,10,0,0,31,0,51,128,103,128,99,0,224,0,238, - 0,247,0,227,128,227,128,99,128,119,0,30,0,8,12,12, - 10,1,0,255,254,134,134,132,12,12,24,24,56,56,16,8, - 12,12,10,1,0,60,102,231,231,102,60,102,231,231,231,102, - 60,9,12,24,10,0,0,60,0,119,0,227,0,227,128,227, - 128,119,128,59,128,3,128,99,0,243,0,230,0,124,0,4, - 8,8,5,0,0,96,240,96,0,0,96,240,96,4,11,11, - 5,0,253,96,240,96,0,0,96,240,112,32,96,128,8,8, - 8,10,1,1,3,15,60,240,240,60,15,3,8,6,6,10, - 1,1,255,255,0,0,255,255,8,8,8,10,1,1,192,240, - 60,15,15,60,240,192,8,12,12,8,0,0,60,102,247,103, - 14,12,16,0,16,56,56,16,12,13,26,12,0,255,15,128, - 56,224,96,32,70,176,205,144,153,144,153,144,153,176,219,160, - 76,64,96,48,56,224,15,128,13,12,24,13,0,0,6,0, - 7,0,7,0,15,0,11,128,27,128,17,192,63,192,49,192, - 32,224,96,224,241,248,12,12,24,13,0,0,255,192,56,224, - 56,112,56,112,56,224,63,192,56,224,56,112,56,112,56,112, - 56,224,255,192,11,12,24,13,1,0,15,160,56,224,112,96, - 112,32,224,32,224,0,224,0,224,32,112,32,112,64,56,192, - 15,0,13,12,24,14,0,0,255,128,56,224,56,112,56,112, - 56,56,56,56,56,56,56,56,56,112,56,112,56,224,255,128, - 11,12,24,12,0,0,255,224,56,96,56,96,57,32,59,0, - 63,0,59,0,57,32,56,32,56,96,56,96,255,224,11,12, - 24,12,0,0,255,224,56,96,56,96,57,32,59,0,63,0, - 59,0,57,0,56,0,56,0,56,0,254,0,13,12,24,14, - 1,0,15,160,56,224,112,96,112,32,224,32,224,0,227,248, - 224,224,112,224,112,224,57,224,15,32,14,12,24,15,0,0, - 254,252,56,112,56,112,56,112,56,112,63,240,56,112,56,112, - 56,112,56,112,56,112,254,252,7,12,12,7,0,0,254,56, - 56,56,56,56,56,56,56,56,56,254,10,12,24,11,0,0, - 31,192,7,0,7,0,7,0,7,0,7,0,103,0,247,0, - 231,0,135,0,206,0,124,0,14,12,24,13,0,0,254,248, - 56,96,56,192,57,128,59,0,63,128,63,128,59,192,57,224, - 56,240,56,120,254,252,11,12,24,12,0,0,254,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,32,56,32,56,96, - 56,96,255,224,16,12,24,16,0,0,252,63,60,60,46,60, - 46,92,46,92,39,92,39,156,39,156,35,156,35,28,33,28, - 249,63,14,12,24,14,0,0,240,124,56,16,60,16,62,16, - 47,16,39,144,35,208,33,240,32,240,32,112,32,48,248,16, - 12,12,24,14,1,0,15,0,57,192,112,224,112,224,224,112, - 224,112,224,112,224,112,112,224,112,224,57,192,15,0,12,12, - 24,13,0,0,255,192,56,224,56,112,56,112,56,112,56,224, - 63,192,56,0,56,0,56,0,56,0,254,0,12,15,30,14, - 1,253,15,0,57,192,112,224,112,224,224,112,224,112,224,112, - 230,112,105,96,121,224,57,192,15,128,1,208,1,240,0,224, - 13,12,24,14,0,0,255,192,56,224,56,112,56,112,56,224, - 63,192,57,128,57,192,56,224,56,232,56,248,252,112,9,12, - 24,11,1,0,62,128,67,128,193,128,192,128,248,128,126,0, - 63,0,143,128,129,128,193,128,225,0,190,0,11,12,24,12, - 0,0,255,224,206,96,142,32,142,32,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,63,128,14,12,24,14,0,0, - 254,124,56,16,56,16,56,16,56,16,56,16,56,16,56,16, - 56,16,28,32,30,96,7,128,13,12,24,13,255,0,254,120, - 56,48,60,32,28,32,28,64,14,64,14,128,15,128,7,128, - 7,0,3,0,3,0,15,12,24,16,0,0,251,222,113,140, - 49,136,57,200,57,216,59,208,26,208,30,240,28,224,12,96, - 12,96,12,96,12,12,24,12,0,0,249,240,112,96,56,64, - 28,128,31,0,15,0,15,0,15,128,19,192,33,192,96,224, - 249,240,13,12,24,12,255,0,254,248,56,96,28,64,28,128, - 14,128,15,0,7,0,7,0,7,0,7,0,7,0,31,192, - 9,12,24,11,1,0,255,128,195,128,135,0,135,0,14,0, - 28,0,28,0,56,128,112,128,113,128,227,128,255,128,4,14, - 14,6,1,254,240,192,192,192,192,192,192,192,192,192,192,192, - 192,240,7,12,12,10,1,0,192,192,96,96,48,48,24,24, - 12,12,6,6,4,14,14,7,1,254,240,48,48,48,48,48, - 48,48,48,48,48,48,48,240,8,7,7,10,1,5,24,24, - 60,102,102,195,195,8,2,2,8,0,254,255,255,4,3,3, - 6,0,9,192,224,48,9,8,16,10,0,0,126,0,231,0, - 199,0,31,0,103,0,231,0,239,0,119,128,11,12,24,11, - 255,0,248,0,56,0,56,0,56,0,59,128,61,192,56,224, - 56,224,56,224,56,224,61,192,43,128,8,8,8,9,0,0, - 62,115,231,224,224,227,118,60,11,12,24,11,0,0,7,128, - 3,128,3,128,3,128,59,128,119,128,227,128,227,128,227,128, - 227,128,119,128,58,224,9,8,16,10,0,0,62,0,119,0, - 227,128,255,128,224,0,225,128,115,0,62,0,9,12,24,7, - 255,0,15,0,27,128,59,0,56,0,254,0,56,0,56,0, - 56,0,56,0,56,0,56,0,254,0,9,12,24,10,0,253, - 1,128,63,128,119,0,227,128,227,128,247,0,124,0,96,0, - 127,0,255,128,195,128,255,0,11,12,24,11,255,0,240,0, - 112,0,112,0,112,0,119,128,121,192,121,192,113,192,113,192, - 113,192,113,192,251,224,5,12,12,6,0,0,96,240,96,0, - 240,112,112,112,112,112,112,248,6,15,15,6,254,253,24,60, - 24,0,124,28,28,28,28,28,28,28,220,216,112,11,12,24, - 11,0,0,240,0,112,0,112,0,112,0,119,192,115,128,119, - 0,126,0,127,0,115,128,113,192,251,224,5,12,12,6,0, - 0,240,112,112,112,112,112,112,112,112,112,112,248,15,8,16, - 16,0,0,247,56,123,220,115,156,115,156,115,156,115,156,115, - 156,251,190,11,8,16,11,255,0,247,128,121,192,113,192,113, - 192,113,192,113,192,113,192,251,224,10,8,16,11,0,0,30, - 0,115,128,225,192,225,192,225,192,225,192,115,128,30,0,10, - 11,22,11,255,253,247,0,123,128,113,192,113,192,113,192,113, - 192,123,128,119,0,112,0,112,0,248,0,10,11,22,10,255, - 253,62,128,115,128,227,128,227,128,227,128,227,128,115,128,63, - 128,3,128,3,128,7,192,9,8,16,9,0,0,247,0,123, - 128,115,0,112,0,112,0,112,0,112,0,248,0,7,8,8, - 8,0,0,122,198,226,252,126,142,198,188,6,11,11,7,0, - 0,16,16,48,252,112,112,112,112,116,124,56,11,8,16,11, - 255,0,243,192,113,192,113,192,113,192,113,192,113,192,123,192, - 62,224,10,8,16,10,0,0,251,192,113,128,115,0,59,0, - 58,0,30,0,28,0,12,0,15,8,16,15,0,0,251,222, - 113,140,57,200,59,216,30,240,30,240,12,96,12,96,9,8, - 16,10,0,0,251,128,113,0,62,0,28,0,28,0,62,0, - 71,0,239,128,10,11,22,10,255,253,251,192,113,128,57,128, - 57,0,31,0,14,0,14,0,6,0,52,0,116,0,56,0, - 7,8,8,9,0,0,254,204,156,56,48,114,230,254,4,14, - 14,6,1,254,48,96,96,96,96,96,192,96,96,96,96,96, - 96,48,2,12,12,10,4,0,192,192,192,192,192,192,192,192, - 192,192,192,192,4,14,14,6,0,254,192,96,96,96,96,96, - 48,96,96,96,96,96,96,192,8,3,3,10,1,3,114,255, - 78,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=21 dy= 0 ascent=19 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14[5558] U8G_FONT_SECTION("u8g_font_ncenB14") = { - 0,24,32,253,248,14,3,71,7,51,32,255,252,19,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,5,0, - 1,4,14,14,7,1,252,96,240,240,96,0,96,96,96,240, - 240,240,240,240,96,9,13,26,11,1,254,0,128,0,128,31, - 0,115,128,227,128,228,0,228,0,232,0,232,128,113,128,30, - 0,32,0,32,0,10,14,28,11,0,0,31,0,49,128,115, - 128,115,128,112,0,112,0,56,0,255,128,28,0,28,0,24, - 64,112,192,159,192,239,128,9,9,18,10,0,2,221,128,255, - 128,99,0,193,128,193,128,193,128,99,0,255,128,221,128,14, - 14,28,15,0,0,252,60,120,24,56,16,28,48,30,32,14, - 96,7,192,31,240,3,128,31,240,3,128,3,128,3,128,15, - 224,2,14,14,11,4,0,192,192,192,192,192,192,0,0,192, - 192,192,192,192,192,7,16,16,8,0,254,120,204,140,192,112, - 124,158,134,194,242,124,28,4,196,204,120,6,2,2,10,2, - 11,204,204,14,14,28,15,0,0,7,128,24,96,32,16,71, - 200,76,200,152,68,152,4,152,4,152,4,76,72,71,136,32, - 16,24,96,7,128,7,8,8,8,0,6,120,204,60,204,220, - 110,0,254,8,5,5,9,0,3,51,102,204,102,51,9,6, - 12,10,0,2,255,128,255,128,1,128,1,128,1,128,1,128, - 5,3,3,6,0,3,248,248,248,14,14,28,15,0,0,7, - 128,24,96,32,16,95,136,76,200,140,196,140,196,143,132,141, - 132,76,200,94,232,32,16,24,96,7,128,6,2,2,8,1, - 11,252,252,6,6,6,7,0,8,120,204,132,132,204,120,10, - 11,22,11,0,0,12,0,12,0,12,0,255,192,255,192,12, - 0,12,0,12,0,0,0,255,192,255,192,6,8,8,6,0, - 6,120,204,204,24,48,96,196,252,6,8,8,6,0,6,120, - 204,12,56,12,204,204,120,5,4,4,7,1,11,24,56,112, - 192,12,13,26,13,0,252,249,240,112,224,112,224,112,224,112, - 224,112,224,112,224,121,224,110,240,96,0,240,0,240,0,96, - 0,13,14,28,14,0,0,63,248,126,112,254,112,254,112,254, - 112,254,112,126,112,62,112,14,112,14,112,14,112,14,112,14, - 112,31,248,4,4,4,5,0,3,96,240,240,96,4,4,4, - 6,1,252,64,112,48,224,6,8,8,6,0,6,48,240,48, - 48,48,48,48,252,6,8,8,7,0,6,120,204,204,204,204, - 120,0,252,8,5,5,9,0,3,204,102,51,102,204,14,14, - 28,15,0,0,48,96,240,96,48,192,48,192,49,128,49,128, - 51,24,255,56,6,120,6,216,13,152,13,252,24,24,24,60, - 14,14,28,15,0,0,48,96,240,96,48,192,48,192,49,128, - 49,128,51,120,255,204,6,204,6,24,12,48,12,96,24,196, - 24,252,14,14,28,15,0,0,120,96,204,96,12,192,56,192, - 13,128,205,128,207,24,123,56,6,120,6,216,13,152,13,252, - 24,24,24,60,9,14,28,10,0,252,12,0,30,0,30,0, - 12,0,0,0,12,0,24,0,48,0,96,0,227,0,227,128, - 227,128,243,0,124,0,14,19,38,14,255,0,12,0,14,0, - 7,0,1,128,0,0,1,0,1,128,3,128,3,192,5,192, - 4,192,8,224,8,224,16,112,31,240,32,112,32,56,96,56, - 240,124,14,19,38,14,255,0,0,96,0,224,1,192,3,0, - 0,0,1,0,1,128,3,128,3,192,5,192,4,192,8,224, - 8,224,16,112,31,240,32,112,32,56,96,56,240,124,14,19, - 38,14,255,0,1,128,3,192,6,96,12,48,0,0,1,0, - 1,128,3,128,3,192,5,192,4,192,8,224,8,224,16,112, - 31,240,32,112,32,56,96,56,240,124,14,18,36,14,255,0, - 3,144,7,224,9,192,0,0,1,0,1,128,3,128,3,192, - 5,192,4,192,8,224,8,224,16,112,31,240,32,112,32,56, - 96,56,240,124,14,17,34,14,255,0,6,96,6,96,0,0, - 1,0,1,128,3,128,3,192,5,192,4,192,8,224,8,224, - 16,112,31,240,32,112,32,56,96,56,240,124,14,19,38,14, - 255,0,1,128,2,64,2,64,1,128,0,0,1,0,1,128, - 3,128,3,192,5,192,4,192,8,224,8,224,16,112,31,240, - 32,112,32,56,96,56,240,124,20,14,42,21,0,0,3,255, - 240,0,248,112,0,184,48,1,56,144,1,56,144,2,57,128, - 4,63,128,4,57,128,15,248,128,16,56,144,16,56,16,32, - 56,48,96,56,112,240,255,240,12,18,36,14,0,252,15,144, - 60,112,112,48,112,48,224,16,224,16,224,0,224,0,224,0, - 224,16,240,16,112,32,60,96,15,128,2,0,3,128,1,128, - 7,0,11,19,38,13,0,0,48,0,56,0,28,0,6,0, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,11,19, - 38,13,0,0,1,128,3,128,7,0,12,0,0,0,255,224, - 112,224,112,96,113,32,113,32,115,0,127,0,115,0,113,0, - 113,32,112,32,112,96,112,224,255,224,11,19,38,13,0,0, - 6,0,15,0,25,128,48,192,0,0,255,224,112,224,112,96, - 113,32,113,32,115,0,127,0,115,0,113,0,113,32,112,32, - 112,96,112,224,255,224,11,17,34,13,0,0,25,128,25,128, - 0,0,255,224,112,224,112,96,113,32,113,32,115,0,127,0, - 115,0,113,0,113,32,112,32,112,96,112,224,255,224,6,19, - 19,9,0,0,192,224,112,24,0,124,56,56,56,56,56,56, - 56,56,56,56,56,56,124,6,19,19,9,1,0,12,28,56, - 96,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 8,19,19,9,0,0,24,60,102,195,0,124,56,56,56,56, - 56,56,56,56,56,56,56,56,124,6,17,17,9,1,0,204, - 204,0,248,112,112,112,112,112,112,112,112,112,112,112,112,248, - 14,14,28,16,0,0,255,192,112,240,112,56,112,56,112,28, - 112,28,252,28,112,28,112,28,112,28,112,56,112,56,112,240, - 255,192,14,18,36,16,0,0,7,32,15,192,19,128,0,0, - 240,124,120,56,60,16,60,16,62,16,47,16,39,144,35,208, - 33,240,32,240,32,240,32,112,112,48,248,16,14,19,38,16, - 0,0,12,0,14,0,7,0,1,128,0,0,15,192,60,240, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,112,56,60,240,15,192,14,19,38,16,0,0,0,192, - 1,192,3,128,6,0,0,0,15,192,60,240,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 60,240,15,192,14,19,38,16,0,0,3,0,7,128,12,192, - 24,96,0,0,15,192,60,240,112,56,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,112,56,60,240,15,192, - 14,18,36,16,0,0,7,32,15,192,19,128,0,0,15,192, - 60,240,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,60,240,15,192,14,17,34,16,0,0, - 12,192,12,192,0,0,15,192,60,240,112,56,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,112,56,60,240, - 15,192,10,10,20,11,0,0,64,128,225,192,115,128,63,0, - 30,0,30,0,63,0,115,128,225,192,64,128,14,15,30,16, - 0,0,0,8,15,208,60,240,112,56,112,88,224,156,225,28, - 225,28,226,28,228,28,232,28,112,56,48,56,60,240,79,192, - 14,19,38,16,0,0,12,0,14,0,7,0,1,128,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,14,19,38,16, - 0,0,0,96,0,224,1,192,3,0,0,0,248,124,112,56, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,56,96,31,192,14,19,38,16,0,0,3,0, - 7,128,12,192,24,96,0,0,248,124,112,56,112,16,112,16, - 112,16,112,16,112,16,112,16,112,16,112,16,112,16,112,16, - 56,96,31,192,14,17,34,16,0,0,12,192,12,192,0,0, - 248,124,112,56,112,16,112,16,112,16,112,16,112,16,112,16, - 112,16,112,16,112,16,112,16,56,96,31,192,13,19,38,15, - 0,0,0,96,0,224,1,192,3,0,0,0,252,120,120,48, - 56,32,60,96,28,64,30,128,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,31,192,12,14,28,14,1,0,248,0, - 112,0,112,0,127,192,113,224,112,240,112,240,112,240,112,240, - 113,224,127,128,112,0,112,0,248,0,11,14,28,12,0,0, - 30,0,51,128,113,192,113,192,113,192,113,128,119,0,113,192, - 112,224,112,224,112,224,112,224,113,192,247,0,10,14,28,11, - 0,0,48,0,56,0,28,0,6,0,0,0,127,0,227,128, - 195,128,7,128,59,128,227,128,227,128,231,128,121,192,10,14, - 28,11,0,0,3,0,7,0,14,0,24,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,30,0,51,0,97,128,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,13,26,11,0,0,24,128,63,0,70,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,10,12,24,11,0,0,51,0,51,0,0,0,127,0, - 227,128,195,128,7,128,59,128,227,128,227,128,231,128,121,192, - 10,14,28,11,0,0,12,0,18,0,18,0,12,0,0,0, - 127,0,227,128,195,128,7,128,59,128,227,128,227,128,231,128, - 121,192,16,9,18,17,0,0,63,120,99,206,227,135,7,135, - 59,255,227,128,227,129,231,195,120,252,9,13,26,10,0,252, - 31,0,115,128,225,128,224,0,224,0,224,0,224,128,113,128, - 30,0,8,0,14,0,6,0,28,0,10,14,28,11,0,0, - 48,0,56,0,28,0,6,0,0,0,30,0,115,128,225,192, - 225,192,255,192,224,0,224,64,112,192,31,0,10,14,28,11, - 0,0,3,0,7,0,14,0,24,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,10,14, - 28,11,0,0,12,0,30,0,51,0,97,128,0,0,30,0, - 115,128,225,192,225,192,255,192,224,0,224,64,112,192,31,0, - 10,12,24,11,0,0,51,0,51,0,0,0,30,0,115,128, - 225,192,225,192,255,192,224,0,224,64,112,192,31,0,6,14, - 14,6,255,0,192,224,112,24,0,120,56,56,56,56,56,56, - 56,124,6,14,14,6,0,0,12,28,56,96,0,240,112,112, - 112,112,112,112,112,248,8,14,14,6,255,0,24,60,102,195, - 0,120,56,56,56,56,56,56,56,124,5,12,12,6,0,0, - 216,216,0,240,112,112,112,112,112,112,112,248,11,14,28,12, - 0,0,192,0,51,0,28,0,102,0,3,0,31,128,113,192, - 224,224,224,224,224,224,224,224,224,224,113,192,31,0,12,13, - 26,13,0,0,12,64,31,128,35,0,0,0,247,192,121,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,11,14, - 28,12,0,0,48,0,56,0,28,0,6,0,0,0,31,0, - 113,192,224,224,224,224,224,224,224,224,224,224,113,192,31,0, - 11,14,28,12,0,0,1,128,3,128,7,0,12,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,11,14,28,12,0,0,6,0,15,0,25,128,48,192, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,13,26,12,0,0,24,128,63,0,70,0, - 0,0,31,0,113,192,224,224,224,224,224,224,224,224,224,224, - 113,192,31,0,11,12,24,12,0,0,51,0,51,0,0,0, - 31,0,113,192,224,224,224,224,224,224,224,224,224,224,113,192, - 31,0,10,10,20,11,0,0,12,0,12,0,0,0,0,0, - 255,192,255,192,0,0,0,0,12,0,12,0,10,11,22,11, - 0,255,1,0,31,0,115,128,227,192,229,192,229,192,233,192, - 233,192,115,128,62,0,32,0,12,14,28,13,0,0,24,0, - 28,0,14,0,3,0,0,0,249,240,112,224,112,224,112,224, - 112,224,112,224,112,224,121,224,62,240,12,14,28,13,0,0, - 3,0,7,0,14,0,24,0,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,12,14,28,13, - 0,0,6,0,15,0,25,128,48,192,0,0,249,240,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,12,12, - 24,13,0,0,25,128,25,128,0,0,249,240,112,224,112,224, - 112,224,112,224,112,224,112,224,121,224,62,240,11,18,36,12, - 0,252,1,128,3,128,7,0,12,0,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,12,18,36,12,255,252,240,0,112,0, - 112,0,112,0,112,0,119,128,120,224,112,112,112,112,112,112, - 112,112,112,112,120,224,119,128,112,0,112,0,112,0,248,0, - 11,16,32,12,0,252,25,128,25,128,0,0,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--20-140-100-100-P-113-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=20 dy= 0 ascent=16 len=42 - Font Bounding box w=24 h=32 x=-3 y=-8 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB14r[2603] U8G_FONT_SECTION("u8g_font_ncenB14r") = { - 0,24,32,253,248,14,3,71,7,51,32,127,252,16,252,14, - 252,0,0,0,5,0,1,4,14,14,6,1,0,96,240,240, - 240,240,240,96,96,96,0,96,240,240,96,5,5,5,8,1, - 9,216,216,216,216,216,11,12,24,12,0,1,13,128,13,128, - 13,128,127,224,127,224,27,0,27,0,255,192,255,192,54,0, - 54,0,54,0,9,18,36,11,1,254,8,0,8,0,62,0, - 107,128,203,128,201,128,232,0,252,0,255,0,127,128,31,128, - 11,128,201,128,233,128,235,0,62,0,8,0,8,0,14,15, - 30,15,0,255,56,192,103,64,196,192,196,128,197,128,201,0, - 115,0,2,56,6,100,4,196,12,196,8,196,24,200,16,112, - 16,0,16,14,28,17,1,0,7,128,12,192,24,192,24,192, - 29,128,31,0,14,62,63,24,119,144,227,224,225,224,224,241, - 241,254,127,28,2,5,5,5,1,9,192,192,192,192,192,5, - 16,16,6,0,254,24,48,112,96,224,192,192,192,192,192,192, - 224,96,112,48,24,5,16,16,6,0,254,192,96,112,48,56, - 24,24,24,24,24,24,56,48,112,96,192,7,7,7,8,0, - 7,56,146,214,56,214,146,56,10,10,20,11,0,0,12,0, - 12,0,12,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,4,7,7,5,0,253,96,240,240,112,32,64,128,5, - 3,3,6,0,3,248,248,248,4,4,4,5,0,0,96,240, - 240,96,6,14,14,7,0,0,12,12,8,24,24,16,48,48, - 32,96,96,64,192,192,9,14,28,11,1,0,28,0,119,0, - 99,0,227,128,227,128,227,128,227,128,227,128,227,128,227,128, - 227,128,99,0,119,0,28,0,7,14,14,11,2,0,24,56, - 248,56,56,56,56,56,56,56,56,56,56,254,9,14,28,11, - 1,0,30,0,103,0,227,128,227,128,99,128,3,128,7,0, - 7,0,14,0,24,0,48,0,96,128,255,128,255,128,9,14, - 28,11,1,0,30,0,103,0,227,128,227,128,99,128,3,0, - 28,0,3,0,3,128,99,128,227,128,227,128,103,0,62,0, - 9,14,28,11,1,0,1,0,3,0,7,0,15,0,15,0, - 23,0,39,0,71,0,71,0,135,0,255,128,7,0,7,0, - 15,128,9,14,28,11,1,0,127,128,127,0,64,0,64,0, - 64,0,126,0,71,0,3,128,3,128,99,128,227,128,227,128, - 103,0,62,0,9,14,28,11,1,0,31,0,115,128,99,128, - 227,0,224,0,238,0,247,0,227,128,227,128,227,128,227,128, - 99,128,115,0,28,0,9,14,28,11,1,0,255,128,255,128, - 129,128,131,0,6,0,6,0,12,0,12,0,28,0,28,0, - 56,0,56,0,56,0,56,0,9,14,28,11,1,0,28,0, - 99,0,193,128,193,128,225,128,251,0,126,0,63,0,79,128, - 195,128,193,128,193,128,227,0,60,0,9,14,28,11,1,0, - 28,0,103,0,227,0,227,128,227,128,227,128,227,128,119,128, - 59,128,3,128,99,128,227,0,231,0,124,0,4,9,9,6, - 1,0,96,240,240,96,0,96,240,240,96,4,12,12,6,1, - 253,96,240,240,96,0,96,240,240,112,32,64,128,10,10,20, - 11,0,0,0,192,3,192,15,0,60,0,240,0,240,0,60, - 0,15,0,3,192,0,192,9,6,12,11,1,2,255,128,255, - 128,0,0,0,0,255,128,255,128,10,10,20,11,0,0,192, - 0,240,0,60,0,15,0,3,192,3,192,15,0,60,0,240, - 0,192,0,9,14,28,10,0,0,31,0,103,128,227,128,227, - 128,99,128,3,0,6,0,12,0,24,0,0,0,24,0,60, - 0,60,0,24,0,15,14,28,16,0,0,7,240,28,12,48, - 4,99,230,102,102,204,102,204,102,216,204,216,204,217,216,206, - 240,96,8,112,48,31,224,14,14,28,14,255,0,1,0,1, - 128,3,128,3,192,5,192,4,192,8,224,8,224,16,112,31, - 240,32,112,32,56,96,56,240,124,12,14,28,14,0,0,255, - 192,113,224,112,224,112,224,112,224,113,192,127,128,112,224,112, - 112,112,112,112,112,112,112,112,224,255,128,12,14,28,14,0, - 0,15,144,60,240,112,48,112,48,224,16,224,16,224,0,224, - 0,224,0,224,16,112,16,112,32,60,96,15,128,14,14,28, - 16,0,0,255,192,112,240,112,56,112,56,112,28,112,28,112, - 28,112,28,112,28,112,28,112,56,112,56,112,240,255,192,11, - 14,28,13,0,0,255,224,112,224,112,96,113,32,113,32,115, - 0,127,0,115,0,113,0,113,32,112,32,112,96,112,224,255, - 224,11,14,28,13,0,0,255,224,112,224,112,96,113,32,113, - 32,115,0,127,0,115,0,113,0,113,0,112,0,112,0,112, - 0,252,0,13,14,28,15,0,0,15,144,60,240,112,48,112, - 48,224,16,224,16,224,0,224,0,224,248,224,112,112,112,112, - 112,60,240,15,144,14,14,28,16,0,0,248,124,112,56,112, - 56,112,56,112,56,112,56,127,248,112,56,112,56,112,56,112, - 56,112,56,112,56,248,124,5,14,14,9,1,0,248,112,112, - 112,112,112,112,112,112,112,112,112,112,248,10,14,28,12,255, - 0,7,192,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,99,128,243,128,243,128,195,128,103,0,60,0,14,14,28, - 16,0,0,248,248,112,96,112,192,113,128,115,0,118,0,126, - 0,127,0,119,128,115,192,113,224,112,240,112,120,248,252,10, - 14,28,12,0,0,248,0,112,0,112,0,112,0,112,0,112, - 0,112,0,112,0,112,0,112,64,112,64,112,192,113,192,255, - 192,17,14,42,19,0,0,252,15,128,60,15,0,62,15,0, - 46,23,0,39,23,0,39,23,0,39,39,0,35,167,0,35, - 167,0,35,199,0,33,199,0,33,199,0,112,135,0,248,143, - 128,14,14,28,16,0,0,240,124,120,56,60,16,60,16,62, - 16,47,16,39,144,35,208,33,240,32,240,32,240,32,112,112, - 48,248,16,14,14,28,16,0,0,15,192,60,240,112,56,112, - 56,224,28,224,28,224,28,224,28,224,28,224,28,112,56,112, - 56,60,240,15,192,12,14,28,14,0,0,255,128,113,224,112, - 240,112,240,112,240,112,240,113,224,127,128,112,0,112,0,112, - 0,112,0,112,0,248,0,14,18,36,16,0,252,15,192,60, - 240,112,56,112,56,224,28,224,28,224,28,224,28,224,28,239, - 28,115,152,113,184,61,240,15,192,0,192,0,232,0,248,0, - 112,13,14,28,16,0,0,255,224,112,240,112,112,112,112,112, - 112,112,224,127,128,113,192,113,192,113,224,112,224,112,224,112, - 232,248,112,10,14,28,12,0,0,30,128,115,128,225,128,224, - 128,240,0,252,0,127,0,31,128,7,192,131,192,129,192,193, - 192,243,128,159,0,11,14,28,13,0,0,255,224,206,96,142, - 32,142,32,142,32,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,31,0,14,14,28,16,0,0,248,124,112, - 56,112,16,112,16,112,16,112,16,112,16,112,16,112,16,112, - 16,112,16,112,16,56,96,15,192,15,14,28,14,255,0,252, - 62,120,28,56,8,60,16,28,16,28,16,14,32,14,32,7, - 64,7,64,3,128,3,128,1,0,1,0,20,14,42,19,255, - 0,253,249,240,120,240,224,56,112,64,60,120,128,28,120,128, - 28,120,128,30,189,0,14,157,0,14,157,0,15,30,0,7, - 14,0,7,14,0,2,4,0,2,4,0,15,14,28,17,0, - 0,126,124,60,56,30,48,14,96,15,192,7,128,3,192,7, - 192,7,224,12,240,24,112,56,120,112,60,248,126,13,14,28, - 15,0,0,252,120,120,48,56,32,60,96,28,64,30,128,15, - 128,7,0,7,0,7,0,7,0,7,0,7,0,31,192,12, - 14,28,13,0,0,255,240,224,112,192,224,129,224,131,192,7, - 128,7,0,15,0,30,0,60,16,120,16,112,48,224,112,255, - 240,4,16,16,6,1,254,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,8,14,14,9,0,0,192,192,96, - 96,48,48,24,24,12,12,6,6,3,3,4,16,16,6,0, - 254,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 240,8,8,8,9,0,6,24,24,60,60,102,102,195,195,9, - 2,4,9,0,253,255,128,255,128,5,4,4,7,1,10,192, - 224,112,24,10,9,18,11,0,0,127,0,227,128,195,128,7, - 128,59,128,227,128,227,128,231,128,121,192,12,14,28,12,255, - 0,240,0,112,0,112,0,112,0,112,0,119,128,120,224,112, - 112,112,112,112,112,112,112,112,112,120,224,111,128,9,9,18, - 10,0,0,31,0,115,128,225,128,224,0,224,0,224,0,224, - 128,113,128,30,0,12,14,28,13,0,0,1,224,0,224,0, - 224,0,224,0,224,30,224,113,224,224,224,224,224,224,224,224, - 224,224,224,113,224,30,240,10,9,18,11,0,0,30,0,115, - 128,225,192,225,192,255,192,224,0,224,64,112,192,31,0,8, - 14,14,7,0,0,30,55,119,112,112,252,112,112,112,112,112, - 112,112,248,11,15,30,11,0,252,0,96,0,224,63,0,115, - 128,97,128,97,128,115,128,63,0,96,0,127,128,63,192,193, - 192,192,192,225,128,127,0,12,14,28,13,0,0,240,0,112, - 0,112,0,112,0,112,0,119,192,121,224,112,224,112,224,112, - 224,112,224,112,224,112,224,249,240,5,14,14,6,0,0,112, - 112,112,0,0,240,112,112,112,112,112,112,112,248,7,18,18, - 6,253,252,14,14,14,0,0,30,14,14,14,14,14,14,14, - 14,14,238,236,120,12,14,28,13,0,0,240,0,112,0,112, - 0,112,0,112,0,115,224,113,128,114,0,118,0,127,0,119, - 128,115,192,113,224,251,240,5,14,14,6,0,0,240,112,112, - 112,112,112,112,112,112,112,112,112,112,248,19,9,27,20,0, - 0,247,223,128,121,243,192,112,225,192,112,225,192,112,225,192, - 112,225,192,112,225,192,112,225,192,249,243,224,12,9,18,13, - 0,0,247,192,121,224,112,224,112,224,112,224,112,224,112,224, - 112,224,249,240,11,9,18,12,0,0,31,0,113,192,224,224, - 224,224,224,224,224,224,224,224,113,192,31,0,12,13,26,12, - 255,252,231,128,120,224,112,112,112,112,112,112,112,112,112,112, - 120,224,119,128,112,0,112,0,112,0,248,0,12,13,26,12, - 0,252,30,96,113,224,224,224,224,224,224,224,224,224,224,224, - 113,224,30,224,0,224,0,224,0,224,1,240,8,9,9,9, - 0,0,246,123,115,112,112,112,112,112,248,9,9,18,10,0, - 0,61,0,99,0,225,0,252,0,127,0,15,128,131,128,195, - 0,190,0,7,13,13,8,0,0,16,16,48,112,252,112,112, - 112,112,112,114,114,60,12,9,18,13,0,0,249,224,112,224, - 112,224,112,224,112,224,112,224,112,224,121,224,62,240,10,9, - 18,9,255,0,249,192,112,128,112,128,57,0,57,0,30,0, - 30,0,12,0,12,0,16,9,18,15,255,0,251,231,113,194, - 113,194,57,228,57,228,30,120,30,120,12,48,12,48,11,9, - 18,12,0,0,253,224,120,192,61,128,31,0,14,0,31,0, - 55,128,99,192,247,224,11,13,26,12,0,252,248,224,112,64, - 112,64,56,128,56,128,29,0,29,0,14,0,14,0,4,0, - 196,0,232,0,112,0,9,9,18,10,0,0,255,128,199,128, - 143,0,30,0,60,0,120,128,240,128,225,128,255,128,5,16, - 16,6,0,254,24,48,112,112,112,112,96,192,96,112,112,112, - 112,112,48,24,2,14,14,11,4,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,5,16,16,6,0,254,192,96, - 112,112,112,112,48,24,48,112,112,112,112,112,96,192,10,3, - 6,12,1,4,57,192,127,128,231,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 6 y=15 dx=26 dy= 0 ascent=24 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18[8114] U8G_FONT_SECTION("u8g_font_ncenB18") = { - 0,33,40,252,246,18,4,68,10,106,32,255,251,24,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,7,0,1,5,18, - 18,7,1,251,112,248,248,112,0,0,32,32,112,112,112,112, - 112,112,248,248,248,112,12,15,30,14,1,255,0,32,0,64, - 15,192,56,240,121,240,113,96,242,0,242,0,244,0,244,0, - 120,16,120,16,60,96,47,192,64,0,14,18,36,15,0,0, - 3,224,15,48,14,120,30,120,30,48,30,0,30,0,30,0, - 127,224,15,0,15,0,15,0,7,0,7,4,126,12,207,252, - 207,248,113,240,12,12,24,14,1,2,207,48,255,240,127,224, - 112,224,224,112,224,112,224,112,224,112,112,224,127,224,255,240, - 207,48,19,18,54,19,0,0,255,143,224,62,3,0,62,3, - 0,31,6,0,31,6,0,15,140,0,15,140,0,7,216,0, - 7,248,0,31,254,0,1,224,0,1,224,0,31,254,0,1, - 224,0,1,224,0,1,224,0,3,240,0,15,252,0,3,18, - 18,14,6,0,224,224,224,224,224,224,224,0,0,0,224,224, - 224,224,224,224,224,224,11,20,40,13,1,254,31,0,35,128, - 99,128,99,0,120,0,62,0,63,128,71,192,193,224,224,224, - 240,96,124,96,63,64,15,128,3,128,1,128,48,128,112,128, - 113,0,62,0,10,4,8,12,1,14,97,128,243,192,243,192, - 97,128,19,18,54,21,1,0,3,248,0,15,254,0,60,7, - 128,48,1,128,97,248,192,103,24,192,198,8,96,206,0,96, - 206,0,96,206,0,96,206,0,96,199,4,96,103,136,192,97, - 240,192,48,1,128,60,7,128,15,254,0,3,248,0,8,10, - 10,10,1,8,120,206,6,126,198,206,119,0,0,255,11,7, - 14,13,1,3,28,224,57,192,115,128,231,0,115,128,57,192, - 28,224,11,6,12,13,1,4,255,224,255,224,0,96,0,96, - 0,96,0,96,6,3,3,8,1,5,252,252,252,19,18,54, - 21,1,0,3,248,0,15,254,0,60,7,128,48,1,128,103, - 240,192,99,24,192,195,24,96,195,24,96,195,240,96,195,96, - 96,195,48,96,195,48,96,99,24,192,103,156,192,48,1,128, - 60,7,128,15,254,0,3,248,0,8,2,2,10,1,15,255, - 255,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,1,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,206,198,198,14,12,24,48,98,254,254,7,11,11,8,0, - 7,124,206,198,6,12,60,14,6,198,206,124,5,5,5,7, - 1,14,24,56,112,96,192,17,17,51,18,0,251,254,63,128, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,63,222,0,39,159, - 128,48,0,0,48,0,0,120,0,0,120,0,0,48,0,0, - 16,18,36,18,1,0,31,255,127,156,127,156,255,156,255,156, - 255,156,127,156,127,156,31,156,3,156,3,156,3,156,3,156, - 3,156,3,156,3,156,3,156,15,255,3,4,4,7,2,5, - 224,224,224,224,5,6,6,7,1,251,16,32,112,56,24,240, - 6,11,11,8,0,7,48,240,48,48,48,48,48,48,48,48, - 252,9,10,20,11,1,8,28,0,99,0,227,128,227,128,227, - 128,99,0,28,0,0,0,0,0,255,128,11,7,14,13,1, - 3,231,0,115,128,57,192,28,224,57,192,115,128,231,0,18, - 18,54,21,1,0,48,6,0,240,6,0,48,12,0,48,24, - 0,48,24,0,48,48,0,48,96,0,48,99,0,48,199,0, - 49,135,0,253,143,0,3,27,0,6,19,0,6,51,0,12, - 99,0,24,127,192,24,3,0,48,7,128,18,18,54,21,1, - 0,48,6,0,240,6,0,48,12,0,48,24,0,48,24,0, - 48,48,0,48,96,0,48,111,128,48,201,192,49,152,192,253, - 152,192,3,1,192,6,1,128,6,3,0,12,6,0,24,12, - 64,24,31,192,48,31,192,19,18,54,21,0,0,124,3,0, - 206,3,0,198,6,0,6,12,0,12,12,0,56,24,0,12, - 48,0,6,49,128,198,99,128,206,195,128,124,197,128,1,141, - 128,3,25,128,3,25,128,6,49,128,12,63,224,12,1,128, - 24,3,192,11,18,36,13,1,251,7,0,15,128,15,128,7, - 0,0,0,0,0,3,0,3,0,6,0,28,0,56,0,112, - 0,240,0,240,192,241,224,241,224,120,192,31,128,19,24,72, - 19,0,0,6,0,0,7,0,0,3,128,0,1,192,0,0, - 96,0,0,0,0,0,96,0,0,96,0,0,240,0,0,240, - 0,1,120,0,1,120,0,3,60,0,2,60,0,2,60,0, - 6,30,0,4,30,0,7,254,0,12,15,0,8,15,0,8, - 15,0,24,7,128,56,7,128,254,31,224,19,24,72,19,0, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,240,0,0,240,0,1, - 120,0,1,120,0,3,60,0,2,60,0,2,60,0,6,30, - 0,4,30,0,7,254,0,12,15,0,8,15,0,8,15,0, - 24,7,128,56,7,128,254,31,224,19,23,69,19,0,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,0,96, - 0,0,96,0,0,240,0,0,240,0,1,120,0,1,120,0, - 3,60,0,2,60,0,2,60,0,6,30,0,4,30,0,7, - 254,0,12,15,0,8,15,0,8,15,0,24,7,128,56,7, - 128,254,31,224,19,22,66,19,0,0,0,226,0,1,252,0, - 2,56,0,0,0,0,0,96,0,0,96,0,0,240,0,0, - 240,0,1,120,0,1,120,0,3,60,0,2,60,0,2,60, - 0,6,30,0,4,30,0,7,254,0,12,15,0,8,15,0, - 8,15,0,24,7,128,56,7,128,254,31,224,19,23,69,19, - 0,0,3,156,0,3,156,0,3,156,0,0,0,0,0,0, - 0,0,96,0,0,96,0,0,240,0,0,240,0,1,120,0, - 1,120,0,3,60,0,2,60,0,2,60,0,6,30,0,4, - 30,0,7,254,0,12,15,0,8,15,0,8,15,0,24,7, - 128,56,7,128,254,31,224,19,24,72,19,0,0,0,240,0, - 1,152,0,1,8,0,1,152,0,0,240,0,0,0,0,0, - 96,0,0,96,0,0,240,0,0,240,0,1,120,0,1,120, - 0,3,60,0,2,60,0,2,60,0,6,30,0,4,30,0, - 7,254,0,12,15,0,8,15,0,8,15,0,24,7,128,56, - 7,128,254,31,224,25,18,72,26,0,0,1,255,255,128,0, - 111,3,128,0,111,1,128,0,207,0,128,0,207,0,128,1, - 143,8,128,1,143,8,0,3,15,24,0,3,15,248,0,6, - 15,24,0,7,255,8,0,12,15,8,0,12,15,0,128,24, - 15,0,128,24,15,0,128,48,15,1,128,112,15,3,128,252, - 63,255,128,17,23,69,19,1,251,3,249,128,15,15,128,60, - 3,128,60,1,128,120,1,128,120,0,128,248,0,128,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,120,0,128, - 120,0,128,60,1,0,60,1,0,15,6,0,3,248,0,0, - 128,0,1,192,0,0,224,0,0,96,0,3,192,0,15,24, - 48,18,1,0,12,0,14,0,7,0,1,128,0,192,0,0, - 255,254,60,30,60,6,60,2,60,2,60,34,60,32,60,96, - 63,224,60,96,60,32,60,32,60,2,60,2,60,2,60,6, - 60,30,255,254,15,24,48,18,1,0,0,24,0,56,0,112, - 0,192,1,128,0,0,255,254,60,30,60,6,60,2,60,2, - 60,34,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,2,60,6,60,30,255,254,15,23,46,18,1,0, - 1,128,3,192,6,96,12,48,0,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,23, - 46,18,1,0,14,112,14,112,14,112,0,0,0,0,255,254, - 60,30,60,6,60,2,60,2,60,34,60,32,60,96,63,224, - 60,96,60,32,60,32,60,2,60,2,60,2,60,6,60,30, - 255,254,8,24,24,10,1,0,192,224,112,24,12,0,255,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 8,24,24,10,1,0,3,7,14,24,48,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,255,8,23, - 23,10,1,0,24,60,102,195,0,255,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,8,23,23,10,1, - 0,231,231,231,0,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,255,135,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,20,22,66,22,1,0,0,226,0,1,252,0, - 2,56,0,0,0,0,252,7,240,62,1,192,31,0,128,31, - 128,128,31,192,128,23,224,128,19,240,128,17,240,128,16,248, - 128,16,124,128,16,126,128,16,63,128,16,31,128,16,15,128, - 16,7,128,16,3,128,56,1,128,254,0,128,19,24,72,21, - 1,0,6,0,0,7,0,0,3,128,0,0,192,0,0,96, - 0,0,0,0,3,248,0,15,30,0,60,7,128,60,7,128, - 120,3,192,120,3,192,248,3,224,248,3,224,248,3,224,248, - 3,224,248,3,224,248,3,224,120,3,192,120,3,192,60,7, - 128,60,7,128,15,30,0,3,248,0,19,23,69,21,1,0, - 0,24,0,0,56,0,0,96,0,0,192,0,0,0,0,3, - 248,0,15,30,0,60,7,128,60,7,128,120,3,192,120,3, - 192,248,3,224,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,120,3,192,120,3,192,60,7,128,60,7,128,15, - 30,0,3,248,0,19,23,69,21,1,0,0,96,0,0,240, - 0,1,152,0,3,12,0,0,0,0,3,248,0,15,30,0, - 60,7,128,60,7,128,120,3,192,120,3,192,248,3,224,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,120,3, - 192,120,3,192,60,7,128,60,7,128,15,30,0,3,248,0, - 19,22,66,21,1,0,0,226,0,1,252,0,2,56,0,0, - 0,0,3,248,0,15,30,0,60,7,128,60,7,128,120,3, - 192,120,3,192,248,3,224,248,3,224,248,3,224,248,3,224, - 248,3,224,248,3,224,120,3,192,120,3,192,60,7,128,60, - 7,128,15,30,0,3,248,0,19,23,69,21,1,0,7,28, - 0,7,28,0,7,28,0,0,0,0,0,0,0,3,248,0, - 15,30,0,60,7,128,60,7,128,120,3,192,120,3,192,248, - 3,224,248,3,224,248,3,224,248,3,224,248,3,224,248,3, - 224,120,3,192,120,3,192,60,7,128,60,7,128,15,30,0, - 3,248,0,12,12,24,14,1,1,192,48,224,112,112,224,57, - 192,31,128,15,0,15,0,31,128,57,192,112,224,224,112,192, - 48,20,18,54,21,0,0,1,252,48,7,143,96,30,3,192, - 30,3,192,60,7,224,60,13,224,124,25,240,124,49,240,124, - 97,240,124,193,240,125,129,240,127,1,240,62,1,224,60,1, - 224,62,3,192,126,3,192,199,143,0,129,252,0,19,24,72, - 21,1,0,3,0,0,3,128,0,1,192,0,0,96,0,0, - 48,0,0,0,0,255,15,224,60,3,128,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,30,2,0,31,142,0,7,248,0,19,24,72,21,1, - 0,0,6,0,0,14,0,0,28,0,0,48,0,0,96,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 30,2,0,31,142,0,7,248,0,19,23,69,21,1,0,0, - 96,0,0,240,0,1,152,0,3,12,0,0,0,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,30,2,0,31,142, - 0,7,248,0,19,23,69,21,1,0,7,28,0,7,28,0, - 7,28,0,0,0,0,0,0,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,30,2,0,31,142,0,7,248,0,18, - 24,72,18,0,0,0,6,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,255,15,192,60,3,0,30,6,0, - 30,6,0,15,12,0,15,12,0,7,152,0,7,152,0,3, - 240,0,3,240,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,7,248,0,16,18,36, - 18,1,0,255,128,60,0,60,0,60,0,63,248,60,62,60, - 30,60,31,60,31,60,31,60,31,60,30,60,62,63,240,60, - 0,60,0,60,0,255,128,15,18,36,15,255,0,7,224,30, - 120,28,60,60,60,60,60,60,56,60,112,61,224,60,60,60, - 30,60,30,60,30,60,30,60,30,60,30,60,28,61,60,253, - 240,14,18,36,15,0,0,12,0,14,0,7,0,3,0,1, - 128,0,0,127,128,241,224,240,240,96,240,1,240,14,240,120, - 240,240,240,240,240,240,240,249,252,126,56,14,18,36,15,0, - 0,1,128,3,128,7,0,6,0,12,0,0,0,127,128,241, - 224,240,240,96,240,1,240,14,240,120,240,240,240,240,240,240, - 240,249,252,126,56,14,18,36,15,0,0,2,0,7,0,15, - 128,24,192,48,96,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 17,34,15,0,0,14,32,31,192,35,128,0,0,0,0,127, - 128,241,224,240,240,96,240,1,240,14,240,120,240,240,240,240, - 240,240,240,249,252,126,56,14,17,34,15,0,0,56,224,56, - 224,56,224,0,0,0,0,127,128,241,224,240,240,96,240,1, - 240,14,240,120,240,240,240,240,240,240,240,249,252,126,56,14, - 18,36,15,0,0,7,0,13,128,8,128,13,128,7,0,0, - 0,127,128,241,224,240,240,96,240,1,240,14,240,120,240,240, - 240,240,240,240,240,249,252,126,56,22,12,36,23,0,0,31, - 207,192,121,248,112,112,248,120,112,240,56,1,240,60,14,255, - 252,120,240,0,240,240,0,240,248,8,240,248,8,249,188,48, - 126,15,224,13,17,34,14,0,251,15,240,56,120,120,120,112, - 48,240,0,240,0,240,0,240,0,120,8,120,8,60,48,31, - 224,2,0,7,0,3,128,1,128,15,0,14,18,36,15,0, - 0,12,0,14,0,7,0,3,0,1,128,0,0,15,192,56, - 112,120,120,112,56,240,60,255,252,240,0,240,0,120,8,120, - 8,60,48,15,224,14,18,36,15,0,0,0,96,0,224,1, - 192,3,128,6,0,0,0,15,192,56,112,120,120,112,56,240, - 60,255,252,240,0,240,0,120,8,120,8,60,48,15,224,14, - 18,36,15,0,0,2,0,7,0,15,128,24,192,48,96,0, - 0,15,192,56,112,120,120,112,56,240,60,255,252,240,0,240, - 0,120,8,120,8,60,48,15,224,14,17,34,15,0,0,28, - 112,28,112,28,112,0,0,0,0,15,192,56,112,120,120,112, - 56,240,60,255,252,240,0,240,0,120,8,120,8,60,48,15, - 224,8,18,18,9,0,0,96,112,56,24,12,0,252,60,60, - 60,60,60,60,60,60,60,60,255,8,18,18,9,0,0,12, - 28,56,48,96,0,252,60,60,60,60,60,60,60,60,60,60, - 255,9,18,36,9,0,0,8,0,28,0,62,0,99,0,193, - 128,0,0,252,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,255,0,8,17,17,9,0, - 0,231,231,231,0,0,252,60,60,60,60,60,60,60,60,60, - 60,255,14,18,36,15,0,0,192,0,57,192,15,0,15,0, - 49,192,0,224,15,240,56,112,120,120,112,56,240,60,240,60, - 240,60,240,60,112,56,120,120,56,112,15,192,17,17,51,18, - 0,0,3,136,0,7,240,0,8,224,0,0,0,0,0,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,18,36,15,0,0,12,0,14,0,7, - 0,3,0,1,128,0,0,15,192,56,112,120,120,112,56,240, - 60,240,60,240,60,240,60,112,56,120,120,56,112,15,192,14, - 18,36,15,0,0,0,96,0,224,1,192,3,0,6,0,0, - 0,15,192,56,112,120,120,112,56,240,60,240,60,240,60,240, - 60,112,56,120,120,56,112,15,192,14,18,36,15,0,0,2, - 0,7,0,15,128,24,192,48,96,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,14,17,34,15,0,0,7,16,15,224,17,192,0, - 0,0,0,15,192,56,112,120,120,112,56,240,60,240,60,240, - 60,240,60,112,56,120,120,56,112,15,192,14,17,34,15,0, - 0,56,224,56,224,56,224,0,0,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,12,12,24,14,1,1,6,0,6,0,6,0,0, - 0,0,0,255,240,255,240,0,0,0,0,6,0,6,0,6, - 0,14,18,36,15,0,253,0,16,0,16,0,32,15,224,56, - 112,120,120,112,184,240,188,241,60,241,60,242,60,114,56,124, - 120,60,112,15,192,8,0,16,0,16,0,17,18,54,18,0, - 0,3,0,0,3,128,0,1,192,0,0,192,0,0,96,0, - 0,0,0,254,63,128,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,62,62, - 0,31,222,0,15,159,128,17,18,54,18,0,0,0,96,0, - 0,224,0,1,192,0,1,128,0,3,0,0,0,0,0,254, - 63,128,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,62,62,0,31,222,0, - 15,159,128,17,18,54,18,0,0,0,128,0,1,192,0,3, - 224,0,6,48,0,12,24,0,0,0,0,254,63,128,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,62,62,0,31,222,0,15,159,128,17, - 17,51,18,0,0,14,56,0,14,56,0,14,56,0,0,0, - 0,0,0,0,254,63,128,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,62, - 62,0,31,222,0,15,159,128,16,23,46,15,255,251,0,48, - 0,112,0,224,0,192,1,128,0,0,254,63,60,12,30,8, - 30,24,15,16,15,48,7,160,7,224,3,192,3,192,1,192, - 1,128,1,128,97,0,243,0,254,0,120,0,16,23,46,16, - 255,251,252,0,60,0,60,0,60,0,60,0,60,0,61,240, - 63,28,60,30,60,14,60,15,60,15,60,15,60,15,60,14, - 62,30,63,28,61,240,60,0,60,0,60,0,60,0,255,0, - 16,22,44,15,255,251,14,56,14,56,14,56,0,0,0,0, - 254,63,60,12,30,8,30,24,15,16,15,48,7,160,7,224, - 3,192,3,192,1,192,1,128,1,128,97,0,243,0,254,0, - 120,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--25-180-100-100-P-149-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=23 x= 6 y=13 dx=26 dy= 0 ascent=20 len=72 - Font Bounding box w=33 h=40 x=-4 y=-10 - Calculated Min Values x=-3 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB18r[3736] U8G_FONT_SECTION("u8g_font_ncenB18r") = { - 0,33,40,252,246,18,4,68,10,106,32,127,251,20,251,18, - 251,0,0,0,7,0,1,5,18,18,7,1,0,112,248,248, - 248,112,112,112,112,112,112,32,32,0,0,112,248,248,112,6, - 6,6,8,1,12,204,204,204,204,204,136,12,18,36,14,1, - 0,12,192,12,192,12,192,12,192,12,192,127,240,127,240,25, - 128,25,128,25,128,25,128,255,224,255,224,51,0,51,0,51, - 0,51,0,51,0,12,23,46,14,1,253,4,0,4,0,31, - 192,116,96,100,240,228,240,228,240,244,96,252,0,255,0,127, - 192,31,224,7,240,5,240,100,240,244,112,244,112,244,96,100, - 224,63,128,4,0,4,0,4,0,19,18,54,21,1,0,30, - 14,0,123,54,0,113,204,0,241,12,0,225,24,0,226,24, - 0,226,48,0,100,48,0,56,96,0,0,99,192,0,207,96, - 0,206,32,1,158,32,1,156,32,3,28,64,3,28,64,6, - 12,128,6,7,0,20,18,54,22,1,0,1,240,0,7,56, - 0,14,24,0,14,24,0,14,24,0,15,48,0,15,224,0, - 7,192,0,15,192,0,57,227,240,113,241,192,240,241,128,240, - 121,0,240,127,0,240,62,16,120,31,16,124,63,224,31,199, - 192,2,6,6,6,2,12,192,192,192,192,192,192,6,21,21, - 8,1,253,4,12,24,48,48,96,96,224,224,224,224,224,224, - 224,96,96,48,48,24,12,4,6,21,21,8,1,253,128,192, - 96,48,48,24,24,28,28,28,28,28,28,28,24,24,48,48, - 96,192,128,9,10,20,11,1,8,28,0,28,0,201,128,235, - 128,62,0,62,0,235,128,201,128,28,0,28,0,12,12,24, - 14,1,1,6,0,6,0,6,0,6,0,6,0,255,240,255, - 240,6,0,6,0,6,0,6,0,6,0,5,8,8,7,1, - 252,112,248,248,120,48,32,64,128,6,3,3,8,1,5,252, - 252,252,5,4,4,7,1,0,112,248,248,112,7,18,18,9, - 1,0,6,6,6,12,12,12,24,24,24,48,48,48,96,96, - 96,192,192,192,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,57,192,15,0,10,18, - 36,14,2,0,30,0,254,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,63,0,255,192,11,18,36,14,1,0,31,0, - 99,192,225,224,241,224,241,224,241,224,97,224,1,192,3,192, - 3,128,7,0,14,0,24,32,48,32,112,96,255,224,255,224, - 255,224,12,18,36,14,1,0,15,128,49,224,112,224,120,240, - 120,240,120,240,48,224,1,192,15,0,1,192,0,224,96,240, - 240,240,240,240,240,240,224,224,97,224,31,128,12,18,36,14, - 1,0,0,192,1,192,3,192,7,192,7,192,15,192,27,192, - 19,192,51,192,99,192,99,192,195,192,255,240,255,240,3,192, - 3,192,3,192,15,240,12,18,36,14,1,0,127,240,127,224, - 127,192,64,0,64,0,64,0,95,0,113,192,96,224,0,240, - 0,240,0,240,96,240,240,240,240,240,240,224,97,192,63,0, - 12,18,36,14,1,0,15,128,56,192,113,224,113,224,241,224, - 240,192,240,0,247,128,249,224,240,224,240,240,240,240,240,240, - 240,240,240,240,112,224,121,224,31,128,12,18,36,14,1,0, - 255,240,255,240,255,224,192,96,128,192,129,192,3,128,3,128, - 7,0,7,0,15,0,15,0,30,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,14,1,0,15,0,57,192,112,224, - 112,224,112,224,120,224,124,192,63,128,31,128,63,192,119,224, - 225,240,224,240,224,112,224,112,224,96,112,192,31,128,12,18, - 36,14,1,0,31,128,121,224,112,224,240,240,240,240,240,240, - 240,240,240,240,112,240,121,240,30,240,0,240,48,240,120,240, - 120,224,120,224,49,192,31,0,5,12,12,7,1,0,112,248, - 248,112,0,0,0,0,112,248,248,112,5,16,16,7,1,252, - 112,248,248,112,0,0,0,0,112,248,248,120,48,32,64,128, - 12,12,24,14,1,1,0,48,0,240,3,192,15,0,60,0, - 240,0,240,0,60,0,15,0,3,192,0,240,0,48,12,6, - 12,14,1,4,255,240,255,240,0,0,0,0,255,240,255,240, - 12,12,24,14,1,1,192,0,240,0,60,0,15,0,3,192, - 0,240,0,240,3,192,15,0,60,0,240,0,192,0,11,18, - 36,13,1,0,63,0,99,192,241,224,241,224,97,224,1,224, - 1,192,3,128,7,0,12,0,24,0,24,0,0,0,0,0, - 28,0,62,0,62,0,28,0,19,18,54,20,1,0,1,252, - 0,15,6,0,12,1,128,48,0,192,48,220,192,99,188,96, - 103,28,96,199,28,96,206,28,96,206,56,96,206,56,64,206, - 56,192,206,121,128,103,191,0,96,0,0,56,1,0,28,7, - 0,7,252,0,19,18,54,19,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,1,120,0,1,120,0,3,60,0,2, - 60,0,2,60,0,6,30,0,4,30,0,7,254,0,12,15, - 0,8,15,0,8,15,0,24,7,128,56,7,128,254,31,224, - 17,18,54,19,1,0,255,248,0,60,62,0,60,31,0,60, - 31,0,60,31,0,60,31,0,60,30,0,60,60,0,63,248, - 0,60,30,0,60,15,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,31,0,255,252,0,17,18,54,19, - 1,0,3,249,128,15,15,128,60,3,128,60,1,128,120,1, - 128,120,0,128,248,0,128,248,0,0,248,0,0,248,0,0, - 248,0,0,248,0,0,120,0,128,120,0,128,60,1,0,60, - 1,0,15,6,0,3,248,0,18,18,54,20,1,0,255,240, - 0,60,60,0,60,15,0,60,15,0,60,7,128,60,7,128, - 60,7,192,60,7,192,60,7,192,60,7,192,60,7,192,60, - 7,192,60,7,128,60,7,128,60,15,0,60,15,0,60,60, - 0,255,240,0,15,18,36,18,1,0,255,254,60,30,60,6, - 60,2,60,2,60,34,60,32,60,96,63,224,60,96,60,32, - 60,32,60,2,60,2,60,2,60,6,60,30,255,254,15,18, - 36,17,1,0,255,254,60,30,60,6,60,2,60,2,60,34, - 60,32,60,96,63,224,60,96,60,32,60,32,60,0,60,0, - 60,0,60,0,60,0,255,0,18,18,54,20,1,0,3,249, - 128,15,15,128,60,3,128,60,1,128,120,1,128,120,0,128, - 248,0,128,248,0,0,248,0,0,248,0,0,248,15,192,248, - 7,128,120,7,128,120,7,128,60,7,128,60,7,128,15,13, - 128,3,248,128,19,18,54,21,1,0,255,31,224,60,7,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,63,255,128,60,7,128,60,7,128,60,7,128,60,7, - 128,60,7,128,60,7,128,60,7,128,60,7,128,255,31,224, - 8,18,18,10,1,0,255,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,14,18,36,16,0,0,3,252, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,96,240,240,240,240,240,224,240,192,224,97,224, - 63,128,20,18,54,21,1,0,255,15,192,60,3,0,60,6, - 0,60,12,0,60,24,0,60,48,0,60,96,0,60,224,0, - 61,240,0,63,248,0,62,248,0,60,124,0,60,62,0,60, - 31,0,60,31,0,60,15,128,60,7,192,255,15,240,15,18, - 36,17,1,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,2, - 60,2,60,6,60,30,255,254,22,18,54,24,1,0,252,1, - 252,60,1,240,62,3,240,62,2,240,46,2,240,47,6,240, - 39,4,240,39,132,240,39,140,240,35,136,240,35,200,240,35, - 216,240,33,208,240,33,240,240,32,224,240,32,224,240,112,96, - 240,248,67,252,20,18,54,22,1,0,252,7,240,62,1,192, - 31,0,128,31,128,128,31,192,128,23,224,128,19,240,128,17, - 240,128,16,248,128,16,124,128,16,126,128,16,63,128,16,31, - 128,16,15,128,16,7,128,16,3,128,56,1,128,254,0,128, - 19,18,54,21,1,0,3,248,0,15,30,0,60,7,128,60, - 7,128,120,3,192,120,3,192,248,3,224,248,3,224,248,3, - 224,248,3,224,248,3,224,248,3,224,120,3,192,120,3,192, - 60,7,128,60,7,128,15,30,0,3,248,0,17,18,54,18, - 1,0,255,252,0,60,31,0,60,15,0,60,15,128,60,15, - 128,60,15,128,60,15,128,60,15,0,60,31,0,63,248,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,255,128,0,19,23,69,21,1,251,3,248, - 0,15,30,0,60,7,128,60,7,128,120,3,192,120,3,192, - 248,3,224,248,3,224,248,3,224,248,3,224,248,3,224,251, - 227,224,126,115,192,124,51,192,60,51,128,60,27,128,15,30, - 0,3,254,0,0,14,0,0,15,32,0,7,192,0,7,192, - 0,3,128,19,18,54,21,1,0,255,248,0,60,62,0,60, - 31,0,60,31,0,60,31,0,60,31,0,60,30,0,60,60, - 0,63,224,0,60,120,0,60,60,0,60,60,0,60,62,0, - 60,30,0,60,31,32,60,15,32,60,15,192,255,135,128,14, - 18,36,16,1,0,15,200,56,120,96,24,224,24,224,8,240, - 8,254,0,255,192,127,240,63,248,15,252,1,252,128,60,128, - 28,192,28,192,24,240,112,159,192,16,18,36,18,1,0,255, - 255,227,199,195,195,131,193,131,193,131,193,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,15,240,19,18,54,21,1,0,255,15,224,60,3,128,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,2,0,30,2,0,31,140,0,7,248,0,19, - 18,54,19,0,0,255,15,224,60,3,128,60,3,0,30,2, - 0,30,2,0,30,6,0,15,4,0,15,4,0,15,12,0, - 7,136,0,7,136,0,7,152,0,3,208,0,3,208,0,1, - 224,0,1,224,0,0,192,0,0,192,0,26,18,72,26,0, - 0,255,127,159,192,60,30,7,0,60,30,6,0,30,15,4, - 0,30,15,4,0,30,15,12,0,15,31,136,0,15,23,136, - 0,15,23,152,0,7,179,208,0,7,163,208,0,7,163,240, - 0,3,225,224,0,3,193,224,0,3,193,224,0,1,192,192, - 0,1,128,192,0,1,128,192,0,20,18,54,20,0,0,255, - 135,224,62,1,128,31,3,0,31,134,0,15,140,0,7,216, - 0,3,240,0,3,224,0,1,240,0,0,248,0,1,248,0, - 3,124,0,6,62,0,4,31,0,12,31,0,24,15,128,48, - 7,192,252,31,240,18,18,54,18,0,0,255,15,192,60,3, - 0,30,2,0,30,6,0,15,4,0,15,12,0,7,136,0, - 7,152,0,3,208,0,3,240,0,1,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,7,248, - 0,15,18,36,17,1,0,127,254,112,62,96,124,64,120,64, - 248,0,240,1,224,3,224,3,192,7,128,15,128,15,0,30, - 0,62,2,60,2,120,6,248,14,255,254,6,21,21,8,1, - 253,252,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,252,10,18,36,12,1,0,192,0,224,0, - 224,0,112,0,112,0,56,0,56,0,28,0,28,0,14,0, - 14,0,7,0,7,0,3,128,3,128,1,192,1,192,0,192, - 6,21,21,8,1,253,252,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,252,10,10,20,15,2, - 8,12,0,12,0,30,0,30,0,51,0,51,0,97,128,97, - 128,192,192,192,192,12,2,4,12,0,252,255,240,255,240,5, - 5,5,7,1,13,224,224,112,48,24,14,12,24,15,0,0, - 127,128,241,224,240,240,96,240,1,240,14,240,120,240,240,240, - 240,240,240,240,249,252,126,56,16,18,36,16,255,0,252,0, - 60,0,60,0,60,0,60,0,60,0,61,240,63,28,62,30, - 60,14,60,15,60,15,60,15,60,15,60,14,60,30,62,28, - 39,240,13,12,24,14,0,0,15,240,56,120,120,120,112,48, - 240,0,240,0,240,0,240,0,120,8,120,8,60,48,31,224, - 16,18,36,17,0,0,0,252,0,60,0,60,0,60,0,60, - 0,60,15,188,56,252,120,124,112,60,240,60,240,60,240,60, - 240,60,112,60,120,124,56,252,15,191,14,12,24,15,0,0, - 15,192,56,112,120,120,112,56,240,60,255,252,240,0,240,0, - 120,8,120,8,60,48,15,224,12,18,36,10,0,0,7,224, - 28,240,28,240,60,96,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 255,0,13,18,36,15,1,251,0,56,31,248,121,224,240,240, - 240,240,240,240,240,240,121,224,63,128,96,0,224,0,255,192, - 127,240,127,248,96,56,192,24,224,48,127,224,17,18,54,18, - 0,0,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,248,0,61,252,0,62,62,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,254,63,128,8,18,18,9,0,0,24,60, - 60,24,0,0,252,60,60,60,60,60,60,60,60,60,60,255, - 8,23,23,7,253,251,6,15,15,6,0,0,63,15,15,15, - 15,15,15,15,15,15,15,15,15,15,206,206,120,17,18,54, - 17,0,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,254,0,60,56,0,60,48,0,60,96, - 0,60,192,0,63,192,0,63,224,0,60,240,0,60,120,0, - 60,60,0,60,30,0,255,127,128,8,18,18,9,0,0,252, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 255,24,12,36,25,0,0,252,240,240,61,249,248,62,126,124, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,254,126,127,17,12,36,18,0, - 0,252,248,0,61,252,0,62,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,254,63,128,14,12,24,15,0,0,15,192,56,112,120, - 120,112,56,240,60,240,60,240,60,240,60,112,56,120,120,56, - 112,15,192,16,17,34,16,255,251,253,240,63,28,60,30,60, - 14,60,15,60,15,60,15,60,15,60,14,62,30,63,28,61, - 240,60,0,60,0,60,0,60,0,255,0,16,17,34,16,0, - 251,15,132,60,236,120,60,112,60,240,60,240,60,240,60,240, - 60,112,60,120,124,56,252,15,188,0,60,0,60,0,60,0, - 60,0,255,12,12,24,12,0,0,252,224,61,240,62,240,60, - 96,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,10,12,24,11,0,0,62,128,99,128,193,128,224,128,252, - 0,255,128,127,192,15,192,129,192,192,192,225,128,191,0,10, - 17,34,10,0,0,4,0,12,0,12,0,28,0,60,0,255, - 128,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 64,60,64,31,128,15,0,17,12,36,18,0,0,254,126,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,62,62,0,31,222,0,15,159, - 128,16,12,24,15,255,0,255,31,60,4,30,12,30,8,15, - 24,15,16,7,176,7,160,3,224,3,192,1,192,1,128,23, - 12,36,22,255,0,255,63,62,60,30,8,60,30,8,30,63, - 24,30,47,16,30,47,16,15,103,176,15,71,160,7,195,224, - 7,131,192,3,129,192,3,1,128,17,12,36,16,255,0,255, - 31,0,62,12,0,31,24,0,15,176,0,7,224,0,3,192, - 0,1,224,0,3,240,0,6,248,0,12,124,0,24,62,0, - 124,127,128,16,17,34,15,255,251,254,63,60,12,30,8,30, - 24,15,16,15,48,7,160,7,224,3,192,3,192,1,192,1, - 128,1,128,97,0,243,0,254,0,120,0,11,12,24,12,0, - 0,255,224,225,224,195,224,135,192,143,128,15,0,30,0,62, - 32,124,32,248,96,240,224,255,224,6,21,21,8,1,253,28, - 48,112,112,112,112,112,112,112,96,192,96,112,112,112,112,112, - 112,112,48,28,3,18,18,15,6,0,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,6,21,21,8, - 1,253,224,48,56,56,56,56,56,56,56,24,12,24,56,56, - 56,56,56,56,56,48,224,12,5,10,15,1,4,56,32,126, - 112,255,240,231,224,65,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=33 x= 8 y=18 dx=33 dy= 0 ascent=33 len=132 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =33 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24[12964] U8G_FONT_SECTION("u8g_font_ncenB24") = { - 0,39,53,252,243,25,6,143,16,147,32,255,249,33,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,9,1,1,6,25,25,10,2,249,120,252,252, - 252,252,120,0,0,48,48,48,48,48,48,120,120,120,120,124, - 252,252,252,252,252,120,15,22,44,19,1,253,0,6,0,6, - 0,12,3,252,14,124,60,62,124,62,120,126,248,126,248,220, - 248,192,249,128,253,128,255,2,255,6,126,6,63,28,31,248, - 15,224,24,0,24,0,48,0,17,24,72,19,1,0,1,248, - 0,7,252,0,15,142,0,15,15,0,31,31,0,31,31,0, - 31,31,0,31,14,0,15,0,0,15,0,0,7,128,0,127, - 248,0,127,248,0,7,128,0,7,128,0,7,128,0,3,128, - 0,3,129,128,123,3,128,255,199,0,199,255,0,199,254,0, - 253,254,0,120,124,0,16,16,32,19,1,3,99,198,247,239, - 255,254,127,252,60,62,120,30,112,14,112,14,112,14,112,14, - 120,30,60,60,127,254,255,255,247,239,99,198,19,24,72,19, - 0,0,255,31,224,255,31,224,124,7,128,62,7,0,62,7, - 0,31,6,0,31,14,0,15,140,0,15,140,0,7,216,0, - 7,216,0,3,240,0,31,254,0,31,254,0,1,224,0,1, - 224,0,31,254,0,31,254,0,1,224,0,1,224,0,1,224, - 0,1,224,0,15,252,0,15,252,0,4,25,25,20,8,0, - 240,240,240,240,240,240,240,240,240,240,0,0,0,0,0,240, - 240,240,240,240,240,240,240,240,240,12,29,58,16,2,253,31, - 0,115,128,99,192,227,192,227,192,241,128,120,0,124,0,62, - 0,30,0,63,0,111,128,199,192,227,224,225,224,240,240,120, - 112,124,112,62,96,31,192,15,128,7,192,3,224,97,224,240, - 224,240,224,240,224,121,192,63,0,11,5,10,11,0,18,96, - 192,241,224,241,224,241,224,96,192,24,25,75,25,1,0,0, - 255,0,3,255,192,7,129,224,30,0,112,24,0,24,48,0, - 12,112,127,14,96,243,134,97,193,134,227,193,135,195,128,131, - 195,128,3,195,128,3,195,128,3,195,128,3,195,128,7,193, - 192,134,225,225,134,96,255,12,112,60,28,56,0,56,28,0, - 112,15,129,192,3,255,128,0,254,0,11,15,30,12,0,10, - 63,0,227,192,241,192,227,192,15,192,113,192,225,192,227,192, - 247,224,253,224,0,0,0,0,0,0,255,224,255,224,12,11, - 22,16,2,3,4,16,12,48,24,96,56,224,113,192,243,192, - 113,192,56,224,24,96,12,48,4,16,16,10,20,20,2,3, - 255,255,255,255,255,255,255,255,0,15,0,15,0,15,0,15, - 0,15,0,15,8,4,4,11,1,6,255,255,255,255,23,25, - 75,24,0,0,0,254,0,3,255,128,7,1,224,12,0,112, - 24,0,56,48,0,24,97,254,12,96,231,12,192,227,142,192, - 227,134,192,227,134,192,231,6,192,252,6,192,238,6,192,231, - 6,192,231,6,192,227,134,96,227,140,99,241,204,48,0,24, - 24,0,24,28,0,112,7,0,224,3,255,128,0,252,0,11, - 3,6,11,0,18,255,224,255,224,255,224,9,10,20,13,2, - 13,62,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,62,0,16,17,34,20,2,0,3,192,3,192,3, - 192,3,192,255,255,255,255,255,255,255,255,3,192,3,192,3, - 192,3,192,0,0,255,255,255,255,255,255,255,255,10,14,28, - 11,0,9,63,0,99,128,193,192,241,192,241,192,113,192,3, - 128,7,0,14,0,24,64,48,64,127,192,255,192,255,192,11, - 14,28,11,0,9,63,0,115,192,113,192,33,192,1,192,3, - 128,31,0,3,192,1,224,113,224,241,224,225,224,99,192,63, - 0,7,6,6,11,2,17,12,30,62,124,240,192,20,23,69, - 22,1,249,254,63,192,254,63,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,15,192,62,15,192,63,31,192,63,255,192,63,247,240, - 55,199,240,48,0,0,48,0,0,120,0,0,120,0,0,120, - 0,0,120,0,0,48,0,0,21,25,75,25,1,0,15,255, - 248,63,255,248,127,227,192,127,227,192,255,227,192,255,227,192, - 255,227,192,255,227,192,127,227,192,127,227,192,63,227,192,31, - 227,192,7,227,192,1,227,192,1,227,192,1,227,192,1,227, - 192,1,227,192,1,227,192,1,227,192,1,227,192,1,227,192, - 1,227,192,15,255,248,15,255,248,6,6,6,9,1,5,120, - 252,252,252,252,120,7,7,7,11,1,249,24,48,124,14,14, - 220,120,9,14,28,11,1,9,12,0,252,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,11,15,30,12,0,10,14,0,63,128,113,192, - 241,224,224,224,224,224,224,224,241,224,113,192,63,128,14,0, - 0,0,0,0,127,224,127,224,12,11,22,16,2,3,130,0, - 195,0,97,128,113,192,56,224,60,240,56,224,113,192,97,128, - 195,0,130,0,25,23,92,28,1,0,12,0,56,0,252,0, - 48,0,28,0,112,0,28,0,224,0,28,0,192,0,28,1, - 192,0,28,1,128,0,28,3,128,0,28,7,0,0,28,7, - 2,0,28,14,6,0,28,12,14,0,28,28,30,0,255,184, - 62,0,0,56,110,0,0,112,206,0,0,97,142,0,0,227, - 14,0,0,195,255,128,1,192,14,0,3,128,14,0,3,0, - 14,0,7,0,63,128,25,23,92,28,1,0,12,0,56,0, - 252,0,112,0,28,0,112,0,28,0,224,0,28,0,192,0, - 28,1,192,0,28,1,128,0,28,3,128,0,28,7,0,0, - 28,6,126,0,28,14,199,0,28,13,135,128,28,29,227,128, - 255,185,231,128,0,56,231,128,0,112,15,0,0,96,14,0, - 0,224,28,0,1,192,48,128,1,192,96,128,3,128,255,128, - 3,1,255,128,7,1,255,128,26,23,92,28,0,0,63,0, - 28,0,115,192,56,0,113,192,56,0,33,192,112,0,1,192, - 96,0,3,128,224,0,31,0,192,0,3,193,192,0,1,227, - 128,0,113,227,129,0,241,231,3,0,225,230,7,0,99,206, - 15,0,63,28,31,0,0,28,55,0,0,56,103,0,0,48, - 199,0,0,113,135,0,0,97,255,192,0,224,7,0,1,192, - 7,0,1,192,7,0,3,128,31,192,15,25,50,16,1,249, - 3,192,7,224,7,224,7,224,7,224,3,192,0,0,0,0, - 1,128,1,128,1,128,3,128,7,0,31,0,62,0,126,0, - 124,0,252,124,252,124,252,126,252,124,124,60,126,60,63,240, - 15,192,25,31,124,25,0,0,0,48,0,0,0,120,0,0, - 0,124,0,0,0,62,0,0,0,15,0,0,0,3,0,0, - 0,0,0,0,0,28,0,0,0,30,0,0,0,62,0,0, - 0,63,0,0,0,127,0,0,0,127,128,0,0,127,128,0, - 0,255,128,0,0,207,192,0,1,207,192,0,1,143,192,0, - 1,135,224,0,3,135,224,0,3,7,240,0,7,3,240,0, - 7,255,240,0,7,255,248,0,14,1,248,0,12,1,252,0, - 28,0,252,0,28,0,254,0,62,0,254,0,255,131,255,128, - 255,131,255,128,25,32,128,25,0,0,0,1,128,0,0,3, - 192,0,0,7,192,0,0,15,128,0,0,30,0,0,0,24, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,25,31,124,25,0,0, - 0,28,0,0,0,62,0,0,0,127,0,0,0,227,128,0, - 1,128,192,0,0,0,0,0,0,28,0,0,0,28,0,0, - 0,30,0,0,0,62,0,0,0,63,0,0,0,127,0,0, - 0,127,128,0,0,127,128,0,0,255,128,0,0,207,192,0, - 1,207,192,0,1,143,192,0,1,135,224,0,3,135,224,0, - 3,7,240,0,7,3,240,0,7,255,240,0,7,255,248,0, - 14,1,248,0,12,1,252,0,28,0,252,0,28,0,254,0, - 62,0,254,0,255,131,255,128,255,131,255,128,25,31,124,25, - 0,0,0,56,96,0,0,127,224,0,0,255,192,0,0,195, - 128,0,0,0,0,0,0,0,0,0,0,28,0,0,0,28, - 0,0,0,30,0,0,0,62,0,0,0,63,0,0,0,127, - 0,0,0,127,128,0,0,127,128,0,0,255,128,0,0,207, - 192,0,1,207,192,0,1,143,192,0,1,135,224,0,3,135, - 224,0,3,7,240,0,7,3,240,0,7,255,240,0,7,255, - 248,0,14,1,248,0,12,1,252,0,28,0,252,0,28,0, - 254,0,62,0,254,0,255,131,255,128,255,131,255,128,25,31, - 124,25,0,0,0,193,128,0,1,227,192,0,1,227,192,0, - 1,227,192,0,0,193,128,0,0,0,0,0,0,28,0,0, - 0,28,0,0,0,30,0,0,0,62,0,0,0,63,0,0, - 0,127,0,0,0,127,128,0,0,127,128,0,0,255,128,0, - 0,207,192,0,1,207,192,0,1,143,192,0,1,135,224,0, - 3,135,224,0,3,7,240,0,7,3,240,0,7,255,240,0, - 7,255,248,0,14,1,248,0,12,1,252,0,28,0,252,0, - 28,0,254,0,62,0,254,0,255,131,255,128,255,131,255,128, - 25,33,132,25,0,0,0,62,0,0,0,119,0,0,0,99, - 0,0,0,99,0,0,0,119,0,0,0,62,0,0,0,0, - 0,0,0,0,0,0,0,28,0,0,0,28,0,0,0,30, - 0,0,0,62,0,0,0,63,0,0,0,127,0,0,0,127, - 128,0,0,127,128,0,0,255,128,0,0,207,192,0,1,207, - 192,0,1,143,192,0,1,135,224,0,3,135,224,0,3,7, - 240,0,7,3,240,0,7,255,240,0,7,255,248,0,14,1, - 248,0,12,1,252,0,28,0,252,0,28,0,254,0,62,0, - 254,0,255,131,255,128,255,131,255,128,31,25,100,33,255,0, - 1,255,255,254,1,255,255,254,0,123,240,126,0,59,240,62, - 0,51,240,30,0,51,240,14,0,115,240,6,0,99,240,198, - 0,227,240,198,0,195,241,194,1,195,241,192,1,131,243,192, - 3,131,255,192,3,3,255,192,7,255,243,192,7,255,241,192, - 14,3,240,198,14,3,240,198,12,3,240,198,28,3,240,14, - 24,3,240,14,56,3,240,30,124,3,240,126,255,31,255,254, - 255,31,255,254,22,32,96,24,1,249,0,126,24,3,255,184, - 7,193,248,31,128,248,31,0,120,62,0,56,126,0,56,126, - 0,24,254,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,254,0,0,254,0,12,254,0,28, - 126,0,24,126,0,56,63,0,48,31,128,112,15,193,224,7, - 255,192,0,255,0,0,48,0,0,96,0,0,248,0,0,28, - 0,0,28,0,1,184,0,0,240,0,21,32,96,23,1,0, - 0,192,0,1,224,0,1,240,0,0,248,0,0,60,0,0, - 12,0,0,0,0,255,255,248,255,255,248,31,129,248,31,128, - 248,31,128,120,31,128,56,31,128,56,31,134,24,31,134,24, - 31,142,0,31,142,0,31,158,0,31,254,0,31,254,0,31, - 158,0,31,142,0,31,134,24,31,134,24,31,134,24,31,128, - 56,31,128,56,31,128,120,31,129,248,255,255,248,255,255,248, - 21,32,96,23,1,0,0,3,0,0,7,128,0,15,128,0, - 31,0,0,60,0,0,48,0,0,0,0,255,255,248,255,255, - 248,31,129,248,31,128,248,31,128,120,31,128,56,31,128,56, - 31,134,24,31,134,24,31,142,0,31,142,0,31,158,0,31, - 254,0,31,254,0,31,158,0,31,142,0,31,134,24,31,134, - 24,31,134,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,21,32,96,23,1,0,0,56,0,0, - 124,0,0,254,0,1,199,0,3,1,128,0,0,0,0,0, - 0,255,255,248,255,255,248,31,129,248,31,128,248,31,128,120, - 31,128,56,31,128,56,31,134,24,31,134,24,31,142,0,31, - 142,0,31,158,0,31,254,0,31,254,0,31,158,0,31,142, - 0,31,134,24,31,134,24,31,134,24,31,128,56,31,128,56, - 31,128,120,31,129,248,255,255,248,255,255,248,21,32,96,23, - 1,0,1,131,0,3,199,128,3,199,128,3,199,128,1,131, - 0,0,0,0,0,0,0,255,255,248,255,255,248,31,129,248, - 31,128,248,31,128,120,31,128,56,31,128,56,31,134,24,31, - 134,24,31,142,0,31,142,0,31,158,0,31,254,0,31,254, - 0,31,158,0,31,142,0,31,134,24,31,134,24,31,134,24, - 31,128,56,31,128,56,31,128,120,31,129,248,255,255,248,255, - 255,248,12,33,66,14,1,0,48,0,120,0,124,0,62,0, - 15,0,3,0,0,0,0,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,12,33,66,14,1,0, - 0,192,1,224,3,224,7,192,15,0,12,0,0,0,0,0, - 255,240,255,240,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,255,240, - 255,240,12,32,64,14,1,0,7,0,15,128,31,192,56,224, - 96,48,0,0,0,0,255,240,255,240,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,240,255,240,12,32,64,14,1,0,48,96, - 120,240,120,240,120,240,48,96,0,0,0,0,255,240,255,240, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,255,240,255,240,24,25, - 75,26,1,0,255,255,0,255,255,224,31,131,240,31,129,248, - 31,128,252,31,128,124,31,128,126,31,128,126,31,128,127,31, - 128,63,31,128,63,31,128,63,255,248,63,255,248,63,31,128, - 63,31,128,63,31,128,63,31,128,127,31,128,126,31,128,126, - 31,128,252,31,128,248,31,131,240,255,255,224,255,255,0,27, - 31,124,27,0,0,0,56,96,0,0,127,224,0,0,255,192, - 0,0,195,128,0,0,0,0,0,0,0,0,0,255,128,127, - 224,255,192,127,224,63,224,15,0,15,224,6,0,15,240,6, - 0,15,248,6,0,15,252,6,0,13,254,6,0,12,254,6, - 0,12,255,6,0,12,127,134,0,12,63,198,0,12,31,230, - 0,12,15,230,0,12,15,246,0,12,7,254,0,12,3,254, - 0,12,1,254,0,12,0,254,0,12,0,126,0,12,0,126, - 0,12,0,62,0,30,0,30,0,255,192,14,0,255,192,6, - 0,24,32,96,26,1,0,1,128,0,3,192,0,3,224,0, - 1,240,0,0,120,0,0,24,0,0,0,0,0,126,0,3, - 255,192,15,193,240,31,128,248,63,0,252,62,0,124,126,0, - 126,126,0,126,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,126, - 0,126,126,0,126,62,0,124,63,0,252,31,128,248,15,193, - 240,3,255,192,0,126,0,24,32,96,26,1,0,0,0,192, - 0,1,224,0,3,224,0,7,192,0,15,0,0,12,0,0, - 0,0,0,126,0,3,255,192,15,193,240,31,128,248,63,0, - 252,62,0,124,126,0,126,126,0,126,252,0,63,252,0,63, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,126,0,126,126,0,126,62,0,124,63,0, - 252,31,128,248,15,193,240,3,255,192,0,126,0,24,32,96, - 26,1,0,0,28,0,0,62,0,0,127,0,0,227,128,1, - 128,192,0,0,0,0,0,0,0,126,0,3,255,192,15,193, - 240,31,128,248,63,0,252,62,0,124,126,0,126,126,0,126, - 252,0,63,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,126,0,126,126,0, - 126,62,0,124,63,0,252,31,128,248,15,193,240,3,255,192, - 0,126,0,24,31,93,26,1,0,0,112,192,0,255,192,1, - 255,128,1,135,0,0,0,0,0,0,0,0,126,0,3,255, - 192,15,193,240,31,128,248,63,0,252,62,0,124,126,0,126, - 126,0,126,252,0,63,252,0,63,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,126,0, - 126,126,0,126,62,0,124,63,0,252,31,128,248,15,193,240, - 3,255,192,0,126,0,24,32,96,26,1,0,0,193,128,1, - 227,192,1,227,192,1,227,192,0,193,128,0,0,0,0,0, - 0,0,126,0,3,255,192,15,193,240,31,128,248,63,0,252, - 62,0,124,126,0,126,126,0,126,252,0,63,252,0,63,252, - 0,63,252,0,63,252,0,63,252,0,63,252,0,63,252,0, - 63,252,0,63,126,0,126,126,0,126,62,0,124,63,0,252, - 31,128,248,15,193,240,3,255,192,0,126,0,16,17,34,20, - 2,0,32,4,112,14,248,31,252,63,126,126,63,252,31,248, - 15,240,7,224,15,240,31,248,63,252,126,126,252,63,248,31, - 112,14,32,4,24,27,81,26,1,255,0,0,12,0,126,24, - 3,255,248,7,195,240,31,128,248,31,0,248,62,0,252,126, - 1,254,126,3,126,254,7,127,252,6,63,252,12,63,252,28, - 63,252,24,63,252,48,63,252,96,63,252,224,63,254,192,127, - 127,128,126,127,128,126,63,0,124,31,0,248,31,128,248,15, - 193,224,27,255,192,48,126,0,48,0,0,26,32,128,28,1, - 0,0,48,0,0,0,120,0,0,0,124,0,0,0,62,0, - 0,0,15,0,0,0,3,0,0,0,0,0,0,255,240,255, - 192,255,240,255,192,31,128,30,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,28,0,15,192,24, - 0,15,224,56,0,7,248,240,0,3,255,224,0,0,255,192, - 0,26,32,128,28,1,0,0,0,96,0,0,0,240,0,0, - 1,240,0,0,3,224,0,0,7,128,0,0,6,0,0,0, - 0,0,0,255,240,255,192,255,240,255,192,31,128,30,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,28,0,15,192,24,0,15,224,56,0,7,248,240,0,3, - 255,224,0,0,255,192,0,26,32,128,28,1,0,0,14,0, - 0,0,31,0,0,0,63,128,0,0,113,192,0,0,192,96, - 0,0,0,0,0,0,0,0,0,255,240,255,192,255,240,255, - 192,31,128,30,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,12,0,31,128,12,0,31,128,12, - 0,31,128,12,0,31,128,28,0,15,192,24,0,15,224,56, - 0,7,248,240,0,3,255,224,0,0,255,192,0,26,32,128, - 28,1,0,0,48,96,0,0,120,240,0,0,120,240,0,0, - 120,240,0,0,48,96,0,0,0,0,0,0,0,0,0,255, - 240,255,192,255,240,255,192,31,128,30,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,12,0,31, - 128,12,0,31,128,12,0,31,128,12,0,31,128,28,0,15, - 192,24,0,15,224,56,0,7,248,240,0,3,255,224,0,0, - 255,192,0,24,33,99,24,0,0,0,0,96,0,0,240,0, - 1,240,0,3,224,0,7,128,0,6,0,0,0,0,0,0, - 0,255,241,255,255,241,255,63,128,124,31,192,56,31,192,112, - 15,224,112,15,224,224,7,240,192,3,241,192,3,249,128,1, - 251,128,1,255,0,0,255,0,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,3,255,192,3,255,192,22,25,75,24, - 1,0,255,240,0,255,240,0,31,128,0,31,128,0,31,128, - 0,31,255,128,31,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,240,0,255,240,0,18,25,75, - 20,0,0,3,252,0,7,190,0,15,15,0,15,15,0,31, - 15,128,31,15,128,31,15,128,31,15,0,31,15,0,31,14, - 0,31,28,0,31,126,0,31,15,128,31,15,128,31,7,192, - 31,7,192,31,7,192,31,7,192,31,7,192,31,7,192,31, - 7,128,31,7,128,31,79,0,255,254,0,255,120,0,18,23, - 69,20,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,15,240,0,63,252,0,120, - 62,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,18,23,69,20,1,0,0, - 96,0,0,240,0,1,240,0,3,224,0,7,128,0,6,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,22,66,20,1,0,1,192,0,3,224,0, - 7,240,0,14,56,0,24,12,0,0,0,0,15,240,0,63, - 252,0,120,62,0,124,62,0,124,62,0,56,62,0,0,62, - 0,3,254,0,31,190,0,126,62,0,124,62,0,252,62,0, - 252,62,0,252,127,64,127,255,192,63,143,128,18,22,66,20, - 1,0,7,12,0,15,252,0,31,248,0,24,112,0,0,0, - 0,0,0,0,15,240,0,63,252,0,120,62,0,124,62,0, - 124,62,0,56,62,0,0,62,0,3,254,0,31,190,0,126, - 62,0,124,62,0,252,62,0,252,62,0,252,127,64,127,255, - 192,63,143,128,18,23,69,20,1,0,12,24,0,30,60,0, - 30,60,0,30,60,0,12,24,0,0,0,0,0,0,0,15, - 240,0,63,252,0,120,62,0,124,62,0,124,62,0,56,62, - 0,0,62,0,3,254,0,31,190,0,126,62,0,124,62,0, - 252,62,0,252,62,0,252,127,64,127,255,192,63,143,128,18, - 23,69,20,1,0,3,224,0,7,112,0,6,48,0,6,48, - 0,7,112,0,3,224,0,0,0,0,15,240,0,63,252,0, - 120,62,0,124,62,0,124,62,0,56,62,0,0,62,0,3, - 254,0,31,190,0,126,62,0,124,62,0,252,62,0,252,62, - 0,252,127,64,127,255,192,63,143,128,26,16,64,28,1,0, - 7,224,248,0,30,123,222,0,56,63,15,0,124,63,15,128, - 124,62,7,128,120,62,7,192,49,254,7,192,15,255,255,192, - 63,255,255,192,126,62,0,0,252,62,0,0,248,63,0,192, - 248,127,1,128,252,239,131,128,127,199,255,0,63,1,252,0, - 15,23,46,17,1,249,3,240,14,60,62,62,124,62,124,62, - 248,28,248,0,248,0,248,0,248,0,252,2,252,6,126,6, - 63,28,31,248,7,240,1,128,3,0,7,192,0,224,0,224, - 13,192,7,128,16,23,46,18,1,0,6,0,15,0,15,128, - 7,192,1,224,0,96,0,0,3,224,14,120,60,60,124,30, - 124,30,248,31,248,31,255,255,255,255,248,0,248,0,252,3, - 124,6,63,14,31,252,7,240,16,23,46,18,1,0,0,48, - 0,120,0,248,1,240,3,192,3,0,0,0,3,224,14,120, - 60,60,124,30,124,30,248,31,248,31,255,255,255,255,248,0, - 248,0,252,3,124,6,63,14,31,252,7,240,16,22,44,18, - 1,0,1,192,3,224,7,240,14,56,24,12,0,0,3,224, - 14,120,60,60,124,30,124,30,248,31,248,31,255,255,255,255, - 248,0,248,0,252,3,124,6,63,14,31,252,7,240,16,23, - 46,18,1,0,12,24,30,60,30,60,30,60,12,24,0,0, - 0,0,3,224,14,120,60,60,124,30,124,30,248,31,248,31, - 255,255,255,255,248,0,248,0,252,3,124,6,63,14,31,252, - 7,240,9,23,46,11,1,0,96,0,240,0,248,0,124,0, - 30,0,6,0,0,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,128,255,128,9,23,46,11,1,0,6,0,15,0, - 31,0,62,0,120,0,96,0,0,0,254,0,254,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,255,128,255,128,11,22,44,11,255,0, - 14,0,31,0,63,128,113,192,192,96,0,0,63,128,63,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,63,224,63,224,11,23,46,11, - 0,0,96,192,241,224,241,224,241,224,96,192,0,0,0,0, - 127,0,127,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,127,192,127,192, - 17,26,78,20,1,0,0,4,0,14,14,0,15,156,0,3, - 248,0,1,240,0,3,248,0,7,120,0,14,60,0,4,62, - 0,0,30,0,3,255,0,15,63,0,60,31,0,124,31,128, - 120,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,124,31,0,124,31,0,62,62,0,15,248, - 0,3,224,0,20,22,66,22,1,0,3,134,0,7,254,0, - 15,252,0,12,56,0,0,0,0,0,0,0,254,62,0,254, - 255,128,63,255,128,63,143,192,63,7,192,63,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,7,192,62,7,192, - 62,7,192,62,7,192,255,159,240,255,159,240,17,23,69,19, - 1,0,6,0,0,15,0,0,15,128,0,7,192,0,1,224, - 0,0,96,0,0,0,0,3,224,0,15,248,0,62,62,0, - 124,31,0,124,31,0,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,124,31,0,124,31,0,62,62, - 0,15,248,0,3,224,0,17,23,69,19,1,0,0,24,0, - 0,60,0,0,124,0,0,248,0,1,224,0,1,128,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,22,66,19,1,0,1,192,0,3,224,0,7,240, - 0,14,56,0,24,12,0,0,0,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,17,22,66,19,1,0, - 3,134,0,7,254,0,15,252,0,12,56,0,0,0,0,0, - 0,0,3,224,0,15,248,0,62,62,0,124,31,0,124,31, - 0,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,124,31,0,124,31,0,62,62,0,15,248,0,3, - 224,0,17,23,69,19,1,0,12,24,0,30,60,0,30,60, - 0,30,60,0,12,24,0,0,0,0,0,0,0,3,224,0, - 15,248,0,62,62,0,124,31,0,124,31,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,124,31, - 0,124,31,0,62,62,0,15,248,0,3,224,0,17,17,51, - 20,2,0,1,192,0,3,224,0,3,224,0,3,224,0,1, - 192,0,0,0,0,255,255,128,255,255,128,255,255,128,255,255, - 128,0,0,0,0,0,0,1,192,0,3,224,0,3,224,0, - 3,224,0,1,192,0,17,22,66,19,1,253,0,2,0,0, - 6,0,0,12,0,3,236,0,15,248,0,62,62,0,124,63, - 0,124,111,0,248,79,128,248,207,128,248,143,128,249,143,128, - 251,15,128,250,15,128,126,31,0,124,31,0,62,62,0,31, - 248,0,27,224,0,48,0,0,48,0,0,32,0,0,20,23, - 69,22,1,0,3,0,0,7,128,0,7,192,0,3,224,0, - 0,240,0,0,48,0,0,0,0,254,31,192,254,31,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,15,192,62,15,192,63,31,192, - 31,255,192,31,247,240,7,199,240,20,23,69,22,1,0,0, - 24,0,0,60,0,0,124,0,0,248,0,1,224,0,1,128, - 0,0,0,0,254,31,192,254,31,192,62,7,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,15,192,62,15,192,63,31,192,31,255,192,31,247, - 240,7,199,240,20,22,66,22,1,0,0,224,0,1,240,0, - 3,248,0,7,28,0,12,6,0,0,0,0,254,31,192,254, - 31,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,7,192,62,7,192,62,15,192,62,15,192, - 63,31,192,31,255,192,31,247,240,7,199,240,20,23,69,22, - 1,0,6,12,0,15,30,0,15,30,0,15,30,0,6,12, - 0,0,0,0,0,0,0,254,31,192,254,31,192,62,7,192, - 62,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,15,192,62,15,192,63,31,192,31,255, - 192,31,247,240,7,199,240,19,30,90,19,0,249,0,12,0, - 0,30,0,0,62,0,0,124,0,0,240,0,0,192,0,0, - 0,0,255,143,224,255,143,224,63,3,128,63,3,128,31,3, - 0,31,135,0,15,134,0,15,198,0,7,204,0,7,236,0, - 3,248,0,3,248,0,1,248,0,1,240,0,0,240,0,0, - 224,0,0,96,0,112,192,0,248,192,0,249,128,0,255,0, - 0,127,0,0,60,0,0,20,29,87,22,0,249,255,0,0, - 255,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 63,0,31,127,192,31,199,224,31,131,224,31,131,240,31,3, - 240,31,3,240,31,1,240,31,1,240,31,1,240,31,3,240, - 31,131,224,31,131,224,31,199,192,31,255,128,31,63,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,127,224, - 0,127,224,0,19,30,90,19,0,249,3,6,0,7,143,0, - 7,143,0,7,143,0,3,6,0,0,0,0,0,0,0,255, - 143,224,255,143,224,63,3,128,63,3,128,31,3,0,31,135, - 0,15,134,0,15,198,0,7,204,0,7,236,0,3,248,0, - 3,248,0,1,248,0,1,240,0,0,240,0,0,224,0,0, - 96,0,112,192,0,248,192,0,249,128,0,255,0,0,127,0, - 0,60,0,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=17 h=25 x= 3 y=10 dx=20 dy= 0 ascent=25 len=72 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24n[868] U8G_FONT_SECTION("u8g_font_ncenB24n") = { - 0,39,53,252,243,24,0,0,0,0,42,58,0,25,251,24, - 0,12,15,30,17,2,10,6,0,14,0,14,0,230,112,230, - 112,246,240,63,192,15,0,127,224,246,240,230,112,230,112,7, - 0,7,0,6,0,16,16,32,20,2,1,3,192,3,192,3, - 192,3,192,3,192,3,192,255,255,255,255,255,255,255,255,3, - 192,3,192,3,192,3,192,3,192,3,192,6,11,11,9,2, - 251,120,248,252,252,252,124,28,24,48,112,224,8,4,4,11, - 1,6,255,255,255,255,6,6,6,9,1,0,120,252,252,252, - 252,120,10,25,50,9,255,0,0,192,1,192,1,192,1,128, - 3,128,3,128,3,0,7,0,7,0,6,0,14,0,14,0, - 12,0,28,0,28,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,224,0,224,0,192,0,16,24,48,19,1,0, - 3,192,15,240,30,120,60,60,124,62,120,30,248,31,248,31, - 248,31,248,31,248,31,248,31,248,31,248,31,248,31,248,31, - 248,31,120,30,120,30,124,62,60,60,30,120,15,240,3,192, - 13,24,48,19,3,0,1,128,7,128,255,128,255,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,255,248,255,248,17,24,72,19,1,0,15,240,0,63, - 252,0,120,126,0,240,63,0,248,31,0,252,31,0,252,31, - 0,252,31,0,124,63,0,56,62,0,0,124,0,0,248,0, - 0,240,0,1,224,0,3,192,0,3,129,128,7,1,128,14, - 1,128,28,3,128,63,255,128,127,255,0,127,255,0,255,255, - 0,255,255,0,16,24,48,19,1,0,15,224,63,248,120,124, - 248,62,252,62,252,62,252,62,120,62,0,124,0,112,7,224, - 7,192,0,248,0,126,0,62,0,63,120,31,252,31,252,31, - 252,63,248,62,120,126,63,248,7,224,17,24,72,19,0,0, - 0,4,0,0,12,0,0,28,0,0,60,0,0,124,0,0, - 252,0,1,252,0,1,252,0,3,124,0,6,124,0,12,124, - 0,28,124,0,56,124,0,112,124,0,224,124,0,192,124,0, - 255,255,128,255,255,128,0,124,0,0,124,0,0,124,0,0, - 124,0,3,255,128,3,255,128,16,24,48,19,1,0,31,255, - 63,254,63,254,63,252,63,240,48,0,48,0,48,0,48,0, - 55,224,63,248,56,124,48,62,32,62,0,31,0,31,56,31, - 124,31,252,31,252,62,120,62,112,252,63,240,15,192,17,24, - 72,19,1,0,3,240,0,15,252,0,31,30,0,62,62,0, - 60,62,0,124,62,0,120,28,0,248,0,0,248,0,0,248, - 0,0,249,248,0,255,254,0,255,127,0,252,31,0,248,31, - 128,248,15,128,248,15,128,248,15,128,248,15,128,124,31,0, - 124,31,0,62,62,0,31,252,0,7,240,0,16,24,48,19, - 2,0,255,255,255,254,255,254,255,252,255,252,192,24,192,24, - 192,56,128,112,0,112,0,240,0,224,1,224,1,224,3,224, - 3,192,7,192,7,192,15,192,15,192,15,192,15,192,15,192, - 7,128,17,24,72,19,1,0,7,240,0,15,252,0,60,62, - 0,56,31,0,120,15,0,120,15,0,120,15,0,124,15,0, - 126,30,0,127,252,0,63,240,0,31,252,0,15,254,0,63, - 255,0,120,127,0,248,31,128,240,15,128,240,15,128,240,15, - 0,240,15,0,248,30,0,124,60,0,63,240,0,7,192,0, - 17,24,72,19,1,0,3,192,0,31,248,0,62,124,0,124, - 62,0,252,31,0,248,31,0,248,15,128,248,15,128,248,15, - 128,252,31,128,252,63,128,127,111,128,63,207,128,31,143,128, - 0,15,128,0,15,128,112,15,0,248,31,0,252,31,0,248, - 30,0,248,62,0,112,252,0,63,240,0,15,192,0,6,16, - 16,9,2,0,120,252,252,252,252,120,0,0,0,0,120,252, - 252,252,252,120}; -/* - Fontname: -Adobe-New Century Schoolbook-Bold-R-Normal--34-240-100-100-P-193-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=32 h=32 x= 8 y=17 dx=32 dy= 0 ascent=26 len=124 - Font Bounding box w=39 h=53 x=-4 y=-13 - Calculated Min Values x=-3 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenB24r[5937] U8G_FONT_SECTION("u8g_font_ncenB24r") = { - 0,39,53,252,243,25,6,143,16,147,32,127,249,26,249,25, - 249,0,0,0,9,1,1,6,25,25,10,2,0,120,252,252, - 252,252,252,252,120,120,120,120,48,48,48,48,48,48,0,0, - 120,252,252,252,252,120,11,11,22,11,0,14,96,192,241,224, - 241,224,241,224,241,224,241,224,241,224,96,192,96,192,96,192, - 96,192,16,25,50,19,1,255,7,28,7,28,7,28,7,28, - 14,56,14,56,14,56,127,255,127,255,127,255,14,56,12,48, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,56,224, - 56,224,56,224,56,224,56,224,56,224,17,30,90,19,1,252, - 1,128,0,1,128,0,1,128,0,7,240,0,31,252,0,57, - 158,0,113,143,0,113,159,0,241,159,0,241,142,0,253,128, - 0,255,128,0,127,240,0,127,252,0,63,254,0,15,255,0, - 1,255,128,1,191,128,113,143,128,249,135,128,249,135,128,249, - 135,0,241,143,0,121,158,0,63,252,0,7,224,0,1,128, - 0,1,128,0,1,128,0,1,128,0,26,24,96,27,0,0, - 0,0,24,0,7,192,48,0,15,96,112,0,30,57,224,0, - 60,31,96,0,60,16,192,0,120,16,128,0,120,17,128,0, - 240,49,0,0,240,35,0,0,240,98,0,0,240,198,31,0, - 123,140,61,128,63,12,120,192,0,24,240,64,0,17,240,64, - 0,49,224,64,0,33,224,192,0,99,224,192,0,195,193,128, - 0,195,193,128,1,131,195,0,1,129,230,0,3,0,252,0, - 24,25,75,28,2,0,0,124,0,1,255,0,3,199,0,7, - 135,128,7,131,128,7,131,128,7,199,128,7,199,0,7,239, - 0,7,252,0,3,248,0,7,241,255,15,249,255,61,248,124, - 120,252,56,120,254,112,248,126,96,248,63,224,252,63,192,252, - 31,193,254,15,227,255,15,243,127,255,254,63,243,254,15,128, - 252,4,11,11,8,2,14,96,240,240,240,240,240,240,96,96, - 96,96,9,27,54,13,2,253,3,128,7,0,14,0,28,0, - 28,0,56,0,56,0,120,0,120,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,240,0,112,0,120,0, - 56,0,56,0,28,0,28,0,14,0,7,0,3,128,9,27, - 54,13,1,253,224,0,48,0,56,0,28,0,28,0,14,0, - 14,0,15,0,7,0,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,15,0,15,0,14,0,14,0, - 28,0,28,0,56,0,112,0,192,0,12,15,30,17,2,10, - 6,0,14,0,14,0,230,112,230,112,246,240,63,192,15,0, - 127,224,246,240,230,112,230,112,7,0,7,0,6,0,16,16, - 32,20,2,1,3,192,3,192,3,192,3,192,3,192,3,192, - 255,255,255,255,255,255,255,255,3,192,3,192,3,192,3,192, - 3,192,3,192,6,11,11,9,2,251,120,248,252,252,252,124, - 28,24,48,112,224,8,4,4,11,1,6,255,255,255,255,6, - 6,6,9,1,0,120,252,252,252,252,120,10,25,50,9,255, - 0,0,192,1,192,1,192,1,128,3,128,3,128,3,0,7, - 0,7,0,6,0,14,0,14,0,12,0,28,0,28,0,24, - 0,56,0,56,0,48,0,112,0,112,0,96,0,224,0,224, - 0,192,0,16,24,48,19,1,0,3,192,15,240,30,120,60, - 60,124,62,120,30,248,31,248,31,248,31,248,31,248,31,248, - 31,248,31,248,31,248,31,248,31,248,31,120,30,120,30,124, - 62,60,60,30,120,15,240,3,192,13,24,48,19,3,0,1, - 128,7,128,255,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,255,248,255,248,17, - 24,72,19,1,0,15,240,0,63,252,0,120,126,0,240,63, - 0,248,31,0,252,31,0,252,31,0,252,31,0,124,63,0, - 56,62,0,0,124,0,0,248,0,0,240,0,1,224,0,3, - 192,0,3,129,128,7,1,128,14,1,128,28,3,128,63,255, - 128,127,255,0,127,255,0,255,255,0,255,255,0,16,24,48, - 19,1,0,15,224,63,248,120,124,248,62,252,62,252,62,252, - 62,120,62,0,124,0,112,7,224,7,192,0,248,0,126,0, - 62,0,63,120,31,252,31,252,31,252,63,248,62,120,126,63, - 248,7,224,17,24,72,19,0,0,0,4,0,0,12,0,0, - 28,0,0,60,0,0,124,0,0,252,0,1,252,0,1,252, - 0,3,124,0,6,124,0,12,124,0,28,124,0,56,124,0, - 112,124,0,224,124,0,192,124,0,255,255,128,255,255,128,0, - 124,0,0,124,0,0,124,0,0,124,0,3,255,128,3,255, - 128,16,24,48,19,1,0,31,255,63,254,63,254,63,252,63, - 240,48,0,48,0,48,0,48,0,55,224,63,248,56,124,48, - 62,32,62,0,31,0,31,56,31,124,31,252,31,252,62,120, - 62,112,252,63,240,15,192,17,24,72,19,1,0,3,240,0, - 15,252,0,31,30,0,62,62,0,60,62,0,124,62,0,120, - 28,0,248,0,0,248,0,0,248,0,0,249,248,0,255,254, - 0,255,127,0,252,31,0,248,31,128,248,15,128,248,15,128, - 248,15,128,248,15,128,124,31,0,124,31,0,62,62,0,31, - 252,0,7,240,0,16,24,48,19,2,0,255,255,255,254,255, - 254,255,252,255,252,192,24,192,24,192,56,128,112,0,112,0, - 240,0,224,1,224,1,224,3,224,3,192,7,192,7,192,15, - 192,15,192,15,192,15,192,15,192,7,128,17,24,72,19,1, - 0,7,240,0,15,252,0,60,62,0,56,31,0,120,15,0, - 120,15,0,120,15,0,124,15,0,126,30,0,127,252,0,63, - 240,0,31,252,0,15,254,0,63,255,0,120,127,0,248,31, - 128,240,15,128,240,15,128,240,15,0,240,15,0,248,30,0, - 124,60,0,63,240,0,7,192,0,17,24,72,19,1,0,3, - 192,0,31,248,0,62,124,0,124,62,0,252,31,0,248,31, - 0,248,15,128,248,15,128,248,15,128,252,31,128,252,63,128, - 127,111,128,63,207,128,31,143,128,0,15,128,0,15,128,112, - 15,0,248,31,0,252,31,0,248,30,0,248,62,0,112,252, - 0,63,240,0,15,192,0,6,16,16,9,2,0,120,252,252, - 252,252,120,0,0,0,0,120,252,252,252,252,120,6,21,21, - 9,2,251,120,252,252,252,252,120,0,0,0,0,120,248,252, - 252,252,124,28,24,48,112,224,16,18,36,20,2,0,0,3, - 0,15,0,127,1,255,7,252,31,240,127,128,254,0,248,0, - 252,0,255,128,63,224,15,248,3,254,0,127,0,31,0,7, - 0,1,16,10,20,20,2,3,255,255,255,255,255,255,255,255, - 0,0,0,0,255,255,255,255,255,255,255,255,16,18,36,20, - 2,0,192,0,240,0,254,0,255,128,63,224,15,248,1,254, - 0,127,0,31,0,63,1,255,7,252,31,240,127,192,254,0, - 248,0,224,0,128,0,14,25,50,16,1,0,15,192,63,240, - 113,248,240,248,248,252,248,252,248,252,112,252,0,248,1,248, - 1,240,3,224,3,128,7,0,7,0,6,0,6,0,0,0, - 0,0,15,0,31,128,31,128,31,128,31,128,15,0,23,25, - 75,25,0,0,0,127,0,1,255,192,7,227,240,15,0,120, - 30,0,28,28,0,12,56,60,6,48,255,230,113,227,230,113, - 227,198,99,195,198,227,131,198,231,135,134,231,135,140,231,7, - 140,231,15,28,231,15,24,227,31,112,115,247,224,48,227,204, - 56,0,28,28,0,120,15,1,240,7,255,224,1,255,0,25, - 25,100,25,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,63,0,0,0,127,0,0,0,127,128, - 0,0,127,128,0,0,255,128,0,0,207,192,0,1,207,192, - 0,1,143,192,0,1,135,224,0,3,135,224,0,3,7,240, - 0,7,3,240,0,7,255,240,0,7,255,248,0,14,1,248, - 0,12,1,252,0,28,0,252,0,28,0,254,0,62,0,254, - 0,255,131,255,128,255,131,255,128,23,25,75,25,1,0,255, - 255,128,255,255,224,31,131,240,31,129,248,31,129,248,31,128, - 252,31,128,252,31,128,252,31,128,248,31,129,248,31,129,240, - 31,135,224,31,255,0,31,255,192,31,131,240,31,128,252,31, - 128,252,31,128,254,31,128,126,31,128,254,31,128,252,31,128, - 252,31,131,248,255,255,240,255,255,192,22,25,75,24,1,0, - 0,126,24,3,255,184,7,193,248,31,128,248,31,0,120,62, - 0,56,126,0,56,126,0,24,254,0,24,252,0,8,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,254,0,0, - 254,0,12,254,0,28,126,0,24,126,0,56,63,0,48,31, - 128,112,15,193,224,7,255,192,0,255,0,24,25,75,26,1, - 0,255,255,0,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,126,31,128,126,31,128,127,31,128,63,31,128,63,31, - 128,63,31,128,63,31,128,63,31,128,63,31,128,63,31,128, - 63,31,128,127,31,128,126,31,128,126,31,128,126,31,128,252, - 31,129,248,31,131,240,255,255,224,255,255,0,21,25,75,23, - 1,0,255,255,248,255,255,248,31,129,248,31,128,248,31,128, - 120,31,128,56,31,128,56,31,134,24,31,134,24,31,142,0, - 31,142,0,31,158,0,31,254,0,31,254,0,31,158,0,31, - 142,0,31,134,24,31,134,24,31,134,24,31,128,56,31,128, - 56,31,128,120,31,129,248,255,255,248,255,255,248,21,25,75, - 23,1,0,255,255,248,255,255,248,31,193,248,31,128,248,31, - 128,120,31,128,56,31,128,24,31,131,24,31,131,24,31,135, - 8,31,135,0,31,159,0,31,255,0,31,255,0,31,143,0, - 31,135,0,31,131,0,31,131,0,31,131,0,31,128,0,31, - 128,0,31,128,0,31,128,0,255,248,0,255,248,0,25,25, - 100,26,1,0,0,126,12,0,3,255,220,0,7,193,252,0, - 15,128,124,0,31,0,60,0,63,0,28,0,126,0,28,0, - 126,0,12,0,254,0,12,0,254,0,4,0,254,0,0,0, - 252,0,0,0,252,0,0,0,252,0,0,0,252,7,255,128, - 252,7,255,128,252,0,124,0,254,0,124,0,126,0,124,0, - 126,0,124,0,63,0,252,0,31,0,252,0,15,129,220,0, - 7,255,28,0,0,252,12,0,26,25,100,28,1,0,255,243, - 255,192,255,243,255,192,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,255, - 254,0,31,255,254,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,31,128,126,0,31,128, - 126,0,31,128,126,0,31,128,126,0,255,243,255,192,255,243, - 255,192,12,25,50,14,1,0,255,240,255,240,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,240,255,240,20,25,75,20,0,0, - 0,255,240,0,255,240,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,24,31,128,126,31,128,126,31,128, - 254,31,128,254,31,128,254,31,128,252,31,0,96,63,0,96, - 62,0,56,254,0,63,248,0,15,224,0,25,25,100,27,1, - 0,255,243,255,128,255,243,255,128,31,128,126,0,31,128,120, - 0,31,128,240,0,31,129,224,0,31,129,192,0,31,131,128, - 0,31,135,0,0,31,143,0,0,31,159,0,0,31,191,128, - 0,31,255,192,0,31,239,192,0,31,239,224,0,31,199,224, - 0,31,135,240,0,31,131,248,0,31,129,248,0,31,129,252, - 0,31,128,252,0,31,128,254,0,31,128,255,0,255,243,255, - 128,255,243,255,128,21,25,75,23,1,0,255,240,0,255,240, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,24,31,128, - 24,31,128,24,31,128,56,31,128,56,31,128,120,31,129,248, - 255,255,248,255,255,248,31,25,100,32,0,0,127,224,7,254, - 127,240,15,254,15,240,15,240,15,240,15,240,13,248,27,240, - 13,248,27,240,13,248,27,240,12,252,59,240,12,252,51,240, - 12,252,51,240,12,124,115,240,12,126,99,240,12,126,99,240, - 12,62,227,240,12,63,195,240,12,63,195,240,12,31,195,240, - 12,31,131,240,12,31,131,240,12,15,131,240,12,15,3,240, - 12,15,3,240,30,15,3,240,255,198,31,254,255,198,31,254, - 27,25,100,27,0,0,255,128,127,224,255,192,127,224,63,224, - 15,0,15,224,6,0,15,240,6,0,15,248,6,0,15,252, - 6,0,13,254,6,0,12,254,6,0,12,255,6,0,12,127, - 134,0,12,63,198,0,12,31,230,0,12,15,230,0,12,15, - 246,0,12,7,254,0,12,3,254,0,12,1,254,0,12,0, - 254,0,12,0,126,0,12,0,126,0,12,0,62,0,30,0, - 30,0,255,192,14,0,255,192,6,0,24,25,75,26,1,0, - 0,126,0,3,255,192,15,193,240,31,128,248,63,0,252,62, - 0,124,126,0,126,126,0,126,252,0,63,252,0,63,252,0, - 63,252,0,63,252,0,63,252,0,63,252,0,63,252,0,63, - 252,0,63,126,0,126,126,0,126,62,0,124,63,0,252,31, - 128,248,15,193,240,3,255,192,0,126,0,22,25,75,24,1, - 0,255,255,128,255,255,224,31,131,240,31,129,248,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 129,248,31,131,240,31,255,224,31,255,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,240,0,255,240,0,25,31,124,26, - 1,250,0,126,0,0,3,255,192,0,15,193,240,0,31,128, - 248,0,63,0,252,0,62,0,124,0,126,0,126,0,126,0, - 126,0,252,0,63,0,252,0,63,0,252,0,63,0,252,0, - 63,0,252,0,63,0,252,0,63,0,252,0,63,0,252,60, - 63,0,252,254,63,0,127,135,126,0,127,131,254,0,63,3, - 252,0,63,3,252,0,31,131,248,0,15,195,240,0,3,255, - 224,0,0,127,224,0,0,3,225,128,0,3,225,128,0,1, - 243,128,0,1,255,0,0,0,254,0,0,0,60,0,25,25, - 100,27,1,0,255,255,128,0,255,255,240,0,31,131,248,0, - 31,129,248,0,31,128,252,0,31,128,252,0,31,128,252,0, - 31,128,252,0,31,128,252,0,31,129,248,0,31,129,240,0, - 31,135,192,0,31,255,0,0,31,255,192,0,31,135,224,0, - 31,131,224,0,31,131,240,0,31,131,240,0,31,131,240,0, - 31,131,249,128,31,129,249,128,31,129,251,0,31,129,255,0, - 255,240,254,0,255,240,124,0,19,25,75,21,1,0,3,240, - 192,31,253,192,60,31,192,120,7,192,112,3,192,240,1,192, - 240,0,192,248,0,192,255,0,192,255,240,0,127,254,0,127, - 255,0,63,255,128,15,255,192,7,255,224,64,127,224,96,7, - 224,96,3,224,112,1,224,120,1,224,120,1,192,126,3,192, - 127,7,128,103,255,0,97,252,0,21,25,75,23,1,0,255, - 255,248,255,255,248,241,248,120,225,248,56,225,248,56,193,248, - 24,193,248,24,193,248,24,129,248,8,129,248,8,1,248,0, - 1,248,0,1,248,0,1,248,0,1,248,0,1,248,0,1, - 248,0,1,248,0,1,248,0,1,248,0,1,248,0,1,248, - 0,1,248,0,15,255,128,15,255,128,26,25,100,28,1,0, - 255,240,255,192,255,240,255,192,31,128,30,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,12,0, - 31,128,12,0,31,128,12,0,31,128,12,0,31,128,28,0, - 15,192,24,0,15,224,56,0,7,248,240,0,3,255,224,0, - 0,255,192,0,25,25,100,25,0,0,255,224,255,128,255,224, - 255,128,63,128,62,0,31,128,28,0,31,128,28,0,31,192, - 24,0,15,192,56,0,15,192,48,0,7,224,112,0,7,224, - 112,0,7,240,96,0,3,240,224,0,3,240,192,0,1,248, - 192,0,1,249,192,0,1,249,128,0,0,255,128,0,0,255, - 0,0,0,255,0,0,0,127,0,0,0,126,0,0,0,62, - 0,0,0,62,0,0,0,60,0,0,0,28,0,0,32,25, - 100,32,0,0,255,223,249,255,255,223,249,255,63,7,224,124, - 63,7,224,56,31,131,224,48,31,131,240,112,31,131,240,112, - 15,193,240,96,15,195,248,96,15,195,248,224,7,195,248,192, - 7,231,248,192,7,230,252,192,7,230,253,128,3,254,125,128, - 3,252,127,128,3,252,127,128,1,252,63,0,1,248,63,0, - 1,248,63,0,0,248,62,0,0,248,30,0,0,240,30,0, - 0,112,28,0,0,112,12,0,24,25,75,24,0,0,255,227, - 255,255,227,255,63,128,252,31,192,120,31,192,112,15,224,224, - 7,224,192,7,241,192,3,255,128,3,255,0,1,255,0,0, - 254,0,0,254,0,0,127,0,0,127,128,0,255,128,1,223, - 192,3,143,224,3,143,224,7,7,240,14,3,240,30,3,248, - 63,3,252,255,239,255,255,239,255,24,25,75,24,0,0,255, - 241,255,255,241,255,63,128,124,31,192,56,31,192,112,15,224, - 112,15,224,224,7,240,192,3,241,192,3,249,128,1,251,128, - 1,255,0,0,255,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,0,126,0,0,126,0,0,126, - 0,0,126,0,3,255,192,3,255,192,19,25,75,21,1,0, - 127,255,224,127,255,224,126,15,224,120,15,224,112,31,192,112, - 31,128,96,63,128,96,127,0,64,126,0,0,254,0,1,252, - 0,1,252,0,3,248,0,3,240,0,7,240,0,15,224,32, - 15,224,96,31,192,96,31,128,96,63,128,224,127,0,224,127, - 1,224,254,7,224,255,255,224,255,255,224,8,29,29,13,3, - 252,255,255,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,255,255,16,25, - 50,20,2,0,240,0,248,0,120,0,124,0,60,0,62,0, - 30,0,31,0,15,0,15,128,7,128,7,192,3,192,3,224, - 1,224,1,240,0,240,0,248,0,120,0,124,0,60,0,62, - 0,30,0,30,0,15,8,29,29,13,1,252,255,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,255,255,16,14,28,20,2,11,3, - 192,7,224,7,224,15,240,15,240,15,240,30,120,30,120,60, - 60,60,60,124,62,120,30,248,31,240,15,16,3,6,16,0, - 251,255,255,255,255,255,255,7,6,6,11,2,17,96,240,248, - 124,30,6,18,16,48,20,1,0,15,240,0,63,252,0,120, - 126,0,124,62,0,124,62,0,56,62,0,0,62,0,3,254, - 0,31,190,0,126,62,0,124,62,0,252,62,0,252,62,0, - 252,127,64,127,255,192,63,143,128,19,25,75,21,0,0,255, - 0,0,255,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,63,0,31,255,128, - 31,207,192,31,135,192,31,3,224,31,3,224,31,3,224,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 192,31,143,128,29,255,0,24,124,0,15,16,32,17,1,0, - 3,240,15,252,62,62,124,62,124,62,248,28,248,0,248,0, - 248,0,248,0,252,2,252,6,126,6,63,28,31,248,7,224, - 20,25,75,22,1,0,0,127,128,0,127,128,0,31,128,0, - 15,128,0,15,128,0,15,128,0,15,128,0,15,128,0,15, - 128,15,207,128,31,239,128,62,63,128,124,31,128,120,31,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,31,128,124,31,128,124,127,128,63,239,240,15,143, - 240,16,16,32,18,1,0,3,224,15,248,60,60,120,30,120, - 30,248,31,248,31,255,255,255,255,248,0,248,0,252,3,124, - 6,63,14,31,252,7,240,15,25,50,13,0,0,0,240,3, - 252,7,158,15,62,15,62,31,28,31,0,31,0,31,0,255, - 240,255,240,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,255,224,255,224,20, - 25,75,20,1,249,0,1,224,0,3,240,7,255,240,31,124, - 224,62,62,0,124,31,0,124,31,0,124,31,0,124,31,0, - 124,31,0,62,62,0,31,126,0,31,248,0,124,0,0,248, - 0,0,255,252,0,255,255,0,63,255,0,31,255,128,127,255, - 128,240,7,128,240,7,128,248,15,0,127,254,0,15,240,0, - 20,25,75,22,1,0,254,0,0,254,0,0,62,0,0,62, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,62,0,62,255,128,63,255,128,63,143,192,63,7,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,255,159,240,255,159, - 240,9,25,50,12,2,0,28,0,62,0,62,0,62,0,28, - 0,0,0,0,0,0,0,0,0,254,0,254,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,255,128,12,32,64,12,253,249,0, - 224,1,240,1,240,1,240,0,224,0,0,0,0,0,0,0, - 0,7,240,7,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,113,240,249,224,249,224,251,192,127,128,30,0,20, - 25,75,22,1,0,254,0,0,254,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,63,224,62,63,224,62,15,0,62,14,0,62,60,0,62, - 112,0,62,248,0,63,252,0,63,254,0,63,126,0,62,63, - 0,62,31,128,62,31,192,62,15,224,255,191,240,255,191,240, - 10,25,50,12,1,0,254,0,254,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,255,192,255,192,29,16,64,31,1,0,254,126, - 31,0,254,255,63,192,63,255,255,192,63,159,231,224,63,15, - 195,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,62,15,131,224,62,15,131,224,62,15, - 131,224,62,15,131,224,255,191,239,248,255,191,239,248,20,16, - 48,22,1,0,254,62,0,254,255,128,63,255,128,63,143,192, - 63,7,192,62,7,192,62,7,192,62,7,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,255,159, - 240,255,159,240,17,16,48,19,1,0,3,224,0,15,248,0, - 62,62,0,124,31,0,124,31,0,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,124,31,0,124,31, - 0,62,62,0,15,248,0,3,224,0,19,23,69,21,1,249, - 254,126,0,254,255,128,63,143,192,63,7,192,63,7,224,62, - 3,224,62,3,224,62,3,224,62,3,224,62,3,224,62,3, - 224,63,7,192,63,7,192,63,143,128,63,255,0,62,126,0, - 62,0,0,62,0,0,62,0,0,62,0,0,62,0,0,255, - 128,0,255,128,0,20,23,69,20,1,249,7,225,128,31,249, - 128,62,31,128,124,31,128,124,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,124,31,128,124, - 31,128,62,63,128,31,239,128,7,207,128,0,15,128,0,15, - 128,0,15,128,0,15,128,0,15,128,0,127,240,0,127,240, - 15,16,32,16,1,0,252,124,252,254,61,254,61,190,63,62, - 62,28,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,255,192,255,192,14,16,32,16,1,0,15,216,60,248, - 112,56,240,24,254,8,255,192,255,240,127,248,63,248,15,252, - 192,252,192,60,224,56,248,120,255,240,207,192,12,23,46,14, - 1,0,6,0,6,0,14,0,14,0,14,0,30,0,62,0, - 255,224,255,224,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,48,62,48,62,48,62,96,63,224,31,192,15,128, - 20,16,48,22,1,0,254,31,192,254,31,192,62,7,192,62, - 7,192,62,7,192,62,7,192,62,7,192,62,7,192,62,7, - 192,62,7,192,62,15,192,62,15,192,63,31,192,31,255,192, - 31,247,240,7,199,240,19,16,48,19,0,0,255,143,224,255, - 143,224,63,3,192,63,3,128,31,3,0,31,135,0,15,134, - 0,15,198,0,7,204,0,7,236,0,3,248,0,3,248,0, - 1,248,0,1,240,0,0,240,0,0,224,0,27,16,64,29, - 1,0,255,191,239,224,255,191,239,224,126,31,131,192,62,15, - 131,128,63,15,131,0,31,15,195,0,31,143,198,0,15,159, - 230,0,15,155,230,0,15,251,236,0,7,241,252,0,7,241, - 248,0,3,225,248,0,3,224,240,0,1,192,240,0,1,192, - 96,0,19,16,48,19,0,0,255,223,224,255,223,224,63,7, - 0,31,142,0,31,220,0,15,248,0,7,240,0,3,240,0, - 1,248,0,3,252,0,7,254,0,14,126,0,28,63,0,60, - 63,128,255,127,224,255,127,224,19,23,69,19,0,249,255,143, - 224,255,143,224,63,3,128,63,3,128,31,3,0,31,135,0, - 15,134,0,15,198,0,7,204,0,7,236,0,3,248,0,3, - 248,0,1,248,0,1,240,0,0,240,0,0,224,0,0,96, - 0,112,192,0,248,192,0,249,128,0,255,0,0,127,0,0, - 60,0,0,14,16,32,16,1,0,127,252,127,252,112,252,97, - 248,97,248,67,240,7,224,7,224,15,192,31,128,31,12,63, - 12,126,28,124,28,255,252,255,252,8,30,30,13,3,252,3, - 14,28,60,60,60,60,60,60,60,60,60,60,56,240,248,60, - 60,60,60,60,60,60,60,60,60,60,28,14,3,4,25,25, - 20,8,0,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,28,28,13, - 1,253,224,120,60,60,60,60,60,60,60,60,60,60,28,15, - 31,60,60,60,60,60,60,60,60,60,60,60,120,224,16,6, - 12,20,2,6,14,4,63,142,127,255,255,254,113,252,32,112, - 255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=11 x= 2 y= 6 dx=12 dy= 0 ascent=11 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent =11 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08[2642] U8G_FONT_SECTION("u8g_font_ncenR08") = { - 0,14,18,254,252,8,1,180,3,120,32,255,254,11,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,0,0,0,3,0,1,1,8,8,4,1,254,128,128, - 0,128,128,128,128,128,5,7,7,6,0,255,16,120,168,160, - 200,112,64,6,8,8,7,0,0,56,72,64,248,32,32,68, - 248,6,6,6,7,0,1,132,120,72,72,120,132,7,8,8, - 8,0,0,198,68,40,108,16,124,16,56,1,8,8,6,2, - 0,128,128,128,0,0,128,128,128,4,10,10,5,0,254,112, - 144,128,96,144,144,96,16,144,224,3,1,1,4,0,6,160, - 9,8,16,10,0,0,62,0,65,0,156,128,164,128,160,128, - 156,128,65,0,62,0,4,6,6,5,0,2,224,32,96,176, - 0,240,5,3,3,6,0,1,72,144,72,5,3,3,6,0, - 1,248,8,8,3,1,1,4,0,2,224,9,8,16,10,0, - 0,62,0,65,0,188,128,148,128,152,128,182,128,65,0,62, - 0,4,1,1,5,0,6,240,3,4,4,4,0,4,64,160, - 160,64,5,5,5,6,0,0,32,248,32,0,248,3,4,4, - 3,0,4,96,160,64,224,3,4,4,3,0,4,224,64,32, - 192,2,2,2,3,0,6,64,128,5,7,7,6,0,254,144, - 144,144,144,232,128,128,6,10,10,7,0,254,124,168,168,168, - 104,40,40,40,40,124,1,2,2,4,1,2,128,128,2,3, - 3,3,0,254,128,64,192,3,4,4,3,0,4,64,192,64, - 224,4,6,6,5,0,2,96,144,144,96,0,240,5,3,3, - 6,0,1,144,72,144,7,8,8,7,0,0,72,200,80,240, - 36,44,94,68,6,8,8,7,0,0,72,200,80,240,44,52, - 72,92,7,8,8,7,0,0,232,72,48,208,36,44,94,68, - 4,8,8,5,0,254,32,32,0,32,64,128,144,96,7,11, - 11,8,0,0,32,16,0,16,16,40,40,68,124,68,238,7, - 11,11,8,0,0,8,16,0,16,16,40,40,68,124,68,238, - 7,11,11,8,0,0,16,40,0,16,16,40,40,68,124,68, - 238,7,11,11,8,0,0,20,40,0,16,16,40,40,68,124, - 68,238,7,10,10,8,0,0,40,0,16,16,40,40,68,124, - 68,238,7,11,11,8,0,0,16,40,16,16,16,40,40,68, - 124,68,238,10,8,16,11,0,0,31,192,12,64,21,64,23, - 0,61,0,36,64,68,64,231,192,6,10,10,7,0,254,60, - 68,128,128,128,128,68,56,16,48,6,11,11,7,0,0,32, - 16,0,252,68,84,112,80,68,68,252,6,11,11,7,0,0, - 8,16,0,252,68,84,112,80,68,68,252,6,11,11,7,0, - 0,16,40,0,252,68,84,112,80,68,68,252,6,10,10,7, - 0,0,40,0,252,68,84,112,80,68,68,252,3,11,11,4, - 0,0,128,64,0,224,64,64,64,64,64,64,224,3,11,11, - 4,0,0,32,64,0,224,64,64,64,64,64,64,224,3,11, - 11,4,0,0,64,160,0,224,64,64,64,64,64,64,224,3, - 10,10,4,0,0,160,0,224,64,64,64,64,64,64,224,7, - 8,8,8,0,0,248,68,66,226,66,66,68,248,8,11,11, - 9,0,0,20,40,0,231,98,82,82,74,74,70,230,7,11, - 11,8,0,0,32,16,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,8,16,0,56,68,130,130,130,130,68,56, - 7,11,11,8,0,0,16,40,0,56,68,130,130,130,130,68, - 56,7,11,11,8,0,0,20,40,0,56,68,130,130,130,130, - 68,56,7,10,10,8,0,0,40,0,56,68,130,130,130,130, - 68,56,5,5,5,6,0,0,136,80,32,80,136,8,8,8, - 8,255,0,29,34,69,73,81,97,98,156,7,11,11,8,0, - 0,32,16,0,238,68,68,68,68,68,68,56,7,11,11,8, - 0,0,8,16,0,238,68,68,68,68,68,68,56,7,11,11, - 8,0,0,16,40,0,238,68,68,68,68,68,68,56,7,10, - 10,8,0,0,40,0,238,68,68,68,68,68,68,56,7,11, - 11,8,0,0,8,16,0,198,68,40,40,16,16,16,56,6, - 8,8,7,0,0,192,120,68,68,68,120,64,224,6,8,8, - 7,0,0,48,72,72,88,68,68,84,216,5,8,8,6,0, - 0,64,32,0,96,144,112,144,248,5,8,8,6,0,0,32, - 64,0,96,144,112,144,248,5,8,8,6,0,0,32,80,0, - 96,144,112,144,248,5,8,8,6,0,0,80,160,0,96,144, - 112,144,248,5,7,7,6,0,0,80,0,96,144,112,144,248, - 5,8,8,6,0,0,32,80,32,96,144,112,144,248,7,5, - 5,8,0,0,108,146,126,144,238,4,7,7,5,0,254,112, - 144,128,144,96,32,96,4,8,8,5,0,0,64,32,0,96, - 144,240,128,112,4,8,8,5,0,0,32,64,0,96,144,240, - 128,112,4,8,8,5,0,0,32,80,0,96,144,240,128,112, - 4,7,7,5,0,0,80,0,96,144,240,128,112,3,8,8, - 4,0,0,128,64,0,192,64,64,64,224,3,8,8,4,0, - 0,32,64,0,192,64,64,64,224,3,8,8,4,0,0,64, - 160,0,192,64,64,64,224,3,7,7,4,0,0,160,0,192, - 64,64,64,224,4,8,8,5,0,0,80,96,160,96,144,144, - 144,96,6,8,8,7,0,0,40,80,0,176,72,72,72,236, - 4,8,8,5,0,0,64,32,0,96,144,144,144,96,4,8, - 8,5,0,0,32,64,0,96,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,7,7,5,0,0,80,0, - 96,144,144,144,96,5,5,5,6,0,0,32,0,248,0,32, - 5,6,6,5,0,255,104,144,176,208,96,128,5,8,8,6, - 0,0,64,32,0,144,144,144,144,104,5,8,8,6,0,0, - 32,64,0,144,144,144,144,104,5,8,8,6,0,0,32,80, - 0,144,144,144,144,104,5,7,7,6,0,0,80,0,144,144, - 144,144,104,6,10,10,6,0,254,16,32,0,220,136,80,80, - 32,32,192,5,10,10,5,255,254,192,64,64,112,72,72,72, - 112,64,224,6,9,9,6,0,254,80,0,220,136,80,80,32, - 32,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--11-80-100-100-P-60-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w=11 h=10 x= 2 y= 6 dx=12 dy= 0 ascent= 9 len=16 - Font Bounding box w=14 h=18 x=-2 y=-4 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR08r[1266] U8G_FONT_SECTION("u8g_font_ncenR08r") = { - 0,14,18,254,252,8,1,180,3,120,32,127,254,9,254,8, - 254,0,0,0,3,0,1,1,8,8,4,1,0,128,128,128, - 128,128,0,128,128,3,3,3,6,1,5,160,160,160,7,8, - 8,8,0,0,20,20,126,40,40,252,80,80,4,10,10,5, - 0,255,32,112,160,160,96,80,80,80,224,64,8,8,8,9, - 0,0,100,148,152,104,22,25,41,38,9,8,16,10,0,0, - 48,0,72,0,80,0,38,0,84,0,136,0,140,128,115,0, - 1,3,3,4,1,5,128,128,128,3,9,9,4,0,255,32, - 64,64,128,128,128,64,64,32,3,9,9,4,0,255,128,64, - 64,32,32,32,64,64,128,5,5,5,6,0,3,32,168,112, - 168,32,5,5,5,6,0,0,32,32,248,32,32,2,3,3, - 3,0,254,64,64,128,3,1,1,4,0,2,224,1,2,2, - 4,1,0,128,128,3,9,9,4,0,255,32,32,32,64,64, - 64,128,128,128,4,8,8,5,0,0,96,144,144,144,144,144, - 144,96,3,8,8,5,1,0,64,192,64,64,64,64,64,224, - 4,8,8,5,0,0,96,144,144,16,32,64,144,240,4,8, - 8,5,0,0,96,144,16,96,16,144,144,96,5,8,8,5, - 0,0,16,48,80,80,144,248,16,56,4,8,8,5,0,0, - 240,128,128,224,16,16,144,96,4,8,8,5,0,0,112,144, - 128,224,144,144,144,96,4,8,8,5,0,0,240,144,32,32, - 32,64,64,64,4,8,8,5,0,0,96,144,144,96,144,144, - 144,96,4,8,8,5,0,0,96,144,144,144,112,16,144,224, - 1,5,5,4,1,0,128,128,0,128,128,2,6,6,4,0, - 255,64,64,0,64,64,128,6,5,5,7,0,0,12,48,192, - 48,12,5,3,3,6,0,1,248,0,248,6,5,5,7,0, - 0,192,48,12,48,192,4,8,8,5,0,0,96,144,16,32, - 64,0,64,64,8,10,10,9,0,255,60,66,129,157,165,173, - 182,128,64,60,7,8,8,8,0,0,16,16,40,40,68,124, - 68,238,6,8,8,7,0,0,248,68,68,120,68,68,68,248, - 6,8,8,7,0,0,60,68,128,128,128,128,68,56,7,8, - 8,8,0,0,248,68,66,66,66,66,68,248,6,8,8,7, - 0,0,252,68,84,112,80,68,68,252,6,8,8,7,0,0, - 252,68,84,112,80,64,64,224,7,8,8,8,0,0,60,68, - 128,128,142,132,68,56,8,8,8,9,0,0,231,66,66,126, - 66,66,66,231,3,8,8,4,0,0,224,64,64,64,64,64, - 64,224,4,8,8,5,0,0,112,32,32,32,32,160,160,192, - 7,8,8,8,0,0,230,68,72,80,112,72,68,238,6,8, - 8,7,0,0,224,64,64,64,64,68,68,252,9,8,16,10, - 0,0,193,128,99,0,99,0,85,0,85,0,85,0,73,0, - 235,128,8,8,8,9,0,0,231,98,82,82,74,74,70,230, - 7,8,8,8,0,0,56,68,130,130,130,130,68,56,6,8, - 8,7,0,0,248,68,68,68,120,64,64,224,7,9,9,8, - 0,255,56,68,130,130,130,178,76,56,6,7,8,8,8,0, - 0,248,68,68,72,120,68,68,198,5,8,8,6,0,0,120, - 136,128,224,24,8,136,240,7,8,8,8,0,0,254,146,146, - 16,16,16,16,56,7,8,8,8,0,0,238,68,68,68,68, - 68,68,56,7,8,8,8,0,0,238,68,68,68,40,40,16, - 16,11,8,16,12,0,0,238,224,68,64,68,64,42,128,42, - 128,42,128,17,0,17,0,6,8,8,7,0,0,204,72,72, - 48,48,72,72,204,7,8,8,8,0,0,198,68,40,40,16, - 16,16,56,5,8,8,6,0,0,248,136,144,32,32,72,136, - 248,2,9,9,3,0,255,192,128,128,128,128,128,128,128,192, - 4,8,8,5,0,0,128,128,64,64,32,32,16,16,2,9, - 9,3,0,255,192,64,64,64,64,64,64,64,192,5,6,6, - 6,0,2,32,32,80,80,136,136,6,1,1,6,0,254,252, - 2,2,2,3,0,6,128,64,5,5,5,6,0,0,96,144, - 112,144,248,5,8,8,5,255,0,192,64,64,112,72,72,72, - 112,4,5,5,5,0,0,112,144,128,144,96,5,8,8,6, - 0,0,48,16,16,112,144,144,144,120,4,5,5,5,0,0, - 96,144,240,128,112,4,8,8,4,0,0,48,80,64,224,64, - 64,64,224,5,7,7,6,0,254,120,144,160,64,120,136,112, - 6,8,8,6,255,0,192,64,64,112,72,72,72,236,3,7, - 7,4,0,0,64,0,192,64,64,64,224,2,9,9,4,0, - 254,64,0,192,64,64,64,64,64,128,6,8,8,7,0,0, - 192,64,64,88,80,112,72,236,3,8,8,4,0,0,192,64, - 64,64,64,64,64,224,9,5,10,10,0,0,182,0,73,0, - 73,0,73,0,237,128,6,5,5,7,0,0,176,72,72,72, - 236,4,5,5,5,0,0,96,144,144,144,96,4,7,7,5, - 0,254,96,144,144,144,224,128,192,5,7,7,6,0,254,104, - 144,144,144,112,16,56,4,5,5,5,0,0,208,96,64,64, - 224,4,5,5,5,0,0,112,128,96,16,224,3,7,7,3, - 0,0,128,128,192,128,128,128,96,5,5,5,6,0,0,144, - 144,144,144,104,6,5,5,6,0,0,220,136,80,80,32,8, - 5,5,8,0,0,147,170,170,68,68,5,5,5,6,0,0, - 216,80,32,80,216,6,7,7,6,0,254,220,136,80,80,32, - 32,192,4,5,5,5,0,0,240,32,64,128,240,3,9,9, - 4,0,255,32,64,64,64,128,64,64,64,32,1,8,8,6, - 2,0,128,128,128,128,128,128,128,128,3,9,9,4,0,255, - 128,64,64,64,32,64,64,64,128,6,2,2,7,0,2,100, - 152,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=14 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10[3813] U8G_FONT_SECTION("u8g_font_ncenR10") = { - 0,18,24,254,250,11,2,24,5,38,32,255,253,14,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,4,0,1,1,11,11,4,1, - 253,128,128,0,128,128,128,128,128,128,128,128,6,11,11,8, - 1,254,4,4,120,204,144,144,160,228,120,128,128,7,11,11, - 8,0,0,60,98,70,64,32,252,16,16,96,178,206,7,7, - 7,8,0,2,186,68,130,130,130,68,186,9,11,22,8,0, - 0,227,128,65,0,34,0,34,0,20,0,20,0,62,0,8, - 0,62,0,8,0,28,0,1,11,11,9,4,0,128,128,128, - 128,0,0,128,128,128,128,128,5,13,13,7,1,254,120,136, - 128,192,112,152,136,200,112,24,8,136,240,4,2,2,6,1, - 8,144,144,12,11,22,14,1,0,15,0,48,192,79,32,89, - 32,144,16,144,16,152,144,79,32,64,32,48,192,15,0,5, - 7,7,6,0,4,96,144,112,144,248,0,248,6,5,5,7, - 0,1,36,72,144,72,36,7,4,4,9,0,1,254,2,2, - 2,4,1,1,5,0,3,240,12,11,22,14,1,0,15,0, - 48,192,94,32,73,32,137,16,142,16,139,16,89,160,64,32, - 48,192,15,0,5,1,1,5,0,8,248,4,4,4,6,1, - 7,96,144,144,96,7,7,7,9,1,0,16,16,254,16,16, - 0,254,4,6,6,5,0,5,96,144,32,64,144,240,4,6, - 6,5,0,5,96,144,32,16,144,96,3,3,3,5,1,8, - 32,64,128,8,10,10,9,0,253,231,66,66,66,66,102,123, - 64,96,64,7,13,13,9,1,254,126,212,212,212,212,116,20, - 20,20,20,20,20,62,2,2,2,4,1,3,192,192,3,4, - 4,5,0,253,64,64,32,192,3,6,6,5,1,5,64,192, - 64,64,64,224,4,7,7,5,0,4,96,144,144,144,96,0, - 240,6,5,5,7,0,1,144,72,36,72,144,10,11,22,12, - 0,0,65,0,193,0,66,0,66,0,68,0,228,128,9,128, - 18,128,20,128,39,192,32,128,10,11,22,12,0,0,65,0, - 193,0,66,0,66,0,68,0,229,128,10,64,16,128,17,0, - 34,64,35,192,10,11,22,12,0,0,97,0,145,0,34,0, - 18,0,148,0,100,128,9,128,18,128,20,128,39,192,32,128, - 5,11,11,6,0,253,32,32,0,32,32,32,64,128,136,200, - 112,11,14,28,10,255,0,8,0,4,0,0,0,4,0,4, - 0,10,0,10,0,10,0,17,0,17,0,63,128,32,128,32, - 128,251,224,11,14,28,10,255,0,2,0,4,0,0,0,4, - 0,4,0,10,0,10,0,10,0,17,0,17,0,63,128,32, - 128,32,128,251,224,11,14,28,10,255,0,4,0,10,0,17, - 0,4,0,4,0,10,0,10,0,10,0,17,0,17,0,63, - 128,32,128,32,128,251,224,11,14,28,10,255,0,12,128,19, - 0,0,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,13,26,10,255,0,17, - 0,17,0,4,0,4,0,10,0,10,0,10,0,17,0,17, - 0,63,128,32,128,32,128,251,224,11,14,28,10,255,0,12, - 0,18,0,12,0,4,0,4,0,10,0,10,0,10,0,17, - 0,17,0,63,128,32,128,32,128,251,224,14,11,22,15,0, - 0,15,252,5,4,9,4,9,32,17,32,17,224,63,32,33, - 32,65,4,65,4,227,252,9,14,28,11,1,253,30,128,97, - 128,64,128,192,128,128,0,128,0,128,0,192,128,64,128,97, - 0,30,0,8,0,4,0,24,0,9,14,28,10,0,0,16, - 0,8,0,0,0,255,128,32,128,32,128,36,0,36,0,60, - 0,36,0,36,0,32,128,32,128,255,128,9,14,28,10,0, - 0,4,0,8,0,0,0,255,128,32,128,32,128,36,0,36, - 0,60,0,36,0,36,0,32,128,32,128,255,128,9,14,28, - 10,0,0,12,0,18,0,0,0,255,128,32,128,32,128,36, - 0,36,0,60,0,36,0,36,0,32,128,32,128,255,128,9, - 14,28,10,0,0,18,0,18,0,0,0,255,128,32,128,32, - 128,36,0,36,0,60,0,36,0,36,0,32,128,32,128,255, - 128,5,14,14,6,0,0,64,32,0,248,32,32,32,32,32, - 32,32,32,32,248,5,14,14,6,0,0,16,32,0,248,32, - 32,32,32,32,32,32,32,32,248,5,14,14,6,0,0,48, - 72,0,248,32,32,32,32,32,32,32,32,32,248,5,14,14, - 6,0,0,80,80,0,248,32,32,32,32,32,32,32,32,32, - 248,10,11,22,11,0,0,255,0,32,128,32,192,32,64,32, - 64,248,64,32,64,32,64,32,192,32,128,255,0,12,14,28, - 13,0,0,12,128,19,0,0,0,225,240,48,64,48,64,40, - 64,44,64,38,64,35,64,33,64,32,192,32,64,248,64,10, - 14,28,11,0,0,8,0,4,0,0,0,30,0,97,128,64, - 128,192,192,128,64,128,64,128,64,192,192,64,128,97,128,30, - 0,10,14,28,11,0,0,2,0,4,0,0,0,30,0,97, - 128,64,128,192,192,128,64,128,64,128,64,192,192,64,128,97, - 128,30,0,10,14,28,11,0,0,12,0,18,0,0,0,30, - 0,97,128,64,128,192,192,128,64,128,64,128,64,192,192,64, - 128,97,128,30,0,10,14,28,11,0,0,25,0,38,0,0, - 0,30,0,97,128,64,128,192,192,128,64,128,64,128,64,192, - 192,64,128,97,128,30,0,10,14,28,11,0,0,18,0,18, - 0,0,0,30,0,97,128,64,128,192,192,128,64,128,64,128, - 64,192,192,64,128,97,128,30,0,7,7,7,9,1,0,130, - 68,40,16,40,68,130,11,11,22,11,255,0,15,32,48,192, - 32,192,97,96,66,32,68,32,72,32,112,96,32,64,112,192, - 143,0,12,14,28,13,0,0,8,0,4,0,0,0,249,240, - 32,64,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 48,128,31,0,12,14,28,13,0,0,1,0,2,0,0,0, - 249,240,32,64,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,48,128,31,0,12,14,28,13,0,0,6,0,9,0, - 0,0,249,240,32,64,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,48,128,31,0,12,14,28,13,0,0,9,0, - 9,0,0,0,249,240,32,64,32,64,32,64,32,64,32,64, - 32,64,32,64,32,64,48,128,31,0,11,14,28,10,255,0, - 2,0,4,0,0,0,251,224,96,128,49,0,17,0,26,0, - 10,0,4,0,4,0,4,0,4,0,31,0,9,11,22,10, - 0,0,248,0,32,0,63,0,33,128,32,128,32,128,33,0, - 62,0,32,0,32,0,248,0,7,11,11,8,0,0,56,100, - 68,76,88,68,66,66,66,86,220,7,11,11,8,0,0,32, - 16,8,0,56,76,4,60,196,140,118,7,11,11,8,0,0, - 8,16,32,0,56,76,4,60,196,140,118,7,11,11,8,0, - 0,16,40,68,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,50,76,0,56,76,4,60,196,140,118,7,10,10,8, - 0,0,72,72,0,56,76,4,60,196,140,118,7,11,11,8, - 0,0,48,72,48,0,56,76,4,60,196,140,118,11,7,14, - 12,0,0,59,192,78,96,4,32,63,224,196,0,142,32,115, - 192,6,10,10,7,0,253,120,204,128,128,128,196,120,32,16, - 96,6,11,11,7,0,0,64,32,16,0,120,204,132,252,128, - 196,120,6,11,11,7,0,0,8,16,32,0,120,204,132,252, - 128,196,120,6,11,11,7,0,0,16,40,68,0,120,204,132, - 252,128,196,120,6,10,10,7,0,0,72,72,0,120,204,132, - 252,128,196,120,3,11,11,4,0,0,128,64,32,0,192,64, - 64,64,64,64,224,3,11,11,4,0,0,32,64,128,0,192, - 64,64,64,64,64,224,5,11,11,4,255,0,32,80,136,0, - 96,32,32,32,32,32,112,4,10,10,4,255,0,144,144,0, - 96,32,32,32,32,32,112,7,11,11,7,255,0,76,48,208, - 8,60,102,66,66,66,102,60,8,10,10,9,0,0,50,76, - 0,220,102,66,66,66,66,231,6,11,11,7,0,0,64,32, - 16,0,120,204,132,132,132,204,120,6,11,11,7,0,0,16, - 32,64,0,120,204,132,132,132,204,120,6,11,11,7,0,0, - 32,80,136,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,100,152,0,120,204,132,132,132,204,120,6,10,10,7,0, - 0,72,72,0,120,204,132,132,132,204,120,7,7,7,9,1, - 0,16,16,0,254,0,16,16,6,9,9,7,0,255,8,120, - 220,148,164,164,204,120,64,8,11,11,9,0,0,32,16,8, - 0,231,66,66,66,66,102,59,8,11,11,9,0,0,2,4, - 8,0,231,66,66,66,66,102,59,8,11,11,9,0,0,8, - 20,34,0,231,66,66,66,66,102,59,8,10,10,9,0,0, - 36,36,0,231,66,66,66,66,102,59,7,14,14,8,0,253, - 4,8,16,0,238,68,68,40,40,16,16,32,160,192,7,14, - 14,8,0,253,192,64,64,64,92,102,66,66,66,102,92,64, - 64,224,7,13,13,8,0,253,72,72,0,238,68,68,40,40, - 16,16,32,160,192}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--14-100-100-100-P-82-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=14 x= 4 y= 8 dx=16 dy= 0 ascent=12 len=33 - Font Bounding box w=18 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR10r[1781] U8G_FONT_SECTION("u8g_font_ncenR10r") = { - 0,18,24,254,250,11,2,24,5,38,32,127,253,12,253,11, - 253,0,0,0,4,0,1,1,11,11,3,1,0,128,128,128, - 128,128,128,128,128,0,128,128,3,4,4,5,1,7,160,160, - 160,160,8,11,11,8,0,0,18,18,18,127,36,36,36,254, - 72,72,72,6,14,14,8,1,254,32,120,164,172,160,224,120, - 28,20,212,148,120,16,16,11,11,22,12,0,0,51,0,77, - 0,138,0,138,0,148,0,100,192,9,32,10,32,18,32,18, - 64,33,128,11,11,22,13,1,0,28,0,50,0,34,0,52, - 0,24,0,57,224,76,128,135,0,131,32,197,192,120,192,1, - 4,4,3,1,7,128,128,128,128,4,13,13,5,0,254,16, - 32,64,64,128,128,128,128,128,64,64,32,16,4,13,13,6, - 1,254,128,64,32,32,16,16,16,16,16,32,32,64,128,5, - 5,5,7,1,6,32,168,112,168,32,7,7,7,9,1,0, - 16,16,16,254,16,16,16,2,4,4,4,0,254,192,64,64, - 128,4,1,1,5,0,3,240,1,2,2,4,1,0,128,128, - 4,11,11,4,0,0,16,16,16,32,32,32,64,64,64,128, - 128,6,11,11,8,1,0,120,204,132,132,132,132,132,132,132, - 204,120,5,11,11,8,1,0,32,224,32,32,32,32,32,32, - 32,32,248,6,11,11,8,1,0,120,140,196,4,4,8,16, - 32,68,132,252,6,11,11,8,1,0,120,140,196,4,8,56, - 12,4,196,140,120,7,11,11,8,0,0,12,28,20,36,68, - 68,132,254,4,4,14,6,11,11,8,1,0,252,128,128,184, - 204,132,4,4,196,140,120,6,11,11,8,1,0,56,68,140, - 128,184,204,132,132,132,204,120,6,11,11,8,1,0,252,132, - 136,8,16,16,16,32,32,32,32,6,11,11,8,1,0,120, - 204,132,196,104,120,140,132,132,204,120,6,11,11,8,1,0, - 120,204,132,132,132,204,116,4,196,136,112,1,7,7,4,1, - 0,128,128,0,0,0,128,128,2,9,9,4,0,254,64,64, - 0,0,0,192,64,64,128,8,7,7,10,1,0,3,12,48, - 192,48,12,3,7,4,4,9,1,2,254,0,0,254,8,7, - 7,10,1,0,192,48,12,3,12,48,192,5,11,11,6,0, - 0,112,152,136,8,16,32,32,32,0,32,32,12,11,22,13, - 0,0,31,224,32,16,70,144,137,144,144,144,145,16,145,16, - 147,48,141,192,64,16,63,224,11,11,22,10,255,0,4,0, - 4,0,10,0,10,0,10,0,17,0,17,0,63,128,32,128, - 32,128,251,224,9,11,22,10,0,0,254,0,35,0,33,0, - 33,0,34,0,63,0,33,128,32,128,32,128,33,128,255,0, - 9,11,22,11,1,0,30,128,97,128,64,128,192,128,128,0, - 128,0,128,0,192,128,64,128,97,0,30,0,10,11,22,11, - 0,0,255,0,32,128,32,192,32,64,32,64,32,64,32,64, - 32,64,32,192,32,128,255,0,9,11,22,10,0,0,255,128, - 32,128,32,128,36,0,36,0,60,0,36,0,36,0,32,128, - 32,128,255,128,9,11,22,10,0,0,255,128,32,128,32,128, - 36,0,36,0,60,0,36,0,36,0,32,0,32,0,248,0, - 10,11,22,11,0,0,30,128,97,128,64,128,192,128,128,0, - 128,0,135,192,192,128,64,128,97,128,30,128,11,11,22,12, - 0,0,251,224,32,128,32,128,32,128,32,128,63,128,32,128, - 32,128,32,128,32,128,251,224,5,11,11,6,0,0,248,32, - 32,32,32,32,32,32,32,32,248,7,11,11,7,0,0,62, - 8,8,8,8,8,8,200,136,136,112,11,11,22,11,0,0, - 251,192,33,0,34,0,36,0,40,0,56,0,52,0,38,0, - 35,0,33,128,251,224,9,11,22,10,0,0,248,0,32,0, - 32,0,32,0,32,0,32,0,32,0,32,0,32,128,32,128, - 255,128,15,11,22,16,0,0,240,30,48,24,40,40,40,40, - 44,72,36,72,38,136,34,136,35,136,33,8,249,62,12,11, - 22,13,0,0,225,240,48,64,56,64,40,64,44,64,38,64, - 35,64,33,64,33,192,32,192,248,64,10,11,22,11,0,0, - 30,0,97,128,64,128,192,192,128,64,128,64,128,64,192,192, - 64,128,97,128,30,0,9,11,22,10,0,0,255,0,33,128, - 32,128,32,128,33,0,62,0,32,0,32,0,32,0,32,0, - 248,0,11,13,26,11,0,254,30,0,97,128,64,128,192,192, - 128,64,128,64,128,64,220,192,98,128,99,128,31,0,1,32, - 0,192,11,11,22,11,0,0,255,0,33,128,32,128,32,128, - 33,0,62,0,35,0,33,0,33,32,33,160,248,192,7,11, - 11,8,0,0,122,198,130,130,224,56,14,130,130,198,188,9, - 11,22,10,0,0,255,128,136,128,136,128,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,62,0,12,11,22,13,0, - 0,249,240,32,64,32,64,32,64,32,64,32,64,32,64,32, - 64,32,64,48,128,31,0,11,11,22,10,255,0,251,224,32, - 128,48,128,17,0,17,0,25,0,10,0,10,0,10,0,4, - 0,4,0,17,11,33,16,255,0,251,239,128,32,131,0,48, - 194,0,17,194,0,17,68,0,25,100,0,11,40,0,10,40, - 0,14,56,0,6,16,0,4,16,0,12,11,22,13,0,0, - 253,240,48,64,24,128,13,0,5,0,6,0,11,0,9,0, - 17,128,32,192,251,240,11,11,22,10,255,0,251,224,96,128, - 49,0,17,0,26,0,10,0,4,0,4,0,4,0,4,0, - 31,0,8,11,11,9,0,0,255,131,134,12,8,24,48,32, - 97,193,255,3,13,13,4,0,254,224,128,128,128,128,128,128, - 128,128,128,128,128,224,6,11,11,8,1,0,128,128,64,64, - 32,32,16,16,8,8,4,3,13,13,4,0,254,224,32,32, - 32,32,32,32,32,32,32,32,32,224,5,6,6,7,1,5, - 32,32,80,80,136,136,7,1,1,7,0,254,254,3,3,3, - 5,1,8,128,64,32,7,7,7,8,0,0,56,76,4,60, - 196,140,118,7,11,11,7,255,0,192,64,64,64,92,102,66, - 66,66,102,92,6,7,7,7,0,0,120,204,128,128,128,196, - 120,7,11,11,8,0,0,12,4,4,4,116,204,132,132,132, - 204,118,6,7,7,7,0,0,120,204,132,252,128,196,120,5, - 11,11,5,0,0,56,72,64,64,240,64,64,64,64,64,224, - 7,10,10,8,0,253,118,204,132,204,120,128,124,198,130,124, - 8,11,11,9,0,0,192,64,64,64,92,102,66,66,66,66, - 231,3,10,10,4,0,0,64,64,0,192,64,64,64,64,64, - 224,3,13,13,4,255,253,32,32,0,96,32,32,32,32,32, - 32,32,160,192,8,11,11,9,0,0,192,64,64,64,94,72, - 80,120,76,70,239,3,11,11,4,0,0,192,64,64,64,64, - 64,64,64,64,64,224,13,7,14,14,0,0,220,224,103,48, - 66,16,66,16,66,16,66,16,231,56,8,7,7,9,0,0, - 220,102,66,66,66,66,231,6,7,7,7,0,0,120,204,132, - 132,132,204,120,7,10,10,8,0,253,220,102,66,66,66,102, - 92,64,64,224,7,10,10,7,0,253,116,204,132,132,132,204, - 116,4,4,14,6,7,7,7,0,0,220,100,64,64,64,64, - 224,5,7,7,6,0,0,120,136,192,112,24,136,240,5,9, - 9,5,0,0,64,64,240,64,64,64,64,72,48,8,7,7, - 9,0,0,231,66,66,66,66,102,59,7,7,7,8,0,0, - 238,68,68,40,40,16,16,11,7,14,12,0,0,238,224,68, - 64,68,64,42,128,42,128,17,0,17,0,7,7,7,8,0, - 0,206,100,56,16,56,76,230,7,10,10,8,0,253,238,68, - 68,40,40,16,16,32,160,192,6,7,7,7,0,0,252,140, - 152,48,100,196,252,3,13,13,4,0,254,32,64,64,64,64, - 64,128,64,64,64,64,64,32,1,11,11,9,4,0,128,128, - 128,128,128,128,128,128,128,128,128,3,13,13,5,1,254,128, - 64,64,64,64,64,32,64,64,64,64,64,128,7,2,2,9, - 1,3,114,140,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y= 9 dx=17 dy= 0 ascent=16 len=32 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =16 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12[4247] U8G_FONT_SECTION("u8g_font_ncenR12") = { - 0,21,26,253,250,12,2,59,5,140,32,255,253,16,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,1,1,2,12, - 12,5,1,253,192,192,0,64,64,64,64,192,192,192,192,192, - 6,12,12,9,1,254,4,4,56,76,204,144,144,228,100,56, - 64,64,9,12,24,9,0,0,30,0,49,0,35,0,35,0, - 48,0,16,0,254,0,16,0,16,0,112,128,191,0,78,0, - 7,8,8,9,1,2,186,108,198,130,130,198,108,186,9,12, - 24,9,0,0,243,128,97,0,34,0,50,0,20,0,20,0, - 62,0,8,0,62,0,8,0,8,0,62,0,1,12,12,10, - 4,0,128,128,128,128,128,0,0,128,128,128,128,128,6,15, - 15,8,1,253,56,72,64,96,48,88,140,132,196,104,48,24, - 8,72,112,5,2,2,5,0,9,216,216,12,12,24,12,0, - 0,31,128,48,192,71,32,205,176,152,144,144,16,144,16,152, - 144,205,176,71,32,48,192,31,128,5,7,7,6,0,5,224, - 144,112,144,232,0,240,6,5,5,7,0,1,36,72,216,72, - 36,8,5,5,10,1,1,255,1,1,1,1,4,1,1,5, - 0,3,240,12,12,24,12,0,0,31,128,48,192,95,32,201, - 176,137,144,143,16,137,16,137,144,200,176,92,224,48,192,31, - 128,5,1,1,5,0,9,248,5,5,5,7,1,7,112,136, - 136,136,112,7,9,9,10,1,0,16,16,16,254,16,16,16, - 0,254,5,7,7,6,0,5,112,216,136,16,32,72,248,5, - 7,7,6,0,5,112,216,136,48,136,216,112,3,3,3,5, - 0,9,32,96,128,10,11,22,10,0,253,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,125,192,96,0,96,0,96, - 0,8,15,15,10,0,253,127,234,202,202,202,234,122,10,10, - 10,10,10,10,10,31,2,2,2,5,1,3,192,192,3,4, - 4,5,1,253,64,64,32,192,3,7,7,6,1,5,64,192, - 64,64,64,64,224,4,7,7,5,0,5,96,144,144,144,96, - 0,240,6,5,5,7,0,1,144,72,108,72,144,11,12,24, - 14,1,0,64,64,192,192,65,128,65,0,66,0,70,64,236, - 192,9,64,18,64,51,224,96,64,64,224,11,12,24,13,1, - 0,64,128,193,128,67,0,66,0,68,0,77,192,251,96,18, - 32,32,192,97,0,195,32,131,224,13,12,24,14,0,0,112, - 24,216,48,136,96,48,192,136,128,217,144,115,48,6,80,4, - 144,12,248,24,16,48,56,7,12,12,7,0,253,24,24,0, - 16,16,48,96,192,196,206,100,56,11,16,32,12,0,0,24, - 0,12,0,2,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 16,32,12,0,0,3,0,6,0,8,0,0,0,4,0,4, - 0,14,0,14,0,22,0,19,0,19,0,63,128,33,128,65, - 128,64,192,243,224,11,16,32,12,0,0,4,0,14,0,17, - 0,0,0,4,0,4,0,14,0,14,0,22,0,19,0,19, - 0,63,128,33,128,65,128,64,192,243,224,11,15,30,12,0, - 0,29,0,46,0,0,0,4,0,4,0,14,0,14,0,22, - 0,19,0,19,0,63,128,33,128,65,128,64,192,243,224,11, - 15,30,12,0,0,18,0,18,0,0,0,4,0,4,0,14, - 0,14,0,22,0,19,0,19,0,63,128,33,128,65,128,64, - 192,243,224,11,16,32,12,0,0,12,0,18,0,12,0,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,16,12,24,17,0,0,15, - 255,2,195,2,193,4,193,4,200,8,248,8,216,31,201,16, - 193,32,193,32,195,251,255,10,15,30,12,1,253,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,8,0,4,0,24,0,10,16,32,12,0, - 0,24,0,12,0,2,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,10,16,32,12,0,0,3,0,6,0,8,0,0,0,255, - 192,48,192,48,64,48,64,50,0,62,0,54,0,50,0,48, - 64,48,64,48,192,255,192,10,16,32,12,0,0,4,0,14, - 0,17,0,0,0,255,192,48,192,48,64,48,64,50,0,62, - 0,54,0,50,0,48,64,48,64,48,192,255,192,10,15,30, - 12,0,0,17,0,17,0,0,0,255,192,48,192,48,64,48, - 64,50,0,62,0,54,0,50,0,48,64,48,64,48,192,255, - 192,6,16,16,7,0,0,192,96,16,0,252,48,48,48,48, - 48,48,48,48,48,48,252,6,16,16,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,252,6,16,16, - 7,0,0,32,112,136,0,252,48,48,48,48,48,48,48,48, - 48,48,252,6,15,15,7,0,0,72,72,0,252,48,48,48, - 48,48,48,48,48,48,48,252,12,12,24,13,0,0,255,0, - 49,192,48,96,48,96,48,48,124,48,48,48,48,48,48,96, - 48,96,49,192,255,0,13,15,30,13,0,0,14,64,19,128, - 0,0,240,248,56,32,60,32,44,32,46,32,39,32,35,160, - 33,160,32,224,32,224,32,96,248,32,11,16,32,13,1,0, - 24,0,12,0,2,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,16,32,13,1,0,1,128,3,0,4,0,0,0,14,0, - 49,128,96,192,96,192,192,96,192,96,192,96,192,96,96,192, - 96,192,49,128,14,0,11,16,32,13,1,0,4,0,14,0, - 17,0,0,0,14,0,49,128,96,192,96,192,192,96,192,96, - 192,96,192,96,96,192,96,192,49,128,14,0,11,15,30,13, - 1,0,14,128,23,0,0,0,14,0,49,128,96,192,96,192, - 192,96,192,96,192,96,192,96,96,192,96,192,49,128,14,0, - 11,15,30,13,1,0,17,0,17,0,0,0,14,0,49,128, - 96,192,96,192,192,96,192,96,192,96,192,96,96,192,96,192, - 49,128,14,0,8,8,8,10,1,0,129,66,36,24,24,36, - 66,129,11,14,28,13,1,255,0,32,14,64,49,128,97,192, - 97,64,194,96,196,96,196,96,200,96,80,192,112,192,49,128, - 78,0,128,0,13,16,32,13,0,0,12,0,6,0,1,0, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,13,16,32,13,0,0, - 0,192,1,128,2,0,0,0,252,248,48,32,48,32,48,32, - 48,32,48,32,48,32,48,32,48,32,48,32,24,64,15,128, - 13,16,32,13,0,0,2,0,7,0,8,128,0,0,252,248, - 48,32,48,32,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,24,64,15,128,13,15,30,13,0,0,8,128,8,128, - 0,0,252,248,48,32,48,32,48,32,48,32,48,32,48,32, - 48,32,48,32,48,32,24,64,15,128,12,16,32,12,0,0, - 1,128,3,0,4,0,0,0,252,240,48,64,24,128,24,128, - 13,0,13,0,6,0,6,0,6,0,6,0,6,0,31,128, - 11,12,24,11,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,192,63,128,48,0,48,0,252,0,8,12, - 12,10,1,0,60,102,99,99,102,124,102,99,99,99,118,236, - 7,12,12,9,1,0,64,96,16,0,120,204,204,28,108,204, - 204,118,7,12,12,9,1,0,4,12,16,0,120,204,204,28, - 108,204,204,118,7,12,12,9,1,0,16,56,68,0,120,204, - 204,28,108,204,204,118,7,11,11,9,1,0,52,88,0,120, - 204,204,28,108,204,204,118,7,11,11,9,1,0,72,72,0, - 120,204,204,28,108,204,204,118,7,13,13,9,1,0,48,72, - 72,48,0,120,204,204,28,108,204,204,118,12,8,16,13,0, - 0,121,192,206,32,198,48,31,240,102,0,198,16,207,32,121, - 192,6,11,11,7,0,253,56,108,204,192,192,196,108,56,32, - 16,96,7,12,12,8,0,0,32,48,8,0,56,68,198,254, - 192,192,102,60,7,12,12,8,0,0,4,12,16,0,56,68, - 198,254,192,192,102,60,7,12,12,8,0,0,16,56,68,0, - 56,68,198,254,192,192,102,60,7,11,11,8,0,0,36,36, - 0,56,68,198,254,192,192,102,60,4,12,12,5,0,0,128, - 192,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,16,48,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,4, - 11,11,5,0,0,144,144,0,224,96,96,96,96,96,96,240, - 7,13,13,8,0,0,64,38,24,104,12,60,110,198,198,198, - 198,108,56,9,11,22,10,0,0,26,0,44,0,0,0,238, - 0,115,0,99,0,99,0,99,0,99,0,99,0,247,128,7, - 12,12,8,0,0,64,96,16,0,56,108,198,198,198,198,108, - 56,7,12,12,8,0,0,4,12,16,0,56,108,198,198,198, - 198,108,56,7,12,12,8,0,0,16,56,68,0,56,108,198, - 198,198,198,108,56,7,11,11,8,0,0,52,88,0,56,108, - 198,198,198,198,108,56,7,11,11,8,0,0,72,72,0,56, - 108,198,198,198,198,108,56,8,7,7,10,1,1,24,24,0, - 255,0,24,24,7,10,10,8,0,255,2,60,100,206,214,214, - 230,76,120,128,9,12,24,10,0,0,32,0,48,0,8,0, - 0,0,231,0,99,0,99,0,99,0,99,0,99,0,99,0, - 61,128,9,12,24,10,0,0,2,0,6,0,8,0,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,61,128, - 9,12,24,10,0,0,8,0,28,0,34,0,0,0,231,0, - 99,0,99,0,99,0,99,0,99,0,99,0,61,128,9,11, - 22,10,0,0,36,0,36,0,0,0,231,0,99,0,99,0, - 99,0,99,0,99,0,99,0,61,128,8,15,15,9,0,253, - 2,6,8,0,247,98,54,52,28,24,8,24,16,208,224,8, - 14,14,9,0,253,224,96,96,124,102,99,99,99,99,102,124, - 96,96,240,8,14,14,9,0,253,36,36,0,247,98,54,52, - 28,24,8,24,16,208,224}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--17-120-100-100-P-91-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 12, '1' Height: 12 - Calculated Max Values w=15 h=15 x= 4 y= 9 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=21 h=26 x=-3 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =12 descent=-3 - X Font ascent =12 descent=-3 - Max Font ascent =13 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR12r[1976] U8G_FONT_SECTION("u8g_font_ncenR12r") = { - 0,21,26,253,250,12,2,59,5,140,32,127,253,13,253,12, - 253,0,0,0,4,1,1,2,12,12,5,1,0,192,192,192, - 192,192,128,128,128,128,0,192,192,4,4,4,6,1,8,144, - 144,144,144,8,12,12,9,0,0,18,18,18,18,127,36,36, - 254,72,72,72,72,7,15,15,9,1,254,16,16,60,82,150, - 150,240,124,30,210,210,148,120,16,16,12,12,24,14,1,0, - 56,128,103,128,69,0,197,0,138,0,138,224,117,144,5,16, - 11,16,10,32,18,32,17,192,12,12,24,13,0,0,30,0, - 51,0,49,0,51,0,26,0,28,240,44,96,102,64,198,128, - 195,144,231,144,124,224,1,4,4,3,1,8,128,128,128,128, - 4,14,14,6,1,254,16,32,64,64,128,128,128,128,128,128, - 64,64,32,16,4,14,14,6,0,254,128,64,32,32,16,16, - 16,16,16,16,32,32,64,128,7,7,7,8,0,5,16,84, - 214,56,214,84,16,7,9,9,10,1,0,16,16,16,16,254, - 16,16,16,16,2,5,5,4,1,253,192,192,64,64,128,4, - 1,1,5,0,3,240,2,2,2,4,1,0,192,192,5,12, - 12,5,0,0,8,8,16,16,16,32,32,64,64,64,128,128, - 8,12,12,9,0,0,60,102,66,195,195,195,195,195,195,66, - 102,60,6,12,12,9,1,0,16,240,48,48,48,48,48,48, - 48,48,48,252,7,12,12,9,1,0,56,68,134,198,198,12, - 8,16,34,66,254,254,7,12,12,9,1,0,120,140,198,198, - 12,56,12,6,198,198,140,120,8,12,12,9,0,0,4,12, - 28,44,44,76,76,140,255,12,12,63,7,12,12,9,1,0, - 126,120,64,64,120,204,134,6,198,198,140,120,8,12,12,9, - 0,0,60,102,70,192,192,252,230,195,195,195,102,60,7,12, - 12,9,1,0,254,254,132,132,8,8,16,16,16,48,48,48, - 8,12,12,9,0,0,60,102,66,98,118,60,110,199,195,195, - 102,60,8,12,12,9,0,0,60,102,195,195,195,103,63,3, - 3,98,102,56,2,8,8,4,1,0,192,192,0,0,0,0, - 192,192,2,11,11,4,1,253,192,192,0,0,0,0,192,192, - 64,64,128,8,8,8,10,1,0,3,12,48,192,192,48,12, - 3,8,4,4,10,1,2,255,0,0,255,8,8,8,10,0, - 0,192,48,12,3,3,12,48,192,7,12,12,7,0,0,56, - 76,230,70,6,12,24,16,16,0,48,48,13,13,26,12,255, - 255,7,128,24,96,32,16,70,208,77,144,152,144,153,144,145, - 32,155,32,76,200,64,16,48,96,15,128,11,12,24,12,0, - 0,4,0,4,0,14,0,14,0,22,0,19,0,19,0,63, - 128,33,128,65,128,64,192,243,224,11,12,24,12,0,0,255, - 128,49,192,48,192,48,192,49,128,63,192,48,224,48,96,48, - 96,48,96,48,192,255,128,10,12,24,12,1,0,31,64,112, - 192,96,64,224,64,192,64,192,0,192,0,192,0,224,64,96, - 64,112,128,31,0,12,12,24,13,0,0,255,0,49,192,48, - 96,48,96,48,48,48,48,48,48,48,48,48,96,48,96,49, - 192,255,0,10,12,24,12,0,0,255,192,48,192,48,64,50, - 64,50,0,62,0,54,0,50,0,50,64,48,64,48,192,255, - 192,10,12,24,11,0,0,255,192,48,192,48,64,50,64,50, - 0,62,0,54,0,50,0,50,0,48,0,48,0,252,0,11, - 12,24,13,1,0,31,64,112,192,96,64,224,64,192,64,192, - 0,195,224,192,192,224,192,96,192,113,192,30,64,13,12,24, - 14,0,0,253,248,48,96,48,96,48,96,48,96,63,224,48, - 96,48,96,48,96,48,96,48,96,253,248,6,12,12,7,0, - 0,252,48,48,48,48,48,48,48,48,48,48,252,9,12,24, - 9,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,70,0,230,0,198,0,132,0,120,0,12,12,24,13,0, - 0,253,240,48,192,48,128,49,0,50,0,54,0,59,0,51, - 128,49,128,48,192,48,224,253,240,10,12,24,11,0,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,64,48, - 64,48,64,48,192,255,192,15,12,24,16,0,0,248,62,56, - 56,56,56,44,88,44,88,46,88,38,152,38,152,35,152,35, - 24,35,24,249,62,13,12,24,13,0,0,240,248,56,32,60, - 32,44,32,46,32,39,32,35,160,33,160,32,224,32,224,32, - 96,248,32,11,12,24,13,1,0,14,0,49,128,96,192,96, - 192,192,96,192,96,192,96,192,96,96,192,96,192,49,128,14, - 0,11,12,24,11,0,0,255,128,48,192,48,96,48,96,48, - 96,48,192,63,128,48,0,48,0,48,0,48,0,252,0,11, - 15,30,13,1,253,14,0,49,128,96,192,96,192,192,96,192, - 96,192,96,204,96,82,64,115,192,51,128,15,0,3,64,3, - 64,1,128,12,12,24,12,0,0,255,0,48,192,48,96,48, - 96,48,192,63,0,51,128,48,192,48,192,48,208,48,208,252, - 96,8,12,12,10,1,0,61,99,193,193,224,124,62,135,131, - 131,198,188,10,12,24,11,0,0,255,192,204,192,140,64,140, - 64,140,64,12,0,12,0,12,0,12,0,12,0,12,0,63, - 0,13,12,24,13,0,0,252,248,48,32,48,32,48,32,48, - 32,48,32,48,32,48,32,48,32,48,32,24,64,15,128,11, - 12,24,12,0,0,248,224,112,64,48,64,48,128,24,128,25, - 0,25,0,13,0,14,0,14,0,4,0,4,0,15,12,24, - 16,0,0,247,206,99,4,99,4,49,136,49,136,57,200,26, - 208,26,208,10,80,12,96,4,32,4,32,11,12,24,11,0, - 0,241,224,96,192,48,128,25,0,30,0,12,0,6,0,15, - 0,19,0,33,128,96,192,241,224,12,12,24,12,0,0,252, - 240,48,64,24,128,24,128,13,0,13,0,6,0,6,0,6, - 0,6,0,6,0,31,128,9,12,24,10,0,0,127,128,97, - 128,67,0,67,0,6,0,12,0,12,0,24,128,48,128,48, - 128,97,128,255,128,3,14,14,6,1,254,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,12,12,10,2,0,128, - 128,64,64,32,32,16,16,8,8,4,4,3,14,14,6,1, - 254,224,32,32,32,32,32,32,32,32,32,32,32,32,224,8, - 7,7,10,1,5,24,24,60,36,102,66,195,8,1,1,8, - 0,254,255,3,3,3,5,0,9,128,64,32,7,8,8,9, - 1,0,120,204,204,28,108,204,204,118,8,12,12,9,0,0, - 224,96,96,96,124,102,99,99,99,99,102,92,6,8,8,7, - 0,0,56,108,204,192,192,192,108,56,8,12,12,10,1,0, - 14,6,6,6,62,102,198,198,198,198,102,59,7,8,8,8, - 0,0,56,68,198,254,192,192,102,60,6,12,12,6,0,0, - 56,108,96,96,248,96,96,96,96,96,96,248,9,11,22,9, - 0,253,61,128,102,128,102,0,102,0,102,0,60,0,64,0, - 126,0,195,0,195,0,126,0,9,12,24,10,0,0,224,0, - 96,0,96,0,96,0,110,0,119,0,99,0,99,0,99,0, - 99,0,99,0,247,128,4,12,12,5,0,0,96,96,0,0, - 224,96,96,96,96,96,96,240,4,15,15,5,255,253,48,48, - 0,0,112,48,48,48,48,48,48,48,48,176,224,9,12,24, - 10,0,0,224,0,96,0,96,0,96,0,111,128,102,0,108, - 0,120,0,124,0,102,0,99,0,247,128,4,12,12,5,0, - 0,224,96,96,96,96,96,96,96,96,96,96,240,14,8,16, - 15,0,0,238,112,115,152,99,24,99,24,99,24,99,24,99, - 24,247,188,9,8,16,10,0,0,238,0,115,0,99,0,99, - 0,99,0,99,0,99,0,247,128,7,8,8,8,0,0,56, - 108,198,198,198,198,108,56,8,11,11,9,0,253,220,102,99, - 99,99,99,102,124,96,96,240,8,11,11,9,0,253,57,102, - 198,198,198,198,102,62,6,6,15,7,8,8,7,0,0,236, - 118,102,96,96,96,96,240,6,8,8,8,0,0,116,204,196, - 112,56,140,204,184,6,11,11,7,0,0,32,32,96,248,96, - 96,96,96,100,100,56,9,8,16,10,0,0,231,0,99,0, - 99,0,99,0,99,0,99,0,99,0,61,128,9,8,16,9, - 0,0,247,128,99,0,50,0,54,0,28,0,28,0,8,0, - 8,0,13,8,16,13,0,0,239,120,102,48,51,32,51,96, - 29,192,29,192,8,128,8,128,8,8,8,9,0,0,247,98, - 52,56,28,44,70,239,8,11,11,9,0,253,247,98,54,52, - 28,28,8,8,24,208,224,6,8,8,8,1,0,252,140,152, - 48,48,100,196,252,3,14,14,6,1,254,32,64,64,64,64, - 64,128,64,64,64,64,64,64,32,1,12,12,10,4,0,128, - 128,128,128,128,128,128,128,128,128,128,128,3,14,14,6,1, - 254,128,64,64,64,64,64,32,64,64,64,64,64,64,128,8, - 2,2,10,1,3,115,206,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=19 x= 4 y=11 dx=19 dy= 0 ascent=19 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =19 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14[5319] U8G_FONT_SECTION("u8g_font_ncenR14") = { - 0,27,30,252,249,14,3,41,7,30,32,255,252,19,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,0,0,0,5,0,1,2,14,14,5, - 1,252,192,192,0,0,64,64,64,192,192,192,192,192,192,192, - 8,13,13,10,1,254,2,2,30,103,203,200,200,208,208,115, - 62,32,32,10,14,28,11,0,0,15,0,25,128,49,128,48, - 0,48,0,24,0,255,128,12,0,12,0,12,0,12,0,120, - 64,158,64,247,128,9,9,18,12,1,3,156,128,255,128,99, - 0,193,128,193,128,193,128,99,0,255,128,156,128,14,14,28, - 15,0,0,252,124,48,16,24,32,24,32,12,64,12,64,6, - 128,31,224,3,0,3,0,31,224,3,0,3,0,15,192,2, - 14,14,10,4,0,192,192,192,192,192,0,0,0,192,192,192, - 192,192,192,8,17,17,9,0,253,60,102,70,64,96,120,62, - 79,195,227,122,60,14,6,98,102,60,6,2,2,7,0,10, - 204,204,14,14,28,15,0,0,7,128,24,96,32,16,71,136, - 72,200,144,68,144,4,144,4,144,4,72,72,71,136,32,16, - 24,96,7,128,6,8,8,7,0,6,112,136,56,200,152,108, - 0,252,8,7,7,9,0,2,17,51,102,204,102,51,17,9, - 5,10,10,0,3,255,128,0,128,0,128,0,128,0,128,5, - 1,1,6,0,5,248,14,14,28,15,0,0,7,128,24,96, - 32,16,79,136,68,200,132,68,132,196,135,132,132,132,68,72, - 78,104,32,16,24,96,7,128,6,1,1,7,0,10,252,6, - 6,6,7,0,8,120,204,132,132,204,120,9,9,18,10,0, - 1,8,0,8,0,8,0,255,128,8,0,8,0,8,0,0, - 0,255,128,6,8,8,6,0,6,120,204,140,24,48,96,196, - 252,6,8,8,6,0,6,120,204,140,56,12,140,204,120,4, - 3,3,6,1,11,48,96,128,10,13,26,11,0,252,227,192, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,125,192, - 64,0,64,0,96,0,96,0,10,17,34,11,0,253,63,192, - 233,0,201,0,201,0,201,0,201,0,233,0,57,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,9,0,63,192, - 2,2,2,5,1,5,192,192,4,4,4,6,0,252,64,112, - 16,224,6,8,8,6,0,6,48,240,48,48,48,48,48,252, - 5,8,8,6,0,6,112,216,136,136,216,112,0,248,8,7, - 7,9,0,2,136,204,102,51,102,204,136,15,14,28,15,0, - 0,48,32,240,32,48,64,48,64,48,128,48,128,49,24,253, - 56,2,40,2,88,4,152,4,254,8,24,8,60,14,14,28, - 15,0,0,48,32,240,32,48,64,48,64,48,128,48,128,49, - 120,253,204,2,140,2,24,4,48,4,96,8,196,8,252,15, - 14,28,15,0,0,120,32,204,32,140,64,56,64,12,128,140, - 128,205,24,121,56,2,40,2,88,4,152,4,254,8,24,8, - 60,7,14,14,8,0,252,24,24,0,0,16,16,32,32,64, - 192,192,198,230,120,14,18,36,13,255,0,12,0,6,0,1, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,14, - 18,36,13,255,0,0,192,1,128,2,0,0,0,3,0,3, - 0,3,0,5,128,5,128,5,128,8,192,8,192,31,224,16, - 96,16,96,32,48,32,48,248,252,14,18,36,13,255,0,3, - 0,7,128,8,64,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,17,34,13,255,0,7,64,11,128,0,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,14,17,34,13,255, - 0,12,192,12,192,0,0,3,0,3,0,3,0,5,128,5, - 128,5,128,8,192,8,192,31,224,16,96,16,96,32,48,32, - 48,248,252,14,19,38,13,255,0,3,0,4,128,4,128,3, - 0,0,0,3,0,3,0,3,0,5,128,5,128,5,128,8, - 192,8,192,31,224,16,96,16,96,32,48,32,48,248,252,18, - 14,42,18,255,0,7,255,192,1,96,192,2,96,64,2,96, - 64,4,98,64,4,98,0,8,126,0,8,98,0,31,226,0, - 16,96,64,32,96,64,32,96,64,96,96,192,241,255,192,12, - 18,36,13,0,252,15,144,56,112,96,48,96,16,192,16,192, - 0,192,0,192,0,192,0,192,0,96,16,96,16,56,96,15, - 192,4,0,7,0,1,0,14,0,11,18,36,12,0,0,24, - 0,12,0,2,0,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,18,36,12,0,0,3,0,6,0,8,0,0, - 0,255,224,48,96,48,32,48,32,49,32,49,0,63,0,49, - 0,49,0,48,32,48,32,48,32,48,96,255,224,11,18,36, - 12,0,0,6,0,15,0,16,128,0,0,255,224,48,96,48, - 32,48,32,49,32,49,0,63,0,49,0,49,0,48,32,48, - 32,48,32,48,96,255,224,11,17,34,12,0,0,25,128,25, - 128,0,0,255,224,48,96,48,32,48,32,49,32,49,0,63, - 0,49,0,49,0,48,32,48,32,48,32,48,96,255,224,6, - 18,18,7,0,0,192,96,16,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,18,18,7,0,0,12,24,32, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,252,6, - 18,18,7,0,0,48,120,132,0,252,48,48,48,48,48,48, - 48,48,48,48,48,48,252,6,17,17,7,0,0,204,204,0, - 252,48,48,48,48,48,48,48,48,48,48,48,48,252,14,14, - 28,15,0,0,255,192,48,112,48,24,48,24,48,12,48,12, - 254,12,48,12,48,12,48,12,48,24,48,24,48,112,255,192, - 14,17,34,15,0,0,7,64,11,128,0,0,240,124,48,16, - 56,16,60,16,46,16,38,16,35,16,35,144,33,144,32,208, - 32,240,32,112,32,48,248,16,14,18,36,15,0,0,12,0, - 6,0,1,0,0,0,15,192,56,112,96,24,96,24,192,12, - 192,12,192,12,192,12,192,12,192,12,96,24,96,24,56,112, - 15,192,14,18,36,15,0,0,0,192,1,128,2,0,0,0, - 15,192,56,112,96,24,96,24,192,12,192,12,192,12,192,12, - 192,12,192,12,96,24,96,24,56,112,15,192,14,18,36,15, - 0,0,3,0,7,128,8,64,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,14,17,34,15,0,0,7,64,11,128, - 0,0,15,192,56,112,96,24,96,24,192,12,192,12,192,12, - 192,12,192,12,192,12,96,24,96,24,56,112,15,192,14,17, - 34,15,0,0,12,192,12,192,0,0,15,192,56,112,96,24, - 96,24,192,12,192,12,192,12,192,12,192,12,192,12,96,24, - 96,24,56,112,15,192,10,9,18,10,0,1,192,192,97,128, - 51,0,30,0,12,0,30,0,51,0,97,128,192,192,15,14, - 28,15,255,0,7,228,28,56,48,28,48,44,96,70,96,134, - 97,6,98,6,100,6,104,6,48,12,48,12,92,56,135,224, - 14,18,36,15,0,0,6,0,3,0,0,128,0,0,252,124, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,24,32,15,192,14,18,36,15,0,0, - 0,192,1,128,2,0,0,0,252,124,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 24,32,15,192,14,18,36,15,0,0,3,0,7,128,8,64, - 0,0,252,124,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,24,32,15,192,14,17, - 34,15,0,0,12,96,12,96,0,0,252,124,48,16,48,16, - 48,16,48,16,48,16,48,16,48,16,48,16,48,16,48,16, - 48,16,24,32,15,192,14,18,36,13,255,0,0,96,0,192, - 1,0,0,0,252,124,48,16,24,32,24,32,12,64,12,64, - 6,128,7,128,3,0,3,0,3,0,3,0,3,0,15,192, - 11,14,28,12,0,0,252,0,48,0,48,0,63,128,48,192, - 48,96,48,96,48,96,48,96,48,192,63,0,48,0,48,0, - 252,0,9,14,28,10,0,0,30,0,35,0,97,0,97,0, - 99,0,110,0,99,0,97,128,97,128,97,128,97,128,109,128, - 109,0,230,0,9,13,26,10,0,0,48,0,24,0,4,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,6,0,12,0,16,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,13,26,10,0,0,24,0,60,0,66,0, - 0,0,28,0,98,0,99,0,3,0,31,0,99,0,195,0, - 199,0,121,128,9,12,24,10,0,0,58,0,92,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,9,12,24,10,0,0,102,0,102,0,0,0,28,0, - 98,0,99,0,3,0,31,0,99,0,195,0,199,0,121,128, - 9,14,28,10,0,0,24,0,36,0,36,0,24,0,0,0, - 28,0,98,0,99,0,3,0,31,0,99,0,195,0,199,0, - 121,128,15,9,18,16,0,0,28,248,99,140,99,6,3,6, - 31,254,99,0,195,0,197,134,120,252,8,13,13,9,0,252, - 60,99,195,192,192,192,193,99,62,16,28,4,56,8,13,13, - 9,0,0,96,48,8,0,60,102,195,195,255,192,193,99,62, - 8,13,13,9,0,0,6,12,16,0,60,102,195,195,255,192, - 193,99,62,8,13,13,9,0,0,24,60,66,0,60,102,195, - 195,255,192,193,99,62,8,12,12,9,0,0,102,102,0,60, - 102,195,195,255,192,193,99,62,5,13,13,5,255,0,192,96, - 16,0,112,48,48,48,48,48,48,48,120,5,13,13,5,0, - 0,24,48,64,0,224,96,96,96,96,96,96,96,240,6,13, - 13,5,255,0,48,120,132,0,112,48,48,48,48,48,48,48, - 120,6,12,12,5,255,0,204,204,0,112,48,48,48,48,48, - 48,48,120,9,14,28,10,0,0,192,0,54,0,56,0,204, - 0,6,0,63,0,99,0,193,128,193,128,193,128,193,128,193, - 128,99,0,62,0,10,12,24,11,0,0,60,128,79,0,0, - 0,239,0,115,128,97,128,97,128,97,128,97,128,97,128,97, - 128,243,192,9,13,26,10,0,0,96,0,48,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,3,0,6,0,8,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,13,26,10,0,0,24,0,60,0,66,0,0, - 0,62,0,99,0,193,128,193,128,193,128,193,128,193,128,99, - 0,62,0,9,12,24,10,0,0,58,0,92,0,0,0,62, - 0,99,0,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,9,12,24,10,0,0,99,0,99,0,0,0,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,99,0,62,0,10, - 7,14,10,0,2,12,0,12,0,0,0,255,192,0,0,12, - 0,12,0,9,12,24,10,0,254,0,128,62,128,99,0,197, - 128,197,128,201,128,201,128,209,128,115,0,62,0,64,0,64, - 0,10,13,26,11,0,0,48,0,24,0,4,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,3,0,6,0,8,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,13,26,11,0,0,12,0,30,0,33,0,0,0,227, - 192,97,128,97,128,97,128,97,128,97,128,97,128,115,128,61, - 192,10,12,24,11,0,0,51,0,51,0,0,0,227,192,97, - 128,97,128,97,128,97,128,97,128,97,128,115,128,61,192,10, - 17,34,11,0,252,3,0,6,0,8,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0,10,18,36,11,0,252,224,0,96, - 0,96,0,96,0,96,0,111,0,113,128,96,192,96,192,96, - 192,96,192,96,192,113,128,111,0,96,0,96,0,96,0,240, - 0,10,16,32,11,0,252,51,0,51,0,0,0,241,192,96, - 128,49,0,49,0,26,0,26,0,12,0,12,0,8,0,8, - 0,16,0,208,0,224,0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--20-140-100-100-P-103-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=20 h=18 x= 4 y=10 dx=19 dy= 0 ascent=15 len=42 - Font Bounding box w=27 h=30 x=-4 y=-7 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =14 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR14r[2534] U8G_FONT_SECTION("u8g_font_ncenR14r") = { - 0,27,30,252,249,14,3,41,7,30,32,127,252,15,252,14, - 252,0,0,0,5,0,1,2,14,14,5,1,0,192,192,192, - 192,192,192,192,128,128,128,0,0,192,192,4,5,5,7,1, - 9,144,144,144,144,144,10,13,26,11,0,0,9,0,9,0, - 9,0,9,0,127,192,18,0,18,0,18,0,255,128,36,0, - 36,0,36,0,36,0,9,17,34,10,0,254,8,0,8,0, - 63,0,105,128,201,128,200,0,232,0,120,0,30,0,15,0, - 11,128,9,128,201,128,203,0,126,0,8,0,8,0,15,14, - 28,16,0,0,28,32,50,32,99,192,98,64,196,128,196,128, - 201,28,113,50,2,98,2,98,4,196,4,196,8,200,8,112, - 13,14,28,14,0,0,30,0,51,0,33,0,35,0,54,0, - 28,0,57,248,124,96,238,64,199,128,195,128,193,200,227,240, - 124,96,1,5,5,4,1,9,128,128,128,128,128,6,17,17, - 7,0,253,4,24,48,96,96,192,192,192,192,192,192,192,96, - 96,48,24,4,6,17,17,7,0,253,128,96,48,24,24,12, - 12,12,12,12,12,12,24,24,48,96,128,7,7,7,10,1, - 7,16,146,214,56,214,146,16,9,9,18,10,0,1,8,0, - 8,0,8,0,8,0,255,128,8,0,8,0,8,0,8,0, - 3,5,5,5,0,253,96,96,32,64,128,5,1,1,6,0, - 5,248,2,2,2,5,1,0,192,192,5,14,14,6,0,0, - 8,8,8,16,16,16,32,32,32,64,64,64,128,128,9,14, - 28,10,0,0,28,0,99,0,99,0,193,128,193,128,193,128, - 193,128,193,128,193,128,193,128,193,128,99,0,99,0,28,0, - 8,14,14,10,1,0,24,248,24,24,24,24,24,24,24,24, - 24,24,24,255,9,14,28,10,0,0,30,0,99,0,193,128, - 193,128,1,128,1,128,3,0,6,0,12,0,24,0,48,128, - 96,128,255,128,255,128,9,14,28,10,0,0,62,0,99,0, - 97,128,1,128,1,128,3,0,30,0,3,0,1,128,1,128, - 1,128,193,128,195,0,126,0,10,14,28,10,0,0,3,0, - 7,0,11,0,11,0,19,0,19,0,35,0,35,0,67,0, - 67,0,255,192,3,0,3,0,15,128,9,14,28,10,0,0, - 127,128,127,0,64,0,64,0,64,0,94,0,99,0,65,128, - 1,128,1,128,1,128,193,128,195,0,126,0,9,14,28,10, - 0,0,15,0,49,128,97,128,96,0,192,0,206,0,223,0, - 227,128,193,128,193,128,193,128,193,128,99,0,62,0,9,14, - 28,10,0,0,255,128,255,128,129,0,131,0,2,0,6,0, - 6,0,12,0,12,0,24,0,24,0,24,0,24,0,24,0, - 9,14,28,10,0,0,62,0,99,0,65,0,65,0,97,0, - 114,0,62,0,47,0,67,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,10,0,0,62,0,99,0,193,128,193,128, - 193,128,193,128,227,128,125,128,57,128,1,128,3,0,195,0, - 198,0,120,0,2,9,9,5,1,0,192,192,0,0,0,0, - 0,192,192,3,12,12,5,0,253,96,96,0,0,0,0,0, - 96,96,32,64,128,9,9,18,10,0,1,0,128,3,128,14, - 0,56,0,224,0,56,0,14,0,3,128,0,128,9,4,8, - 10,0,4,255,128,0,0,0,0,255,128,9,9,18,10,0, - 1,128,0,224,0,56,0,14,0,3,128,14,0,56,0,224, - 0,128,0,7,14,14,8,0,0,60,206,198,6,6,4,8, - 8,16,16,0,0,48,48,13,14,28,14,0,0,7,128,24, - 96,32,16,70,208,77,200,140,200,152,200,153,144,153,144,155, - 160,76,192,64,16,32,96,31,128,14,14,28,13,255,0,3, - 0,3,0,3,0,5,128,5,128,5,128,8,192,8,192,31, - 224,16,96,16,96,32,48,32,48,248,252,12,14,28,13,0, - 0,255,128,48,192,48,96,48,96,48,96,48,192,63,128,48, - 96,48,48,48,48,48,48,48,48,48,96,255,192,12,14,28, - 13,0,0,15,144,56,112,96,48,96,16,192,16,192,0,192, - 0,192,0,192,0,192,0,96,16,96,16,56,96,15,192,14, - 14,28,15,0,0,255,192,48,112,48,24,48,24,48,12,48, - 12,48,12,48,12,48,12,48,12,48,24,48,24,48,112,255, - 192,11,14,28,12,0,0,255,224,48,96,48,32,48,32,49, - 32,49,0,63,0,49,0,49,0,48,32,48,32,48,32,48, - 96,255,224,11,14,28,12,0,0,255,224,48,96,48,32,48, - 32,49,32,49,0,63,0,49,0,49,0,48,0,48,0,48, - 0,48,0,252,0,14,14,28,15,0,0,15,200,56,120,96, - 24,96,8,192,8,192,0,192,0,192,0,192,124,192,24,96, - 24,96,24,56,120,15,200,15,14,28,16,0,0,252,126,48, - 24,48,24,48,24,48,24,48,24,63,248,48,24,48,24,48, - 24,48,24,48,24,48,24,252,126,6,14,14,7,0,0,252, - 48,48,48,48,48,48,48,48,48,48,48,48,252,9,14,28, - 10,0,0,31,128,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,198,0,198,0,132,0,120,0,15, - 14,28,15,0,0,252,248,48,96,48,64,48,128,49,0,50, - 0,54,0,63,0,51,128,49,192,48,224,48,112,48,56,252, - 254,11,14,28,12,0,0,252,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,32,48,32,48,32,48, - 96,255,224,17,14,42,18,0,0,248,15,128,56,14,0,44, - 22,0,44,22,0,44,22,0,38,38,0,38,38,0,38,38, - 0,35,70,0,35,70,0,35,70,0,33,134,0,33,134,0, - 249,159,128,14,14,28,15,0,0,240,124,48,16,56,16,60, - 16,46,16,38,16,35,16,35,144,33,144,32,208,32,240,32, - 112,32,48,248,16,14,14,28,15,0,0,15,192,56,112,96, - 24,96,24,192,12,192,12,192,12,192,12,192,12,192,12,96, - 24,96,24,56,112,15,192,11,14,28,12,0,0,255,128,48, - 192,48,96,48,96,48,96,48,96,48,192,63,0,48,0,48, - 0,48,0,48,0,48,0,252,0,15,18,36,15,0,252,15, - 192,56,112,96,24,96,24,192,12,192,12,192,12,192,12,192, - 12,207,12,113,152,96,152,56,240,15,224,0,96,0,114,0, - 62,0,28,14,14,28,14,0,0,255,128,48,192,48,96,48, - 96,48,96,48,192,63,0,49,128,48,192,48,192,48,224,48, - 96,48,116,248,56,10,14,28,11,0,0,62,128,97,128,192, - 128,192,128,192,0,240,0,126,0,31,128,3,192,128,192,128, - 192,192,192,225,128,191,0,12,14,28,13,0,0,255,240,198, - 48,134,16,134,16,134,16,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,31,128,14,14,28,15,0,0,252, - 124,48,16,48,16,48,16,48,16,48,16,48,16,48,16,48, - 16,48,16,48,16,48,16,24,32,15,192,14,14,28,13,255, - 0,252,124,48,16,48,16,24,32,24,32,24,32,12,64,12, - 64,12,64,6,128,6,128,6,128,3,0,3,0,20,14,42, - 19,255,0,253,249,240,48,96,64,48,96,64,24,112,128,24, - 112,128,24,112,128,12,153,0,12,153,0,12,153,0,5,9, - 0,7,14,0,7,14,0,3,6,0,3,6,0,13,14,28, - 14,1,0,248,240,48,64,56,192,24,128,13,128,15,0,6, - 0,7,0,15,128,9,128,16,192,48,224,32,96,249,248,14, - 14,28,13,255,0,252,124,48,16,24,32,24,32,12,64,12, - 64,6,128,7,128,3,0,3,0,3,0,3,0,3,0,15, - 192,10,14,28,11,0,0,255,192,192,192,129,128,131,128,131, - 0,6,0,14,0,28,0,24,0,48,64,112,64,96,64,192, - 192,255,192,4,17,17,6,1,253,240,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,240,7,14,14,10,1,0, - 128,128,192,64,96,32,48,16,24,8,12,4,6,2,4,17, - 17,6,0,253,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,240,9,9,18,10,0,5,8,0,8,0,28, - 0,20,0,54,0,34,0,99,0,65,0,193,128,9,1,2, - 9,0,254,255,128,4,3,3,6,1,10,192,96,16,9,9, - 18,10,0,0,28,0,98,0,99,0,3,0,31,0,99,0, - 195,0,199,0,121,128,10,14,28,10,255,0,224,0,96,0, - 96,0,96,0,96,0,111,0,113,128,96,192,96,192,96,192, - 96,192,96,192,113,128,79,0,8,9,9,9,0,0,60,99, - 195,192,192,192,193,99,62,10,14,28,11,0,0,3,128,1, - 128,1,128,1,128,1,128,61,128,99,128,193,128,193,128,193, - 128,193,128,193,128,99,128,61,192,8,9,9,9,0,0,60, - 102,195,195,255,192,193,99,62,8,14,14,7,0,0,14,27, - 51,48,48,252,48,48,48,48,48,48,48,120,10,14,28,11, - 0,252,0,192,31,192,51,0,97,128,97,128,51,0,62,0, - 64,0,127,0,63,128,65,192,128,192,193,128,127,0,10,14, - 28,11,0,0,224,0,96,0,96,0,96,0,96,0,111,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 4,13,13,5,0,0,96,96,0,0,224,96,96,96,96,96, - 96,96,240,6,17,17,5,253,252,12,12,0,0,28,12,12, - 12,12,12,12,12,12,12,204,200,112,10,14,28,10,0,0, - 224,0,96,0,96,0,96,0,96,0,103,128,98,0,100,0, - 104,0,120,0,108,0,102,0,99,0,247,192,4,14,14,5, - 0,0,224,96,96,96,96,96,96,96,96,96,96,96,96,240, - 16,9,18,17,0,0,239,60,115,206,97,134,97,134,97,134, - 97,134,97,134,97,134,243,207,10,9,18,11,0,0,239,0, - 115,128,97,128,97,128,97,128,97,128,97,128,97,128,243,192, - 9,9,18,10,0,0,62,0,99,0,193,128,193,128,193,128, - 193,128,193,128,99,0,62,0,10,13,26,11,0,252,239,0, - 113,128,96,192,96,192,96,192,96,192,96,192,113,128,111,0, - 96,0,96,0,96,0,240,0,10,13,26,10,0,252,60,128, - 99,128,193,128,193,128,193,128,193,128,193,128,99,128,61,128, - 1,128,1,128,1,128,3,192,7,9,9,8,0,0,230,110, - 114,96,96,96,96,96,240,7,9,9,8,0,0,122,198,130, - 224,124,14,130,198,188,6,12,12,6,0,0,96,96,96,248, - 96,96,96,96,96,96,100,56,10,9,18,11,0,0,227,128, - 97,128,97,128,97,128,97,128,97,128,97,128,115,128,61,192, - 10,9,18,11,0,0,241,192,96,128,96,128,49,0,49,0, - 26,0,30,0,12,0,12,0,15,9,18,16,0,0,247,222, - 97,132,97,132,50,200,50,200,52,208,28,112,28,112,8,32, - 9,9,18,10,0,0,243,128,97,0,50,0,28,0,8,0, - 28,0,38,0,67,0,231,128,10,13,26,11,0,252,241,192, - 96,128,49,0,49,0,26,0,26,0,12,0,12,0,8,0, - 8,0,16,0,208,0,224,0,7,9,9,8,0,0,254,134, - 140,24,24,48,98,198,254,5,17,17,6,0,253,24,32,96, - 96,96,96,96,64,128,64,96,96,96,96,96,32,24,2,14, - 14,11,4,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,5,17,17,6,0,253,192,32,48,48,48,48,48,16, - 8,16,48,48,48,48,48,32,192,10,3,6,11,0,4,56, - 192,109,128,199,0,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=24 x= 6 y=15 dx=25 dy= 0 ascent=24 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18[7488] U8G_FONT_SECTION("u8g_font_ncenR18") = { - 0,31,37,253,248,18,4,33,9,197,32,255,251,24,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,7,0,1,3,19,19,7,2, - 251,224,224,224,0,0,64,64,64,224,224,224,224,224,224,224, - 224,224,224,64,10,18,36,14,2,253,0,64,0,64,0,128, - 31,128,113,192,97,192,226,192,194,0,196,0,196,0,200,0, - 232,0,112,64,112,192,63,0,32,0,64,0,64,0,13,18, - 36,14,0,0,3,192,14,48,12,112,28,112,28,32,28,0, - 28,0,14,0,127,192,7,0,7,0,7,0,7,0,7,0, - 118,8,140,8,143,240,115,224,13,12,24,15,1,4,71,16, - 255,248,112,112,32,32,96,48,96,48,96,48,96,48,32,32, - 112,112,255,248,71,16,16,18,36,17,0,0,252,63,56,12, - 24,8,28,24,12,16,14,48,6,32,7,96,3,64,3,192, - 31,248,1,128,1,128,31,248,1,128,1,128,1,128,15,240, - 2,18,18,15,6,0,192,192,192,192,192,192,192,0,0,0, - 192,192,192,192,192,192,192,192,10,22,44,12,1,252,31,0, - 35,128,97,128,97,128,120,0,60,0,31,0,47,128,67,192, - 193,192,192,192,224,192,240,192,124,128,63,0,15,0,3,128, - 1,128,97,128,97,128,113,0,62,0,6,2,2,8,1,15, - 204,204,18,18,54,20,1,0,3,240,0,12,12,0,16,2, - 0,32,1,0,67,240,128,70,24,128,140,8,64,140,0,64, - 140,0,64,140,0,64,140,0,64,140,8,64,70,24,128,67, - 224,128,32,1,0,16,2,0,12,12,0,3,240,0,7,10, - 10,9,1,8,120,76,4,124,196,204,118,0,0,254,10,7, - 14,12,1,3,24,192,49,128,99,0,198,0,99,0,49,128, - 24,192,12,7,14,14,1,3,255,240,255,240,0,48,0,48, - 0,48,0,48,0,48,6,2,2,8,1,6,252,252,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,32,1,0, - 71,240,128,67,24,128,131,24,64,131,24,64,131,16,64,131, - 224,64,131,48,64,131,24,64,67,12,128,71,142,128,32,1, - 0,16,2,0,12,12,0,3,240,0,7,1,1,9,1,15, - 254,8,7,7,9,0,11,60,102,195,195,195,102,60,12,11, - 22,14,1,2,6,0,6,0,6,0,255,240,255,240,6,0, - 6,0,6,0,0,0,255,240,255,240,7,11,11,8,0,7, - 124,198,198,6,12,24,48,96,192,194,254,7,11,11,8,0, - 7,124,198,198,6,12,60,6,6,198,198,124,5,4,4,8, - 2,15,24,56,96,128,14,17,34,14,0,251,240,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,112, - 63,176,46,60,32,0,32,0,112,0,112,0,32,0,13,22, - 44,15,1,252,31,248,115,48,227,48,227,48,227,48,227,48, - 227,48,227,48,115,48,31,48,3,48,3,48,3,48,3,48, - 3,48,3,48,3,48,3,48,3,48,3,48,3,48,7,248, - 3,3,3,7,2,5,224,224,224,4,4,4,7,1,252,64, - 112,16,224,6,11,11,8,1,7,16,48,240,48,48,48,48, - 48,48,48,252,7,10,10,9,1,8,56,68,198,198,198,68, - 56,0,0,254,10,7,14,12,1,3,198,0,99,0,49,128, - 24,192,49,128,99,0,198,0,18,18,54,19,0,0,16,4, - 0,48,12,0,240,8,0,48,24,0,48,16,0,48,48,0, - 48,32,0,48,99,0,48,71,0,48,207,0,252,139,0,1, - 155,0,1,19,0,3,51,0,2,99,0,6,127,192,4,3, - 0,12,7,128,18,18,54,19,0,0,16,8,0,48,24,0, - 240,16,0,48,48,0,48,32,0,48,96,0,48,64,0,48, - 207,128,48,152,192,49,152,192,253,0,192,3,1,128,2,3, - 0,6,6,0,4,12,0,12,24,0,8,24,64,24,31,192, - 18,18,54,19,0,0,124,4,0,198,12,0,198,8,0,6, - 24,0,12,16,0,60,48,0,6,32,0,6,99,0,198,71, - 0,198,207,0,124,139,0,1,155,0,1,19,0,3,51,0, - 2,99,0,6,127,192,4,3,0,12,7,128,10,18,36,12, - 1,252,7,0,7,0,7,0,0,0,0,0,2,0,2,0, - 6,0,12,0,28,0,56,0,112,0,224,0,225,192,225,192, - 224,192,113,128,30,0,19,23,69,19,0,0,3,0,0,3, - 128,0,0,192,0,0,32,0,0,0,0,0,64,0,0,96, - 0,0,224,0,0,240,0,1,48,0,1,56,0,2,24,0, - 2,28,0,4,12,0,4,12,0,8,14,0,15,254,0,16, - 6,0,16,7,0,32,3,0,32,3,128,96,3,128,248,15, - 224,19,23,69,19,0,0,0,24,0,0,56,0,0,96,0, - 0,128,0,0,0,0,0,64,0,0,96,0,0,224,0,0, - 240,0,1,48,0,1,56,0,2,24,0,2,28,0,4,12, - 0,4,12,0,8,14,0,15,254,0,16,6,0,16,7,0, - 32,3,0,32,3,128,96,3,128,248,15,224,19,23,69,19, - 0,0,0,96,0,0,240,0,1,152,0,2,4,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,22,66,19,0,0,1,196,0, - 3,248,0,4,112,0,0,0,0,0,64,0,0,96,0,0, - 224,0,0,240,0,1,48,0,1,56,0,2,24,0,2,28, - 0,4,12,0,4,12,0,8,14,0,15,254,0,16,6,0, - 16,7,0,32,3,0,32,3,128,96,3,128,248,15,224,19, - 22,66,19,0,0,3,24,0,3,24,0,0,0,0,0,0, - 0,0,64,0,0,96,0,0,224,0,0,240,0,1,48,0, - 1,56,0,2,24,0,2,28,0,4,12,0,4,12,0,8, - 14,0,15,254,0,16,6,0,16,7,0,32,3,0,32,3, - 128,96,3,128,248,15,224,19,24,72,19,0,0,0,224,0, - 1,16,0,1,16,0,1,16,0,0,224,0,0,0,0,0, - 64,0,0,96,0,0,224,0,0,240,0,1,48,0,1,56, - 0,2,24,0,2,28,0,4,12,0,4,12,0,8,14,0, - 15,254,0,16,6,0,16,7,0,32,3,0,32,3,128,96, - 3,128,248,15,224,24,18,54,25,0,0,1,255,255,0,38, - 7,0,102,3,0,70,1,0,198,1,0,134,17,1,134,16, - 1,6,48,3,7,240,2,6,48,7,254,16,4,6,16,12, - 6,1,8,6,1,24,6,1,16,6,3,48,6,7,252,31, - 255,15,23,46,17,1,251,7,242,28,30,56,6,48,2,112, - 2,96,2,224,0,224,0,224,0,224,0,224,0,224,0,96, - 2,112,2,48,6,56,4,28,28,7,240,3,224,1,0,1, - 192,0,64,3,128,13,23,46,16,1,0,24,0,28,0,6, - 0,1,0,0,0,255,248,48,56,48,24,48,8,48,8,48, - 136,48,128,49,128,63,128,49,128,48,128,48,128,48,8,48, - 8,48,8,48,24,48,56,255,248,13,23,46,16,1,0,0, - 96,0,224,1,128,2,0,0,0,255,248,48,56,48,24,48, - 8,48,8,48,136,48,128,49,128,63,128,49,128,48,128,48, - 128,48,8,48,8,48,8,48,24,48,56,255,248,13,23,46, - 16,1,0,3,0,7,128,12,192,16,32,0,0,255,248,48, - 56,48,24,48,8,48,8,48,136,48,128,49,128,63,128,49, - 128,48,128,48,128,48,8,48,8,48,8,48,24,48,56,255, - 248,13,22,44,16,1,0,12,96,12,96,0,0,0,0,255, - 248,48,56,48,24,48,8,48,8,48,136,48,128,49,128,63, - 128,49,128,48,128,48,128,48,8,48,8,48,8,48,24,48, - 56,255,248,6,23,23,9,2,0,192,224,48,8,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 7,23,23,9,2,0,6,14,24,32,0,252,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,8,23,23, - 9,1,0,24,60,102,129,0,126,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,126,7,22,22,9,2,0, - 198,198,0,0,252,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,16,18,36,20,2,0,255,224,48,56, - 48,12,48,12,48,6,48,6,48,7,48,7,254,7,48,7, - 48,7,48,7,48,6,48,6,48,12,48,12,48,56,255,224, - 19,22,66,21,1,0,1,196,0,3,248,0,4,112,0,0, - 0,0,248,15,224,60,3,128,28,1,0,30,1,0,23,1, - 0,19,129,0,17,129,0,16,193,0,16,225,0,16,97,0, - 16,49,0,16,57,0,16,29,0,16,15,0,16,7,0,16, - 7,0,56,3,0,254,1,0,17,23,69,19,1,0,12,0, - 0,14,0,0,3,0,0,0,128,0,0,0,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,17,23,69,19,1,0,0,24,0,0,56,0,0, - 96,0,0,128,0,0,0,0,7,240,0,28,28,0,48,6, - 0,48,6,0,112,7,0,96,3,0,224,3,128,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,96,3,0,112, - 7,0,48,6,0,48,6,0,28,28,0,7,240,0,17,23, - 69,19,1,0,0,192,0,1,224,0,3,48,0,4,8,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,17,22,66,19,1,0,3, - 136,0,7,240,0,8,224,0,0,0,0,7,240,0,28,28, - 0,48,6,0,48,6,0,112,7,0,96,3,0,224,3,128, - 224,3,128,224,3,128,224,3,128,224,3,128,224,3,128,96, - 3,0,112,7,0,48,6,0,48,6,0,28,28,0,7,240, - 0,17,22,66,19,1,0,6,48,0,6,48,0,0,0,0, - 0,0,0,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,224,3,128,96,3,0,112,7,0,48,6,0, - 48,6,0,28,28,0,7,240,0,13,12,24,14,1,1,192, - 24,96,48,48,96,24,192,13,128,7,0,7,0,13,128,24, - 192,48,96,96,48,192,24,17,19,57,19,1,0,0,3,0, - 7,246,0,28,28,0,48,14,0,48,30,0,96,51,0,96, - 99,0,224,67,128,224,195,128,225,131,128,227,3,128,226,3, - 128,230,3,128,108,3,0,120,3,0,48,6,0,48,6,0, - 124,28,0,199,240,0,16,23,46,19,2,0,6,0,7,0, - 1,128,0,64,0,0,252,31,48,14,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,56,12,24,8,30,56,7,224,16,23,46,19,2,0, - 0,48,0,112,0,192,1,0,0,0,252,31,48,14,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,56,12,24,8,30,56,7,224,16,23, - 46,19,2,0,1,128,3,192,6,96,8,16,0,0,252,31, - 48,14,48,4,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,56,12,24,8,30,56, - 7,224,16,22,44,19,2,0,6,48,6,48,0,0,0,0, - 252,31,48,14,48,4,48,4,48,4,48,4,48,4,48,4, - 48,4,48,4,48,4,48,4,48,4,48,4,56,12,24,8, - 30,56,7,224,16,23,46,17,0,0,0,48,0,112,0,192, - 1,0,0,0,252,63,56,12,24,8,28,24,12,16,14,48, - 6,32,7,96,3,64,3,192,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,7,224,13,18,36,16,2,0,252,0, - 48,0,48,0,48,0,63,128,48,224,48,48,48,56,48,56, - 48,56,48,56,48,48,48,224,63,128,48,0,48,0,48,0, - 252,0,12,18,36,14,1,0,15,128,24,192,48,96,48,96, - 48,96,48,96,48,192,51,192,48,96,48,48,48,48,48,48, - 48,48,48,48,54,48,54,48,54,96,243,192,12,18,36,13, - 1,0,24,0,28,0,6,0,1,0,0,0,0,0,31,0, - 113,128,112,192,96,192,0,192,7,192,56,192,96,192,192,192, - 192,192,225,240,126,96,12,18,36,13,1,0,1,128,3,128, - 6,0,8,0,0,0,0,0,31,0,113,128,112,192,96,192, - 0,192,7,192,56,192,96,192,192,192,192,192,225,240,126,96, - 12,18,36,13,1,0,6,0,15,0,25,128,32,64,0,0, - 0,0,31,0,113,128,112,192,96,192,0,192,7,192,56,192, - 96,192,192,192,192,192,225,240,126,96,12,17,34,13,1,0, - 28,64,63,128,71,0,0,0,0,0,31,0,113,128,112,192, - 96,192,0,192,7,192,56,192,96,192,192,192,192,192,225,240, - 126,96,12,16,32,13,1,0,25,128,25,128,0,0,0,0, - 31,0,113,128,112,192,96,192,0,192,7,192,56,192,96,192, - 192,192,192,192,225,240,126,96,12,19,38,13,1,0,14,0, - 17,0,17,0,17,0,14,0,0,0,0,0,31,0,113,128, - 112,192,96,192,0,192,7,192,56,192,96,192,192,192,192,192, - 225,240,126,96,19,12,36,21,1,0,31,31,0,113,241,192, - 96,224,192,0,224,224,0,192,96,7,255,224,56,192,0,96, - 192,0,192,224,0,192,224,64,227,112,192,124,31,128,10,16, - 32,12,1,252,31,0,113,192,97,192,224,192,192,0,192,0, - 192,0,192,0,224,0,96,64,112,192,31,128,8,0,14,0, - 2,0,28,0,11,18,36,13,1,0,24,0,28,0,6,0, - 1,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 255,224,192,0,192,0,224,0,96,64,112,192,31,128,11,18, - 36,13,1,0,1,128,3,128,6,0,8,0,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,11,18,36,13,1,0,6,0, - 15,0,25,128,32,64,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,255,224,192,0,192,0,224,0,96,64,112,192, - 31,128,11,16,32,13,1,0,49,128,49,128,0,0,0,0, - 31,0,113,192,96,192,224,224,192,96,255,224,192,0,192,0, - 224,0,96,64,112,192,31,128,6,18,18,8,1,0,192,224, - 48,8,0,0,240,48,48,48,48,48,48,48,48,48,48,252, - 6,18,18,8,1,0,24,56,96,128,0,0,240,48,48,48, - 48,48,48,48,48,48,48,252,8,18,18,8,0,0,24,60, - 102,129,0,0,120,24,24,24,24,24,24,24,24,24,24,126, - 6,16,16,8,1,0,204,204,0,0,240,48,48,48,48,48, - 48,48,48,48,48,252,11,18,36,13,1,0,192,0,51,0, - 28,0,28,0,102,0,3,0,31,128,113,192,96,192,224,224, - 192,96,192,96,192,96,192,96,224,224,96,192,113,192,31,0, - 14,17,34,14,0,0,7,16,15,224,17,192,0,0,0,0, - 241,192,55,224,56,112,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,252,252,11,18,36,13,1,0,24,0, - 28,0,6,0,1,0,0,0,0,0,31,0,113,192,96,192, - 224,224,192,96,192,96,192,96,192,96,224,224,96,192,113,192, - 31,0,11,18,36,13,1,0,1,128,3,128,6,0,8,0, - 0,0,0,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,11,18,36,13, - 1,0,14,0,31,0,49,128,64,64,0,0,0,0,31,0, - 113,192,96,192,224,224,192,96,192,96,192,96,192,96,224,224, - 96,192,113,192,31,0,11,17,34,13,1,0,28,64,63,128, - 71,0,0,0,0,0,31,0,113,192,96,192,224,224,192,96, - 192,96,192,96,192,96,224,224,96,192,113,192,31,0,11,16, - 32,13,1,0,49,128,49,128,0,0,0,0,31,0,113,192, - 96,192,224,224,192,96,192,96,192,96,192,96,224,224,96,192, - 113,192,31,0,12,10,20,14,1,2,6,0,6,0,0,0, - 0,0,255,240,255,240,0,0,0,0,6,0,6,0,11,16, - 32,13,1,254,0,64,0,128,31,128,113,192,98,192,226,224, - 196,96,196,96,196,96,200,96,200,224,80,192,113,192,63,0, - 32,0,64,0,14,18,36,14,0,0,12,0,14,0,3,0, - 0,128,0,0,0,0,240,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,56,112,31,176,14,60,14,18, - 36,14,0,0,0,192,1,192,3,0,4,0,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,14,18,36,14,0,0,3,0, - 7,128,12,192,16,32,0,0,0,0,240,240,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,56,112,31,176, - 14,60,14,16,32,14,0,0,12,192,12,192,0,0,0,0, - 240,240,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,56,112,31,176,14,60,13,23,46,12,255,251,0,96, - 0,224,1,128,2,0,0,0,0,0,120,56,48,16,56,48, - 24,32,24,32,12,96,12,64,6,192,6,128,7,128,3,0, - 3,0,2,0,2,0,196,0,236,0,120,0,13,23,46,14, - 0,251,240,0,48,0,48,0,48,0,48,0,48,0,55,192, - 60,112,56,48,48,56,48,24,48,24,48,24,48,24,48,56, - 56,48,60,112,55,192,48,0,48,0,48,0,48,0,252,0, - 13,21,42,12,255,251,12,96,12,96,0,0,0,0,120,56, - 48,16,56,48,24,32,24,32,12,96,12,64,6,192,6,128, - 7,128,3,0,3,0,2,0,2,0,196,0,236,0,120,0 - }; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--25-180-100-100-P-136-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=25 h=23 x= 6 y=14 dx=25 dy= 0 ascent=20 len=72 - Font Bounding box w=31 h=37 x=-3 y=-8 - Calculated Min Values x=-2 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent=-5 - X Font ascent =18 descent=-5 - Max Font ascent =20 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR18r[3477] U8G_FONT_SECTION("u8g_font_ncenR18r") = { - 0,31,37,253,248,18,4,33,9,197,32,127,251,20,251,18, - 251,0,0,0,7,0,1,3,18,18,7,2,0,64,224,224, - 224,224,224,224,224,224,224,224,64,64,64,0,224,224,224,6, - 6,6,10,2,12,204,204,204,204,204,204,13,16,32,15,1, - 1,12,96,12,96,12,96,12,96,12,96,127,248,24,192,24, - 192,24,192,24,192,255,240,49,128,49,128,49,128,49,128,49, - 128,11,22,44,13,1,254,4,0,4,0,31,0,101,128,68, - 192,196,192,197,192,197,128,228,0,252,0,127,0,31,192,7, - 192,4,224,100,96,228,96,196,96,196,64,100,192,63,0,4, - 0,4,0,18,19,57,20,1,255,30,24,0,51,40,0,97, - 216,0,97,16,0,193,48,0,193,32,0,194,96,0,194,64, - 0,196,199,128,120,140,192,1,152,64,1,24,64,3,48,64, - 2,48,64,6,48,128,4,48,128,12,49,0,8,30,0,8, - 0,0,18,18,54,20,1,0,7,192,0,12,224,0,24,96, - 0,24,96,0,24,96,0,24,192,0,13,128,0,14,0,0, - 30,63,128,103,30,0,99,140,0,193,200,0,192,232,0,192, - 112,0,224,56,64,112,124,64,127,207,128,31,7,0,2,6, - 6,6,2,12,192,192,192,192,192,192,7,21,21,9,1,253, - 2,12,24,48,48,96,96,192,192,192,192,192,192,192,96,96, - 48,48,24,12,2,7,21,21,8,0,253,128,96,48,24,24, - 12,12,6,6,6,6,6,6,6,12,12,24,24,48,96,128, - 7,9,9,9,1,9,16,56,146,214,56,214,146,56,16,12, - 12,24,14,1,1,6,0,6,0,6,0,6,0,6,0,255, - 240,255,240,6,0,6,0,6,0,6,0,6,0,4,7,7, - 6,1,252,96,240,240,48,32,64,128,6,2,2,8,1,6, - 252,252,3,3,3,7,2,0,224,224,224,7,18,18,8,0, - 0,6,6,6,12,12,12,24,24,24,48,48,48,96,96,96, - 192,192,192,11,18,36,13,1,0,14,0,17,0,49,128,32, - 128,96,192,96,192,224,224,224,224,224,224,224,224,224,224,224, - 224,96,192,96,192,32,128,49,128,17,0,14,0,8,18,18, - 13,3,0,8,56,248,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,11,18,36,13,1,0,31,0,113,192,64, - 192,224,224,224,224,64,224,0,192,1,192,1,128,3,0,6, - 0,12,0,24,0,48,32,96,32,192,96,255,224,255,224,11, - 18,36,13,1,0,31,0,99,128,193,192,225,192,225,192,65, - 128,1,128,3,0,31,0,1,128,0,192,0,224,64,224,224, - 224,224,192,193,192,97,128,30,0,12,18,36,13,0,0,0, - 64,0,192,1,192,3,192,6,192,12,192,8,192,24,192,48, - 192,96,192,64,192,192,192,128,192,255,240,0,192,0,192,0, - 192,3,240,11,18,36,13,1,0,127,192,127,128,64,0,64, - 0,64,0,64,0,64,0,95,0,99,128,0,192,0,192,0, - 224,96,224,224,224,224,192,64,192,97,128,31,0,11,18,36, - 13,1,0,15,128,56,224,32,224,96,96,96,0,96,0,224, - 0,239,0,241,128,224,192,224,192,224,224,224,224,96,224,96, - 192,96,192,49,128,31,0,10,18,36,13,2,0,255,192,255, - 192,128,128,129,128,1,0,3,0,3,0,2,0,6,0,6, - 0,4,0,12,0,12,0,12,0,28,0,28,0,28,0,8, - 0,11,18,36,13,1,0,31,0,49,128,32,128,96,192,96, - 192,112,192,57,128,63,0,31,0,55,128,97,192,192,224,192, - 96,192,96,192,96,96,192,113,192,31,0,11,18,36,13,1, - 0,31,0,49,128,112,192,96,192,224,224,224,224,224,224,96, - 224,112,224,49,224,30,224,0,224,0,192,0,192,193,192,225, - 128,227,128,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,7,2,252,224,224,224, - 0,0,0,0,0,0,96,240,240,48,32,64,128,12,12,24, - 14,1,1,0,48,0,240,3,192,15,0,60,0,240,0,240, - 0,60,0,15,0,3,192,0,240,0,48,12,6,12,15,1, - 4,255,240,255,240,0,0,0,0,255,240,255,240,12,12,24, - 14,1,1,192,0,240,0,60,0,15,0,3,192,0,240,0, - 240,3,192,15,0,60,0,240,0,192,0,10,18,36,12,1, - 0,30,0,99,128,193,192,225,192,225,192,1,192,3,128,7, - 0,14,0,12,0,24,0,16,0,16,0,0,0,0,0,56, - 0,56,0,56,0,17,18,54,19,1,0,1,248,0,6,6, - 0,24,3,0,16,1,128,96,216,128,99,56,128,198,24,128, - 198,24,128,204,24,128,204,49,0,204,49,0,204,114,0,196, - 180,0,195,56,0,96,1,0,96,2,0,24,12,0,31,248, - 0,19,18,54,19,0,0,0,64,0,0,96,0,0,224,0, - 0,240,0,1,48,0,1,56,0,2,24,0,2,28,0,4, - 12,0,4,12,0,8,14,0,15,254,0,16,6,0,16,7, - 0,32,3,0,32,3,128,96,3,128,248,15,224,14,18,36, - 18,2,0,255,192,48,112,48,48,48,56,48,56,48,56,48, - 48,48,96,63,240,48,56,48,24,48,28,48,28,48,28,48, - 28,48,24,48,56,255,224,15,18,36,17,1,0,7,242,28, - 30,56,6,48,2,112,2,96,2,224,0,224,0,224,0,224, - 0,224,0,224,0,96,2,112,2,48,6,56,4,28,28,7, - 240,16,18,36,20,2,0,255,224,48,56,48,12,48,12,48, - 6,48,6,48,7,48,7,48,7,48,7,48,7,48,7,48, - 6,48,6,48,12,48,12,48,56,255,224,13,18,36,16,1, - 0,255,248,48,56,48,24,48,8,48,8,48,136,48,128,49, - 128,63,128,49,128,48,128,48,128,48,8,48,8,48,8,48, - 24,48,56,255,248,13,18,36,16,1,0,255,248,48,56,48, - 24,48,8,48,8,48,136,48,128,49,128,63,128,49,128,48, - 128,48,128,48,0,48,0,48,0,48,0,48,0,252,0,17, - 18,54,18,1,0,7,250,0,28,30,0,48,6,0,48,6, - 0,112,2,0,96,2,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,63,128,224,6,0,96,6,0,112,6,0,48, - 6,0,48,14,0,28,30,0,7,242,0,17,18,54,21,2, - 0,252,31,128,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,63,254,0,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,252,31,128,6,18,18,9,2,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,11, - 18,36,14,1,0,7,224,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,97,128,241,128,225, - 128,193,128,193,128,99,0,62,0,18,18,54,20,2,0,252, - 127,0,48,28,0,48,24,0,48,48,0,48,96,0,48,192, - 0,49,128,0,51,0,0,55,0,0,63,128,0,57,192,0, - 48,224,0,48,112,0,48,56,0,48,28,0,48,14,0,48, - 7,0,252,31,192,13,18,36,16,2,0,254,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,8,48,8,48,8,48,24,48,56,255,248,20, - 18,54,23,1,0,252,1,240,60,1,192,30,3,192,22,2, - 192,23,2,192,19,2,192,19,4,192,19,132,192,17,132,192, - 17,136,192,17,200,192,16,200,192,16,208,192,16,240,192,16, - 112,192,16,96,192,56,96,192,254,35,240,19,18,54,21,1, - 0,248,15,224,60,3,128,28,1,0,30,1,0,23,1,0, - 19,129,0,17,129,0,16,193,0,16,225,0,16,97,0,16, - 49,0,16,57,0,16,29,0,16,15,0,16,7,0,16,7, - 0,56,3,0,254,1,0,17,18,54,19,1,0,7,240,0, - 28,28,0,48,6,0,48,6,0,112,7,0,96,3,0,224, - 3,128,224,3,128,224,3,128,224,3,128,224,3,128,224,3, - 128,96,3,0,112,7,0,48,6,0,48,6,0,28,28,0, - 7,240,0,13,18,36,16,2,0,255,192,48,112,48,48,48, - 56,48,56,48,56,48,56,48,48,48,112,63,192,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,17,22,66, - 19,1,252,7,240,0,28,28,0,48,6,0,48,6,0,112, - 7,0,96,3,0,224,3,128,224,3,128,224,3,128,224,3, - 128,224,3,128,227,195,128,100,99,0,104,39,0,56,54,0, - 56,22,0,28,28,0,7,248,0,0,24,128,0,12,128,0, - 15,0,0,6,0,15,18,36,18,2,0,255,192,48,112,48, - 48,48,56,48,56,48,56,48,48,48,96,63,128,49,192,48, - 224,48,96,48,112,48,112,48,50,48,50,48,60,252,28,13, - 18,36,15,1,0,31,144,112,240,64,48,192,48,192,16,224, - 16,120,0,62,0,15,128,3,224,0,240,0,56,128,24,128, - 24,192,24,192,48,240,112,159,192,14,18,36,17,1,0,255, - 252,227,28,195,12,131,4,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,224,16,18,36,19,2,0,252,31,48,14,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,56,12,24,8,30,56,7,224,18,18,54, - 18,0,0,254,7,192,56,1,0,24,1,0,28,2,0,28, - 2,0,12,2,0,14,4,0,6,4,0,7,8,0,7,8, - 0,3,8,0,3,144,0,1,144,0,1,160,0,1,224,0, - 0,224,0,0,192,0,0,64,0,25,18,72,25,0,0,254, - 63,143,128,56,14,2,0,56,14,2,0,24,14,2,0,24, - 22,4,0,28,23,4,0,12,19,4,0,12,19,4,0,14, - 35,136,0,6,33,136,0,6,33,136,0,7,65,208,0,3, - 64,208,0,3,192,240,0,3,128,240,0,1,128,96,0,1, - 128,96,0,0,128,32,0,19,18,54,19,0,0,127,143,128, - 30,6,0,14,4,0,7,8,0,7,16,0,3,144,0,1, - 160,0,1,192,0,0,224,0,0,224,0,1,112,0,1,56, - 0,2,28,0,4,28,0,4,14,0,8,7,0,24,7,128, - 252,31,224,16,18,36,17,0,0,252,63,56,12,24,8,28, - 24,12,16,14,48,6,32,7,96,3,64,3,192,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,7,224,14,18,36, - 16,1,0,127,252,112,24,96,56,64,48,64,96,0,224,0, - 192,1,128,3,128,3,0,6,0,14,0,28,0,24,4,48, - 4,112,12,96,28,255,252,5,21,21,7,2,253,248,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,248,10,18,36,11,0,0,192,0,192,0,96,0,96,0, - 48,0,48,0,24,0,24,0,12,0,12,0,6,0,6,0, - 3,0,3,0,1,128,1,128,0,192,0,192,5,21,21,7, - 0,253,248,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,248,10,10,20,12,1,8,12,0,12, - 0,30,0,30,0,51,0,51,0,97,128,97,128,192,192,192, - 192,12,2,4,12,0,253,255,240,255,240,5,4,4,8,1, - 14,192,224,48,8,12,12,24,13,1,0,31,0,113,128,112, - 192,96,192,0,192,7,192,56,192,96,192,192,192,192,192,225, - 240,126,96,13,18,36,14,0,0,240,0,48,0,48,0,48, - 0,48,0,48,0,55,192,60,112,56,48,48,56,48,24,48, - 24,48,24,48,24,48,56,56,48,60,112,39,192,10,12,24, - 12,1,0,31,0,113,192,97,192,224,192,192,0,192,0,192, - 0,192,0,224,0,96,64,112,192,31,128,13,18,36,14,1, - 0,1,224,0,96,0,96,0,96,0,96,0,96,30,96,113, - 224,96,224,224,96,192,96,192,96,192,96,192,96,224,96,96, - 224,113,224,31,120,11,12,24,13,1,0,31,0,113,192,96, - 192,224,224,192,96,255,224,192,0,192,0,224,0,96,64,112, - 192,31,128,9,18,36,8,1,0,15,0,25,128,49,128,48, - 0,48,0,48,0,252,0,48,0,48,0,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,252,0,13,17,34, - 12,0,251,31,56,49,216,96,192,96,192,96,192,96,192,49, - 128,31,0,48,0,96,0,63,0,31,192,96,224,192,96,192, - 96,224,192,127,128,14,18,36,14,0,0,240,0,48,0,48, - 0,48,0,48,0,48,0,49,192,55,224,56,112,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,6, - 18,18,8,1,0,48,48,48,0,0,0,240,48,48,48,48, - 48,48,48,48,48,48,252,7,23,23,8,254,251,6,6,6, - 0,0,0,30,6,6,6,6,6,6,6,6,6,6,6,6, - 6,198,204,120,14,18,36,15,1,0,240,0,48,0,48,0, - 48,0,48,0,48,0,51,240,48,192,49,128,51,0,54,0, - 62,0,55,0,51,128,49,192,48,224,48,112,252,252,6,18, - 18,8,1,0,240,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,252,22,12,36,22,0,0,241,193,192,55, - 231,224,56,120,112,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,252,252, - 14,12,24,14,0,0,241,192,55,224,56,112,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,252,252,11,12, - 24,13,1,0,31,0,113,192,96,192,224,224,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,13,17,34,14, - 0,251,247,192,60,112,56,48,48,56,48,24,48,24,48,24, - 48,24,48,56,56,48,60,112,55,192,48,0,48,0,48,0, - 48,0,252,0,13,17,34,14,1,251,30,32,113,224,96,224, - 224,96,192,96,192,96,192,96,192,96,224,96,96,224,113,224, - 31,96,0,96,0,96,0,96,0,96,1,248,10,12,24,10, - 0,0,243,128,53,192,56,192,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,252,0,9,12,24,11,1,0, - 61,0,103,0,195,0,193,0,224,0,124,0,31,0,3,128, - 129,128,193,128,227,0,190,0,8,16,16,10,1,0,16,16, - 48,112,255,48,48,48,48,48,48,48,49,49,57,30,14,12, - 24,14,0,0,240,240,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,56,112,31,176,14,60,15,12,24,13, - 255,0,252,126,48,24,48,16,56,48,24,32,28,96,12,64, - 14,192,6,128,7,128,3,0,3,0,19,12,36,17,255,0, - 252,243,224,48,96,128,48,96,128,48,112,128,56,177,0,24, - 177,0,24,177,0,29,58,0,13,26,0,13,26,0,14,28, - 0,6,12,0,13,12,24,12,0,0,248,240,112,96,56,192, - 25,128,15,0,7,0,7,0,13,128,24,192,48,224,96,112, - 240,248,13,17,34,12,255,251,120,56,48,16,56,32,24,32, - 24,96,28,64,12,192,14,128,6,128,7,128,3,0,3,0, - 2,0,2,0,196,0,236,0,120,0,9,12,24,11,1,0, - 255,128,195,128,135,0,134,0,12,0,28,0,24,0,48,0, - 112,128,224,128,193,128,255,128,6,21,21,8,1,253,12,16, - 48,48,48,48,48,48,48,32,192,32,48,48,48,48,48,48, - 48,16,12,2,18,18,15,6,0,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,21,21,7,1, - 253,192,32,48,48,48,48,48,48,48,16,12,16,48,48,48, - 48,48,48,48,32,192,12,4,8,14,1,6,60,48,126,112, - 231,224,195,192,255}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=32 x= 9 y=19 dx=32 dy= 0 ascent=32 len=128 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =32 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24[11729] U8G_FONT_SECTION("u8g_font_ncenR24") = { - 0,39,50,250,245,25,5,159,15,28,32,255,249,32,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,9,1,1,4,25,25, - 10,3,249,96,240,240,96,0,0,0,96,96,96,96,96,96, - 96,96,96,96,96,240,240,240,240,240,240,96,13,24,48,18, - 2,252,0,24,0,24,0,16,0,48,7,224,31,240,56,112, - 112,112,112,240,224,224,224,128,225,128,225,0,227,0,227,0, - 242,16,118,48,60,96,31,224,15,128,8,0,24,0,16,0, - 16,0,16,23,46,19,1,0,1,240,7,252,14,14,12,14, - 28,30,28,30,28,28,28,0,30,0,14,0,14,0,255,248, - 15,0,7,0,7,0,7,0,6,0,6,0,126,3,223,7, - 143,142,223,252,112,240,16,17,34,19,1,3,67,194,239,247, - 127,254,60,60,112,14,112,14,224,7,224,7,224,7,224,7, - 224,7,112,14,112,14,60,60,127,254,239,247,3,192,17,23, - 69,19,0,0,255,31,128,60,15,0,28,6,0,30,6,0, - 14,4,0,15,12,0,7,8,0,7,24,0,3,144,0,3, - 176,0,1,224,0,0,224,0,7,252,0,7,252,0,0,224, - 0,0,224,0,7,252,0,7,252,0,0,224,0,0,224,0, - 0,224,0,7,248,0,7,248,0,2,25,25,20,9,0,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,12,30,60,17,2,251,15,0, - 57,192,48,192,113,192,113,192,112,128,56,0,60,0,30,0, - 15,0,63,128,99,192,193,224,192,240,192,112,224,48,240,48, - 120,48,60,96,31,192,15,0,7,128,3,192,1,192,16,224, - 56,224,56,224,48,192,57,192,15,0,9,3,6,11,1,19, - 99,0,247,128,99,0,24,25,75,25,0,0,0,126,0,3, - 255,128,7,129,224,14,0,112,24,0,56,48,0,28,48,127, - 12,96,227,134,97,129,134,67,128,134,195,0,131,199,0,3, - 199,0,3,199,0,3,199,0,3,195,0,3,67,128,6,97, - 193,134,97,227,140,48,126,12,24,0,24,28,0,112,7,1, - 224,3,255,128,0,126,0,11,14,28,11,0,11,63,0,99, - 128,97,128,99,128,15,128,121,128,225,128,193,128,227,128,125, - 224,0,0,0,0,0,0,255,192,11,11,22,14,1,2,4, - 32,12,96,24,192,49,128,115,128,231,0,115,128,49,128,24, - 192,12,96,4,32,16,9,18,20,1,3,255,255,255,255,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,8,3,3, - 11,1,7,255,255,255,24,24,72,25,0,0,0,126,0,3, - 255,192,15,1,240,28,0,56,56,0,24,51,252,12,96,199, - 14,96,195,6,64,195,6,192,195,3,192,198,3,192,252,3, - 192,204,3,192,206,3,192,198,3,96,199,6,96,195,6,96, - 195,142,51,227,204,24,0,24,28,0,112,7,0,224,3,255, - 192,0,126,0,10,2,4,11,0,19,255,192,255,192,9,9, - 18,13,2,14,62,0,119,0,193,128,193,128,128,128,193,128, - 193,128,119,0,62,0,16,16,32,20,2,0,1,128,1,128, - 1,128,1,128,255,255,255,255,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,0,0,255,255,255,255,10,14,28,11, - 0,9,63,0,115,128,97,128,113,128,113,128,1,128,3,0, - 7,0,14,0,28,0,56,64,112,64,255,192,255,192,9,14, - 28,11,1,9,62,0,99,0,113,128,97,128,1,128,7,0, - 62,0,7,0,3,0,97,128,225,128,195,128,231,0,126,0, - 7,6,6,11,2,19,6,14,28,56,96,192,17,23,69,20, - 1,249,56,14,0,248,62,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,30,0,56,30,0,60,126,0,63,238,0,47, - 143,128,32,0,0,32,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,32,0,0,17,30,90,20,2,251,15,255,128, - 63,255,128,120,198,0,240,198,0,240,198,0,240,198,0,240, - 198,0,240,198,0,240,198,0,240,198,0,120,198,0,124,198, - 0,63,198,0,15,198,0,0,198,0,0,198,0,0,198,0, - 0,198,0,0,198,0,0,198,0,0,198,0,0,198,0,0, - 198,0,0,198,0,0,198,0,0,198,0,0,198,0,0,198, - 0,3,255,128,3,255,128,4,4,4,9,2,6,96,240,240, - 96,6,7,7,11,1,249,16,32,120,12,12,140,120,8,14, - 14,11,1,9,56,248,24,24,24,24,24,24,24,24,24,24, - 24,255,11,14,28,10,255,11,14,0,59,128,96,192,224,224, - 192,96,192,96,224,224,96,192,59,128,14,0,0,0,0,0, - 0,0,127,192,11,11,22,14,1,2,132,0,198,0,99,0, - 49,128,57,192,28,224,57,192,49,128,99,0,198,0,132,0, - 25,23,92,28,1,0,56,0,24,0,248,0,48,0,24,0, - 48,0,24,0,96,0,24,0,192,0,24,0,128,0,24,1, - 128,0,24,3,0,0,24,6,0,0,24,6,4,0,24,12, - 12,0,24,24,28,0,24,24,60,0,255,48,108,0,0,96, - 76,0,0,192,204,0,0,193,140,0,1,131,12,0,3,3, - 255,128,3,0,12,0,6,0,12,0,12,0,12,0,8,0, - 63,0,25,23,92,28,1,0,56,0,24,0,248,0,48,0, - 24,0,32,0,24,0,96,0,24,0,192,0,24,1,128,0, - 24,1,128,0,24,3,0,0,24,6,0,0,24,6,62,0, - 24,12,99,0,24,24,193,128,24,48,193,128,255,48,225,128, - 0,96,195,0,0,192,7,0,0,192,14,0,1,128,28,0, - 3,0,56,0,3,0,112,128,6,0,224,128,12,1,255,128, - 8,1,255,128,25,23,92,28,1,0,62,0,8,0,99,0, - 24,0,113,128,48,0,97,128,48,0,1,128,96,0,7,0, - 192,0,30,1,128,0,7,1,128,0,3,131,0,0,97,134, - 4,0,225,134,12,0,195,140,28,0,231,24,60,0,126,48, - 108,0,0,48,204,0,0,96,204,0,0,193,140,0,0,195, - 12,0,1,131,255,128,3,0,12,0,6,0,12,0,6,0, - 12,0,12,0,63,0,12,25,50,14,1,249,3,0,7,128, - 7,128,3,0,0,0,0,0,0,0,3,0,3,0,2,0, - 2,0,6,0,12,0,28,0,56,0,120,0,112,0,240,0, - 224,112,224,112,224,112,240,48,112,48,60,224,31,192,23,32, - 96,23,0,0,6,0,0,7,0,0,3,128,0,1,192,0, - 0,96,0,0,48,0,0,0,0,0,16,0,0,56,0,0, - 56,0,0,120,0,0,124,0,0,124,0,0,220,0,0,222, - 0,1,158,0,1,142,0,1,143,0,3,7,0,3,7,128, - 3,7,128,6,3,128,7,255,192,7,255,192,12,1,192,12, - 1,224,12,1,224,24,0,240,24,0,240,56,0,248,124,1, - 252,254,3,254,23,32,96,23,0,0,0,1,128,0,3,128, - 0,7,0,0,14,0,0,24,0,0,48,0,0,0,0,0, - 16,0,0,56,0,0,56,0,0,120,0,0,124,0,0,124, - 0,0,220,0,0,222,0,1,158,0,1,142,0,1,143,0, - 3,7,0,3,7,128,3,7,128,6,3,128,7,255,192,7, - 255,192,12,1,192,12,1,224,12,1,224,24,0,240,24,0, - 240,56,0,248,124,1,252,254,3,254,23,31,93,23,0,0, - 0,24,0,0,60,0,0,126,0,0,195,0,1,129,128,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,0,241,128,1,255,0,3,30,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,30,90, - 23,0,0,1,134,0,3,207,0,1,134,0,0,0,0,0, - 0,0,0,16,0,0,56,0,0,56,0,0,120,0,0,124, - 0,0,124,0,0,220,0,0,222,0,1,158,0,1,142,0, - 1,143,0,3,7,0,3,7,128,3,7,128,6,3,128,7, - 255,192,7,255,192,12,1,192,12,1,224,12,1,224,24,0, - 240,24,0,240,56,0,248,124,1,252,254,3,254,23,32,96, - 23,0,0,0,120,0,0,204,0,0,132,0,0,132,0,0, - 204,0,0,120,0,0,0,0,0,16,0,0,56,0,0,56, - 0,0,120,0,0,124,0,0,124,0,0,220,0,0,222,0, - 1,158,0,1,142,0,1,143,0,3,7,0,3,7,128,3, - 7,128,6,3,128,7,255,192,7,255,192,12,1,192,12,1, - 224,12,1,224,24,0,240,24,0,240,56,0,248,124,1,252, - 254,3,254,30,25,100,32,0,0,1,255,255,252,0,127,255, - 252,0,29,192,124,0,25,192,28,0,25,192,28,0,49,192, - 12,0,49,192,140,0,97,192,132,0,97,193,132,0,193,193, - 128,0,193,195,128,1,129,255,128,1,129,255,128,3,1,195, - 128,3,255,193,128,7,255,193,128,6,1,192,132,12,1,192, - 132,12,1,192,4,24,1,192,12,24,1,192,12,48,1,192, - 28,48,1,192,124,120,7,255,252,254,31,255,252,20,32,96, - 22,1,249,0,248,96,3,255,96,15,7,224,28,1,224,60, - 0,224,56,0,224,120,0,96,120,0,96,240,0,96,240,0, - 32,240,0,0,240,0,0,240,0,0,240,0,0,240,0,0, - 240,0,0,240,0,48,120,0,48,120,0,32,120,0,96,60, - 0,96,28,0,192,14,1,128,7,207,0,1,254,0,0,32, - 0,0,64,0,0,240,0,0,24,0,0,24,0,1,24,0, - 0,240,0,20,32,96,24,1,0,3,0,0,3,128,0,1, - 192,0,0,224,0,0,48,0,0,24,0,0,0,0,255,255, - 240,63,255,240,14,1,240,14,0,112,14,0,112,14,0,48, - 14,4,48,14,4,16,14,4,16,14,12,0,14,60,0,15, - 252,0,15,252,0,14,60,0,14,12,0,14,12,0,14,4, - 16,14,4,16,14,0,16,14,0,48,14,0,48,14,0,112, - 14,1,240,63,255,240,255,255,240,20,32,96,24,1,0,0, - 1,128,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,0,0,255,255,240,63,255,240,14,1,240,14,0,112, - 14,0,112,14,0,48,14,4,48,14,4,16,14,4,16,14, - 12,0,14,60,0,15,252,0,15,252,0,14,60,0,14,12, - 0,14,12,0,14,4,16,14,4,16,14,0,16,14,0,48, - 14,0,48,14,0,112,14,1,240,63,255,240,255,255,240,20, - 32,96,24,1,0,0,48,0,0,120,0,0,252,0,1,134, - 0,3,3,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,20,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,112,14,0,48,14,4,48,14, - 4,16,14,4,16,14,12,0,14,60,0,15,252,0,15,252, - 0,14,60,0,14,12,0,14,12,0,14,4,16,14,4,16, - 14,0,16,14,0,48,14,0,48,14,0,112,14,1,240,63, - 255,240,255,255,240,11,32,64,13,1,0,96,0,112,0,56, - 0,28,0,6,0,3,0,0,0,255,224,63,128,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,63,128,255,224,11,32,64,13,1, - 0,0,192,1,192,3,128,7,0,12,0,24,0,0,0,255, - 224,63,128,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,63,128,255, - 224,11,31,62,13,1,0,6,0,15,0,31,128,48,192,96, - 96,0,0,255,224,63,128,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,63,128,255,224,11,30,60,13,1,0,49,128,123,192,49, - 128,0,0,0,0,255,224,63,128,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,255,224,22,25,75,24,1,0,255,252,0, - 255,255,128,30,7,192,14,1,224,14,0,240,14,0,112,14, - 0,120,14,0,120,14,0,56,14,0,60,14,0,60,14,0, - 60,127,224,60,127,224,60,14,0,60,14,0,60,14,0,60, - 14,0,56,14,0,120,14,0,120,14,0,112,14,0,224,14, - 1,192,255,255,128,255,254,0,26,30,120,28,1,0,0,30, - 48,0,0,63,224,0,0,99,192,0,0,0,0,0,0,0, - 0,0,255,0,255,192,31,0,63,0,15,128,12,0,15,192, - 12,0,15,192,12,0,13,224,12,0,13,240,12,0,12,248, - 12,0,12,120,12,0,12,124,12,0,12,62,12,0,12,30, - 12,0,12,31,12,0,12,15,140,0,12,7,140,0,12,7, - 204,0,12,3,204,0,12,1,236,0,12,0,236,0,12,0, - 252,0,12,0,124,0,12,0,60,0,12,0,60,0,63,0, - 28,0,255,192,12,0,22,32,96,24,1,0,6,0,0,7, - 0,0,3,128,0,1,192,0,0,96,0,0,48,0,0,0, - 0,1,254,0,7,255,128,15,3,192,28,0,224,60,0,240, - 56,0,112,120,0,120,120,0,120,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,56,120,0,120,120,0,120,56,0,112,60,0,240, - 28,0,224,15,3,192,7,255,128,1,254,0,22,32,96,24, - 1,0,0,3,0,0,7,0,0,14,0,0,28,0,0,48, - 0,0,96,0,0,0,0,1,254,0,7,255,128,15,3,192, - 28,0,224,60,0,240,56,0,112,120,0,120,120,0,120,240, - 0,60,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,56,120,0,120,120,0,120, - 56,0,112,60,0,240,28,0,224,15,3,192,7,255,128,1, - 254,0,22,31,93,24,1,0,0,48,0,0,120,0,0,252, - 0,1,134,0,3,3,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,241,128,1,255, - 0,3,30,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,22,30,90,24,1,0,0,198,0,1,239, - 0,0,198,0,0,0,0,0,0,0,1,254,0,7,255,128, - 15,3,192,28,0,224,60,0,240,56,0,112,120,0,120,120, - 0,120,240,0,60,240,0,60,240,0,60,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,56,120,0,120, - 120,0,120,56,0,112,60,0,240,28,0,224,15,3,192,7, - 255,128,1,254,0,17,15,45,20,2,1,224,3,128,112,7, - 0,56,14,0,28,28,0,14,56,0,7,112,0,3,224,0, - 1,192,0,3,224,0,7,112,0,14,56,0,28,28,0,56, - 14,0,112,7,0,224,3,128,22,28,84,24,1,254,0,0, - 24,1,254,48,7,255,176,14,3,224,28,0,224,60,1,240, - 56,1,240,120,3,120,120,6,120,240,6,60,240,12,60,240, - 24,60,240,56,60,240,48,60,240,96,60,240,224,60,240,192, - 60,113,128,56,123,0,120,123,0,120,62,0,112,60,0,240, - 30,1,224,31,3,192,55,255,128,113,254,0,96,0,0,192, - 0,0,26,32,128,26,0,0,0,48,0,0,0,56,0,0, - 0,28,0,0,0,14,0,0,0,3,0,0,0,1,128,0, - 0,0,0,0,255,224,255,192,63,128,63,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 15,0,24,0,7,0,24,0,7,128,48,0,3,224,240,0, - 1,255,192,0,0,127,0,0,26,32,128,26,0,0,0,0, - 48,0,0,0,112,0,0,0,224,0,0,1,192,0,0,3, - 0,0,0,6,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,26,31, - 124,26,0,0,0,6,0,0,0,15,0,0,0,31,128,0, - 0,48,192,0,0,96,96,0,0,0,0,0,255,224,255,192, - 63,128,63,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,14,0,12,0,14,0,12,0, - 14,0,12,0,14,0,12,0,15,0,24,0,7,0,24,0, - 7,128,48,0,3,224,240,0,1,255,192,0,0,127,0,0, - 26,30,120,26,0,0,0,48,192,0,0,121,224,0,0,48, - 192,0,0,0,0,0,0,0,0,0,255,224,255,192,63,128, - 63,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,15,0,24,0,7,0,24,0,7,128, - 48,0,3,224,240,0,1,255,192,0,0,127,0,0,23,32, - 96,23,0,0,0,1,128,0,3,128,0,7,0,0,14,0, - 0,24,0,0,48,0,0,0,0,255,131,254,126,0,248,62, - 0,112,30,0,96,15,0,224,15,0,192,7,129,128,7,193, - 128,3,195,0,3,227,0,1,230,0,0,246,0,0,252,0, - 0,124,0,0,120,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,254, - 0,3,255,128,20,25,75,22,1,0,255,224,0,31,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,15,254,0,15, - 255,128,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,3,224,15,255,192, - 15,255,0,14,0,0,14,0,0,14,0,0,14,0,0,31, - 0,0,255,224,0,17,26,78,19,0,255,3,248,0,7,156, - 0,14,14,0,14,15,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,14,0,28,14,0,28,248,0,28,248,0,28, - 14,0,28,7,0,28,7,0,28,7,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,231,128,28,231,0, - 60,231,0,252,254,0,0,56,0,16,23,46,17,1,0,12, - 0,14,0,7,0,3,128,0,192,0,96,0,0,7,192,31, - 240,120,120,112,56,112,56,112,56,1,248,15,248,60,56,112, - 56,224,56,224,56,224,120,240,253,127,159,63,14,16,23,46, - 17,1,0,0,48,0,112,0,224,1,192,3,0,6,0,0, - 0,7,192,31,240,120,120,112,56,112,56,112,56,1,248,15, - 248,60,56,112,56,224,56,224,56,224,120,240,253,127,159,63, - 14,16,22,44,17,1,0,3,0,7,128,15,192,24,96,48, - 48,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,15,24,31,240,49,224,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,21,42,17,1,0,12,96,30,240,12,96,0, - 0,0,0,7,192,31,240,120,120,112,56,112,56,112,56,1, - 248,15,248,60,56,112,56,224,56,224,56,224,120,240,253,127, - 159,62,14,16,23,46,17,1,0,7,128,12,192,8,64,8, - 64,12,192,7,128,0,0,7,192,31,240,120,120,112,56,112, - 56,112,56,1,248,15,248,60,56,112,56,224,56,224,56,224, - 120,240,253,127,159,62,14,23,16,48,25,1,0,15,195,224, - 63,231,248,112,124,28,112,60,12,112,56,14,112,56,14,1, - 248,14,15,255,254,60,56,0,112,56,0,240,56,0,224,60, - 2,224,124,6,240,254,28,127,207,248,63,3,240,12,23,46, - 14,1,249,7,128,31,224,56,112,112,240,112,240,224,96,224, - 0,224,0,224,0,224,0,240,0,240,16,120,48,124,96,63, - 192,15,0,2,0,4,0,15,0,1,128,1,128,17,128,15, - 0,14,23,46,16,1,0,24,0,28,0,14,0,7,0,1, - 128,0,192,0,0,7,192,31,240,56,56,112,24,112,28,240, - 28,240,28,255,252,224,0,224,0,240,0,240,4,120,12,60, - 56,31,240,7,192,14,23,46,16,1,0,0,24,0,56,0, - 112,0,224,1,128,3,0,0,0,7,192,31,240,56,120,112, - 56,96,28,224,28,224,28,255,252,224,0,224,0,240,0,240, - 4,120,12,60,56,31,240,7,192,14,22,44,16,1,0,3, - 0,7,128,15,192,24,96,48,48,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,56,31,240,7,192,14,21,42,16,1, - 0,12,96,30,240,12,96,0,0,0,0,7,192,31,240,56, - 56,112,24,112,28,240,28,240,28,255,252,224,0,224,0,240, - 0,240,4,120,12,60,24,31,240,7,192,9,23,46,11,1, - 0,192,0,224,0,112,0,56,0,12,0,6,0,0,0,252, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,9, - 23,46,11,1,0,1,128,3,128,7,0,14,0,24,0,48, - 0,0,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,255,128,10,22,44,11,0,0,12,0,30,0,63,0,97, - 128,192,192,0,0,126,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,127,192,9,21,42,11,1,0,99,0,247,128,99, - 0,0,0,0,0,252,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,255,128,14,25,50,17,1,0,48,0,60,0,14, - 224,7,192,15,128,13,192,0,224,0,240,0,112,7,248,31, - 248,56,120,112,60,112,60,224,28,224,28,224,28,224,28,224, - 28,224,28,240,60,112,56,120,120,63,240,15,192,19,21,63, - 19,0,0,3,198,0,7,252,0,12,120,0,0,0,0,0, - 0,0,28,120,0,253,254,0,31,158,0,30,15,0,30,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,255, - 31,224,14,23,46,16,1,0,48,0,56,0,28,0,14,0, - 3,0,1,128,0,0,7,128,31,224,56,112,112,56,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,240,60,112,56, - 120,120,31,224,7,128,14,23,46,16,1,0,0,24,0,56, - 0,112,0,224,1,128,3,0,0,0,7,128,31,224,56,112, - 112,56,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,56,120,120,31,224,7,128,14,22,44,16,1,0, - 3,0,7,128,15,192,24,96,48,48,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,15,24,31,240,49,224,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,14,21,42,16, - 1,0,24,192,61,224,24,192,0,0,0,0,7,128,31,224, - 56,112,112,56,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,112,56,56,112,31,224,7,128,16,16,32,20, - 2,0,1,128,3,192,3,192,1,128,0,0,0,0,0,0, - 255,255,255,255,0,0,0,0,0,0,1,128,3,192,3,192, - 1,128,14,22,44,16,1,253,0,24,0,24,0,48,7,240, - 31,240,56,112,112,248,112,216,225,156,225,156,227,28,227,28, - 230,28,230,28,236,56,124,56,120,112,63,224,63,128,48,0, - 96,0,96,0,18,23,69,20,0,0,6,0,0,7,0,0, - 3,128,0,1,192,0,0,96,0,0,48,0,0,0,0,28, - 7,0,252,63,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,15,0,28,15,0,14,63,0,15,247,192,7,199,0,18, - 23,69,20,0,0,0,12,0,0,28,0,0,56,0,0,112, - 0,0,192,0,1,128,0,0,0,0,28,7,0,252,63,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,15,0,28,15, - 0,14,63,0,15,247,192,7,199,0,18,22,66,20,0,0, - 0,192,0,1,224,0,3,240,0,6,24,0,12,12,0,0, - 0,0,28,7,0,252,63,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,15,0,28,15,0,14,63,0,15,247,192,7, - 199,0,18,21,63,20,0,0,3,24,0,7,188,0,3,24, - 0,0,0,0,0,0,0,28,7,0,252,63,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,15,0,28,15,0,14,63, - 0,15,247,192,7,199,0,17,30,90,19,1,249,0,12,0, - 0,28,0,0,56,0,0,112,0,0,192,0,1,128,0,0, - 0,0,255,31,128,124,7,0,60,6,0,28,6,0,30,12, - 0,14,12,0,15,8,0,7,24,0,7,24,0,7,176,0, - 3,176,0,3,224,0,1,224,0,1,224,0,0,192,0,0, - 192,0,1,128,0,1,128,0,99,0,0,227,0,0,230,0, - 0,252,0,0,112,0,0,16,29,58,19,1,249,56,0,248, - 0,56,0,56,0,56,0,56,0,56,240,59,252,63,30,60, - 14,60,15,56,7,56,7,56,7,56,7,56,7,56,7,60, - 15,60,14,62,30,59,252,57,240,56,0,56,0,56,0,56, - 0,56,0,56,0,255,0,18,28,84,20,1,249,3,24,0, - 7,188,0,3,24,0,0,0,0,0,0,0,255,31,192,124, - 7,0,60,6,0,28,6,0,30,12,0,14,12,0,15,8, - 0,7,24,0,7,24,0,7,176,0,3,176,0,3,224,0, - 1,224,0,1,224,0,0,192,0,0,192,0,1,128,0,1, - 128,0,99,0,0,227,0,0,230,0,0,252,0,0,112,0, - 0}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 24 - Calculated Max Values w=16 h=25 x= 3 y=11 dx=20 dy= 0 ascent=25 len=50 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =24 descent= 0 - X Font ascent =24 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24n[744] U8G_FONT_SECTION("u8g_font_ncenR24n") = { - 0,39,50,250,245,24,0,0,0,0,42,58,0,25,250,24, - 0,12,14,28,17,2,11,6,0,6,0,6,0,198,112,230, - 112,127,224,31,128,31,0,127,192,230,112,198,112,6,0,6, - 0,6,0,16,17,34,20,2,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,255,255,255,255,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,5,10,10,9,2, - 250,112,248,248,120,24,24,48,96,224,128,8,3,3,11,1, - 7,255,255,255,4,4,4,9,2,0,96,240,240,96,10,25, - 50,9,255,0,0,192,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,48,0,48,0,48,0,96,0, - 96,0,96,0,192,0,16,24,48,18,2,0,3,192,15,240, - 28,56,24,24,56,28,120,30,112,14,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,112,14, - 120,30,56,28,24,24,28,56,15,240,3,192,13,24,48,18, - 3,0,3,0,7,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,15,128, - 255,248,15,24,48,18,1,0,7,224,31,248,56,28,96,30, - 112,14,120,14,120,14,120,14,48,30,0,28,0,28,0,56, - 0,120,0,112,0,224,1,192,3,128,7,2,14,2,28,6, - 56,6,127,254,255,254,255,254,15,24,48,18,1,0,7,224, - 31,248,56,56,112,28,120,28,120,28,48,28,0,28,0,56, - 0,112,1,224,15,240,0,248,0,60,0,28,0,30,96,14, - 240,14,240,14,240,30,224,28,120,124,63,240,15,192,16,24, - 48,18,1,0,0,48,0,48,0,112,0,240,1,240,1,240, - 3,112,6,112,6,112,12,112,24,112,24,112,48,112,96,112, - 96,112,192,112,255,255,255,255,0,112,0,112,0,112,0,112, - 0,248,3,254,14,24,48,18,2,0,56,8,63,248,63,240, - 63,224,48,0,48,0,32,0,96,0,99,192,111,240,124,120, - 112,56,96,60,0,28,0,28,0,28,96,28,240,28,240,28, - 240,60,224,56,112,120,127,240,31,128,15,24,48,18,1,0, - 3,240,15,252,28,62,56,30,56,30,48,12,112,0,112,0, - 112,0,241,224,247,248,254,60,252,28,248,30,240,14,240,14, - 240,14,112,14,112,14,112,30,56,28,56,60,31,240,7,192, - 13,24,48,18,3,0,255,248,255,248,255,248,192,16,192,48, - 128,32,128,96,128,64,0,192,0,192,1,128,1,128,1,128, - 3,0,3,0,3,0,7,0,7,0,7,0,15,0,15,0, - 15,0,15,0,6,0,15,24,48,18,1,0,7,224,31,248, - 60,56,56,28,112,28,112,12,112,12,120,24,60,56,63,112, - 31,224,7,240,7,248,29,252,56,124,112,30,112,30,224,14, - 224,14,224,14,112,28,120,60,63,248,15,224,15,24,48,18, - 1,0,15,192,63,240,120,120,112,56,240,60,224,28,224,28, - 224,30,224,30,240,30,240,62,120,126,120,126,63,222,31,158, - 0,30,0,28,0,28,96,56,240,56,240,112,241,224,127,192, - 63,0,4,16,16,9,3,0,96,240,240,96,0,0,0,0, - 0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-New Century Schoolbook-Medium-R-Normal--34-240-100-100-P-181-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 25, '1' Height: 24 - Calculated Max Values w=31 h=31 x= 9 y=17 dx=31 dy= 0 ascent=27 len=100 - Font Bounding box w=39 h=50 x=-6 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent=-7 - X Font ascent =25 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_ncenR24r[5367] U8G_FONT_SECTION("u8g_font_ncenR24r") = { - 0,39,50,250,245,25,5,159,15,28,32,127,249,27,249,25, - 249,0,0,0,9,1,1,4,25,25,10,3,0,96,240,240, - 240,240,240,240,96,96,96,96,96,96,96,96,96,96,96,0, - 0,0,96,240,240,96,9,8,16,13,2,17,227,128,227,128, - 227,128,227,128,65,0,65,0,65,0,65,0,16,23,46,19, - 2,0,3,12,3,12,3,12,7,28,6,24,6,24,6,24, - 127,255,127,255,6,24,14,56,12,56,12,48,255,254,255,254, - 12,48,12,48,28,112,28,112,24,96,24,96,24,96,24,96, - 14,31,62,18,2,252,2,0,2,0,2,0,15,192,63,240, - 114,112,226,56,194,120,194,120,194,48,194,0,226,0,250,0, - 127,0,63,192,31,240,3,248,2,124,2,60,98,28,242,12, - 242,12,226,28,194,24,226,120,127,240,31,192,2,0,2,0, - 2,0,2,0,24,25,75,27,1,255,3,128,32,15,192,224, - 28,227,192,56,127,192,56,97,128,112,97,128,112,99,0,240, - 99,0,224,102,0,224,196,0,224,204,0,225,136,28,115,24, - 126,62,16,227,0,49,195,0,99,195,0,99,131,0,199,131, - 0,199,3,1,135,6,1,135,6,3,7,12,2,3,152,6, - 1,240,4,0,0,22,25,75,27,2,0,1,248,0,7,188, - 0,6,28,0,14,14,0,14,14,0,14,14,0,14,12,0, - 14,28,0,15,56,0,15,112,0,7,224,0,7,128,0,15, - 199,252,59,193,240,113,224,224,113,240,192,224,240,192,224,249, - 128,224,125,128,240,63,4,240,30,4,248,15,12,126,63,248, - 63,243,248,31,193,224,3,8,8,7,2,17,224,224,224,224, - 64,64,64,64,8,29,29,11,2,252,1,7,6,12,24,48, - 48,48,96,96,96,96,224,224,224,224,224,96,96,96,96,48, - 48,16,24,12,6,7,3,8,29,29,11,2,252,192,224,96, - 48,24,8,12,12,6,6,6,6,7,7,7,7,7,6,6, - 6,6,12,12,28,24,48,96,192,192,12,14,28,17,2,11, - 6,0,6,0,6,0,198,112,230,112,127,224,31,128,31,0, - 127,192,230,112,198,112,6,0,6,0,6,0,16,17,34,20, - 2,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 255,255,255,255,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,5,10,10,9,2,250,112,248,248,120,24,24, - 48,96,224,128,8,3,3,11,1,7,255,255,255,4,4,4, - 9,2,0,96,240,240,96,10,25,50,9,255,0,0,192,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,6, - 0,6,0,6,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,96,0,96,0,96,0,192,0,16, - 24,48,18,2,0,3,192,15,240,28,56,24,24,56,28,120, - 30,112,14,240,15,240,15,240,15,240,15,240,15,240,15,240, - 15,240,15,240,15,240,15,112,14,120,30,56,28,24,24,28, - 56,15,240,3,192,13,24,48,18,3,0,3,0,7,0,255, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,15,128,255,248,15,24,48,18,1, - 0,7,224,31,248,56,28,96,30,112,14,120,14,120,14,120, - 14,48,30,0,28,0,28,0,56,0,120,0,112,0,224,1, - 192,3,128,7,2,14,2,28,6,56,6,127,254,255,254,255, - 254,15,24,48,18,1,0,7,224,31,248,56,56,112,28,120, - 28,120,28,48,28,0,28,0,56,0,112,1,224,15,240,0, - 248,0,60,0,28,0,30,96,14,240,14,240,14,240,30,224, - 28,120,124,63,240,15,192,16,24,48,18,1,0,0,48,0, - 48,0,112,0,240,1,240,1,240,3,112,6,112,6,112,12, - 112,24,112,24,112,48,112,96,112,96,112,192,112,255,255,255, - 255,0,112,0,112,0,112,0,112,0,248,3,254,14,24,48, - 18,2,0,56,8,63,248,63,240,63,224,48,0,48,0,32, - 0,96,0,99,192,111,240,124,120,112,56,96,60,0,28,0, - 28,0,28,96,28,240,28,240,28,240,60,224,56,112,120,127, - 240,31,128,15,24,48,18,1,0,3,240,15,252,28,62,56, - 30,56,30,48,12,112,0,112,0,112,0,241,224,247,248,254, - 60,252,28,248,30,240,14,240,14,240,14,112,14,112,14,112, - 30,56,28,56,60,31,240,7,192,13,24,48,18,3,0,255, - 248,255,248,255,248,192,16,192,48,128,32,128,96,128,64,0, - 192,0,192,1,128,1,128,1,128,3,0,3,0,3,0,7, - 0,7,0,7,0,15,0,15,0,15,0,15,0,6,0,15, - 24,48,18,1,0,7,224,31,248,60,56,56,28,112,28,112, - 12,112,12,120,24,60,56,63,112,31,224,7,240,7,248,29, - 252,56,124,112,30,112,30,224,14,224,14,224,14,112,28,120, - 60,63,248,15,224,15,24,48,18,1,0,15,192,63,240,120, - 120,112,56,240,60,224,28,224,28,224,30,224,30,240,30,240, - 62,120,126,120,126,63,222,31,158,0,30,0,28,0,28,96, - 56,240,56,240,112,241,224,127,192,63,0,4,16,16,9,3, - 0,96,240,240,96,0,0,0,0,0,0,0,0,96,240,240, - 96,5,21,21,9,1,251,48,120,120,48,0,0,0,0,0, - 0,0,0,48,120,120,56,24,16,48,96,192,16,18,36,20, - 2,255,0,1,0,7,0,31,0,124,1,240,7,192,31,0, - 124,0,240,0,240,0,124,0,31,0,7,192,1,240,0,124, - 0,31,0,7,0,1,16,8,16,20,2,4,255,255,255,255, - 0,0,0,0,0,0,0,0,255,255,255,255,16,18,36,20, - 2,255,128,0,224,0,248,0,62,0,15,128,3,224,0,248, - 0,62,0,15,0,15,0,62,0,248,3,224,15,128,62,0, - 248,0,224,0,128,0,12,25,50,14,1,0,63,128,115,224, - 192,224,192,240,224,112,224,112,224,112,0,240,0,240,1,224, - 1,192,3,128,3,0,6,0,4,0,4,0,12,0,12,0, - 0,0,0,0,0,0,12,0,30,0,30,0,12,0,22,25, - 75,25,1,0,0,254,0,3,255,128,15,135,192,30,0,224, - 28,0,112,48,0,56,48,0,24,96,251,152,97,207,140,227, - 143,140,199,135,140,199,7,12,207,7,12,207,15,8,206,15, - 24,206,14,24,206,30,48,102,62,96,103,126,192,51,231,152, - 56,0,56,28,0,112,15,129,224,7,255,128,0,254,0,23, - 25,75,23,0,0,0,16,0,0,56,0,0,56,0,0,120, - 0,0,124,0,0,124,0,0,220,0,0,222,0,1,158,0, - 1,142,0,1,143,0,3,7,0,3,7,128,3,7,128,6, - 3,128,7,255,192,7,255,192,12,1,192,12,1,224,12,1, - 224,24,0,240,24,0,240,56,0,248,124,1,252,254,3,254, - 20,25,75,23,1,0,255,254,0,63,255,128,14,7,192,14, - 1,192,14,1,224,14,1,224,14,1,224,14,1,224,14,1, - 192,14,1,192,14,3,128,15,255,0,15,252,0,14,15,128, - 14,3,192,14,1,224,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,240,14,1,224,14,3,224,63,255,192,255,255, - 0,20,25,75,22,1,0,1,252,96,7,255,96,14,3,224, - 28,1,224,60,0,224,56,0,224,120,0,96,120,0,96,240, - 0,32,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,48,120,0,48,120,0,48, - 120,0,96,60,0,96,28,0,192,15,3,128,7,255,0,1, - 252,0,22,25,75,25,1,0,255,254,0,63,255,192,14,3, - 224,14,0,240,14,0,112,14,0,120,14,0,120,14,0,60, - 14,0,60,14,0,60,14,0,60,14,0,60,14,0,60,14, - 0,60,14,0,60,14,0,60,14,0,60,14,0,60,14,0, - 56,14,0,120,14,0,112,14,0,224,14,3,224,63,255,192, - 255,254,0,20,25,75,24,1,0,255,255,240,63,255,240,14, - 1,240,14,0,112,14,0,112,14,0,48,14,4,48,14,4, - 16,14,4,16,14,12,0,14,60,0,15,252,0,15,252,0, - 14,60,0,14,12,0,14,12,0,14,4,16,14,4,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 240,255,255,240,20,25,75,22,1,0,255,255,240,63,255,240, - 14,1,240,14,0,112,14,0,48,14,0,48,14,0,16,14, - 4,16,14,4,16,14,12,0,14,12,0,14,60,0,15,252, - 0,15,252,0,14,28,0,14,12,0,14,4,0,14,4,0, - 14,4,0,14,0,0,14,0,0,14,0,0,14,0,0,63, - 128,0,255,224,0,24,25,75,24,1,0,1,254,48,7,255, - 176,15,3,240,30,0,240,60,0,112,56,0,112,120,0,48, - 112,0,48,112,0,16,240,0,16,240,0,0,240,0,0,240, - 0,0,240,0,0,240,7,255,240,0,248,240,0,112,112,0, - 112,112,0,112,120,0,112,56,0,240,28,0,240,15,1,176, - 7,255,48,1,254,16,25,25,100,27,1,0,255,227,255,128, - 63,128,254,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,15,255,248,0,15,255,248,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,14,0,56,0,14,0,56,0, - 14,0,56,0,14,0,56,0,63,128,254,0,255,227,255,128, - 11,25,50,13,1,0,255,224,63,128,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,63,128,255,224,17,25,75,18,0,0,3,255, - 128,0,124,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,112,56, - 0,248,56,0,248,56,0,248,56,0,240,56,0,192,120,0, - 224,112,0,127,240,0,31,192,0,25,25,100,25,1,0,255, - 227,255,0,63,129,252,0,14,0,240,0,14,0,224,0,14, - 1,192,0,14,1,128,0,14,3,0,0,14,6,0,0,14, - 14,0,0,14,28,0,0,14,56,0,0,14,124,0,0,14, - 254,0,0,15,222,0,0,15,143,0,0,15,7,128,0,14, - 7,192,0,14,3,192,0,14,1,224,0,14,1,240,0,14, - 0,240,0,14,0,120,0,14,0,124,0,63,0,62,0,255, - 192,255,128,20,25,75,22,1,0,255,224,0,63,128,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,16,14,0,16,14, - 0,16,14,0,48,14,0,48,14,0,112,14,1,240,63,255, - 224,255,255,224,29,25,100,30,0,0,127,128,15,248,31,128, - 15,192,15,128,15,128,15,192,15,128,13,192,27,128,13,192, - 27,128,13,224,19,128,12,224,51,128,12,224,51,128,12,240, - 35,128,12,112,99,128,12,112,99,128,12,120,99,128,12,56, - 195,128,12,56,195,128,12,60,195,128,12,28,131,128,12,29, - 131,128,12,31,131,128,12,31,3,128,12,15,3,128,12,15, - 3,128,12,14,3,128,63,6,15,224,255,198,63,248,26,25, - 100,28,1,0,255,0,255,192,31,0,63,0,15,128,12,0, - 15,192,12,0,15,192,12,0,13,224,12,0,13,240,12,0, - 12,248,12,0,12,120,12,0,12,124,12,0,12,62,12,0, - 12,30,12,0,12,31,12,0,12,15,140,0,12,7,140,0, - 12,7,204,0,12,3,204,0,12,1,236,0,12,0,236,0, - 12,0,252,0,12,0,124,0,12,0,60,0,12,0,60,0, - 63,0,28,0,255,192,12,0,22,25,75,24,1,0,1,254, - 0,7,255,128,15,3,192,28,0,224,60,0,240,56,0,112, - 120,0,120,112,0,56,240,0,60,240,0,60,224,0,28,224, - 0,28,224,0,28,224,0,28,224,0,28,240,0,60,240,0, - 56,112,0,56,120,0,120,56,0,112,60,0,240,28,0,224, - 15,3,192,7,255,128,1,254,0,20,25,75,22,1,0,255, - 254,0,63,255,128,14,7,192,14,1,224,14,0,240,14,0, - 240,14,0,112,14,0,112,14,0,240,14,0,240,14,1,224, - 14,7,192,15,255,128,15,254,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,63,128,0,255,224,0,23,31,93,24,1,250, - 0,254,0,3,255,128,15,1,224,30,0,240,60,0,120,56, - 0,56,120,0,60,112,0,28,240,0,30,240,0,30,224,0, - 14,224,0,14,224,0,14,224,0,14,240,0,30,240,0,30, - 112,124,28,121,222,60,121,135,56,61,3,112,29,3,112,31, - 3,224,15,131,192,3,255,128,0,255,192,0,3,198,0,1, - 198,0,1,228,0,1,252,0,0,248,0,0,112,21,25,75, - 23,1,0,255,254,0,63,255,128,14,7,192,14,1,192,14, - 1,224,14,0,224,14,0,224,14,1,224,14,1,224,14,1, - 192,14,3,192,14,15,0,15,252,0,15,254,0,14,15,0, - 14,7,0,14,7,128,14,3,128,14,3,128,14,3,136,14, - 3,136,14,3,136,14,3,216,63,129,240,255,225,224,17,25, - 75,20,2,0,15,241,0,63,251,0,112,31,0,96,7,0, - 224,7,0,224,3,0,224,1,0,240,1,0,240,0,0,126, - 0,0,127,224,0,31,252,0,7,254,0,0,127,0,0,15, - 128,128,7,128,128,3,128,192,3,128,192,3,128,192,3,128, - 224,7,128,240,7,0,248,14,0,223,252,0,135,240,0,19, - 25,75,21,1,0,255,255,224,255,255,224,240,227,224,224,224, - 224,192,224,96,192,224,96,128,224,32,128,224,32,128,224,32, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,3,248,0,15,254,0, - 26,25,100,26,0,0,255,224,255,192,63,128,63,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,14,0,12,0,14,0,12,0,14,0,12,0,14,0, - 12,0,15,0,24,0,7,0,24,0,7,128,48,0,3,224, - 240,0,1,255,192,0,0,127,0,0,23,25,75,23,0,0, - 255,195,254,62,0,248,30,0,112,30,0,112,14,0,96,15, - 0,96,15,0,64,7,0,192,7,128,192,7,128,128,3,129, - 128,3,193,128,3,193,0,1,195,0,1,227,0,1,226,0, - 0,230,0,0,246,0,0,244,0,0,124,0,0,124,0,0, - 56,0,0,56,0,0,56,0,0,16,0,31,25,100,31,0, - 0,255,31,241,254,126,7,192,124,60,3,128,56,28,3,128, - 48,30,3,192,48,30,3,192,96,14,3,192,96,14,3,224, - 96,15,3,224,96,7,6,224,192,7,6,224,192,7,132,240, - 192,7,140,112,192,3,140,113,128,3,140,121,128,3,200,57, - 128,1,216,57,0,1,248,63,0,1,248,31,0,0,240,31, - 0,0,240,30,0,0,240,30,0,0,224,14,0,0,96,12, - 0,0,96,12,0,23,25,75,22,0,0,255,199,252,63,1, - 240,31,0,224,15,1,192,15,129,128,7,131,128,3,195,0, - 3,230,0,1,238,0,0,252,0,0,248,0,0,120,0,0, - 124,0,0,124,0,0,254,0,1,223,0,1,143,0,3,135, - 128,3,7,128,6,3,192,14,3,224,12,1,224,28,0,240, - 62,0,248,255,135,254,23,25,75,23,0,0,255,131,254,126, - 0,248,62,0,112,30,0,96,15,0,224,15,0,192,7,129, - 128,7,193,128,3,195,0,3,227,0,1,230,0,0,246,0, - 0,252,0,0,124,0,0,120,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,254,0,3,255,128,17,25,75,19,1,0,127,255,128, - 127,255,128,120,15,0,112,15,0,96,30,0,96,62,0,96, - 60,0,64,124,0,64,120,0,0,240,0,0,240,0,1,224, - 0,3,224,0,3,192,0,7,128,0,7,128,128,15,0,128, - 31,0,128,30,1,128,62,1,128,60,1,128,120,3,128,120, - 7,128,255,255,128,255,255,128,7,29,29,11,3,252,254,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,254,15,25,50,20,2, - 0,224,0,112,0,112,0,56,0,56,0,28,0,28,0,14, - 0,14,0,7,0,7,0,3,128,3,128,3,128,1,192,1, - 192,0,224,0,224,0,112,0,112,0,56,0,56,0,28,0, - 28,0,14,7,29,29,11,1,252,254,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,254,16,13,26,20,2,12,3,192,3,192, - 7,224,7,224,14,112,14,112,28,56,28,56,56,28,56,28, - 112,14,112,14,224,7,16,2,4,16,0,252,255,255,255,255, - 7,6,6,11,1,17,192,224,112,56,12,6,16,16,32,17, - 1,0,15,192,63,240,120,120,112,56,96,56,0,56,1,248, - 15,248,60,56,112,56,224,56,224,56,224,120,241,253,127,159, - 62,14,15,25,50,17,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,57,224,59,248,62,28, - 60,28,60,14,56,14,56,14,56,14,56,14,56,14,56,14, - 60,14,60,28,62,28,55,248,33,224,12,16,32,14,1,0, - 7,128,31,224,56,112,112,240,112,240,224,96,224,0,224,0, - 224,0,224,0,224,0,112,16,112,48,56,96,63,192,15,128, - 16,25,50,18,1,0,0,12,0,124,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,7,156,31,220,56,124,112,60, - 112,60,224,28,224,28,224,28,224,28,224,28,224,28,240,60, - 112,60,120,124,31,220,7,159,14,16,32,16,1,0,7,192, - 31,240,56,120,112,56,96,28,224,28,224,28,255,252,224,0, - 224,0,224,0,240,4,112,12,120,56,63,240,15,192,14,25, - 50,11,0,0,1,248,7,28,14,28,12,28,28,8,28,0, - 28,0,28,0,28,0,255,192,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,192,16,23,46,17,1,249,7,159,31,251, - 56,115,112,56,112,56,112,56,112,56,112,56,56,112,31,224, - 55,128,96,0,96,0,127,224,127,248,63,252,48,62,96,14, - 224,14,224,14,248,60,127,248,15,192,19,25,75,20,0,0, - 12,0,0,252,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,112,0,29,252, - 0,31,30,0,30,14,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,255,63,224,9,24,48,10,1, - 0,24,0,60,0,60,0,24,0,0,0,0,0,0,0,0, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,255, - 128,9,31,62,10,254,249,3,0,7,128,7,128,3,0,0, - 0,0,0,0,0,0,0,3,128,31,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,67,128,227,0,227, - 0,230,0,124,0,19,25,75,20,0,0,12,0,0,252,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,127,128,28,30,0,28,24,0,28, - 48,0,28,96,0,28,192,0,29,192,0,31,224,0,30,240, - 0,28,120,0,28,60,0,28,28,0,28,14,0,28,15,0, - 28,7,128,255,31,224,9,25,50,11,1,0,12,0,28,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,27,16, - 64,27,0,0,28,240,120,0,253,252,254,0,31,29,142,0, - 30,15,7,0,30,15,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 28,14,7,0,28,14,7,0,28,14,7,0,28,14,7,0, - 255,63,159,224,19,16,48,19,0,0,28,120,0,253,254,0, - 31,142,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,255,31,224,14,16,32,16,1,0, - 7,128,31,224,56,112,112,56,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,112,56,56,112,31,224,7,128, - 16,23,46,19,1,249,25,240,251,252,62,30,60,14,60,7, - 56,7,56,7,56,7,56,7,56,7,56,7,60,14,60,14, - 62,28,59,252,57,240,56,0,56,0,56,0,56,0,56,0, - 124,0,255,0,16,23,46,17,1,249,7,196,31,236,56,60, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 240,60,112,60,56,124,63,220,15,156,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,14,16,32,15,0,0,28,120, - 253,252,31,60,30,60,30,24,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,255,128,11,16, - 32,15,2,0,30,192,127,192,225,192,192,192,192,192,240,64, - 254,0,127,128,63,192,7,224,128,224,192,96,192,96,224,224, - 255,192,159,0,12,23,46,13,0,0,4,0,4,0,12,0, - 12,0,28,0,28,0,60,0,255,224,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,16,28,16,28,48, - 28,48,30,96,15,224,7,192,18,16,48,20,0,0,28,7, - 0,252,63,0,28,7,0,28,7,0,28,7,0,28,7,0, - 28,7,0,28,7,0,28,7,0,28,7,0,28,7,0,28, - 15,0,28,15,0,30,63,0,15,247,192,7,199,0,17,16, - 48,17,0,0,255,31,128,124,7,0,60,6,0,30,6,0, - 30,12,0,14,12,0,15,8,0,7,24,0,7,24,0,7, - 176,0,3,176,0,3,224,0,1,224,0,1,224,0,0,192, - 0,0,192,0,24,16,48,24,0,0,254,127,63,120,60,14, - 56,28,12,60,28,28,28,30,24,28,30,24,14,54,16,14, - 39,48,15,103,48,7,103,96,7,67,96,3,195,192,3,195, - 192,3,129,192,1,129,128,1,129,128,16,16,32,19,1,0, - 255,127,60,28,30,24,14,48,15,48,7,96,3,192,3,192, - 1,224,3,224,6,112,12,120,28,56,56,60,120,30,254,127, - 18,23,69,20,1,249,255,31,192,60,7,0,60,6,0,28, - 6,0,30,12,0,14,12,0,15,8,0,7,24,0,7,24, - 0,7,176,0,3,176,0,3,224,0,1,224,0,1,224,0, - 0,192,0,0,192,0,1,128,0,1,128,0,99,0,0,243, - 0,0,230,0,0,252,0,0,112,0,0,13,16,32,15,1, - 0,127,248,120,120,96,240,96,224,65,224,67,192,3,128,7, - 128,15,0,14,0,30,8,60,8,56,24,120,56,240,248,255, - 248,6,30,30,11,3,252,12,28,56,48,48,48,48,48,48, - 48,48,48,48,112,224,224,112,48,48,48,48,48,48,48,48, - 48,48,56,28,12,2,25,25,20,9,0,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,6,30,30,11,2,252,192,224,112,48,48,48, - 48,48,48,48,48,48,48,56,28,28,56,48,48,48,48,48, - 48,48,48,48,48,112,224,192,16,4,8,20,2,6,30,3, - 127,135,225,254,192,120,255}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w=11 h= 9 x= 1 y= 4 dx=12 dy= 0 ascent= 9 len=10 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01[1535] U8G_FONT_SECTION("u8g_font_orgv01") = { - 1,11,11,0,254,5,0,249,1,238,32,255,255,9,254,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 2,20,36,128,0,128,128,2,85,101,32,248,160,248,32,2, - 85,101,64,224,64,72,120,2,85,101,136,112,80,112,136,2, - 85,101,136,248,32,112,32,2,21,37,128,128,0,128,128,2, - 86,102,248,128,248,248,8,248,4,81,97,248,18,85,117,248, - 168,200,168,248,2,181,202,251,224,138,0,251,224,136,32,139, - 224,19,83,115,72,144,72,3,66,82,240,16,255,2,85,101, - 248,248,200,200,248,6,81,97,248,2,0,112,2,0,112,2, - 0,112,2,0,112,2,0,112,2,0,112,2,0,112,2,0, - 112,2,0,112,2,0,112,2,0,112,4,83,99,144,72,144, - 2,0,112,2,0,112,2,0,112,18,85,117,32,0,224,128, - 248,2,88,104,64,32,0,248,136,248,136,136,2,88,104,16, - 32,0,248,136,248,136,136,2,88,104,32,80,0,248,136,248, - 136,136,2,89,105,8,248,128,0,248,136,248,136,136,2,87, - 103,80,0,248,136,248,136,136,2,87,103,32,0,248,136,248, - 136,136,2,85,101,248,160,248,160,184,0,87,103,248,128,128, - 128,248,16,48,2,88,104,64,32,0,248,128,248,128,248,2, - 88,104,16,32,0,248,128,248,128,248,2,88,104,32,80,0, - 248,128,248,128,248,2,86,102,80,248,128,248,128,248,2,88, - 104,64,32,0,248,32,32,32,248,2,88,104,16,32,0,248, - 32,32,32,248,2,88,104,32,80,0,248,32,32,32,248,2, - 87,103,80,0,248,32,32,32,248,2,85,101,240,136,232,136, - 240,2,89,105,8,248,128,0,248,136,136,136,136,2,88,104, - 64,32,0,248,136,136,136,248,2,88,104,16,32,0,248,136, - 136,136,248,2,88,104,32,80,0,248,136,136,136,248,2,89, - 105,8,248,128,0,248,136,136,136,248,2,87,103,80,0,248, - 136,136,136,248,3,51,67,160,64,160,2,85,101,248,152,168, - 200,248,2,87,103,64,32,136,136,136,136,248,2,87,103,16, - 32,136,136,136,136,248,2,86,102,32,80,136,136,136,248,2, - 86,102,80,0,136,136,136,248,2,88,104,16,32,0,136,136, - 80,32,32,18,85,117,128,240,136,240,128,1,86,102,240,136, - 176,136,176,128,2,68,84,240,16,240,240,2,71,87,64,32, - 0,240,16,240,240,2,71,87,32,64,0,240,16,240,240,2, - 71,87,96,144,0,240,16,240,240,2,70,86,144,0,240,16, - 240,240,2,70,86,32,0,240,16,240,240,2,116,132,254,30, - 240,254,0,70,86,240,128,128,240,32,96,2,71,87,64,32, - 0,240,240,128,240,2,71,87,32,64,0,240,240,128,240,2, - 71,87,96,144,0,240,240,128,240,2,70,86,144,0,240,240, - 128,240,2,39,39,128,64,0,64,64,64,64,2,39,39,64, - 128,0,128,128,128,128,2,55,39,64,160,0,64,64,64,64, - 2,54,38,160,0,64,64,64,64,2,85,85,56,16,240,144, - 240,2,71,87,80,160,0,240,144,144,144,2,71,87,64,32, - 0,240,144,144,240,2,71,87,32,64,0,240,144,144,240,2, - 71,87,96,144,0,240,144,144,240,2,71,87,80,160,0,240, - 144,144,240,2,70,86,144,0,240,144,144,240,2,85,101,32, - 0,248,0,32,2,68,84,240,176,208,240,2,71,87,64,32, - 0,144,144,144,240,2,71,87,32,64,0,144,144,144,240,2, - 71,87,96,144,0,144,144,144,240,2,70,86,144,0,144,144, - 144,240,1,72,88,32,64,0,144,144,144,240,16,18,85,117, - 128,240,136,240,128,1,71,87,144,0,144,144,144,240,16}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 2 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01n[137] U8G_FONT_SECTION("u8g_font_orgv01n") = { - 1,11,11,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,51,67,160,64,160,3,51,67,64,224,64,1,18,34, - 128,128,4,65,81,240,2,17,33,128,2,85,101,8,16,32, - 64,128,2,85,101,248,136,136,136,248,2,21,37,128,128,128, - 128,128,2,85,101,248,8,248,128,248,2,85,101,248,8,248, - 8,248,2,85,101,136,136,248,8,8,2,85,101,248,128,248, - 8,248,2,85,101,248,128,248,136,248,2,85,101,248,8,8, - 8,8,2,85,101,248,136,248,136,248,2,85,101,248,136,248, - 8,248,2,20,36,128,0,0,128}; -/* - Fontname: -FreeType-Org_v01-Medium-R-Normal--8-80-72-72-P-43-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 0 y= 4 dx= 6 dy= 0 ascent= 5 len= 5 - Font Bounding box w=11 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_orgv01r[719] U8G_FONT_SECTION("u8g_font_orgv01r") = { - 1,11,11,0,254,5,0,249,1,238,32,127,255,5,255,5, - 255,2,0,64,2,21,37,128,128,128,0,128,6,49,65,160, - 2,85,101,80,248,80,248,80,2,85,101,248,160,248,40,248, - 2,85,101,136,16,32,64,136,2,85,101,240,144,248,144,232, - 6,17,33,128,2,37,53,64,128,128,128,64,2,37,53,128, - 64,64,64,128,3,51,67,160,64,160,3,51,67,64,224,64, - 1,18,34,128,128,4,65,81,240,2,17,33,128,2,85,101, - 8,16,32,64,128,2,85,101,248,136,136,136,248,2,21,37, - 128,128,128,128,128,2,85,101,248,8,248,128,248,2,85,101, - 248,8,248,8,248,2,85,101,136,136,248,8,8,2,85,101, - 248,128,248,8,248,2,85,101,248,128,248,136,248,2,85,101, - 248,8,8,8,8,2,85,101,248,136,248,136,248,2,85,101, - 248,136,248,8,248,2,20,36,128,0,0,128,2,20,36,128, - 0,128,128,2,53,69,32,64,128,64,32,3,67,83,240,0, - 240,2,53,69,128,64,32,64,128,2,85,101,248,8,56,0, - 32,2,85,101,248,168,184,128,248,2,85,101,248,136,248,136, - 136,2,85,101,240,136,240,136,240,2,85,101,248,128,128,128, - 248,2,85,101,240,136,136,136,240,2,85,101,248,128,248,128, - 248,2,85,101,248,128,248,128,128,2,85,101,248,128,184,136, - 248,2,85,101,136,136,248,136,136,2,85,101,248,32,32,32, - 248,2,85,101,120,16,16,144,248,2,85,101,136,176,192,176, - 136,2,85,101,128,128,128,128,248,2,85,101,248,168,168,168, - 168,2,85,101,248,136,136,136,136,2,85,101,248,136,136,136, - 248,2,85,101,248,136,248,128,128,2,85,101,248,136,136,152, - 248,2,85,101,248,136,248,144,144,2,85,101,248,128,248,8, - 248,2,85,101,248,32,32,32,32,2,85,101,136,136,136,136, - 248,2,85,101,136,136,136,80,32,2,85,101,168,168,168,168, - 248,2,85,101,136,80,32,80,136,2,85,101,136,136,80,32, - 32,2,85,101,248,8,248,128,248,2,37,53,192,128,128,128, - 192,2,85,101,128,64,32,16,8,2,37,53,192,64,64,64, - 192,5,50,66,64,160,1,81,97,248,6,17,33,128,2,68, - 84,240,16,240,240,2,69,85,128,240,144,144,240,2,68,84, - 240,128,128,240,2,69,85,16,240,144,144,240,2,68,84,240, - 240,128,240,2,53,69,96,64,224,64,64,1,69,85,240,144, - 144,240,16,2,69,85,128,240,144,144,144,2,20,36,128,128, - 128,128,1,37,53,64,64,64,64,192,2,69,85,128,160,240, - 144,144,2,21,37,128,128,128,128,128,2,84,100,248,168,136, - 136,2,68,84,240,144,144,144,2,68,84,240,144,144,240,1, - 69,85,240,144,144,240,128,1,69,85,240,144,144,240,32,2, - 68,84,240,128,128,128,2,68,84,64,112,16,240,2,85,101, - 32,248,32,32,32,2,68,84,144,144,144,240,2,68,84,144, - 144,144,112,2,84,100,136,136,168,248,2,68,84,144,96,96, - 144,1,69,85,144,144,144,240,16,2,68,84,32,224,128,240, - 2,53,69,32,64,192,64,32,2,21,37,128,128,128,128,128, - 2,53,69,128,64,96,64,128,3,83,99,8,248,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=14 dx=27 dy= 0 ascent=24 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =24 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18[7637] U8G_FONT_SECTION("u8g_font_osb18") = { - 0,70,31,234,249,18,4,190,10,54,32,255,250,24,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,7,0, - 0,4,18,18,6,1,250,96,240,240,96,0,0,64,96,96, - 96,96,96,240,240,240,240,240,96,9,18,36,15,3,253,4, - 0,4,0,4,0,30,0,53,0,117,128,231,128,231,128,228, - 0,228,0,228,0,228,0,100,128,116,128,31,0,4,0,4, - 0,4,0,16,18,36,19,2,0,0,248,1,132,3,6,7, - 14,7,14,7,0,7,0,63,0,7,240,7,128,3,128,3, - 128,3,128,3,1,123,2,143,204,135,252,120,240,12,12,24, - 14,1,3,132,16,223,176,112,224,96,96,192,48,192,48,192, - 48,192,48,64,96,96,96,127,224,207,48,14,18,36,14,0, - 0,254,124,56,16,60,16,60,32,30,32,30,64,14,64,15, - 128,7,128,127,240,7,0,127,240,7,0,7,0,7,0,7, - 0,7,0,31,224,2,22,22,8,3,252,192,192,192,192,192, - 192,192,192,192,0,0,0,0,192,192,192,192,192,192,192,192, - 192,11,23,46,15,1,251,15,0,48,128,96,192,97,192,97, - 192,112,128,124,0,63,0,223,128,143,192,129,224,192,96,248, - 32,126,32,63,64,15,128,3,192,49,192,112,192,112,192,96, - 128,33,128,30,0,8,3,3,12,2,14,231,231,231,18,18, - 54,20,1,0,3,240,0,12,12,0,16,2,0,33,201,0, - 67,56,128,70,24,128,142,8,64,142,8,64,142,0,64,142, - 0,64,142,8,64,142,8,64,70,8,128,67,16,128,33,225, - 0,16,2,0,12,12,0,3,240,0,7,9,9,10,1,9, - 120,204,204,60,76,204,206,126,254,7,10,10,12,3,1,32, - 100,68,204,204,204,204,196,100,34,13,7,14,15,1,4,255, - 248,255,248,0,24,0,24,0,24,0,24,0,24,6,3,3, - 8,1,5,252,252,252,18,18,54,20,1,0,3,240,0,12, - 12,0,16,2,0,47,225,0,71,48,128,71,56,128,135,56, - 64,135,48,64,135,192,64,135,48,64,135,56,64,135,56,64, - 71,58,128,71,58,128,47,157,0,16,2,0,12,12,0,3, - 240,0,7,2,2,11,2,14,254,254,8,7,7,14,3,11, - 60,102,131,129,129,194,126,21,18,54,23,1,254,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,0,0,255,255,248, - 255,255,248,7,11,11,11,2,7,124,206,206,238,28,48,98, - 66,254,190,8,8,11,11,12,2,7,60,198,231,231,6,56, - 6,103,231,199,60,4,4,4,11,5,13,48,112,96,192,13, - 18,36,15,1,250,97,128,225,192,225,192,225,192,225,192,225, - 192,225,192,64,136,64,136,65,248,127,120,94,48,64,0,96, - 0,96,0,112,0,112,0,112,0,13,21,42,15,1,253,31, - 248,126,96,126,96,254,96,254,96,254,96,254,96,126,96,62, - 96,14,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,4,4,4,8,2,6,96, - 240,240,96,5,5,5,11,3,250,32,96,24,24,240,6,11, - 11,11,3,7,48,240,112,112,112,112,112,112,112,112,252,7, - 9,9,9,1,9,56,68,198,198,198,198,68,56,254,7,10, - 10,13,3,1,152,140,68,102,102,102,102,70,76,136,18,18, - 54,22,3,0,48,8,0,240,8,0,112,16,0,112,48,0, - 112,32,0,112,96,0,112,64,0,112,195,0,112,135,0,113, - 143,0,253,15,0,3,23,0,2,39,0,4,39,0,12,63, - 192,8,7,0,24,7,0,16,31,192,18,18,54,23,3,0, - 48,4,0,240,8,0,112,24,0,112,16,0,112,48,0,112, - 32,0,112,96,0,112,79,0,112,147,192,113,177,192,253,57, - 192,3,3,128,2,6,0,6,8,0,4,16,64,8,63,192, - 24,47,192,16,39,128,20,18,54,23,2,0,124,2,0,199, - 6,0,231,4,0,6,12,0,56,8,0,6,16,0,7,16, - 0,231,33,192,231,97,192,198,67,192,60,133,192,0,133,192, - 1,9,192,1,9,192,2,31,240,6,1,192,4,1,192,8, - 7,240,8,18,18,12,2,250,48,120,120,48,56,68,68,4, - 8,24,48,114,97,225,225,225,114,60,17,23,69,19,1,1, - 7,0,0,7,0,0,1,128,0,0,128,0,0,0,0,0, - 192,0,0,192,0,1,192,0,1,224,0,1,224,0,3,224, - 0,2,240,0,2,240,0,4,240,0,4,120,0,4,120,0, - 8,56,0,15,252,0,8,60,0,16,28,0,16,30,0,48, - 30,0,252,255,128,17,23,69,19,1,1,0,56,0,0,48, - 0,0,96,0,0,192,0,0,0,0,0,192,0,0,192,0, - 0,192,0,1,224,0,1,224,0,1,224,0,2,240,0,2, - 240,0,4,112,0,4,120,0,4,120,0,8,56,0,15,252, - 0,8,60,0,16,28,0,16,30,0,48,30,0,252,127,128, - 17,23,69,19,1,0,0,192,0,1,192,0,3,96,0,6, - 24,0,0,0,0,0,192,0,0,192,0,0,192,0,1,224, - 0,1,224,0,1,224,0,2,240,0,2,240,0,4,112,0, - 4,120,0,4,120,0,8,56,0,15,252,0,8,60,0,16, - 28,0,16,30,0,48,30,0,252,127,128,17,23,69,19,1, - 0,1,8,0,7,240,0,4,240,0,0,0,0,0,0,0, - 0,192,0,0,192,0,1,192,0,1,224,0,1,224,0,3, - 224,0,2,240,0,2,240,0,4,240,0,4,120,0,4,120, - 0,8,56,0,15,252,0,8,60,0,16,28,0,16,30,0, - 48,30,0,252,255,128,16,23,46,18,1,0,14,112,14,112, - 14,112,0,0,0,0,1,128,1,128,1,128,3,192,3,192, - 3,192,5,224,5,224,4,224,8,240,8,240,8,112,31,248, - 16,120,16,60,48,60,48,60,252,255,18,23,69,19,1,0, - 1,224,0,2,16,0,2,16,0,1,224,0,0,0,0,0, - 192,0,0,192,0,0,224,0,1,224,0,1,224,0,1,240, - 0,2,240,0,2,240,0,4,120,0,4,120,0,4,120,0, - 8,60,0,15,252,0,8,28,0,16,30,0,16,30,0,48, - 30,0,252,127,192,23,18,54,25,1,0,0,127,254,0,60, - 14,0,60,6,0,124,6,0,92,2,0,220,34,0,156,32, - 1,156,96,1,28,96,3,31,224,2,28,96,6,28,34,7, - 252,34,8,28,2,8,28,2,24,28,6,56,28,14,254,127, - 254,13,24,48,17,2,250,7,136,24,120,48,56,112,24,112, - 24,240,8,240,8,240,8,240,0,240,0,240,0,240,8,240, - 8,112,8,112,8,56,16,24,32,7,192,2,0,3,128,0, - 192,0,192,8,192,7,128,14,23,46,18,2,1,28,0,12, - 0,6,0,1,0,0,0,255,252,56,28,56,12,56,12,56, - 4,56,68,56,64,56,192,56,192,63,192,56,192,56,68,56, - 68,56,4,56,4,56,12,56,28,255,252,14,23,46,18,2, - 1,0,224,0,192,1,128,2,0,0,0,255,252,56,28,56, - 12,56,12,56,4,56,68,56,64,56,192,56,192,63,192,56, - 192,56,68,56,68,56,4,56,4,56,12,56,28,255,252,14, - 23,46,18,2,0,3,0,7,128,12,192,16,32,0,0,255, - 252,56,28,56,12,56,12,56,4,56,68,56,64,56,192,56, - 192,63,192,56,192,56,68,56,68,56,4,56,4,56,12,56, - 28,255,252,14,23,46,18,2,0,28,224,28,224,28,224,0, - 0,0,0,255,252,56,28,56,12,56,12,56,4,56,68,56, - 64,56,192,56,192,63,192,56,192,56,68,56,68,56,4,56, - 12,56,12,56,28,255,252,8,23,23,11,2,1,192,96,48, - 16,0,255,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,255,8,23,23,11,2,1,7,14,8,16,0,255, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 255,8,23,23,11,2,0,16,56,108,130,0,255,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,56,56,255,8,23, - 23,11,2,0,231,231,231,0,0,255,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,255,16,18,36,19,2, - 0,255,224,56,56,56,28,56,14,56,14,56,14,56,15,56, - 15,255,15,56,15,56,15,56,15,56,14,56,14,56,12,56, - 28,56,56,255,224,17,23,69,18,1,0,3,136,0,3,240, - 0,4,96,0,0,0,0,0,0,0,252,63,128,60,14,0, - 62,4,0,31,4,0,31,4,0,23,132,0,23,196,0,19, - 196,0,17,228,0,17,244,0,16,244,0,16,124,0,16,124, - 0,16,60,0,16,28,0,16,28,0,56,12,0,254,4,0, - 15,24,48,18,2,0,12,0,12,0,14,0,3,0,1,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,24,48,18,2,0,0,96,0,96, - 0,224,1,128,1,0,0,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,24,48,18, - 2,0,1,0,3,128,7,128,14,192,24,48,0,0,7,192, - 8,32,56,48,48,24,112,28,112,28,240,30,240,30,240,30, - 240,30,240,30,240,30,112,28,112,28,48,24,48,56,8,32, - 7,192,15,23,46,18,2,0,7,32,15,224,16,192,0,0, - 0,0,7,192,8,32,56,48,48,24,112,28,112,28,240,30, - 240,30,240,30,240,30,240,30,240,30,112,28,112,28,48,24, - 48,56,8,32,7,192,15,23,46,18,2,0,28,224,28,224, - 28,224,0,0,0,0,7,192,8,32,56,48,48,24,112,28, - 112,28,240,30,240,30,240,30,240,30,240,30,240,30,112,28, - 112,28,48,24,48,56,8,32,7,192,16,15,30,24,4,0, - 192,3,96,6,48,12,24,24,12,48,6,96,3,192,1,128, - 3,192,6,96,12,48,56,24,112,12,224,6,192,3,15,18, - 36,18,2,0,7,194,8,116,48,60,48,56,112,60,112,124, - 240,94,240,222,241,158,243,30,246,30,244,30,124,28,120,28, - 56,24,120,24,92,32,135,192,18,24,72,20,2,0,6,0, - 0,7,0,0,3,0,0,1,128,0,0,0,0,0,0,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,18,24,72,20,2,0,0,24,0,0, - 56,0,0,112,0,0,192,0,0,128,0,0,0,0,255,31, - 192,56,7,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,24,2,0,28,4,0,14,8, - 0,3,240,0,18,24,72,20,2,0,0,128,0,1,192,0, - 1,224,0,6,48,0,8,8,0,0,0,0,255,31,192,56, - 7,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,56,2,0,56,2,0, - 56,2,0,56,2,0,24,2,0,28,4,0,14,8,0,3, - 240,0,18,23,69,20,2,0,7,56,0,7,56,0,7,56, - 0,0,0,0,0,0,0,255,31,192,56,7,0,56,2,0, - 56,2,0,56,2,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,24,2,0,28,4,0,14,8,0,3,240,0,16,23,46, - 19,2,1,0,112,0,96,0,192,1,0,0,0,254,127,60, - 12,60,8,30,16,30,16,30,16,15,32,15,32,7,64,7, - 192,3,128,3,128,3,128,3,128,3,128,3,128,3,128,15, - 240,15,18,36,18,2,0,255,128,56,0,56,0,63,224,56, - 56,56,28,56,30,56,30,56,30,56,30,56,28,56,56,63, - 224,56,0,56,0,56,0,56,0,255,128,12,18,36,13,0, - 0,7,128,12,192,24,224,56,224,56,224,56,224,56,192,59, - 0,56,192,56,96,56,112,56,112,56,112,56,112,56,112,63, - 112,63,96,251,192,11,18,36,13,1,0,32,0,48,0,48, - 0,24,0,4,0,0,0,30,0,99,0,99,128,115,128,7, - 128,27,128,115,128,227,128,227,160,227,160,247,160,121,192,11, - 18,36,13,1,0,3,0,3,0,6,0,4,0,8,0,0, - 0,30,0,99,0,99,128,115,128,35,128,31,128,115,128,227, - 128,227,160,227,160,247,160,121,192,11,18,36,13,1,0,12, - 0,12,0,30,0,50,0,65,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,17,34,13,1,0,57,0,127,0,70,0,0, - 0,0,0,30,0,99,0,99,128,115,128,35,128,31,128,115, - 128,227,128,227,160,227,160,247,160,121,192,11,17,34,13,1, - 0,119,0,119,0,119,0,0,0,0,0,30,0,99,0,99, - 128,115,128,35,128,31,128,115,128,227,128,227,160,227,160,247, - 160,121,192,11,18,36,13,1,0,28,0,38,0,34,0,34, - 0,28,0,0,0,30,0,99,0,99,128,115,128,35,128,31, - 128,115,128,227,128,227,160,227,160,231,160,121,192,15,12,24, - 18,1,0,62,248,99,140,99,142,115,142,7,142,27,254,115, - 128,227,128,227,130,227,130,247,196,120,120,9,18,36,12,1, - 250,30,0,49,0,113,128,227,128,227,128,224,0,224,0,224, - 0,224,128,112,128,49,0,30,0,8,0,8,0,6,0,6, - 0,6,0,28,0,9,18,36,12,1,0,32,0,112,0,48, - 0,24,0,4,0,0,0,30,0,51,0,99,128,227,128,227, - 128,255,128,224,0,224,0,224,128,112,128,49,0,30,0,9, - 18,36,12,1,0,3,0,7,0,6,0,12,0,8,0,0, - 0,30,0,51,0,99,128,227,128,227,128,255,128,224,0,224, - 0,224,128,112,128,49,0,30,0,9,18,36,12,1,0,12, - 0,28,0,28,0,50,0,65,0,0,0,30,0,51,0,99, - 128,227,128,227,128,255,128,224,0,224,0,224,128,112,128,49, - 0,30,0,9,17,34,12,1,0,115,128,115,128,115,128,0, - 0,0,0,30,0,51,0,99,128,227,128,227,128,255,128,224, - 0,224,0,224,0,112,128,49,0,30,0,7,18,18,8,1, - 0,192,224,112,16,8,0,120,56,56,56,56,56,56,56,56, - 56,56,126,6,18,18,8,1,0,12,28,24,48,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,7,18,18,7,0, - 0,56,56,108,198,0,0,120,56,56,56,56,56,56,56,56, - 56,56,126,7,17,17,8,1,0,238,238,238,0,0,120,56, - 56,56,56,56,56,56,56,56,56,126,10,18,36,12,1,0, - 57,128,30,0,14,0,31,0,39,0,3,128,31,128,51,192, - 97,192,225,192,225,192,225,192,225,192,225,192,225,192,97,128, - 51,128,30,0,11,17,34,13,1,0,24,128,63,128,39,0, - 0,0,0,0,243,128,125,192,121,192,113,192,113,192,113,192, - 113,192,113,192,113,192,113,192,113,192,251,224,10,18,36,12, - 1,0,48,0,48,0,24,0,12,0,4,0,0,0,30,0, - 51,0,97,128,225,192,225,192,225,192,225,192,225,192,225,192, - 97,128,51,0,30,0,10,18,36,12,1,0,3,0,3,0, - 7,0,4,0,8,0,0,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 10,18,36,12,1,0,12,0,14,0,30,0,51,0,96,128, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,10,17,34,12,1,0, - 56,128,63,0,70,0,0,0,0,0,30,0,51,0,97,128, - 225,192,225,192,225,192,225,192,225,192,225,192,97,128,51,0, - 30,0,10,17,34,12,1,0,115,128,115,128,115,128,0,0, - 0,0,30,0,51,0,97,128,225,192,225,192,225,192,225,192, - 225,192,225,192,97,128,51,0,30,0,21,17,51,23,1,254, - 0,48,0,0,120,0,0,120,0,0,48,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,248,255,255,248,0,0, - 0,0,0,0,0,0,0,0,48,0,0,120,0,0,120,0, - 0,48,0,10,12,24,12,1,0,30,64,51,128,97,128,225, - 192,227,192,229,192,233,192,241,192,241,192,97,128,115,0,158, - 0,12,18,36,13,0,0,24,0,24,0,12,0,6,0,2, - 0,0,0,249,224,56,224,56,224,56,224,56,224,56,224,56, - 224,56,224,56,224,57,224,58,224,28,240,12,18,36,13,0, - 0,1,128,1,128,3,0,2,0,0,0,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,18,36,13,0,0,6,0,6,0,15, - 0,25,128,0,0,0,0,249,224,56,224,56,224,56,224,56, - 224,56,224,56,224,56,224,56,224,57,224,58,224,28,240,12, - 17,34,13,0,0,57,192,57,192,57,192,0,0,0,0,249, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 224,57,224,58,224,28,240,12,24,48,12,0,250,1,128,1, - 128,3,0,6,0,4,0,0,0,252,240,112,64,56,64,56, - 128,28,128,28,128,29,0,15,0,15,0,7,0,6,0,6, - 0,2,0,4,0,116,0,116,0,104,0,56,0,12,23,46, - 13,0,250,24,0,120,0,184,0,56,0,56,0,57,224,58, - 240,60,112,60,112,56,112,56,96,56,224,56,192,56,128,57, - 0,58,0,60,0,56,0,56,0,56,0,56,0,96,0,128, - 0,13,23,46,13,0,250,28,224,28,224,28,224,0,0,0, - 0,254,120,56,32,60,64,28,64,30,64,14,64,14,128,7, - 128,7,128,7,0,3,0,3,0,2,0,2,0,58,0,60, - 0,52,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=21 h=23 x= 3 y= 8 dx=23 dy= 0 ascent=18 len=63 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18n[618] U8G_FONT_SECTION("u8g_font_osb18n") = { - 0,70,31,234,249,18,0,0,0,0,42,58,0,18,251,18, - 0,9,10,20,13,2,8,24,0,24,0,201,128,235,128,28, - 0,44,0,235,128,217,128,24,0,24,0,21,21,63,23,1, - 253,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,255, - 255,248,255,255,248,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 4,9,9,7,2,251,224,240,240,240,16,32,32,64,128,6, - 3,3,8,1,5,252,252,252,4,4,4,8,2,0,96,240, - 240,96,9,23,46,11,1,251,1,128,1,128,1,0,3,0, - 3,0,2,0,6,0,6,0,4,0,12,0,12,0,8,0, - 24,0,24,0,24,0,16,0,48,0,48,0,32,0,96,0, - 96,0,64,0,192,0,12,18,36,15,1,0,15,0,25,128, - 48,192,112,224,112,224,240,224,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,112,224,112,224,48,192,25,128,15,0, - 8,18,18,15,3,0,24,56,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,255,11,18,36,15,2,0,31,0, - 113,192,96,224,224,224,240,224,248,224,121,192,1,192,3,0, - 6,0,8,0,48,32,64,32,64,32,255,224,191,224,143,192, - 135,128,12,18,36,15,1,0,31,0,49,192,96,224,112,224, - 120,224,120,224,0,192,1,128,62,0,1,192,0,224,0,240, - 112,240,248,240,240,240,192,224,65,192,63,0,11,18,36,15, - 2,0,3,0,7,0,7,0,15,0,15,0,23,0,55,0, - 39,0,103,0,71,0,199,0,135,0,255,224,7,0,7,0, - 7,0,7,0,63,224,11,18,36,15,2,0,65,128,127,128, - 126,0,120,0,64,0,64,0,95,0,99,128,65,192,65,224, - 1,224,33,224,241,224,241,224,225,192,193,192,67,128,62,0, - 11,18,36,15,2,0,7,128,24,64,48,224,113,224,113,224, - 240,0,240,0,247,128,249,192,240,224,240,224,240,224,240,224, - 112,224,112,224,48,192,57,192,15,0,11,18,36,15,2,0, - 156,64,190,96,255,32,255,224,128,32,128,64,128,64,0,128, - 1,128,3,0,7,0,6,0,14,0,30,0,30,0,30,0, - 30,0,12,0,12,18,36,15,1,0,31,128,32,64,64,32, - 192,32,192,32,240,32,252,64,127,128,127,192,63,224,103,240, - 193,240,192,112,192,48,192,48,96,32,112,64,31,128,12,18, - 36,15,2,0,31,0,113,128,96,192,224,224,224,224,224,240, - 224,240,96,240,113,240,30,240,0,240,0,240,56,224,120,224, - 120,224,97,192,33,128,30,0,4,12,12,8,2,0,96,240, - 240,96,0,0,0,0,96,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--25-250-72-72-P-136-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=27 dy= 0 ascent=20 len=72 - Font Bounding box w=70 h=31 x=-22 y=-7 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =18 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb18r[3611] U8G_FONT_SECTION("u8g_font_osb18r") = { - 0,70,31,234,249,18,4,190,10,54,32,127,250,20,250,18, - 250,0,0,0,7,0,0,4,18,18,6,1,0,96,240,240, - 240,240,240,96,96,96,96,96,64,0,0,96,240,240,96,6, - 6,6,10,2,12,204,204,204,204,204,204,15,18,36,19,2, - 0,6,24,6,24,4,16,4,16,12,48,255,254,255,254,12, - 48,8,32,8,32,24,96,24,96,255,254,255,254,16,64,16, - 64,48,192,48,192,11,22,44,14,2,254,9,0,9,0,31, - 128,105,64,73,32,201,32,201,96,249,224,249,64,127,0,63, - 128,31,192,15,192,73,224,233,224,201,96,137,96,137,96,73, - 192,63,128,9,0,9,0,17,18,54,21,2,0,56,4,0, - 68,12,0,198,8,0,198,24,0,198,48,0,198,32,0,198, - 96,0,76,64,0,56,192,0,1,142,0,1,27,0,3,49, - 128,2,49,128,4,49,128,12,49,128,8,49,128,24,17,0, - 16,14,0,17,18,54,19,1,0,3,192,0,4,32,0,12, - 32,0,12,32,0,12,32,0,14,64,0,15,128,0,7,0, - 0,15,143,128,27,195,0,49,194,0,96,226,0,224,244,0, - 224,120,0,240,56,0,240,60,0,126,223,128,63,15,0,2, - 6,6,6,2,12,192,192,192,192,192,192,7,23,23,9,1, - 251,2,4,8,16,48,96,96,96,224,224,224,224,224,224,224, - 96,96,96,48,16,8,4,2,7,23,23,9,0,251,128,64, - 32,16,24,12,12,14,14,14,14,14,14,14,14,14,12,12, - 24,16,32,64,128,9,10,20,13,2,8,24,0,24,0,201, - 128,235,128,28,0,44,0,235,128,217,128,24,0,24,0,21, - 21,63,23,1,253,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,255,255,248,255,255,248,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,48, - 0,0,48,0,4,9,9,7,2,251,224,240,240,240,16,32, - 32,64,128,6,3,3,8,1,5,252,252,252,4,4,4,8, - 2,0,96,240,240,96,9,23,46,11,1,251,1,128,1,128, - 1,0,3,0,3,0,2,0,6,0,6,0,4,0,12,0, - 12,0,8,0,24,0,24,0,24,0,16,0,48,0,48,0, - 32,0,96,0,96,0,64,0,192,0,12,18,36,15,1,0, - 15,0,25,128,48,192,112,224,112,224,240,224,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,112,224,112,224,48,192, - 25,128,15,0,8,18,18,15,3,0,24,56,248,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,255,11,18,36,15, - 2,0,31,0,113,192,96,224,224,224,240,224,248,224,121,192, - 1,192,3,0,6,0,8,0,48,32,64,32,64,32,255,224, - 191,224,143,192,135,128,12,18,36,15,1,0,31,0,49,192, - 96,224,112,224,120,224,120,224,0,192,1,128,62,0,1,192, - 0,224,0,240,112,240,248,240,240,240,192,224,65,192,63,0, - 11,18,36,15,2,0,3,0,7,0,7,0,15,0,15,0, - 23,0,55,0,39,0,103,0,71,0,199,0,135,0,255,224, - 7,0,7,0,7,0,7,0,63,224,11,18,36,15,2,0, - 65,128,127,128,126,0,120,0,64,0,64,0,95,0,99,128, - 65,192,65,224,1,224,33,224,241,224,241,224,225,192,193,192, - 67,128,62,0,11,18,36,15,2,0,7,128,24,64,48,224, - 113,224,113,224,240,0,240,0,247,128,249,192,240,224,240,224, - 240,224,240,224,112,224,112,224,48,192,57,192,15,0,11,18, - 36,15,2,0,156,64,190,96,255,32,255,224,128,32,128,64, - 128,64,0,128,1,128,3,0,7,0,6,0,14,0,30,0, - 30,0,30,0,30,0,12,0,12,18,36,15,1,0,31,128, - 32,64,64,32,192,32,192,32,240,32,252,64,127,128,127,192, - 63,224,103,240,193,240,192,112,192,48,192,48,96,32,112,64, - 31,128,12,18,36,15,2,0,31,0,113,128,96,192,224,224, - 224,224,224,240,224,240,96,240,113,240,30,240,0,240,0,240, - 56,224,120,224,120,224,97,192,33,128,30,0,4,12,12,8, - 2,0,96,240,240,96,0,0,0,0,96,240,240,96,4,17, - 17,7,2,251,96,240,240,96,0,0,0,0,224,240,240,240, - 16,32,32,64,128,19,21,63,24,2,252,0,0,96,0,1, - 224,0,7,128,0,14,0,0,56,0,0,224,0,3,128,0, - 15,0,0,60,0,0,112,0,0,224,0,0,120,0,0,28, - 0,0,7,0,0,1,192,0,0,112,0,0,60,0,0,15, - 0,0,3,128,0,0,224,0,0,32,21,7,21,23,1,3, - 255,255,248,255,255,248,0,0,0,0,0,0,0,0,0,255, - 255,248,255,255,248,19,21,63,24,2,252,192,0,0,240,0, - 0,60,0,0,14,0,0,3,128,0,0,224,0,0,56,0, - 0,30,0,0,7,128,0,1,192,0,0,224,0,3,192,0, - 7,0,0,28,0,0,112,0,1,192,0,7,128,0,30,0, - 0,56,0,0,224,0,0,128,0,0,8,18,18,12,2,0, - 60,78,135,135,135,78,12,24,16,32,36,36,24,0,24,60, - 60,24,18,18,54,20,1,0,3,240,0,12,12,0,24,3, - 0,48,237,0,97,173,128,99,28,128,199,28,192,207,24,192, - 206,24,192,206,56,192,206,56,192,206,56,128,78,49,128,110, - 91,0,35,156,0,48,0,0,12,4,0,3,248,0,17,18, - 54,19,1,0,0,192,0,0,192,0,0,192,0,1,224,0, - 1,224,0,1,224,0,2,240,0,2,240,0,4,112,0,4, - 120,0,4,120,0,8,56,0,15,252,0,8,60,0,16,28, - 0,16,30,0,48,30,0,252,127,128,15,18,36,18,2,0, - 255,224,56,56,56,56,56,28,56,28,56,28,56,56,56,48, - 63,192,56,56,56,28,56,30,56,30,56,30,56,30,56,28, - 56,56,255,240,13,18,36,17,2,0,7,136,24,120,48,56, - 112,24,112,24,240,8,240,8,240,8,240,0,240,0,240,0, - 240,8,240,8,112,8,112,8,56,16,24,32,7,192,16,18, - 36,19,2,0,255,224,56,56,56,28,56,14,56,14,56,14, - 56,15,56,15,56,15,56,15,56,15,56,15,56,14,56,14, - 56,12,56,28,56,56,255,224,14,18,36,18,2,0,255,252, - 56,28,56,12,56,12,56,4,56,68,56,64,56,192,56,192, - 63,192,56,192,56,68,56,68,56,4,56,4,56,12,56,28, - 255,252,14,18,36,17,2,0,255,252,56,60,56,28,56,12, - 56,4,56,68,56,68,56,192,56,192,63,192,56,192,56,64, - 56,64,56,0,56,0,56,0,56,0,255,0,15,18,36,18, - 2,0,7,136,24,104,48,56,112,24,112,8,112,8,240,8, - 240,0,240,0,241,254,240,56,240,56,240,56,112,56,112,56, - 48,40,24,72,15,136,17,18,54,20,2,0,255,127,128,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,63,254,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,255, - 127,128,8,18,18,11,2,0,255,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,255,11,18,36,13,1,0, - 31,224,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,115,128,243,128,243,128,227,128,195,128, - 67,0,60,0,17,18,54,19,2,0,254,127,0,56,24,0, - 56,16,0,56,32,0,56,64,0,56,192,0,57,128,0,59, - 192,0,59,192,0,61,224,0,57,240,0,56,240,0,56,248, - 0,56,120,0,56,124,0,56,60,0,56,62,0,254,127,128, - 14,18,36,17,2,0,255,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,4,56,4,56,4, - 56,12,56,12,56,28,56,60,255,252,20,18,54,22,1,0, - 254,3,240,30,3,192,30,3,192,31,5,192,31,5,192,23, - 5,192,23,133,192,23,137,192,19,201,192,19,201,192,17,209, - 192,17,241,192,17,241,192,16,241,192,16,225,192,16,225,192, - 56,97,192,254,111,240,17,18,54,18,1,0,252,63,128,60, - 14,0,62,4,0,31,4,0,31,4,0,31,132,0,23,196, - 0,19,196,0,17,228,0,17,244,0,16,244,0,16,124,0, - 16,124,0,16,60,0,16,28,0,16,28,0,56,12,0,254, - 4,0,15,18,36,18,2,0,7,192,8,32,56,48,48,24, - 112,28,112,28,240,30,240,30,240,30,240,30,240,30,240,30, - 112,28,112,28,48,24,48,56,8,32,7,192,15,18,36,18, - 2,0,255,240,56,56,56,28,56,30,56,30,56,30,56,30, - 56,28,56,56,63,224,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,255,128,15,24,48,18,2,250,7,192,8,32, - 56,56,48,24,112,28,112,28,240,30,240,30,240,30,240,30, - 240,30,240,30,112,28,112,28,51,152,52,176,28,226,7,194, - 0,194,0,194,0,230,0,254,0,124,0,56,16,18,36,19, - 2,0,255,224,56,120,56,56,56,60,56,60,56,60,56,56, - 56,112,63,192,56,96,56,48,56,56,56,56,56,57,56,57, - 56,57,56,57,255,158,12,18,36,15,2,0,30,32,97,160, - 192,224,192,96,224,32,240,32,252,0,126,0,63,128,15,192, - 135,224,129,240,128,240,192,48,192,48,224,32,176,96,143,128, - 15,18,36,18,2,0,255,254,231,30,199,14,135,14,135,6, - 135,6,7,2,7,2,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,31,224,18,18,54,20,2,0, - 255,31,192,56,7,0,56,2,0,56,2,0,56,2,0,56, - 2,0,56,2,0,56,2,0,56,2,0,56,2,0,56,2, - 0,56,2,0,56,2,0,56,2,0,24,2,0,28,4,0, - 14,8,0,3,240,0,17,18,54,19,2,0,255,63,128,60, - 6,0,60,4,0,30,4,0,30,8,0,30,8,0,15,8, - 0,15,16,0,7,144,0,7,144,0,7,160,0,3,224,0, - 3,224,0,3,192,0,1,192,0,1,192,0,1,192,0,0, - 128,0,26,18,72,27,1,0,255,191,223,192,30,15,6,0, - 30,15,6,0,15,15,4,0,15,15,132,0,15,15,132,0, - 7,143,140,0,7,139,200,0,7,147,200,0,3,211,200,0, - 3,209,240,0,3,225,240,0,1,225,240,0,1,224,240,0, - 1,224,224,0,0,192,224,0,0,192,96,0,0,192,64,0, - 16,18,36,19,2,0,255,63,62,24,30,16,31,16,15,32, - 15,224,7,192,7,192,3,192,3,224,3,224,2,240,4,240, - 8,120,8,120,16,60,48,60,252,255,16,18,36,19,2,0, - 254,127,60,12,60,8,30,16,30,16,30,16,15,32,15,32, - 7,64,7,192,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,15,240,13,18,36,16,2,0,127,248,112,120,96,240, - 97,240,65,224,67,224,3,192,7,192,7,128,15,0,15,0, - 30,0,30,8,60,8,124,24,120,24,248,56,255,248,6,22, - 22,10,2,252,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,252,9,23,46,11,1,251, - 192,0,64,0,96,0,96,0,32,0,48,0,48,0,16,0, - 24,0,24,0,24,0,8,0,12,0,12,0,4,0,6,0, - 6,0,2,0,3,0,3,0,1,0,1,128,1,128,6,22, - 22,10,2,252,252,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,11,9,18,15,2,9, - 4,0,12,0,30,0,27,0,51,0,49,128,96,192,192,192, - 192,96,13,2,4,13,0,252,255,248,255,248,4,4,4,11, - 2,13,192,224,96,48,11,12,24,13,1,0,30,0,99,0, - 99,128,115,128,35,128,31,128,115,128,227,128,227,160,227,160, - 247,160,121,192,12,18,36,13,0,0,248,0,56,0,56,0, - 56,0,56,0,56,0,59,128,60,224,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,36,192,35,128,9,12, - 24,12,1,0,30,0,49,0,113,128,227,128,227,128,224,0, - 224,0,224,0,224,128,112,128,49,0,30,0,12,18,36,13, - 1,0,7,192,1,192,1,192,1,192,1,192,1,192,29,192, - 115,192,99,192,225,192,225,192,225,192,225,192,225,192,225,192, - 99,192,115,192,29,240,9,12,24,12,1,0,30,0,51,0, - 99,128,227,128,227,128,255,128,224,0,224,0,224,128,112,128, - 49,0,30,0,9,18,36,9,1,0,15,0,29,128,59,128, - 59,128,57,0,56,0,252,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,252,0,12,18, - 36,14,1,250,30,112,51,176,113,240,113,192,113,192,113,192, - 51,128,30,0,96,0,127,128,127,192,63,224,96,224,128,96, - 128,96,128,64,64,192,63,0,12,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,192,62,224,60,224, - 56,224,56,224,56,224,56,224,56,224,56,224,56,224,56,224, - 253,240,5,18,18,7,1,0,112,112,112,32,0,0,240,112, - 112,112,112,112,112,112,112,112,112,248,7,24,24,8,255,250, - 14,14,14,4,0,0,62,14,14,14,14,14,14,14,14,14, - 14,14,14,110,238,238,204,120,13,18,36,13,0,0,248,0, - 56,0,56,0,56,0,56,0,56,0,57,240,56,192,56,128, - 57,0,57,0,59,128,63,128,57,192,57,192,56,224,56,224, - 255,248,7,18,18,8,0,0,248,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,254,18,12,36,19,1,0, - 243,142,0,125,247,0,121,231,0,113,199,0,113,199,0,113, - 199,0,113,199,0,113,199,0,113,199,0,113,199,0,113,199, - 0,251,239,192,11,12,24,13,1,0,243,128,125,192,121,192, - 113,192,113,192,113,192,113,192,113,192,113,192,113,192,113,192, - 251,224,10,12,24,12,1,0,30,0,51,0,97,128,225,192, - 225,192,225,192,225,192,225,192,225,192,97,128,51,0,30,0, - 12,18,36,13,0,250,251,128,60,192,60,224,56,112,56,112, - 56,112,56,112,56,112,56,112,60,224,60,224,59,192,56,0, - 56,0,56,0,56,0,56,0,254,0,11,18,36,13,1,250, - 28,64,50,64,99,192,225,192,225,192,225,192,225,192,225,192, - 225,192,99,192,115,192,61,192,1,192,1,192,1,192,1,192, - 1,192,7,224,9,12,24,11,1,0,243,0,117,128,123,128, - 123,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 248,0,9,12,24,11,1,0,57,0,199,0,195,0,225,0, - 240,0,124,0,63,0,143,128,131,128,193,128,225,0,158,0, - 8,17,17,10,1,0,16,16,16,48,112,254,112,112,112,112, - 112,113,113,113,113,114,60,12,12,24,13,0,0,249,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,224,56,224,57, - 224,58,224,28,240,12,12,24,13,1,0,253,240,112,64,56, - 64,56,128,28,128,28,128,29,0,15,0,14,0,14,0,6, - 0,4,0,19,12,36,19,0,0,253,251,224,56,112,128,28, - 112,128,28,113,0,28,121,0,14,185,0,14,154,0,14,158, - 0,7,28,0,7,12,0,2,12,0,2,8,0,12,12,24, - 13,0,0,253,240,56,64,28,128,31,0,15,0,15,0,7, - 0,7,128,11,192,17,192,17,224,253,240,12,18,36,12,0, - 250,252,240,112,64,56,64,56,128,28,128,28,128,29,0,15, - 0,15,0,7,0,6,0,6,0,2,0,4,0,116,0,116, - 0,104,0,56,0,10,12,24,12,1,0,127,192,99,128,71, - 128,71,0,15,0,14,0,28,0,60,64,56,64,120,64,112, - 192,255,192,8,23,23,10,1,251,3,28,56,56,56,56,56, - 56,56,56,48,192,48,56,56,56,56,56,56,56,56,28,3, - 2,23,23,8,3,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,23,23, - 11,2,251,192,112,56,56,56,56,56,56,56,56,28,7,28, - 56,56,56,56,56,56,56,56,112,192,14,5,10,16,1,4, - 120,8,255,4,143,196,131,252,64,120,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 5 y=17 dx=31 dy= 0 ascent=28 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21[9612] U8G_FONT_SECTION("u8g_font_osb21") = { - 0,77,36,232,248,21,5,141,12,241,32,255,249,28,248,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,8,0,0,5, - 21,21,9,2,249,112,248,248,112,0,0,32,32,32,32,32, - 112,112,112,112,248,248,248,248,248,112,10,21,42,16,3,253, - 2,0,2,0,2,0,15,0,26,128,50,192,114,192,243,192, - 243,192,242,0,242,0,242,0,242,0,242,64,114,64,50,64, - 30,128,15,0,2,0,2,0,2,0,17,21,63,20,2,1, - 0,254,0,1,131,0,3,131,0,3,135,128,7,135,128,7, - 135,0,7,128,0,7,128,0,7,128,0,31,128,0,39,248, - 0,7,128,0,7,192,0,3,192,0,3,128,0,3,128,0, - 3,128,128,123,1,128,143,135,0,135,254,0,121,252,0,13, - 13,26,17,2,3,207,152,255,248,112,112,96,48,192,24,192, - 24,192,24,192,24,192,24,96,48,112,112,255,248,207,152,15, - 21,42,16,1,0,254,126,124,24,124,24,60,16,60,16,30, - 32,30,32,30,64,15,64,15,128,7,128,127,248,7,128,127, - 248,7,128,7,128,7,128,7,128,7,128,7,128,63,240,2, - 26,26,8,3,251,192,192,192,192,192,192,192,192,192,192,0, - 0,0,0,0,0,192,192,192,192,192,192,192,192,192,192,13, - 27,54,18,1,250,15,128,16,64,32,96,96,224,97,224,97, - 224,112,128,124,0,63,0,95,192,79,240,195,240,192,248,224, - 56,248,24,126,16,127,144,31,224,7,224,1,224,48,224,120, - 96,120,96,112,96,96,192,48,128,31,0,9,4,8,13,2, - 16,99,0,247,128,247,128,99,0,20,21,63,22,1,1,3, - 252,0,12,3,0,16,0,128,32,0,64,32,244,64,65,140, - 32,67,132,32,131,132,16,135,132,16,135,132,16,135,128,16, - 135,128,16,135,128,16,135,130,16,67,132,32,67,132,32,33, - 136,64,32,240,64,16,0,128,12,3,0,3,252,0,8,11, - 11,10,1,10,56,76,108,108,60,204,205,205,118,0,255,7, - 11,11,13,3,2,34,68,196,204,204,204,204,204,68,98,34, - 14,8,16,16,1,4,255,252,255,252,0,12,0,12,0,12, - 0,12,0,12,0,12,7,3,3,11,2,6,254,254,254,20, - 21,63,22,1,1,3,252,0,12,3,0,16,0,128,32,0, - 64,47,248,64,67,206,32,67,206,32,131,207,16,131,206,16, - 131,206,16,131,240,16,131,204,16,131,206,16,131,206,16,67, - 206,160,67,206,160,35,206,192,47,231,64,16,0,128,12,3, - 0,3,252,0,7,2,2,13,3,17,254,254,9,10,20,17, - 4,12,8,0,62,0,119,0,193,128,193,128,193,128,193,128, - 99,0,127,0,28,0,24,22,66,26,1,254,0,24,0,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,255,255,255,255,255,255,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,0,0,0,0,0,255,255,255,255,255,255,9,12, - 24,13,2,9,62,0,71,0,199,128,231,0,111,0,12,0, - 24,0,33,0,65,128,255,0,159,0,142,0,10,13,26,13, - 2,8,62,0,67,0,195,128,227,128,99,128,3,0,60,0, - 7,0,3,128,243,192,227,128,199,128,62,0,5,5,5,12, - 5,16,24,56,112,96,192,14,22,44,17,2,248,96,192,224, - 224,241,224,241,224,225,224,225,224,224,224,224,224,96,192,64, - 196,64,196,65,252,127,124,78,56,64,0,64,0,96,0,224, - 0,240,0,240,0,112,0,96,0,13,25,50,17,2,252,31, - 248,126,96,254,96,254,96,254,96,254,96,254,96,254,96,254, - 96,126,96,62,96,6,96,6,96,6,96,6,96,6,96,6, - 96,6,96,6,96,6,96,6,96,6,96,6,96,6,96,6, - 96,4,4,4,8,2,7,96,240,240,96,5,6,6,13,4, - 249,32,64,48,24,24,240,7,12,12,13,3,9,28,252,60, - 60,60,60,60,60,60,60,60,254,8,11,11,11,2,10,60, - 102,230,231,231,231,230,102,60,0,255,7,11,11,13,3,2, - 136,68,102,102,102,102,102,102,68,140,136,22,21,63,26,3, - 0,12,1,128,28,1,0,252,3,0,60,2,0,60,6,0, - 60,12,0,60,12,0,60,24,0,60,16,0,60,48,112,60, - 32,240,60,97,240,254,65,240,0,194,240,0,130,240,1,132, - 240,3,8,240,3,15,252,6,0,240,4,0,240,12,3,248, - 21,22,66,26,3,0,0,1,128,28,1,0,252,3,0,60, - 2,0,60,6,0,60,4,0,60,12,0,60,24,0,60,24, - 0,60,51,224,60,36,112,60,108,120,60,78,120,254,206,120, - 0,134,112,1,128,192,1,1,0,3,2,8,2,4,8,6, - 15,248,4,11,240,12,8,224,22,21,63,25,2,0,62,0, - 128,67,1,128,195,129,0,227,131,0,99,130,0,3,6,0, - 60,4,0,7,8,0,3,152,0,243,208,112,227,176,112,199, - 160,240,62,97,240,0,65,240,0,194,240,0,130,240,1,132, - 240,1,7,252,3,0,240,2,0,240,6,3,252,9,22,44, - 13,2,249,24,0,60,0,60,0,60,0,24,0,0,0,28, - 0,34,0,34,0,34,0,6,0,12,0,28,0,56,0,112, - 0,113,0,240,128,240,128,240,128,240,128,113,0,62,0,19, - 27,81,22,2,1,3,0,0,3,128,0,1,128,0,0,192, - 0,0,64,0,0,0,0,0,64,0,0,96,0,0,224,0, - 0,224,0,0,240,0,1,240,0,1,240,0,1,248,0,2, - 120,0,2,120,0,2,124,0,4,60,0,4,60,0,4,62, - 0,15,254,0,8,30,0,8,31,0,16,15,0,16,15,0, - 48,15,128,254,127,224,19,27,81,21,2,1,0,24,0,0, - 56,0,0,48,0,0,96,0,0,64,0,0,0,0,0,64, - 0,0,96,0,0,224,0,0,224,0,0,240,0,1,240,0, - 1,240,0,1,248,0,2,120,0,2,120,0,2,124,0,4, - 60,0,4,60,0,8,60,0,15,254,0,8,30,0,16,30, - 0,16,15,0,16,15,0,48,15,128,254,127,224,19,27,81, - 22,2,0,0,64,0,0,224,0,1,240,0,3,24,0,4, - 4,0,0,0,0,0,64,0,0,96,0,0,224,0,0,224, - 0,0,240,0,1,240,0,1,240,0,1,248,0,2,120,0, - 2,120,0,2,124,0,4,60,0,4,60,0,4,62,0,15, - 254,0,8,30,0,8,31,0,16,15,0,16,15,0,48,15, - 128,254,127,224,19,27,81,21,2,0,0,4,0,1,200,0, - 3,248,0,4,112,0,0,0,0,0,0,0,0,64,0,0, - 96,0,0,224,0,0,224,0,0,240,0,1,240,0,1,240, - 0,1,248,0,2,120,0,2,120,0,2,124,0,4,60,0, - 4,60,0,4,60,0,15,254,0,8,30,0,24,30,0,16, - 15,0,16,15,0,48,15,128,254,127,224,19,27,81,22,2, - 0,3,12,0,7,158,0,7,158,0,3,12,0,0,0,0, - 0,0,0,0,96,0,0,96,0,0,224,0,0,240,0,0, - 240,0,1,240,0,1,248,0,1,120,0,2,120,0,2,124, - 0,2,60,0,4,60,0,4,62,0,4,30,0,15,254,0, - 8,31,0,8,15,0,16,15,0,16,15,0,48,15,128,254, - 127,224,19,27,81,21,1,0,0,240,0,1,8,0,1,8, - 0,1,8,0,0,240,0,0,0,0,0,96,0,0,96,0, - 0,240,0,0,240,0,0,240,0,1,248,0,1,248,0,1, - 120,0,1,120,0,2,124,0,2,60,0,2,60,0,4,62, - 0,4,30,0,7,254,0,8,31,0,8,15,0,8,15,0, - 24,15,0,24,15,128,254,63,224,26,21,84,28,0,0,0, - 63,255,192,0,15,131,192,0,15,129,192,0,31,128,192,0, - 23,128,192,0,55,128,64,0,39,132,64,0,103,132,0,0, - 71,140,0,0,199,156,0,0,135,252,0,1,135,156,0,1, - 7,140,0,3,7,132,64,3,255,132,64,6,7,128,64,4, - 7,128,64,12,7,128,192,12,7,129,192,28,7,131,192,255, - 63,255,192,15,28,56,18,2,250,15,230,28,30,56,30,56, - 14,120,14,120,6,248,6,248,6,248,2,248,0,248,0,248, - 0,248,0,248,2,120,2,120,2,120,4,56,4,60,12,28, - 8,6,48,1,192,1,0,1,192,0,96,0,96,4,96,3, - 192,16,27,54,19,1,1,6,0,7,0,3,0,1,128,0, - 0,0,0,255,255,30,15,30,7,30,3,30,3,30,1,30, - 17,30,16,30,48,30,48,31,240,30,48,30,48,30,17,30, - 17,30,1,30,1,30,3,30,7,30,15,255,255,16,27,54, - 19,1,1,0,56,0,120,0,96,0,192,0,0,0,0,255, - 255,30,15,30,7,30,3,30,3,30,1,30,17,30,16,30, - 48,30,48,31,240,30,48,30,48,30,17,30,17,30,1,30, - 1,30,3,30,7,30,15,255,255,16,27,54,19,1,0,0, - 128,1,192,3,96,6,56,8,0,0,0,255,255,30,15,30, - 7,30,3,30,3,30,1,30,17,30,16,30,48,30,48,31, - 240,30,48,30,48,30,17,30,17,30,1,30,1,30,3,30, - 7,30,15,255,255,16,27,54,19,1,0,6,24,15,60,15, - 60,6,24,0,0,0,0,255,255,30,15,30,7,30,3,30, - 3,30,1,30,17,30,16,30,48,30,48,31,240,30,48,30, - 48,30,17,30,17,30,1,30,1,30,3,30,7,30,15,255, - 255,9,27,54,11,1,1,96,0,112,0,56,0,8,0,0, - 0,0,0,255,128,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,255,128,10,27,54, - 12,1,1,3,128,3,128,6,0,12,0,8,0,0,0,255, - 192,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,255,192,9,27,54,11,1,0,12, - 0,28,0,62,0,99,0,0,128,0,0,255,128,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,255,128,10,27,54,13,2,0,97,128,243,192,243, - 192,97,128,0,0,0,0,255,192,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,255, - 192,19,21,63,22,2,0,255,248,0,30,14,0,30,7,0, - 30,3,128,30,3,192,30,3,192,30,3,192,30,3,224,30, - 3,224,30,3,224,255,131,224,30,3,224,30,3,224,30,3, - 224,30,3,192,30,3,192,30,3,128,30,3,128,30,7,0, - 30,14,0,255,248,0,21,26,78,22,1,1,0,226,0,1, - 254,0,2,28,0,0,0,0,0,0,0,254,15,248,31,1, - 192,31,0,128,15,128,128,15,192,128,15,192,128,11,224,128, - 11,240,128,9,248,128,8,248,128,8,252,128,8,126,128,8, - 62,128,8,31,128,8,31,128,8,15,128,8,7,128,8,7, - 128,8,3,128,28,1,128,255,129,128,17,27,81,20,2,1, - 14,0,0,7,0,0,3,0,0,1,128,0,0,0,0,0, - 128,0,7,112,0,12,24,0,24,12,0,56,14,0,120,14, - 0,120,15,0,120,15,0,248,15,128,248,15,128,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,120,15,0,120, - 15,0,120,15,0,56,14,0,24,12,0,12,24,0,7,112, - 0,17,27,81,20,2,1,0,56,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,128,0,7,112,0,12,24,0,24, - 12,0,56,14,0,120,14,0,120,15,0,120,15,0,248,15, - 128,248,15,128,248,15,128,248,15,128,248,15,128,248,15,128, - 248,15,128,120,15,0,120,15,0,120,15,0,56,14,0,24, - 12,0,12,24,0,7,112,0,17,27,81,20,2,0,0,128, - 0,1,192,0,3,96,0,6,48,0,8,8,0,0,128,0, - 7,112,0,12,24,0,24,12,0,56,14,0,120,14,0,120, - 15,0,120,15,0,248,15,128,248,15,128,248,15,128,248,15, - 128,248,15,128,248,15,128,248,15,128,120,15,0,120,15,0, - 120,15,0,56,14,0,24,12,0,12,24,0,7,112,0,17, - 27,81,20,2,0,0,8,0,7,136,0,7,240,0,8,224, - 0,0,0,0,0,128,0,7,112,0,12,24,0,24,12,0, - 56,14,0,120,14,0,120,15,0,120,15,0,248,15,128,248, - 15,128,248,15,128,248,15,128,248,15,128,248,15,128,248,15, - 128,120,15,0,120,15,0,120,15,0,56,14,0,24,12,0, - 12,24,0,7,112,0,17,27,81,20,2,0,12,48,0,30, - 120,0,30,120,0,12,48,0,0,0,0,0,128,0,7,112, - 0,12,24,0,24,12,0,56,14,0,120,14,0,120,15,0, - 120,15,0,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,248,15,128,120,15,0,120,15,0,120,15, - 0,56,14,0,24,12,0,12,24,0,7,112,0,18,19,57, - 26,4,254,64,0,64,224,0,192,112,1,128,56,3,0,28, - 6,0,14,12,0,7,24,0,3,176,0,1,224,0,0,224, - 0,1,240,0,3,56,0,6,28,0,12,12,0,24,6,0, - 48,3,0,112,1,128,224,0,192,64,0,0,17,22,66,20, - 2,0,0,128,0,7,113,128,12,27,0,24,14,0,56,14, - 0,56,14,0,120,31,0,120,31,0,248,47,128,248,111,128, - 248,79,128,248,143,128,249,15,128,251,15,128,250,15,128,124, - 15,0,124,15,0,120,14,0,56,14,0,56,12,0,108,24, - 0,199,112,0,19,27,81,22,2,1,7,0,0,3,128,0, - 1,128,0,0,192,0,0,0,0,0,0,0,255,15,224,60, - 3,128,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,28, - 1,0,28,2,0,14,4,0,7,248,0,19,27,81,22,2, - 1,0,28,0,0,56,0,0,48,0,0,96,0,0,0,0, - 0,0,0,255,15,224,60,3,128,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,28,1,0,28,2,0,14,4,0,7, - 248,0,19,27,81,22,2,0,0,192,0,0,224,0,1,240, - 0,6,24,0,0,4,0,0,0,0,255,15,224,60,3,128, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,60,1,0,60,1,0,60,1,0,28,3,0, - 28,2,0,14,4,0,7,248,0,19,27,81,22,2,0,3, - 12,0,7,158,0,7,158,0,3,12,0,0,0,0,0,0, - 0,255,143,224,60,3,128,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,60,1,0,28,1,0,28,2,0,14,4,0,7,248,0, - 19,27,81,21,2,1,0,28,0,0,60,0,0,48,0,0, - 96,0,0,0,0,0,0,0,255,31,224,62,7,0,30,6, - 0,30,6,0,31,4,0,15,4,0,15,136,0,7,136,0, - 7,144,0,7,208,0,3,240,0,3,224,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,7,248,0,17,21,63,19,1,0,255,192,0, - 30,0,0,30,0,0,30,0,0,31,248,0,30,14,0,30, - 15,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 128,30,15,0,30,14,0,31,248,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,255,192,0,14,21,42,16, - 1,0,7,192,12,96,28,112,28,112,60,112,60,112,60,112, - 60,96,61,128,60,96,60,48,60,56,60,56,60,56,60,60, - 60,60,60,56,63,184,63,184,63,48,253,224,12,21,42,14, - 1,0,96,0,112,0,56,0,24,0,12,0,4,0,0,0, - 30,0,99,128,99,192,243,192,115,192,7,192,27,192,115,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,1,128,3,128,3,0,6,0,12,0,8,0,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,21,42,14, - 1,0,12,0,12,0,30,0,19,0,33,128,64,128,0,0, - 30,0,99,128,99,192,243,192,115,192,35,192,15,192,51,192, - 115,192,243,192,243,208,243,208,243,208,125,224,12,20,40,14, - 1,0,56,128,127,128,71,0,0,0,0,0,0,0,30,0, - 99,128,99,192,243,192,115,192,3,192,31,192,51,192,115,192, - 243,192,243,208,243,208,245,208,121,224,12,20,40,14,1,0, - 97,128,243,192,243,192,97,128,0,0,0,0,30,0,99,128, - 99,192,243,192,115,192,35,192,15,192,51,192,115,192,243,192, - 243,208,243,208,243,208,125,224,12,21,42,14,1,1,30,0, - 33,0,33,0,33,0,50,0,12,0,0,0,31,0,99,128, - 97,192,241,192,113,192,33,192,15,192,49,192,97,192,225,192, - 225,208,225,208,227,208,124,224,17,14,42,19,1,0,62,60, - 0,99,230,0,99,199,0,243,199,128,115,199,128,7,199,128, - 27,255,128,115,192,0,115,192,0,243,192,128,243,192,128,243, - 225,0,242,225,0,124,62,0,10,21,42,13,1,249,15,0, - 56,128,112,192,113,192,243,192,243,128,240,0,240,0,240,0, - 240,0,112,64,112,64,56,128,31,0,4,0,8,0,6,0, - 3,0,3,0,3,0,30,0,11,21,42,13,1,0,48,0, - 48,0,56,0,24,0,12,0,0,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,1,128, - 3,128,3,128,6,0,4,0,8,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,21,42,13,1,0,12,0, - 14,0,30,0,27,0,49,128,64,0,0,0,15,0,51,128, - 113,192,113,192,241,192,241,224,255,224,240,0,240,0,240,32, - 112,64,112,64,56,128,15,0,11,20,40,13,1,0,49,128, - 123,192,123,192,49,128,0,0,0,0,15,0,51,128,113,192, - 113,192,241,192,241,224,255,224,240,0,240,0,240,32,112,64, - 112,64,56,128,15,0,7,21,21,9,1,0,192,224,112,48, - 24,8,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,6,21,21,9,2,0,12,12,28,56,32,0,0,248,120, - 120,120,120,120,120,120,120,120,120,120,120,252,8,21,21,8, - 1,0,56,56,124,110,131,0,0,252,60,60,60,60,60,60, - 60,60,60,60,60,60,254,8,20,20,9,1,0,102,255,255, - 102,0,0,124,60,60,60,60,60,60,60,60,60,60,60,60, - 126,12,21,42,14,1,0,60,64,31,128,15,0,15,0,55, - 128,3,128,3,192,31,192,49,224,113,224,112,224,240,224,240, - 240,240,240,240,240,240,224,240,224,112,224,113,192,49,192,15, - 0,13,19,38,16,2,1,30,64,63,192,35,128,0,0,0, - 0,251,192,124,224,120,224,120,240,120,240,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,253,248,12,21,42, - 14,1,0,48,0,56,0,56,0,12,0,6,0,2,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,1,128,1,192,3,128,3,0,6,0,4,0,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,21,42, - 14,1,0,6,0,14,0,15,0,27,0,48,128,32,64,0, - 0,15,0,49,128,112,192,112,224,240,224,240,224,240,240,240, - 240,240,224,240,224,112,224,112,192,49,128,15,0,12,20,40, - 14,1,0,28,64,63,192,71,128,0,0,0,0,0,0,15, - 0,49,128,112,192,112,224,240,224,240,224,240,240,240,240,240, - 224,240,224,112,224,112,192,49,128,15,0,12,20,40,14,1, - 0,49,128,123,192,123,192,49,128,0,0,0,0,15,0,49, - 128,112,192,112,224,240,224,240,224,240,240,240,240,240,224,240, - 224,112,224,112,192,49,128,15,0,24,19,57,26,1,254,0, - 24,0,0,60,0,0,60,0,0,24,0,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,255,255,255,255,0,0,0, - 0,0,0,0,0,0,0,0,0,0,24,0,0,60,0,0, - 60,0,0,60,0,0,24,0,12,14,28,14,1,0,15,16, - 49,160,113,192,112,224,241,224,243,224,242,240,244,240,248,224, - 240,224,112,224,112,192,121,128,143,0,14,21,42,15,0,0, - 24,0,28,0,12,0,6,0,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,60,248,29,120,14,124,14,21,42,15,0,0, - 0,192,0,192,1,192,1,128,3,0,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,21,42,15,0,0, - 3,0,7,0,7,128,12,128,24,64,0,0,0,0,253,248, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,120,60,248,29,120,14,124,14,20,40,15,0,0, - 24,192,61,224,61,224,24,192,0,0,0,0,253,248,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 60,120,60,248,29,120,14,124,13,28,56,15,1,249,0,192, - 0,192,1,192,3,128,2,0,0,0,0,0,252,248,120,32, - 56,32,60,64,28,64,28,64,30,64,14,128,15,128,7,128, - 7,0,7,0,3,0,3,0,2,0,2,0,50,0,124,0, - 116,0,116,0,56,0,13,26,52,15,1,250,28,0,124,0, - 188,0,60,0,60,0,60,0,60,240,63,120,60,120,60,120, - 60,120,60,120,60,112,60,112,60,96,60,192,60,128,61,0, - 62,0,60,0,60,0,60,0,60,0,60,0,48,0,192,0, - 13,27,54,15,1,249,24,96,60,240,60,240,24,96,0,0, - 0,0,254,120,120,48,56,32,60,32,28,32,30,64,30,64, - 14,64,15,128,7,128,7,128,7,0,3,0,3,0,1,0, - 2,0,50,0,122,0,116,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=27 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21n[723] U8G_FONT_SECTION("u8g_font_osb21n") = { - 0,77,36,232,248,21,0,0,0,0,42,58,0,22,250,21, - 0,11,12,24,14,2,9,14,0,14,0,78,192,228,224,245, - 192,14,0,14,0,245,192,228,192,78,192,14,0,14,0,24, - 25,75,26,1,252,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,255,255,255,255,255,255,0, - 24,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 5,10,10,7,1,251,112,248,248,248,120,8,16,16,32,192, - 7,3,3,11,2,6,254,254,254,4,4,4,8,2,0,96, - 240,240,96,9,27,54,13,2,250,1,128,1,128,1,128,3, - 0,3,0,3,0,2,0,6,0,6,0,6,0,12,0,12, - 0,12,0,24,0,24,0,24,0,16,0,48,0,48,0,48, - 0,96,0,96,0,96,0,192,0,192,0,192,0,128,0,14, - 21,42,16,1,1,15,192,24,96,56,112,56,112,120,120,120, - 120,248,120,248,124,248,124,248,124,248,124,248,124,248,124,248, - 124,248,120,120,120,120,120,56,112,56,112,24,96,15,192,9, - 21,42,16,3,0,6,0,14,0,30,0,254,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,255,128,12, - 21,42,16,2,1,63,192,97,224,96,224,224,240,224,240,240, - 240,248,240,121,224,49,224,3,192,7,128,14,0,28,0,48, - 16,96,16,64,16,192,16,255,240,255,224,143,224,135,192,13, - 21,42,16,2,1,63,192,96,224,96,224,224,240,240,240,248, - 240,120,240,112,240,0,224,1,192,31,0,0,224,0,240,0, - 112,112,120,248,120,248,120,240,120,224,112,96,240,59,192,13, - 21,42,16,1,0,1,192,1,192,3,192,3,192,7,192,7, - 192,15,192,27,192,27,192,51,192,35,192,99,192,67,192,195, - 192,255,248,3,192,3,192,3,192,3,192,3,192,31,248,13, - 21,42,16,2,0,96,224,127,192,127,128,127,0,120,0,64, - 0,64,0,64,0,79,0,113,224,64,240,64,240,0,248,0, - 248,112,248,248,248,248,248,240,240,224,240,97,224,59,192,13, - 21,42,16,2,1,15,224,24,32,56,48,48,240,112,240,112, - 240,240,96,240,0,240,0,247,128,248,224,240,112,240,112,240, - 112,240,120,112,120,112,112,112,112,48,112,56,96,13,192,11, - 21,42,16,3,0,156,64,190,96,255,32,255,32,199,224,129, - 160,128,64,128,64,0,128,0,128,1,0,3,0,7,0,6, - 0,14,0,14,0,30,0,30,0,30,0,30,0,30,0,14, - 21,42,16,2,1,31,192,48,32,96,48,96,16,224,16,240, - 16,248,32,254,32,127,192,63,192,31,240,31,248,99,248,64, - 248,192,60,192,24,192,24,192,24,96,16,112,48,31,192,13, - 21,42,16,2,1,31,128,48,192,112,96,112,112,240,112,240, - 112,240,120,240,120,240,120,112,120,112,120,56,248,15,120,0, - 120,0,120,56,112,120,112,120,96,112,224,96,192,63,128,4, - 14,14,8,2,0,96,240,240,240,96,0,0,0,0,0,96, - 240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--28-280-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=28 h=29 x= 3 y=16 dx=31 dy= 0 ascent=23 len=87 - Font Bounding box w=77 h=36 x=-24 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =21 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb21r[4521] U8G_FONT_SECTION("u8g_font_osb21r") = { - 0,77,36,232,248,21,5,141,12,241,32,127,249,23,249,21, - 249,0,0,0,8,0,0,5,21,21,9,2,1,240,248,248, - 248,248,112,112,112,112,32,32,32,32,32,32,0,0,112,248, - 248,112,7,6,6,11,2,16,238,238,238,238,198,68,16,21, - 42,20,2,0,6,12,6,12,6,12,6,8,6,24,6,24, - 255,255,255,255,12,24,12,24,12,48,12,48,12,48,8,48, - 255,255,255,255,24,32,24,96,24,96,16,96,48,96,13,25, - 50,16,2,254,9,0,11,0,61,192,105,48,73,8,201,8, - 201,56,233,120,249,112,253,0,127,0,127,0,63,192,15,224, - 15,240,73,248,233,248,233,56,201,24,137,24,137,16,73,32, - 57,192,15,0,9,0,19,22,66,25,3,0,0,1,0,60, - 3,0,102,2,0,231,4,0,231,4,0,231,8,0,231,8, - 0,231,16,0,231,48,0,102,32,0,102,96,0,24,64,0, - 0,195,0,0,140,192,1,140,192,1,28,224,2,28,224,2, - 28,224,4,28,224,4,28,224,8,12,192,24,7,128,20,21, - 63,22,1,1,3,224,0,6,16,0,14,16,0,14,16,0, - 14,16,0,14,48,0,15,32,0,15,64,0,7,128,0,3, - 192,0,7,195,240,9,224,192,48,224,128,112,240,128,112,121, - 0,240,59,0,240,62,0,240,30,0,248,31,16,126,111,160, - 63,199,192,3,6,6,7,2,16,224,224,224,224,192,64,8, - 27,27,10,2,250,1,2,4,8,24,48,48,112,112,240,240, - 240,240,240,240,240,240,112,112,112,48,48,24,8,4,2,1, - 8,26,26,10,1,250,128,192,96,48,24,24,12,12,14,14, - 14,14,15,15,15,14,14,14,14,12,12,24,24,48,96,192, - 11,12,24,14,2,9,14,0,14,0,78,192,228,224,245,192, - 14,0,14,0,245,192,228,192,78,192,14,0,14,0,24,25, - 75,26,1,252,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,0, - 24,0,0,24,0,0,24,0,255,255,255,255,255,255,0,24, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,0,0,24,0,0,24,0,5, - 10,10,7,1,251,112,248,248,248,120,8,16,16,32,192,7, - 3,3,11,2,6,254,254,254,4,4,4,8,2,0,96,240, - 240,96,9,27,54,13,2,250,1,128,1,128,1,128,3,0, - 3,0,3,0,2,0,6,0,6,0,6,0,12,0,12,0, - 12,0,24,0,24,0,24,0,16,0,48,0,48,0,48,0, - 96,0,96,0,96,0,192,0,192,0,192,0,128,0,14,21, - 42,16,1,1,15,192,24,96,56,112,56,112,120,120,120,120, - 248,120,248,124,248,124,248,124,248,124,248,124,248,124,248,124, - 248,120,120,120,120,120,56,112,56,112,24,96,15,192,9,21, - 42,16,3,0,6,0,14,0,30,0,254,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,12,21, - 42,16,2,1,63,192,97,224,96,224,224,240,224,240,240,240, - 248,240,121,224,49,224,3,192,7,128,14,0,28,0,48,16, - 96,16,64,16,192,16,255,240,255,224,143,224,135,192,13,21, - 42,16,2,1,63,192,96,224,96,224,224,240,240,240,248,240, - 120,240,112,240,0,224,1,192,31,0,0,224,0,240,0,112, - 112,120,248,120,248,120,240,120,224,112,96,240,59,192,13,21, - 42,16,1,0,1,192,1,192,3,192,3,192,7,192,7,192, - 15,192,27,192,27,192,51,192,35,192,99,192,67,192,195,192, - 255,248,3,192,3,192,3,192,3,192,3,192,31,248,13,21, - 42,16,2,0,96,224,127,192,127,128,127,0,120,0,64,0, - 64,0,64,0,79,0,113,224,64,240,64,240,0,248,0,248, - 112,248,248,248,248,248,240,240,224,240,97,224,59,192,13,21, - 42,16,2,1,15,224,24,32,56,48,48,240,112,240,112,240, - 240,96,240,0,240,0,247,128,248,224,240,112,240,112,240,112, - 240,120,112,120,112,112,112,112,48,112,56,96,13,192,11,21, - 42,16,3,0,156,64,190,96,255,32,255,32,199,224,129,160, - 128,64,128,64,0,128,0,128,1,0,3,0,7,0,6,0, - 14,0,14,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,16,2,1,31,192,48,32,96,48,96,16,224,16,240,16, - 248,32,254,32,127,192,63,192,31,240,31,248,99,248,64,248, - 192,60,192,24,192,24,192,24,96,16,112,48,31,192,13,21, - 42,16,2,1,31,128,48,192,112,96,112,112,240,112,240,112, - 240,120,240,120,240,120,112,120,112,120,56,248,15,120,0,120, - 0,120,56,112,120,112,120,96,112,224,96,192,63,128,4,14, - 14,8,2,0,96,240,240,240,96,0,0,0,0,0,96,240, - 240,96,5,19,19,8,2,251,96,240,240,240,96,0,0,0, - 0,112,248,248,248,248,8,16,16,32,192,21,24,72,26,2, - 252,0,0,24,0,0,56,0,0,240,0,3,192,0,15,0, - 0,28,0,0,120,0,1,224,0,7,128,0,14,0,0,60, - 0,0,240,0,0,224,0,0,120,0,0,30,0,0,7,128, - 0,1,192,0,0,240,0,0,60,0,0,15,0,0,3,128, - 0,1,224,0,0,120,0,0,24,24,8,24,26,1,4,255, - 255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,255,255,255,255,21,24,72,26,3,252,128,0,0, - 224,0,0,120,0,0,30,0,0,7,128,0,1,192,0,0, - 240,0,0,60,0,0,15,0,0,3,128,0,1,224,0,0, - 120,0,0,56,0,0,240,0,3,192,0,15,0,0,28,0, - 0,120,0,1,224,0,7,128,0,14,0,0,60,0,0,240, - 0,0,192,0,0,9,21,42,13,2,1,126,0,71,0,135, - 128,135,128,135,128,135,128,71,0,14,0,12,0,28,0,16, - 0,48,0,34,0,34,0,34,0,28,0,0,0,12,0,30, - 0,30,0,12,0,20,22,66,22,1,0,0,32,0,3,222, - 0,12,3,0,24,0,128,48,0,192,48,112,96,97,207,96, - 99,142,48,199,142,48,199,14,48,199,14,48,207,14,48,207, - 28,48,207,28,32,207,28,96,79,60,64,103,44,128,99,199, - 0,48,0,0,24,0,0,12,2,0,3,252,0,19,21,63, - 22,2,0,0,64,0,0,96,0,0,224,0,0,224,0,0, - 240,0,1,240,0,1,240,0,1,248,0,2,120,0,2,120, - 0,2,124,0,4,60,0,4,60,0,4,62,0,15,254,0, - 8,30,0,8,31,0,16,15,0,16,15,0,48,15,128,254, - 127,224,17,21,63,19,1,0,255,240,0,30,28,0,30,14, - 0,30,15,0,30,15,0,30,15,0,30,15,0,30,14,0, - 30,14,0,30,24,0,31,224,0,30,28,0,30,15,0,30, - 7,0,30,7,128,30,7,128,30,7,128,30,7,128,30,7, - 0,30,14,0,255,248,0,15,21,42,18,2,1,15,230,28, - 30,56,30,56,14,120,14,120,6,248,6,248,6,248,2,248, - 0,248,0,248,0,248,0,248,2,248,2,120,2,120,4,56, - 4,60,12,28,8,15,240,19,21,63,21,1,0,255,248,0, - 30,14,0,30,7,0,30,3,128,30,3,192,30,3,192,30, - 3,192,30,3,224,30,3,224,30,3,224,30,3,224,30,3, - 224,30,3,224,30,3,224,30,3,192,30,3,192,30,3,192, - 30,3,128,30,7,0,30,14,0,255,248,0,16,21,42,19, - 1,0,255,255,30,15,30,7,30,3,30,3,30,1,30,17, - 30,16,30,48,30,48,31,240,30,48,30,48,30,17,30,17, - 30,1,30,1,30,3,30,7,30,15,255,255,17,21,63,19, - 1,0,255,255,128,30,15,128,30,7,128,30,3,128,30,1, - 128,30,1,128,30,17,128,30,17,128,30,48,0,30,48,0, - 31,240,0,30,48,0,30,48,0,30,16,0,30,16,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,20,2,0,0,128,0,7,114,0,28,30,0, - 24,14,0,56,6,0,120,6,0,120,6,0,120,2,0,248, - 2,0,248,0,0,248,0,0,248,0,0,248,255,128,248,30, - 0,248,30,0,248,30,0,120,30,0,120,30,0,56,30,0, - 56,22,0,28,34,0,14,194,0,20,21,63,22,1,0,255, - 223,240,30,3,192,30,3,192,30,3,192,30,3,192,30,3, - 192,30,3,192,30,3,192,30,3,192,30,3,192,31,255,192, - 30,3,192,30,3,192,30,3,192,30,3,192,30,3,192,30, - 3,192,30,3,192,30,3,192,30,3,192,255,223,240,9,21, - 42,11,1,0,255,128,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,255,128,13,21, - 42,15,1,0,15,248,1,224,1,224,1,224,1,224,1,224, - 1,224,1,224,1,224,1,224,1,224,1,224,1,224,113,224, - 249,224,249,224,249,192,225,192,193,192,65,128,55,0,19,21, - 63,21,1,0,255,159,192,30,7,0,30,6,0,30,12,0, - 30,8,0,30,16,0,30,32,0,30,96,0,30,240,0,31, - 240,0,31,248,0,30,248,0,30,124,0,30,124,0,30,62, - 0,30,30,0,30,31,0,30,15,0,30,15,128,30,15,128, - 255,159,224,17,21,63,19,1,0,255,128,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,1,0, - 30,1,128,30,1,128,30,1,128,30,3,128,30,3,128,30, - 7,128,30,15,128,255,255,128,23,21,63,25,1,0,254,0, - 254,30,0,240,31,1,240,31,1,240,31,1,240,31,129,240, - 23,130,240,23,194,240,23,194,240,19,196,240,19,228,240,17, - 228,240,17,228,240,17,248,240,16,248,240,16,248,240,16,248, - 240,16,112,240,16,112,240,56,48,240,254,35,254,21,21,63, - 22,1,0,254,15,248,31,1,192,31,0,128,15,128,128,15, - 192,128,15,192,128,11,224,128,11,240,128,9,248,128,8,248, - 128,8,252,128,8,126,128,8,62,128,8,31,128,8,31,128, - 8,15,128,8,7,128,8,7,128,8,3,128,28,1,128,255, - 129,128,17,22,66,20,2,0,0,128,0,7,112,0,12,24, - 0,24,12,0,56,14,0,120,14,0,120,15,0,120,15,0, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,248,15,128,120,15,0,120,15,0,120,15,0,56,14, - 0,24,12,0,12,24,0,7,112,0,17,21,63,19,1,0, - 255,248,0,30,14,0,30,7,0,30,7,128,30,7,128,30, - 7,128,30,7,128,30,7,128,30,15,0,30,14,0,31,248, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,255,192,0,17, - 29,87,20,2,249,0,128,0,7,112,0,12,24,0,24,12, - 0,56,14,0,120,14,0,120,15,0,120,15,0,248,15,128, - 248,15,128,248,15,128,248,15,128,248,15,128,248,15,128,248, - 15,128,120,15,0,120,15,0,121,142,0,58,78,0,30,124, - 0,30,120,128,6,112,128,1,224,128,0,96,128,0,113,128, - 0,127,128,0,127,0,0,63,0,0,30,0,19,21,63,21, - 1,0,255,240,0,30,28,0,30,14,0,30,15,0,30,15, - 0,30,15,0,30,15,0,30,14,0,30,28,0,31,224,0, - 30,48,0,30,28,0,30,28,0,30,28,0,30,30,0,30, - 30,0,30,30,32,30,30,32,30,30,32,30,14,64,255,207, - 192,13,22,44,17,3,0,4,0,59,144,64,240,192,112,192, - 112,224,48,240,48,248,16,254,16,127,0,63,128,31,224,15, - 240,131,240,129,248,128,120,192,56,192,24,224,24,224,16,240, - 48,159,192,17,21,63,20,2,0,255,255,128,227,207,128,195, - 199,128,195,195,128,131,195,128,131,193,128,131,193,128,3,193, - 128,3,192,128,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,31,248,0,19,21,63,22,2,0,255,15, - 224,60,3,128,60,1,0,60,1,0,60,1,0,60,1,0, - 60,1,0,60,1,0,60,1,0,60,1,0,60,1,0,60, - 1,0,60,1,0,60,1,0,60,1,0,60,1,0,60,1, - 0,28,1,0,28,2,0,14,4,0,7,248,0,20,21,63, - 22,1,0,255,207,240,30,1,128,31,1,0,31,1,0,15, - 1,0,15,130,0,15,130,0,7,130,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,232,0,1,248,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 96,0,28,21,84,31,2,0,255,191,231,240,62,15,129,192, - 30,7,129,128,30,7,129,128,31,7,193,0,15,7,193,0, - 15,7,193,0,15,143,226,0,7,137,226,0,7,137,226,0, - 7,201,246,0,3,208,244,0,3,208,244,0,3,240,252,0, - 1,240,124,0,1,224,120,0,1,224,120,0,0,224,56,0, - 0,192,48,0,0,192,48,0,0,64,16,0,19,21,63,20, - 1,0,255,159,192,63,6,0,31,6,0,15,4,0,15,136, - 0,7,152,0,7,208,0,3,240,0,3,224,0,1,240,0, - 1,240,0,0,248,0,1,248,0,3,124,0,2,124,0,6, - 62,0,4,62,0,8,30,0,24,31,0,24,31,128,254,63, - 224,18,21,63,21,2,0,255,31,192,62,7,0,30,6,0, - 30,4,0,31,4,0,15,4,0,15,136,0,7,136,0,7, - 144,0,7,208,0,3,240,0,3,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,1,224,0,1,224,0,1,224,0, - 1,224,0,7,248,0,15,21,42,19,2,0,127,254,120,62, - 112,124,96,124,96,248,64,248,65,240,1,240,3,224,3,224, - 7,192,7,128,15,128,31,2,31,2,62,2,62,6,124,6, - 124,14,248,30,255,254,7,26,26,11,2,251,254,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,254,10,27,54,13,1,250,192,0,96,0, - 96,0,96,0,32,0,48,0,48,0,48,0,24,0,24,0, - 24,0,12,0,12,0,12,0,4,0,6,0,6,0,6,0, - 3,0,3,0,3,0,1,128,1,128,1,128,0,128,0,192, - 0,192,7,26,26,11,2,251,254,30,30,30,30,30,30,30, - 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30, - 30,254,12,10,20,16,2,12,6,0,7,0,15,0,29,128, - 25,128,48,192,48,224,96,96,224,48,192,48,15,2,4,15, - 0,251,255,254,255,254,5,5,5,12,2,16,192,224,112,48, - 24,12,14,28,14,1,0,30,0,99,128,99,192,243,192,115, - 192,35,192,15,192,51,192,115,192,243,192,243,208,243,208,243, - 208,125,224,13,21,42,14,0,0,252,0,60,0,60,0,60, - 0,60,0,60,0,60,0,61,192,62,96,60,112,60,112,60, - 120,60,120,60,120,60,120,60,120,60,120,60,112,52,112,38, - 96,35,192,10,14,28,13,1,0,15,0,56,128,112,192,113, - 192,243,192,243,128,240,0,240,0,240,0,240,0,112,64,112, - 64,56,128,15,0,13,21,42,15,1,0,3,224,1,224,1, - 224,1,224,1,224,1,224,1,224,29,224,51,224,113,224,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,248,11,14,28,13,1,0,15,0,51,128,113, - 192,113,192,241,192,241,224,255,224,240,0,240,0,240,32,112, - 64,112,64,56,128,15,0,11,21,42,10,1,0,7,128,12, - 192,28,192,61,224,61,192,60,0,60,0,254,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,0,60,0,254,0,14,21,42,16,1,249,15,24,57, - 236,121,252,121,248,121,224,121,224,57,192,57,192,15,0,112, - 0,192,0,255,0,255,224,127,240,63,248,64,56,128,24,128, - 16,128,48,96,96,31,128,14,21,42,16,1,0,252,0,60, - 0,60,0,60,0,60,0,60,0,60,0,61,224,62,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,120,60,120,254,252,6,21,21,8,1,0,48,120,120, - 48,0,0,0,248,120,120,120,120,120,120,120,120,120,120,120, - 120,252,8,28,28,8,255,249,6,15,15,6,0,0,0,31, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,79,255, - 239,238,206,56,14,21,42,16,1,0,252,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,248,60,96,60,64,60,128, - 60,128,61,128,63,128,63,192,61,224,60,224,60,240,60,112, - 60,120,254,252,8,21,21,9,1,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,255,20, - 14,42,23,2,0,249,199,128,126,233,192,120,241,192,120,241, - 224,120,241,224,120,241,224,120,241,224,120,241,224,120,241,224, - 120,241,224,120,241,224,120,241,224,120,241,224,253,251,240,13, - 14,28,16,2,0,251,192,124,224,120,224,120,240,120,240,120, - 240,120,240,120,240,120,240,120,240,120,240,120,240,120,240,253, - 248,12,14,28,14,1,0,15,0,49,128,112,192,112,224,240, - 224,240,224,240,240,240,240,240,224,240,224,112,224,112,192,49, - 128,15,0,13,21,42,15,1,249,253,192,62,96,60,112,60, - 112,60,120,60,120,60,120,60,120,60,120,60,120,60,112,60, - 112,62,96,61,192,60,0,60,0,60,0,60,0,60,0,60, - 0,254,0,13,21,42,14,1,249,30,32,51,32,113,96,113, - 224,241,224,241,224,241,224,241,224,241,224,241,224,113,224,113, - 224,51,224,29,224,1,224,1,224,1,224,1,224,1,224,1, - 224,3,248,10,14,28,12,2,0,251,128,125,128,123,192,123, - 128,121,128,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,252,0,10,14,28,13,2,0,60,128,67,128,193, - 128,193,128,224,128,248,0,126,0,63,128,143,128,131,192,192, - 192,224,192,240,128,143,0,9,20,40,10,0,0,8,0,8, - 0,8,0,24,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,128,56,128,56,128,56,128,57, - 128,57,0,14,0,14,14,28,15,0,0,253,248,60,120,60, - 120,60,120,60,120,60,120,60,120,60,120,60,120,60,120,60, - 120,60,248,29,120,14,124,13,14,28,15,1,0,252,248,120, - 32,56,32,60,32,28,64,28,64,30,64,14,128,14,128,15, - 0,7,0,7,0,6,0,2,0,20,14,42,22,1,0,253, - 253,240,120,120,64,56,120,64,60,56,64,28,120,128,28,124, - 128,30,92,128,14,157,0,14,159,0,15,143,0,7,14,0, - 7,14,0,6,6,0,2,4,0,13,14,28,15,1,0,254, - 248,60,96,60,64,30,128,30,128,15,0,7,0,7,128,7, - 192,11,192,9,224,16,224,48,240,253,248,13,21,42,15,1, - 249,252,248,120,32,56,32,60,64,28,64,28,64,30,64,14, - 128,15,128,7,128,7,128,7,0,3,0,3,0,2,0,2, - 0,50,0,122,0,116,0,116,0,56,0,11,14,28,13,1, - 0,127,224,97,224,67,192,67,128,71,128,15,0,15,0,30, - 0,30,32,60,32,56,32,120,96,240,224,255,224,9,27,54, - 12,1,250,0,128,7,0,14,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,28,0,28,0,56,0,224,0,56, - 0,28,0,28,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,14,0,7,0,0,128,2,27,27,8,3,250,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,9,27,54,13,2,250, - 192,0,56,0,28,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,14,0,1,128,14,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,28,0, - 28,0,56,0,192,0,16,6,12,18,1,5,124,2,127,1, - 143,193,131,241,128,254,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 6 y=20 dx=36 dy= 0 ascent=34 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =34 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26[12640] U8G_FONT_SECTION("u8g_font_osb26") = { - 0,95,44,227,246,26,7,105,16,163,32,255,248,34,246,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,10,0,0,6,26,26,10,2,248,120,252,252,252,120,0, - 0,0,32,48,48,48,48,48,48,120,120,120,120,252,252,252, - 252,252,252,120,13,25,50,19,3,252,1,0,1,0,1,0, - 1,0,15,192,29,32,57,48,121,112,121,112,249,112,241,96, - 241,0,241,0,241,0,241,0,241,8,121,16,121,16,57,16, - 29,32,15,192,1,0,1,0,1,0,1,0,21,26,78,24, - 2,0,0,2,0,0,61,192,0,112,96,0,240,112,1,224, - 112,1,224,240,3,224,240,3,224,224,3,224,0,3,224,0, - 3,224,0,31,224,0,35,225,0,1,254,0,1,240,0,1, - 240,0,0,240,0,0,240,0,0,240,0,0,224,0,0,224, - 8,60,192,16,199,192,48,131,255,224,131,255,192,124,63,128, - 18,17,51,20,1,3,64,0,128,227,241,192,127,255,128,60, - 15,0,56,7,0,48,3,0,112,3,128,96,1,128,96,1, - 128,96,1,128,96,1,128,112,3,128,48,3,0,56,7,0, - 62,31,0,127,255,128,99,241,128,18,25,75,20,1,0,255, - 143,192,63,3,128,63,3,0,31,3,0,31,130,0,15,130, - 0,15,196,0,15,196,0,7,196,0,7,232,0,3,232,0, - 3,248,0,3,240,0,63,255,128,1,240,0,1,240,0,63, - 255,128,1,240,0,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,31,254,0,2,32,32,10,4,250, - 192,192,192,192,192,192,192,192,192,192,192,192,192,0,0,0, - 0,0,0,192,192,192,192,192,192,192,192,192,192,192,192,192, - 15,32,64,22,2,249,7,224,28,24,56,24,48,28,112,124, - 112,124,112,124,120,56,124,0,63,0,31,224,127,240,71,252, - 193,252,192,126,224,30,248,14,254,6,127,134,63,228,31,248, - 7,248,1,248,0,124,60,60,60,28,124,28,124,28,112,24, - 48,56,24,112,15,192,11,4,8,15,2,19,113,192,241,224, - 241,224,113,192,24,25,75,28,2,1,1,255,128,6,0,64, - 12,0,48,24,0,24,48,60,136,32,227,132,65,193,134,65, - 193,130,195,192,130,131,192,131,131,192,129,131,192,1,131,192, - 1,131,192,1,131,192,65,131,192,131,195,192,130,65,192,130, - 65,193,134,32,227,4,48,60,8,16,0,24,12,0,48,6, - 0,64,1,255,128,10,13,26,13,1,12,60,0,70,0,199, - 0,231,0,71,0,63,0,103,0,231,0,231,64,231,64,123, - 128,0,0,255,128,9,15,30,17,4,1,8,0,24,128,48, - 128,97,0,99,0,227,0,227,0,227,0,227,0,227,0,227, - 0,97,0,49,128,48,128,8,0,16,9,18,20,2,5,255, - 255,255,255,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,9,4,8,13,2,7,255,128,255,128,255,128,255,128,24, - 25,75,28,2,1,1,255,128,6,0,64,12,0,48,24,0, - 24,55,254,8,33,227,132,65,227,198,65,227,194,193,227,194, - 129,227,195,129,231,129,129,252,1,129,231,1,129,227,129,129, - 227,193,129,227,195,193,227,210,65,227,210,65,227,214,33,227, - 212,55,249,232,16,0,24,12,0,48,6,0,64,1,255,128, - 9,2,4,15,3,20,255,128,255,128,11,10,20,19,4,16, - 63,128,123,192,224,192,192,96,192,96,192,96,192,224,97,192, - 63,128,31,0,29,26,104,33,2,254,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,255,255,255,248,255,255,255,248,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,6,0,0,0,6,0,0,0,6,0,0,0,6, - 0,0,0,0,0,0,0,0,0,0,255,255,255,240,255,255, - 255,240,10,16,32,15,3,9,31,0,103,128,195,192,195,192, - 227,192,243,128,7,128,14,0,28,0,48,64,64,64,64,64, - 255,192,255,192,159,128,135,0,11,16,32,15,2,9,31,0, - 35,128,99,192,115,192,115,192,51,128,3,0,28,0,3,128, - 3,192,97,224,241,224,241,224,227,224,99,192,63,0,6,7, - 7,15,6,18,28,28,60,120,96,192,128,17,27,81,20,2, - 246,96,48,0,112,120,0,240,120,0,240,120,0,240,120,0, - 240,120,0,240,120,0,240,120,0,240,120,0,96,56,0,96, - 48,128,96,48,128,96,113,128,32,127,128,48,255,128,95,207, - 0,71,143,0,64,0,0,96,0,0,96,0,0,112,0,0, - 112,0,0,120,0,0,120,0,0,120,0,0,120,0,0,48, - 0,0,17,30,90,20,2,251,15,255,128,63,140,0,127,140, - 0,127,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 255,140,0,127,140,0,127,140,0,63,140,0,31,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,5,5,5,9,2,9,112,248,248,248,112,7,7,7, - 15,4,249,32,32,24,14,14,14,252,8,15,15,16,4,10, - 12,28,252,60,60,60,60,60,60,60,60,60,60,60,255,9, - 13,26,13,2,12,28,0,103,0,99,0,227,128,227,128,227, - 128,227,128,227,128,99,0,103,0,28,0,0,0,255,128,9, - 14,28,17,4,2,132,0,198,0,99,0,99,0,115,128,115, - 128,115,128,115,128,115,128,99,128,99,0,195,0,134,0,12, - 0,25,26,104,31,4,0,0,0,48,0,12,0,48,0,28, - 0,96,0,252,0,96,0,60,0,192,0,60,0,128,0,60, - 1,128,0,60,3,0,0,60,3,0,0,60,6,0,0,60, - 6,0,0,60,12,14,0,60,12,30,0,60,24,30,0,60, - 16,62,0,255,48,62,0,0,96,94,0,0,96,158,0,0, - 192,158,0,0,193,30,0,1,131,30,0,1,131,255,128,3, - 0,30,0,2,0,30,0,6,0,30,0,12,0,255,128,25, - 26,104,31,4,0,0,0,48,0,28,0,32,0,252,0,96, - 0,60,0,64,0,60,0,192,0,60,1,128,0,60,1,128, - 0,60,3,0,0,60,3,0,0,60,6,0,0,60,4,62, - 0,60,12,207,0,60,9,135,128,60,25,135,128,60,49,199, - 128,255,49,231,0,0,96,207,0,0,96,28,0,0,192,56, - 0,0,128,96,0,1,128,64,128,3,0,128,128,3,1,255, - 128,6,1,255,128,6,1,63,0,12,1,14,0,26,26,104, - 30,2,0,0,0,24,0,31,0,24,0,35,128,48,0,99, - 192,48,0,115,192,96,0,115,192,64,0,51,128,192,0,3, - 0,128,0,28,1,128,0,3,131,0,0,3,195,0,0,113, - 230,7,0,241,228,15,0,227,236,15,0,99,200,31,0,63, - 24,31,0,0,16,47,0,0,48,79,0,0,96,79,0,0, - 96,143,0,0,192,143,0,0,129,255,192,1,128,15,0,1, - 0,15,0,3,0,15,0,2,0,127,192,11,26,52,16,2, - 248,28,0,62,0,62,0,62,0,28,0,0,0,0,0,30, - 0,49,0,33,0,33,0,1,0,2,0,6,0,14,0,28, - 0,60,0,120,192,120,64,248,32,240,32,240,32,240,32,120, - 64,120,64,31,128,23,33,99,25,1,0,1,128,0,1,192, - 0,0,224,0,0,96,0,0,48,0,0,16,0,0,0,0, - 0,16,0,0,24,0,0,56,0,0,56,0,0,60,0,0, - 124,0,0,124,0,0,126,0,0,254,0,0,254,0,0,158, - 0,1,159,0,1,159,0,1,31,0,3,15,128,3,15,128, - 3,15,128,6,7,192,7,255,192,6,7,192,4,7,224,12, - 3,224,12,3,224,28,3,240,28,3,240,255,159,254,23,33, - 99,25,1,0,0,3,0,0,7,128,0,7,0,0,14,0, - 0,28,0,0,16,0,0,0,0,0,16,0,0,24,0,0, - 56,0,0,56,0,0,60,0,0,124,0,0,124,0,0,126, - 0,0,254,0,0,254,0,0,159,0,1,159,0,1,159,0, - 1,31,128,3,15,128,3,15,128,3,15,128,6,7,192,7, - 255,192,6,7,192,12,7,224,12,3,224,12,3,224,28,3, - 240,60,3,248,255,159,254,23,33,99,25,1,0,0,16,0, - 0,56,0,0,56,0,0,124,0,0,199,0,1,129,128,0, - 0,0,0,16,0,0,24,0,0,56,0,0,56,0,0,60, - 0,0,124,0,0,124,0,0,126,0,0,254,0,0,254,0, - 0,158,0,1,159,0,1,159,0,1,31,0,3,15,128,3, - 15,128,3,15,128,6,7,192,7,255,192,6,7,192,4,7, - 224,12,3,224,12,3,224,28,3,240,28,3,240,255,159,254, - 23,32,96,25,1,0,0,112,128,0,249,0,1,191,0,1, - 14,0,0,0,0,0,0,0,0,0,0,0,24,0,0,56, - 0,0,56,0,0,60,0,0,124,0,0,124,0,0,126,0, - 0,254,0,0,254,0,0,159,0,1,159,0,1,159,0,1, - 31,128,3,15,128,3,15,128,3,15,128,6,7,192,7,255, - 192,6,7,192,12,7,224,12,3,224,12,3,224,28,3,240, - 60,3,248,255,159,254,23,32,96,25,1,0,1,195,128,3, - 199,128,3,199,128,1,195,128,0,0,0,0,0,0,0,24, - 0,0,56,0,0,56,0,0,56,0,0,60,0,0,124,0, - 0,124,0,0,126,0,0,254,0,0,254,0,0,159,0,1, - 159,0,1,159,0,1,15,128,3,15,128,2,15,128,2,15, - 192,6,7,192,7,255,192,4,7,192,4,3,224,8,3,224, - 8,3,224,24,1,240,24,3,240,255,159,254,23,33,99,25, - 1,0,0,60,0,0,126,0,0,195,0,0,195,0,0,199, - 0,0,126,0,0,60,0,0,0,0,0,24,0,0,56,0, - 0,56,0,0,60,0,0,124,0,0,124,0,0,126,0,0, - 254,0,0,254,0,0,159,0,1,159,0,1,159,0,1,15, - 0,3,15,128,3,15,128,2,15,128,2,7,192,7,255,192, - 4,7,192,4,3,224,12,3,224,8,3,224,24,1,240,28, - 1,240,255,159,254,32,25,100,34,1,0,0,15,255,255,0, - 3,240,31,0,7,240,15,0,7,240,7,0,5,240,7,0, - 13,240,3,0,9,240,3,0,25,240,35,0,25,240,32,0, - 49,240,96,0,49,240,96,0,97,240,224,0,97,255,224,0, - 193,240,224,0,193,240,96,1,129,240,96,1,129,240,33,3, - 255,240,33,3,1,240,3,6,1,240,3,6,1,240,7,12, - 1,240,7,12,1,240,15,62,1,240,63,255,143,255,255,19, - 33,99,22,2,249,3,248,192,14,6,192,30,3,192,60,3, - 192,60,1,192,124,1,192,124,0,192,124,0,192,252,0,192, - 252,0,64,252,0,64,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,252,0,96,124,0,64,124,0,64,124,0, - 64,60,0,192,62,0,128,30,1,0,15,2,0,3,156,0, - 0,224,0,0,128,0,0,240,0,0,56,0,0,56,0,0, - 56,0,2,48,0,1,224,0,20,33,99,23,2,0,3,0, - 0,7,128,0,3,128,0,1,192,0,0,224,0,0,32,0, - 0,0,0,0,0,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,33,99,23,2,0,0,6,0,0,14,0,0,30,0, - 0,28,0,0,48,0,0,96,0,0,0,0,0,0,0,255, - 255,224,31,1,224,31,0,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,4,32,31,4,0,31,12,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,12,48,31, - 4,48,31,4,48,31,0,48,31,0,112,31,0,112,31,0, - 240,31,0,240,31,3,240,255,255,240,20,33,99,23,2,0, - 0,32,0,0,96,0,0,240,0,1,248,0,3,140,0,6, - 3,0,0,0,0,0,0,0,255,255,224,31,1,224,31,0, - 224,31,0,224,31,0,96,31,0,96,31,0,32,31,4,32, - 31,4,0,31,12,0,31,12,0,31,28,0,31,252,0,31, - 28,0,31,12,0,31,12,48,31,4,48,31,4,48,31,0, - 48,31,0,112,31,0,112,31,0,240,31,1,240,31,3,240, - 255,255,240,20,32,96,23,2,0,7,14,0,7,143,0,7, - 143,0,7,14,0,0,0,0,0,0,0,0,0,0,255,255, - 224,31,1,224,31,0,224,31,0,224,31,0,96,31,0,96, - 31,0,32,31,4,32,31,4,0,31,12,0,31,12,0,31, - 28,0,31,252,0,31,28,0,31,12,0,31,12,48,31,4, - 48,31,4,48,31,0,48,31,0,112,31,0,112,31,0,240, - 31,0,240,31,3,240,255,255,240,11,33,66,14,2,0,96, - 0,112,0,120,0,56,0,28,0,4,0,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,33,66,14,2,0,0,192,1,192,3,192,3,128,7, - 0,4,0,0,0,0,0,255,224,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,255,224,11,33,66,14,2,0,4, - 0,14,0,14,0,31,0,113,128,192,96,0,0,0,0,255, - 224,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,255, - 224,11,32,64,15,2,0,112,224,241,224,241,224,112,224,0, - 0,0,0,0,0,255,224,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,255,224,23,25,75,27,2,0,255,255,0, - 31,3,192,31,0,224,31,0,240,31,0,120,31,0,120,31, - 0,124,31,0,124,31,0,126,31,0,126,31,0,126,255,224, - 126,31,0,126,31,0,126,31,0,126,31,0,126,31,0,124, - 31,0,124,31,0,124,31,0,120,31,0,120,31,0,240,31, - 0,224,31,3,192,255,255,0,24,32,96,27,2,0,0,112, - 64,0,252,192,0,159,128,0,135,0,0,0,0,0,0,0, - 0,0,0,255,3,255,31,128,124,31,128,56,15,192,16,7, - 224,16,7,240,16,7,240,16,5,248,16,5,252,16,4,252, - 16,4,126,16,4,127,16,4,63,16,4,31,144,4,31,208, - 4,15,208,4,7,240,4,7,240,4,3,240,4,1,240,4, - 1,240,4,0,240,14,0,112,31,0,48,255,192,48,20,33, - 99,24,2,1,7,0,0,7,128,0,3,128,0,1,192,0, - 0,192,0,0,96,0,0,0,0,0,0,0,3,252,0,6, - 6,0,14,7,0,28,3,128,60,3,192,60,3,192,124,3, - 224,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,124,3,224,124, - 3,224,124,3,224,60,3,192,60,3,192,28,3,128,14,7, - 0,6,6,0,3,252,0,20,33,99,24,2,1,0,14,0, - 0,30,0,0,28,0,0,56,0,0,48,0,0,96,0,0, - 0,0,0,0,0,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,224,124,3,224,124,3,224,60,3, - 192,60,3,192,28,3,128,14,7,0,6,6,0,3,252,0, - 20,33,99,24,2,0,0,96,0,0,96,0,0,240,0,1, - 248,0,3,156,0,6,6,0,0,0,0,0,0,0,3,252, - 0,6,6,0,14,7,0,28,3,128,60,3,192,60,3,192, - 124,3,224,124,3,224,124,3,224,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,124,3, - 224,124,3,224,124,3,224,60,3,192,60,3,192,28,3,128, - 14,7,0,6,6,0,3,252,0,20,32,96,24,2,0,1, - 194,0,3,230,0,6,124,0,4,56,0,0,0,0,0,0, - 0,0,0,0,3,252,0,6,6,0,14,7,0,28,3,128, - 60,3,192,60,3,192,124,3,224,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,124,3,224,124,3,224,124,3,224,60,3,192, - 60,3,192,28,3,128,14,7,0,6,6,0,3,252,0,20, - 32,96,24,2,0,7,14,0,7,143,0,7,143,0,7,14, - 0,0,0,0,0,0,0,0,0,0,3,252,0,6,6,0, - 14,7,0,28,3,128,60,3,192,60,3,192,124,3,224,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,124,3,224,124,3,224, - 124,3,224,60,3,192,60,3,192,28,3,128,14,7,0,6, - 6,0,3,252,0,22,23,69,32,5,254,64,0,8,224,0, - 28,240,0,60,120,0,120,56,0,240,28,0,224,14,1,192, - 7,3,128,3,135,0,1,206,0,0,252,0,0,120,0,0, - 120,0,0,252,0,1,206,0,3,135,0,7,3,128,14,1, - 192,28,0,224,56,0,112,112,0,56,224,0,28,64,0,8, - 20,25,75,24,2,1,3,252,48,6,6,96,14,3,192,28, - 3,128,60,3,192,60,3,192,124,3,224,124,7,224,124,15, - 224,252,11,240,252,19,240,252,35,240,252,99,240,252,67,240, - 252,131,240,253,3,240,127,3,224,126,3,224,124,3,224,60, - 3,192,60,3,192,28,3,128,60,7,0,102,6,0,195,252, - 0,23,33,99,26,2,1,1,192,0,1,224,0,0,224,0, - 0,112,0,0,56,0,0,8,0,0,0,0,0,0,0,255, - 225,254,31,0,120,31,0,48,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,15,0,32,15,0, - 32,7,128,64,3,192,192,1,255,0,23,33,99,26,2,1, - 0,3,128,0,3,128,0,7,128,0,14,0,0,12,0,0, - 24,0,0,0,0,0,0,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,23,33,99,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,227,0,1,128,192,0,0,0,0,0, - 0,255,225,254,31,0,120,31,0,48,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,15,0,48, - 15,128,32,7,128,64,3,192,192,1,255,0,23,32,96,26, - 2,0,1,195,128,1,227,192,1,227,192,1,195,128,0,0, - 0,0,0,0,0,0,0,255,225,254,31,0,120,31,0,48, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,15,0,32,15,0,32,7,128,64,3,192,192,1, - 255,0,23,33,99,26,2,0,0,1,128,0,3,128,0,7, - 128,0,7,0,0,12,0,0,8,0,0,0,0,0,0,0, - 255,225,254,31,128,112,31,128,96,15,128,96,15,192,64,7, - 192,192,7,224,192,7,224,128,3,225,128,3,241,0,1,241, - 0,1,251,0,0,250,0,0,254,0,0,252,0,0,124,0, - 0,124,0,0,124,0,0,124,0,0,124,0,0,124,0,0, - 124,0,0,124,0,0,124,0,3,255,128,20,25,75,24,2, - 0,255,240,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,254,0,31,7,128,31,3,192,31,1,224,31,1,240,31, - 1,240,31,1,240,31,1,240,31,1,240,31,1,224,31,3, - 192,31,7,128,31,254,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,255,240,0,16,25,50,19, - 1,0,3,224,6,120,14,60,30,60,28,60,60,60,60,60, - 60,56,60,112,61,192,60,48,60,28,60,30,60,30,60,15, - 60,15,60,15,60,15,60,15,60,15,61,207,63,222,63,158, - 61,156,252,248,15,25,50,18,2,0,48,0,56,0,60,0, - 28,0,14,0,2,0,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,48,240,3,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,25,50,18, - 2,0,0,224,0,224,1,224,1,192,3,0,6,0,4,0, - 0,0,15,128,49,224,96,240,112,240,120,240,120,240,32,240, - 7,240,28,240,56,240,120,240,240,240,240,242,240,242,240,242, - 121,252,62,120,15,25,50,18,2,0,7,0,7,0,15,0, - 13,128,24,192,112,96,0,0,0,0,15,128,49,224,96,240, - 112,240,120,240,120,240,32,240,7,240,28,240,56,240,120,240, - 240,240,240,242,240,242,240,242,121,252,62,120,15,24,48,18, - 2,0,28,32,63,32,103,224,65,192,0,0,0,0,0,0, - 15,128,49,224,96,240,112,240,120,240,120,240,48,240,7,240, - 28,240,56,240,120,240,240,240,240,242,240,242,240,242,121,252, - 62,120,15,24,48,18,2,0,112,224,120,240,120,240,112,224, - 0,0,0,0,0,0,15,128,49,224,96,240,112,240,120,240, - 120,240,32,240,7,240,28,240,56,240,120,240,240,240,240,242, - 240,242,240,242,121,252,62,120,15,25,50,18,2,1,15,128, - 25,192,16,192,16,192,24,192,15,128,7,0,0,0,15,128, - 49,224,96,240,112,240,120,240,120,240,32,240,7,240,24,240, - 56,240,112,240,240,240,240,242,240,242,240,242,121,252,62,120, - 21,17,51,25,2,0,31,143,128,49,248,224,96,248,240,112, - 248,112,120,248,120,120,240,120,48,240,120,3,240,120,28,255, - 248,56,240,0,120,240,0,240,240,8,240,248,8,240,248,8, - 240,248,16,121,188,48,62,15,192,13,24,48,16,2,249,7, - 128,28,96,56,32,120,112,120,240,248,240,240,224,240,64,240, - 0,240,0,240,0,240,8,120,16,120,16,56,16,28,32,15, - 192,2,0,4,0,3,128,1,192,1,192,17,192,15,128,13, - 25,50,17,2,0,48,0,56,0,60,0,28,0,6,0,3, - 0,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,25,50,17,2,0,0,96,0, - 224,1,224,1,192,3,128,6,0,0,0,0,0,7,128,24, - 224,56,240,120,240,120,240,240,120,240,120,240,120,255,248,240, - 0,240,0,240,8,120,8,120,24,56,16,28,32,7,192,13, - 25,50,17,2,0,7,0,7,0,15,128,13,128,24,192,48, - 112,0,0,0,0,7,128,24,224,56,240,120,240,120,240,240, - 120,240,120,240,120,255,248,240,0,240,0,240,8,120,8,120, - 24,56,16,28,32,7,192,13,24,48,17,2,0,56,224,120, - 240,120,240,56,224,0,0,0,0,0,0,7,128,24,224,56, - 240,120,240,120,240,240,120,240,120,240,120,255,248,240,0,240, - 0,240,8,120,8,120,24,56,16,28,32,7,192,8,25,25, - 10,1,0,192,224,240,112,24,12,0,0,252,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,255,8,25,25,10, - 1,0,3,7,7,14,28,16,0,0,252,60,60,60,60,60, - 60,60,60,60,60,60,60,60,60,60,255,10,25,50,10,0, - 0,28,0,30,0,30,0,55,0,97,128,192,192,0,0,0, - 0,126,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,127,128,10,24,48,11,1,0,115,128,243,192,243,192,115, - 128,0,0,0,0,0,0,126,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,127,128,14,25,50,18,2,0,30, - 48,15,96,15,128,7,128,15,192,49,224,1,224,0,240,15, - 248,28,248,56,120,120,120,120,124,240,124,240,60,240,60,240, - 60,240,60,240,60,240,124,120,120,120,120,56,112,28,224,7, - 192,17,23,69,19,1,1,7,136,0,15,248,0,16,240,0, - 0,0,0,0,0,0,0,0,0,252,120,0,61,188,0,61, - 28,0,62,30,0,62,30,0,62,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,255,127,128,14,25,50,18, - 2,0,24,0,60,0,28,0,14,0,7,0,3,0,0,0, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,25,50,18,2,0,0,96,0,240,0,224, - 1,192,3,128,3,0,0,0,0,0,7,128,28,224,56,112, - 120,120,120,120,240,60,240,60,240,60,240,60,240,60,240,60, - 240,60,120,120,120,120,56,112,24,224,7,128,14,25,50,18, - 2,0,3,0,7,128,7,128,15,192,28,224,48,48,32,16, - 0,0,7,128,28,224,56,112,120,120,120,120,240,60,240,60, - 240,60,240,60,240,60,240,60,240,60,120,120,120,120,56,112, - 24,224,7,128,14,24,48,18,2,0,14,16,31,144,39,224, - 33,224,0,0,0,0,0,0,7,128,28,224,56,112,120,120, - 120,120,240,60,240,60,240,60,240,60,240,60,240,60,240,60, - 120,120,120,120,56,112,24,224,7,128,14,24,48,18,2,0, - 56,112,60,240,60,240,56,112,0,0,0,0,0,0,7,128, - 28,224,56,112,120,120,120,120,240,60,240,60,240,60,240,60, - 240,60,240,60,240,60,120,120,120,120,56,112,24,224,7,128, - 29,23,92,31,1,254,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,7,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,248,255,255,255,248,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7, - 0,0,0,15,128,0,0,15,128,0,0,15,128,0,0,7, - 0,0,14,17,34,18,2,0,7,132,24,232,56,120,120,120, - 120,120,240,124,240,188,241,188,243,60,246,60,244,60,248,60, - 120,120,120,120,120,112,92,96,135,128,17,25,75,19,1,0, - 12,0,0,30,0,0,14,0,0,7,0,0,3,0,0,0, - 128,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,25,75,19,1, - 0,0,48,0,0,112,0,0,112,0,0,224,0,1,192,0, - 1,0,0,0,0,0,0,0,0,252,126,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,62,0,60,62,0, - 60,62,0,60,94,0,30,158,0,15,31,128,17,25,75,19, - 1,0,1,128,0,3,192,0,3,192,0,7,224,0,12,48, - 0,24,24,0,0,0,0,0,0,0,252,126,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,62,0,60,62, - 0,60,62,0,60,94,0,30,158,0,15,31,128,17,24,72, - 19,1,0,28,112,0,30,120,0,30,120,0,28,112,0,0, - 0,0,0,0,0,0,0,0,252,126,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,62,0,60,62,0,60, - 62,0,60,94,0,30,158,0,15,31,128,17,33,99,18,0, - 248,0,28,0,0,28,0,0,60,0,0,112,0,0,96,0, - 0,192,0,0,0,0,0,0,0,255,159,128,62,6,0,30, - 4,0,31,4,0,15,4,0,15,8,0,15,136,0,7,136, - 0,7,152,0,3,208,0,3,208,0,3,240,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 64,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,15,32,64,18,1,247,12,0,28,0,124,0, - 188,0,60,0,60,0,60,0,60,120,60,252,61,30,63,30, - 62,30,62,30,62,30,60,30,60,28,60,28,60,56,60,56, - 60,48,60,96,60,192,61,0,62,0,60,0,60,0,60,0, - 60,0,60,0,60,0,48,0,192,0,17,32,96,18,0,248, - 14,28,0,15,60,0,15,60,0,14,28,0,0,0,0,0, - 0,0,0,0,0,255,159,128,62,6,0,30,4,0,30,4, - 0,15,8,0,15,8,0,15,8,0,7,136,0,7,144,0, - 3,208,0,3,208,0,3,224,0,1,224,0,1,224,0,0, - 224,0,0,192,0,0,192,0,0,64,0,0,128,0,28,128, - 0,60,128,0,61,0,0,57,0,0,59,0,0,30,0,0 - }; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=29 h=33 x= 4 y=11 dx=31 dy= 0 ascent=26 len=120 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26n[903] U8G_FONT_SECTION("u8g_font_osb26n") = { - 0,95,44,227,246,25,0,0,0,0,42,58,0,26,249,25, - 0,12,14,28,17,3,11,14,0,14,0,14,0,196,112,228, - 240,245,224,14,0,14,0,245,224,228,240,196,112,14,0,14, - 0,14,0,29,30,120,31,1,251,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,255,255,255,248,255,255,255,248,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,0,3,0,0,0,3,0,0,0,3,0,0,0,3,0, - 0,7,11,11,10,2,249,120,252,254,254,126,6,4,12,8, - 48,224,9,4,8,13,2,7,255,128,255,128,255,128,255,128, - 5,5,5,9,2,0,112,248,248,248,112,12,33,66,15,2, - 249,0,112,0,96,0,96,0,224,0,192,0,192,1,192,1, - 192,1,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,56, - 0,56,0,48,0,48,0,112,0,96,0,96,0,224,0,192, - 0,192,0,16,25,50,20,2,1,7,224,14,112,28,56,60, - 60,60,60,124,62,124,62,124,62,252,63,252,63,252,63,252, - 63,252,63,252,63,252,63,252,63,252,63,124,62,124,62,124, - 62,60,60,60,60,28,56,14,112,7,224,12,25,50,20,4, - 0,7,0,7,0,31,0,255,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,255,240,15,25,50,20,2,1,31,240,48,120,96,60,96, - 62,224,62,240,62,248,62,252,62,124,124,56,124,0,248,1, - 240,1,224,3,128,7,0,12,2,24,2,48,2,32,2,76, - 6,127,254,127,252,71,252,67,252,65,248,15,26,52,20,2, - 0,1,0,14,240,56,120,48,60,112,62,120,62,124,62,124, - 62,60,62,24,60,0,120,0,112,31,192,0,240,0,120,0, - 60,0,60,56,62,124,62,252,62,252,62,248,62,224,60,96, - 124,96,120,31,224,16,25,50,20,2,0,0,120,0,120,0, - 248,1,248,1,248,3,248,3,248,6,248,6,248,12,248,12, - 248,24,248,56,248,48,248,96,248,96,248,192,248,255,255,0, - 248,0,248,0,248,0,248,0,248,0,248,15,255,15,26,52, - 20,3,0,0,8,48,56,63,240,63,224,63,128,62,0,32, - 0,32,0,32,0,32,0,39,192,56,112,48,120,32,60,32, - 60,0,62,0,62,56,62,120,62,252,62,248,62,248,60,224, - 60,96,120,112,112,31,224,16,25,50,20,2,1,7,240,12, - 8,28,12,56,60,56,124,120,124,120,120,120,48,248,0,248, - 0,251,224,252,56,252,60,248,30,248,31,248,31,248,31,248, - 31,120,31,120,31,120,31,56,30,28,30,12,60,7,240,15, - 25,50,20,3,0,79,28,95,156,127,198,127,230,127,254,224, - 246,192,4,192,12,128,12,128,24,0,16,0,48,0,96,0, - 224,1,192,1,192,3,192,7,128,7,128,15,128,15,128,15, - 128,15,128,15,128,7,0,17,25,75,20,2,1,7,240,0, - 24,12,0,48,12,0,48,6,0,112,6,0,112,6,0,120, - 6,0,124,4,0,127,12,0,127,152,0,63,224,0,31,248, - 0,15,252,0,15,254,0,49,255,0,96,127,0,64,31,0, - 192,15,128,192,7,0,192,7,0,192,3,0,96,6,0,96, - 6,0,56,12,0,14,240,0,15,25,50,20,2,1,31,192, - 60,112,120,48,120,56,248,60,248,60,248,60,248,62,248,62, - 248,62,248,62,120,62,124,126,60,126,15,190,0,62,0,62, - 12,60,30,60,62,60,62,56,60,56,48,112,16,96,15,192, - 5,17,17,9,2,0,112,248,248,248,112,0,0,0,0,0, - 0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--34-340-72-72-P-184-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=34 h=33 x= 4 y=18 dx=36 dy= 0 ascent=28 len=125 - Font Bounding box w=95 h=44 x=-29 y=-10 - Calculated Min Values x=-2 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =26 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb26r[5950] U8G_FONT_SECTION("u8g_font_osb26r") = { - 0,95,44,227,246,26,7,105,16,163,32,127,248,28,248,26, - 248,0,0,0,10,0,0,6,25,25,10,2,1,120,252,252, - 252,252,252,120,120,120,120,48,48,48,48,48,48,48,0,0, - 0,120,252,252,252,120,8,8,8,12,2,18,231,231,231,231, - 231,231,66,66,20,25,75,24,2,0,3,131,0,3,131,0, - 3,3,0,3,3,0,3,3,0,3,7,0,3,7,0,255, - 255,240,255,255,240,6,6,0,6,6,0,6,6,0,6,14, - 0,6,14,0,14,12,0,12,12,0,12,12,0,255,255,224, - 255,255,224,12,28,0,12,24,0,28,24,0,24,24,0,24, - 24,0,24,24,0,16,31,62,20,2,253,2,32,2,32,2, - 32,15,248,26,38,50,34,114,35,114,35,114,47,122,47,126, - 46,126,46,63,160,63,224,31,240,15,248,7,252,3,254,2, - 126,114,63,250,47,250,47,242,39,226,39,194,38,98,38,50, - 44,30,56,3,224,2,32,2,32,23,26,78,29,3,0,8, - 0,48,54,0,32,99,0,96,99,0,192,227,128,192,227,129, - 128,227,129,0,227,131,0,227,130,0,227,134,0,99,12,0, - 54,8,0,28,24,0,0,16,112,0,48,216,0,97,140,0, - 97,140,0,195,142,0,131,142,1,131,142,1,3,142,3,3, - 142,6,3,142,4,1,140,12,1,140,8,0,248,24,25,75, - 26,1,1,1,252,0,3,4,0,3,2,0,7,2,0,7, - 2,0,7,6,0,7,132,0,7,200,0,3,240,0,3,224, - 0,1,240,0,3,240,127,6,248,28,12,124,8,24,60,24, - 56,62,16,112,31,16,240,15,32,240,15,224,248,7,192,248, - 3,192,252,3,225,126,7,242,127,253,254,31,240,124,3,8, - 8,7,2,18,224,224,224,224,224,224,64,64,10,31,62,12, - 2,250,0,192,1,0,2,0,6,0,12,0,24,0,56,0, - 56,0,120,0,112,0,112,0,240,0,240,0,240,0,240,0, - 240,0,240,0,240,0,240,0,240,0,112,0,112,0,112,0, - 56,0,56,0,24,0,28,0,12,0,6,0,3,0,1,128, - 9,32,64,12,1,250,192,0,96,0,48,0,24,0,28,0, - 12,0,14,0,6,0,7,0,7,0,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,0,7,0,7,0,14,0,14,0,12,0,24,0,48,0, - 96,0,192,0,128,0,12,14,28,17,3,11,14,0,14,0, - 14,0,196,112,228,240,245,224,14,0,14,0,245,224,228,240, - 196,112,14,0,14,0,14,0,29,30,120,31,1,251,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,255,255,255,248,255,255,255,248,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,7,11,11,10,2,249,120,252,254,254, - 126,6,4,12,8,48,224,9,4,8,13,2,7,255,128,255, - 128,255,128,255,128,5,5,5,9,2,0,112,248,248,248,112, - 12,33,66,15,2,249,0,112,0,96,0,96,0,224,0,192, - 0,192,1,192,1,192,1,128,1,128,3,128,3,0,3,0, - 7,0,6,0,6,0,6,0,14,0,12,0,12,0,28,0, - 24,0,24,0,56,0,56,0,48,0,48,0,112,0,96,0, - 96,0,224,0,192,0,192,0,16,25,50,20,2,1,7,224, - 14,112,28,56,60,60,60,60,124,62,124,62,124,62,252,63, - 252,63,252,63,252,63,252,63,252,63,252,63,252,63,252,63, - 124,62,124,62,124,62,60,60,60,60,28,56,14,112,7,224, - 12,25,50,20,4,0,7,0,7,0,31,0,255,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,240,15,25,50,20,2,1,31,240, - 48,120,96,60,96,62,224,62,240,62,248,62,252,62,124,124, - 56,124,0,248,1,240,1,224,3,128,7,0,12,2,24,2, - 48,2,32,2,76,6,127,254,127,252,71,252,67,252,65,248, - 15,26,52,20,2,0,1,0,14,240,56,120,48,60,112,62, - 120,62,124,62,124,62,60,62,24,60,0,120,0,112,31,192, - 0,240,0,120,0,60,0,60,56,62,124,62,252,62,252,62, - 248,62,224,60,96,124,96,120,31,224,16,25,50,20,2,0, - 0,120,0,120,0,248,1,248,1,248,3,248,3,248,6,248, - 6,248,12,248,12,248,24,248,56,248,48,248,96,248,96,248, - 192,248,255,255,0,248,0,248,0,248,0,248,0,248,0,248, - 15,255,15,26,52,20,3,0,0,8,48,56,63,240,63,224, - 63,128,62,0,32,0,32,0,32,0,32,0,39,192,56,112, - 48,120,32,60,32,60,0,62,0,62,56,62,120,62,252,62, - 248,62,248,60,224,60,96,120,112,112,31,224,16,25,50,20, - 2,1,7,240,12,8,28,12,56,60,56,124,120,124,120,120, - 120,48,248,0,248,0,251,224,252,56,252,60,248,30,248,31, - 248,31,248,31,248,31,120,31,120,31,120,31,56,30,28,30, - 12,60,7,240,15,25,50,20,3,0,79,28,95,156,127,198, - 127,230,127,254,224,246,192,4,192,12,128,12,128,24,0,16, - 0,48,0,96,0,224,1,192,1,192,3,192,7,128,7,128, - 15,128,15,128,15,128,15,128,15,128,7,0,17,25,75,20, - 2,1,7,240,0,24,12,0,48,12,0,48,6,0,112,6, - 0,112,6,0,120,6,0,124,4,0,127,12,0,127,152,0, - 63,224,0,31,248,0,15,252,0,15,254,0,49,255,0,96, - 127,0,64,31,0,192,15,128,192,7,0,192,7,0,192,3, - 0,96,6,0,96,6,0,56,12,0,14,240,0,15,25,50, - 20,2,1,31,192,60,112,120,48,120,56,248,60,248,60,248, - 60,248,62,248,62,248,62,248,62,120,62,124,126,60,126,15, - 190,0,62,0,62,12,60,30,60,62,60,62,56,60,56,48, - 112,16,96,15,192,5,17,17,9,2,0,112,248,248,248,112, - 0,0,0,0,0,0,0,112,248,248,248,112,6,23,23,9, - 2,249,112,248,248,248,112,0,0,0,0,0,0,0,112,248, - 252,252,252,12,12,8,16,48,192,26,29,116,32,3,251,0, - 0,1,192,0,0,3,192,0,0,15,0,0,0,62,0,0, - 0,248,0,0,1,224,0,0,7,128,0,0,31,0,0,0, - 124,0,0,0,240,0,0,3,192,0,0,15,128,0,0,62, - 0,0,0,120,0,0,0,224,0,0,0,120,0,0,0,62, - 0,0,0,15,128,0,0,3,192,0,0,0,240,0,0,0, - 124,0,0,0,31,0,0,0,7,128,0,0,1,224,0,0, - 0,248,0,0,0,62,0,0,0,15,0,0,0,3,192,0, - 0,1,192,29,9,36,33,2,5,255,255,255,248,255,255,255, - 248,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,248,255,255,255,248,26,29,116, - 32,3,251,224,0,0,0,240,0,0,0,60,0,0,0,31, - 0,0,0,7,192,0,0,1,224,0,0,0,120,0,0,0, - 62,0,0,0,15,128,0,0,3,192,0,0,0,240,0,0, - 0,124,0,0,0,31,0,0,0,7,128,0,0,1,192,0, - 0,7,128,0,0,31,0,0,0,124,0,0,0,240,0,0, - 3,192,0,0,15,128,0,0,62,0,0,0,120,0,0,1, - 224,0,0,7,192,0,0,31,0,0,0,60,0,0,0,240, - 0,0,0,224,0,0,0,11,25,50,16,2,1,63,128,67, - 192,129,224,129,224,129,224,131,224,195,192,67,192,3,128,7, - 0,6,0,12,0,8,0,24,0,17,0,17,0,17,0,14, - 0,0,0,0,0,14,0,31,0,31,0,31,0,14,0,25, - 25,100,27,1,1,0,255,192,0,3,0,48,0,6,0,24, - 0,12,0,12,0,24,0,6,0,48,30,243,0,48,114,243, - 0,96,225,227,0,97,225,225,128,227,193,225,128,195,193,225, - 128,195,193,193,128,199,131,193,128,199,131,193,128,199,131,195, - 0,199,131,195,0,231,135,130,0,103,135,134,0,99,139,204, - 0,49,240,240,0,48,0,0,0,24,0,0,0,12,0,0, - 0,7,0,96,0,1,255,192,0,23,26,78,25,1,0,0, - 16,0,0,24,0,0,56,0,0,56,0,0,60,0,0,124, - 0,0,124,0,0,126,0,0,254,0,0,254,0,0,158,0, - 1,159,0,1,159,0,1,31,0,3,15,128,3,15,128,3, - 15,128,6,7,192,7,255,192,6,7,192,4,7,224,12,3, - 224,12,3,224,28,3,240,28,3,240,255,159,254,20,25,75, - 24,2,0,255,254,0,31,7,128,31,7,192,31,3,192,31, - 3,224,31,3,224,31,3,224,31,3,224,31,3,192,31,7, - 128,31,7,0,31,248,0,31,7,0,31,3,192,31,1,224, - 31,1,224,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,240,31,1,224,31,3,192,31,7,128,255,254,0,19,25, - 75,22,2,1,3,248,64,14,6,192,30,3,192,60,3,192, - 60,1,192,124,1,192,124,0,192,124,0,192,252,0,192,252, - 0,64,252,0,64,252,0,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,96,124,0,64,124,0,64,124,0,64, - 60,0,192,30,0,128,30,1,0,15,3,0,3,252,0,23, - 25,75,27,2,0,255,255,0,31,3,192,31,0,224,31,0, - 240,31,0,120,31,0,120,31,0,124,31,0,124,31,0,126, - 31,0,126,31,0,126,31,0,126,31,0,126,31,0,126,31, - 0,126,31,0,126,31,0,124,31,0,124,31,0,124,31,0, - 120,31,0,120,31,0,240,31,0,224,31,3,192,255,255,0, - 20,25,75,23,2,0,255,255,224,31,1,224,31,0,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,4,32,31,4, - 0,31,12,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,12,48,31,4,48,31,4,48,31,0,48,31, - 0,112,31,0,112,31,0,240,31,1,240,31,3,240,255,255, - 240,20,25,75,23,2,0,255,255,240,31,3,240,31,0,240, - 31,0,240,31,0,112,31,0,112,31,0,48,31,4,48,31, - 4,48,31,12,48,31,12,0,31,28,0,31,252,0,31,28, - 0,31,12,0,31,12,0,31,4,0,31,4,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,255, - 240,0,21,26,78,24,2,0,0,32,0,3,220,32,7,3, - 96,14,1,224,28,1,224,60,0,224,60,0,224,124,0,96, - 124,0,96,252,0,32,252,0,32,252,0,0,252,0,0,252, - 63,248,252,3,224,252,3,224,252,3,224,252,3,224,124,3, - 224,124,3,224,124,3,224,60,3,224,60,3,96,30,6,96, - 14,12,96,3,184,32,25,25,100,28,2,0,255,231,255,128, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,255,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,31,0,248,0, - 31,0,248,0,31,0,248,0,31,0,248,0,255,231,255,128, - 11,25,50,14,2,0,255,224,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,255,224,16,25,50,18,1,0,7,255, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,120,248, - 248,248,248,248,248,248,240,248,224,240,64,240,97,224,63,192, - 24,25,75,27,2,0,255,227,252,31,0,224,31,0,192,31, - 0,128,31,1,128,31,3,0,31,6,0,31,12,0,31,28, - 0,31,28,0,31,62,0,31,126,0,31,255,0,31,191,0, - 31,31,128,31,31,128,31,15,192,31,15,192,31,7,224,31, - 7,224,31,3,240,31,1,240,31,1,248,31,1,252,255,231, - 255,20,25,75,23,2,0,255,224,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,48,31,0,48,31,0,48,31,0,48,31,0,112, - 31,0,112,31,0,240,31,0,240,31,1,240,31,3,240,255, - 255,240,27,25,100,30,2,0,255,0,63,224,15,0,63,0, - 15,128,63,0,15,128,63,0,15,128,127,0,15,192,95,0, - 15,192,95,0,11,224,95,0,11,224,223,0,11,224,159,0, - 9,240,159,0,9,240,159,0,9,241,31,0,8,249,31,0, - 8,249,31,0,8,249,31,0,8,126,31,0,8,126,31,0, - 8,62,31,0,8,62,31,0,8,60,31,0,8,28,31,0, - 24,28,31,0,60,28,31,0,255,8,255,224,24,25,75,27, - 2,0,255,3,255,31,128,124,31,128,56,15,192,16,7,224, - 16,7,240,16,7,240,16,5,248,16,5,252,16,4,252,16, - 4,126,16,4,127,16,4,63,16,4,31,144,4,31,208,4, - 15,208,4,7,240,4,7,240,4,3,240,4,1,240,4,1, - 240,4,0,240,14,0,112,31,0,48,255,192,48,20,25,75, - 24,2,1,3,252,0,6,6,0,14,7,0,28,3,128,60, - 3,192,60,3,192,124,3,224,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,124,3,224,60,3,192,60, - 3,192,28,3,128,14,7,0,6,6,0,3,252,0,20,25, - 75,24,2,0,255,254,0,31,3,128,31,3,192,31,1,224, - 31,1,240,31,1,240,31,1,240,31,1,240,31,1,240,31, - 1,224,31,3,192,31,7,128,31,254,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,255,240,0,20, - 33,99,24,2,249,3,252,0,6,6,0,14,7,0,28,3, - 128,60,3,192,60,3,192,124,3,224,124,3,224,124,3,224, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,124,3,240,124,3,224,124,3,224,60,243, - 192,61,155,192,29,11,128,15,15,128,7,15,16,3,156,16, - 0,108,16,0,12,16,0,12,48,0,14,48,0,15,240,0, - 15,224,0,7,224,0,3,128,22,25,75,25,2,0,255,252, - 0,31,7,128,31,7,192,31,3,192,31,3,224,31,3,224, - 31,3,224,31,3,224,31,3,192,31,7,192,31,15,0,31, - 248,0,31,14,0,31,15,0,31,7,128,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,196,31,7,196,31,7,196, - 31,7,196,31,3,200,255,241,248,16,25,50,21,3,1,31, - 198,32,118,96,62,224,30,224,14,240,6,248,6,252,6,255, - 2,127,128,127,192,63,240,15,248,7,252,129,254,128,254,192, - 127,192,31,192,15,224,7,224,7,240,6,248,6,220,12,135, - 120,21,25,75,25,3,0,255,255,248,248,248,248,240,248,120, - 224,248,120,192,248,56,192,248,56,128,248,24,128,248,24,128, - 248,24,128,248,24,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,248,0,0,248,0,0,248,0,15, - 255,0,23,25,75,26,2,0,255,225,254,31,0,120,31,0, - 48,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,16,15,0,32,15,0,32,7,128,64,3,192,192, - 1,255,0,24,25,75,27,2,0,255,241,255,31,128,56,15, - 128,48,15,192,48,15,192,48,7,192,32,7,224,32,7,224, - 96,3,224,64,3,240,64,1,240,192,1,240,128,1,248,128, - 0,249,128,0,249,128,0,253,0,0,125,0,0,127,0,0, - 126,0,0,62,0,0,62,0,0,60,0,0,28,0,0,28, - 0,0,24,0,34,25,125,36,1,0,255,231,255,127,192,31, - 129,248,14,0,15,128,248,14,0,15,128,252,12,0,15,192, - 124,12,0,7,192,124,12,0,7,192,124,8,0,7,224,254, - 24,0,3,224,190,24,0,3,224,190,24,0,3,241,159,16, - 0,1,241,159,48,0,1,241,31,48,0,1,249,15,32,0, - 1,251,15,160,0,0,250,15,224,0,0,254,15,224,0,0, - 254,7,192,0,0,126,7,192,0,0,124,7,192,0,0,124, - 3,192,0,0,60,3,128,0,0,56,3,128,0,0,56,1, - 128,0,0,24,1,128,0,23,25,75,26,2,0,255,231,252, - 31,193,224,15,192,192,15,193,128,7,225,128,7,227,0,3, - 242,0,3,246,0,1,244,0,1,248,0,0,248,0,0,252, - 0,0,124,0,0,62,0,0,126,0,0,127,0,0,159,0, - 1,159,128,1,15,128,3,15,192,6,7,224,4,7,224,12, - 3,240,28,7,240,255,143,254,23,25,75,26,2,0,255,225, - 254,31,128,112,31,128,96,15,128,96,15,192,64,7,192,192, - 7,224,192,7,224,128,3,225,128,3,241,0,1,241,0,1, - 251,0,0,250,0,0,254,0,0,252,0,0,124,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,124,0,0,124,0, - 0,124,0,0,124,0,3,255,128,18,25,75,22,2,0,127, - 255,192,124,15,192,120,31,128,112,31,128,96,63,0,96,63, - 0,64,126,0,64,126,0,64,252,0,0,252,0,1,248,0, - 1,240,0,3,240,0,7,224,0,7,224,0,15,192,64,15, - 192,64,31,128,64,31,128,64,63,0,192,63,1,192,126,1, - 192,126,3,192,252,15,192,255,255,192,8,31,31,14,3,250, - 255,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,240,240,255,11, - 33,66,15,2,249,192,0,192,0,224,0,96,0,96,0,96, - 0,112,0,48,0,48,0,56,0,24,0,24,0,28,0,12, - 0,12,0,12,0,14,0,6,0,6,0,7,0,3,0,3, - 0,3,0,3,128,1,128,1,128,1,192,0,192,0,192,0, - 224,0,96,0,96,0,96,8,31,31,13,2,250,255,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,255,16,12,24,20, - 2,14,1,128,3,128,3,192,7,224,14,96,14,112,28,56, - 24,56,56,28,112,12,96,14,224,7,18,2,6,18,0,250, - 255,255,192,255,255,192,6,7,7,15,3,18,224,224,240,120, - 24,12,4,15,17,34,18,2,0,15,128,49,224,96,240,112, - 240,120,240,120,240,32,240,7,240,28,240,56,240,120,240,240, - 240,240,242,240,242,240,242,121,252,62,120,15,25,50,18,1, - 0,252,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 0,60,240,61,56,62,60,62,28,62,30,62,30,60,30,60, - 30,60,30,60,30,60,30,62,30,62,30,62,28,50,60,35, - 56,33,224,13,17,34,16,2,0,7,128,28,96,56,32,120, - 112,120,240,248,240,240,224,240,64,240,0,240,0,240,0,240, - 8,120,16,120,16,56,16,28,32,7,192,17,25,75,20,2, - 0,1,252,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,15,60,0,28,188,0,56, - 124,0,120,124,0,120,60,0,240,60,0,240,60,0,240,60, - 0,240,60,0,240,60,0,240,60,0,240,60,0,120,60,0, - 120,124,0,56,124,0,28,188,0,15,63,128,13,17,34,17, - 2,0,7,128,24,224,56,240,120,240,120,240,240,120,240,120, - 240,120,255,248,240,0,240,0,240,8,120,8,120,24,56,16, - 28,32,7,192,12,25,50,12,1,0,3,192,14,112,30,112, - 28,240,60,240,60,240,60,0,60,0,255,128,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,255,128,17,25,75,19, - 1,248,7,199,0,28,249,128,60,115,128,120,123,128,120,123, - 0,120,120,0,120,120,0,120,120,0,60,112,0,28,224,0, - 7,192,0,56,0,0,96,0,0,127,192,0,127,248,0,127, - 252,0,63,254,0,63,254,0,64,14,0,128,6,0,128,6, - 0,128,4,0,64,12,0,32,56,0,31,224,0,17,25,75, - 19,1,0,252,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,120,0,61,188, - 0,61,28,0,62,30,0,62,30,0,62,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,255,127,128,8,25, - 25,11,2,0,56,124,124,124,56,0,0,0,252,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,10,33,66, - 10,254,248,3,128,7,192,7,192,7,192,3,128,0,0,0, - 0,0,0,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,99,192,243,192,243,192,243,128,231, - 128,103,0,62,0,17,25,75,19,1,0,252,0,0,60,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,127,0,60,24,0,60,16,0,60,48,0,60, - 32,0,60,64,0,60,192,0,60,224,0,61,224,0,62,240, - 0,62,240,0,60,120,0,60,124,0,60,60,0,60,62,0, - 60,62,0,255,127,128,9,25,50,11,1,0,252,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,255,128,25,17, - 68,28,1,0,252,120,120,0,61,188,158,0,61,31,30,0, - 62,31,30,0,62,30,31,0,62,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,60,30,31,0,60,30,31,0,60,30,31,0, - 60,30,31,0,255,127,191,128,17,17,51,19,1,0,252,120, - 0,61,188,0,61,28,0,62,30,0,62,30,0,62,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,255,127, - 128,14,17,34,18,2,0,7,128,28,224,56,112,120,120,120, - 120,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,56,112,24,224,7,128,15,25,50,18,1,248,252, - 240,61,56,62,60,62,28,62,30,62,30,60,30,60,30,60, - 30,60,30,60,30,62,30,62,30,62,28,62,60,61,56,60, - 240,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 128,16,25,50,19,2,248,15,132,28,196,56,100,120,124,120, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 124,120,124,56,124,28,188,15,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,1,255,12,17,34,14,1,0,252, - 224,61,112,62,240,62,240,62,240,62,96,60,0,60,0,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,255, - 0,11,17,34,14,2,0,60,64,99,64,193,192,192,192,224, - 192,240,64,252,0,127,0,63,128,31,192,135,224,129,224,192, - 224,224,96,224,96,144,192,143,128,11,24,48,13,1,0,12, - 0,12,0,12,0,12,0,12,0,28,0,60,0,255,192,60, - 0,60,0,60,0,60,0,60,0,60,0,60,0,60,0,60, - 32,60,32,60,32,60,32,60,96,60,64,31,192,15,128,17, - 17,51,19,1,0,252,126,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,60,62,0,60,62,0,60, - 94,0,30,158,0,15,31,128,17,17,51,18,0,0,255,159, - 128,30,6,0,30,4,0,30,4,0,15,12,0,15,8,0, - 15,8,0,7,152,0,7,144,0,3,208,0,3,240,0,3, - 224,0,1,224,0,1,192,0,1,192,0,0,192,0,0,128, - 0,25,17,68,26,0,0,255,63,207,128,30,15,6,0,30, - 15,6,0,30,15,4,0,15,7,132,0,15,15,132,0,7, - 143,136,0,7,139,200,0,7,147,200,0,3,211,208,0,3, - 209,240,0,3,225,240,0,1,225,224,0,1,224,224,0,1, - 192,224,0,0,192,192,0,0,192,64,0,16,17,34,18,1, - 0,255,126,62,24,30,16,31,16,15,32,15,192,7,192,3, - 192,3,192,1,224,3,240,2,240,4,248,8,120,8,124,24, - 126,254,127,17,25,75,18,0,248,255,159,128,62,6,0,30, - 4,0,31,4,0,15,8,0,15,8,0,15,136,0,7,136, - 0,7,144,0,3,208,0,3,208,0,3,224,0,1,224,0, - 1,224,0,0,224,0,0,192,0,0,64,0,0,64,0,0, - 128,0,28,128,0,60,128,0,60,128,0,57,0,0,59,0, - 0,30,0,0,13,17,34,16,1,0,127,248,112,248,96,240, - 97,224,67,224,67,192,7,192,7,128,15,128,15,0,31,8, - 30,8,60,24,124,24,120,56,248,120,255,248,11,33,66,15, - 2,249,0,32,3,192,7,0,15,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 56,0,224,0,56,0,28,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,14,0,7,0, - 3,192,0,32,2,32,32,10,4,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,11,33,66,15,3,249, - 128,0,240,0,60,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,15,0,7,0, - 1,224,7,0,15,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,60,0,240,0, - 128,0,19,7,21,23,2,6,62,0,64,127,128,32,255,240, - 32,135,252,32,129,255,224,128,63,192,64,15,128,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 7 y=23 dx=41 dy= 0 ascent=38 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29[15818] U8G_FONT_SECTION("u8g_font_osb29") = { - 0,107,49,223,245,29,9,166,21,115,32,255,247,38,245,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,0,0,0,11,0,0,6, - 29,29,10,2,247,120,252,252,252,252,120,0,0,32,48,48, - 48,48,48,48,48,112,120,120,120,120,252,252,252,252,252,252, - 120,120,14,28,56,22,4,251,1,128,1,128,1,128,1,128, - 3,192,15,176,29,152,61,152,121,184,121,184,249,184,249,184, - 249,128,249,128,249,128,249,128,249,128,249,132,121,132,121,132, - 61,136,29,152,15,176,3,192,1,128,1,128,1,128,1,128, - 23,29,87,27,2,0,0,1,0,0,30,224,0,120,16,0, - 248,24,0,240,28,1,240,60,1,240,124,3,240,124,3,240, - 120,3,240,0,3,240,0,3,240,0,3,240,0,31,240,64, - 1,255,128,1,248,0,0,248,0,0,248,0,0,248,0,0, - 120,0,0,120,0,0,112,0,0,112,6,60,112,4,127,224, - 28,131,255,248,129,255,240,195,63,224,124,31,192,18,20,60, - 21,2,3,0,0,128,195,225,128,239,249,192,255,255,128,120, - 15,0,112,7,0,96,3,0,224,1,128,192,1,128,192,1, - 128,192,1,128,192,1,128,224,1,128,96,3,0,112,7,0, - 120,15,0,255,255,128,239,249,192,195,225,128,0,0,128,21, - 28,84,23,1,0,255,195,248,63,0,224,63,0,192,31,128, - 192,31,128,128,31,192,128,15,193,0,15,193,0,7,227,0, - 7,226,0,7,246,0,3,244,0,3,252,0,1,248,0,63, - 255,192,1,248,0,1,248,0,1,248,0,63,255,192,1,248, - 0,1,248,0,1,248,0,1,248,0,1,248,0,1,248,0, - 1,248,0,1,248,0,15,255,128,3,35,35,11,4,249,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,17,36,108,24,2,248,1,240,0,6,12,0,12,6, - 0,24,7,0,56,31,0,56,63,0,56,63,0,56,62,0, - 60,28,0,63,0,0,63,192,0,31,224,0,63,248,0,103, - 254,0,67,255,0,192,255,0,192,63,128,224,15,128,248,3, - 128,254,1,128,127,129,128,127,225,0,63,249,0,15,254,0, - 3,254,0,0,254,0,0,63,0,14,15,0,31,7,0,63, - 7,0,63,7,0,62,7,0,56,6,0,24,12,0,12,24, - 0,7,240,0,12,5,10,16,2,22,112,224,249,240,249,240, - 249,240,112,224,28,28,112,32,2,1,0,127,224,0,1,128, - 24,0,6,0,12,0,12,0,3,0,24,0,1,0,16,30, - 33,128,48,113,160,192,96,224,224,64,97,224,96,96,97,224, - 96,96,193,224,32,32,195,224,32,48,195,224,32,48,195,224, - 0,48,195,224,0,48,195,224,0,48,195,224,16,48,193,224, - 16,32,65,224,48,96,97,224,32,96,96,240,96,64,48,112, - 192,192,16,31,1,128,24,0,1,0,12,0,3,0,6,0, - 12,0,1,128,24,0,0,127,224,0,11,14,28,15,2,14, - 30,0,35,0,99,128,115,128,115,128,15,128,51,128,99,128, - 227,128,227,160,227,160,125,192,0,0,255,224,10,16,32,18, - 4,1,24,64,48,192,112,128,97,128,225,128,227,128,227,128, - 227,128,227,128,227,128,227,128,97,128,97,128,48,192,24,64, - 8,0,19,11,33,22,2,5,255,255,224,255,255,224,255,255, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,10,4,8,14,2,8,255, - 192,255,192,255,192,255,192,28,28,112,32,2,1,0,127,224, - 0,1,128,24,0,6,0,12,0,12,0,3,0,24,0,1, - 0,19,255,193,128,48,249,224,192,96,248,240,64,96,248,248, - 96,96,248,248,96,192,248,248,32,192,248,240,48,192,249,224, - 48,192,254,0,48,192,249,192,48,192,249,224,48,192,249,240, - 48,192,249,240,32,64,249,242,96,96,249,242,96,96,249,242, - 64,48,249,246,192,19,254,253,128,24,0,121,0,12,0,3, - 0,6,0,12,0,1,128,24,0,0,127,224,0,10,3,6, - 16,3,23,255,192,255,192,255,192,12,11,22,22,5,18,31, - 128,127,224,112,96,224,48,192,48,192,48,192,48,224,112,112, - 224,63,192,31,128,32,29,116,36,2,254,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,255,255,255,255,255,255,255,255,255,255,255,255,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,1,192,0,0, - 1,192,0,0,1,192,0,0,1,192,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,11, - 17,34,17,3,11,31,0,99,192,225,224,225,224,241,224,241, - 224,115,192,7,128,14,0,28,0,48,32,96,32,64,96,255, - 224,255,224,143,192,135,128,12,18,36,16,2,10,31,0,51, - 192,97,224,113,224,121,224,121,224,1,192,3,128,30,0,3, - 192,1,224,1,240,121,240,249,240,241,240,225,224,99,192,31, - 0,7,7,7,17,7,21,14,30,30,60,120,96,192,19,30, - 90,22,2,245,112,28,0,112,28,0,248,62,0,248,62,0, - 248,62,0,248,62,0,248,62,0,240,62,0,240,62,0,240, - 62,0,112,28,0,112,28,0,96,28,32,96,24,32,32,56, - 96,32,127,224,61,255,192,47,231,192,39,195,192,32,0,0, - 32,0,0,112,0,0,112,0,0,120,0,0,120,0,0,124, - 0,0,124,0,0,124,0,0,124,0,0,56,0,0,18,33, - 99,23,3,251,15,255,192,63,206,0,127,206,0,127,206,0, - 255,206,0,255,206,0,255,206,0,255,206,0,255,206,0,255, - 206,0,255,206,0,255,206,0,127,206,0,63,206,0,7,206, - 0,1,206,0,1,206,0,1,206,0,1,206,0,1,206,0, - 1,206,0,1,206,0,1,206,0,1,206,0,1,206,0,1, - 206,0,1,206,0,1,206,0,1,206,0,1,206,0,1,206, - 0,1,206,0,1,206,0,6,6,6,10,2,10,120,252,252, - 252,252,120,7,8,8,17,5,248,32,32,56,12,14,14,14, - 252,8,17,17,16,4,11,12,28,252,60,60,60,60,60,60, - 60,60,60,60,60,60,60,255,10,14,28,14,2,14,30,0, - 51,0,115,128,243,192,243,192,243,192,243,192,243,192,243,192, - 115,128,51,0,30,0,0,0,255,192,10,16,32,18,4,1, - 6,0,131,0,195,0,97,128,97,128,113,192,113,192,113,192, - 113,192,113,192,97,192,97,128,65,128,195,0,134,0,4,0, - 28,29,116,34,4,0,0,0,12,0,12,0,12,0,28,0, - 24,0,252,0,24,0,60,0,48,0,60,0,32,0,60,0, - 96,0,60,0,192,0,60,0,192,0,60,1,128,0,60,1, - 128,0,60,3,0,0,60,2,3,128,60,6,3,128,60,12, - 7,128,60,12,15,128,60,24,15,128,255,24,31,128,0,48, - 23,128,0,32,39,128,0,96,103,128,0,192,71,128,0,192, - 199,128,1,128,255,240,1,128,7,128,3,0,7,128,2,0, - 7,128,6,0,7,128,12,0,63,240,27,29,116,34,4,0, - 0,0,12,0,12,0,24,0,28,0,24,0,252,0,48,0, - 60,0,48,0,60,0,96,0,60,0,96,0,60,0,192,0, - 60,1,128,0,60,1,128,0,60,3,0,0,60,3,31,0, - 60,6,115,192,60,6,225,224,60,12,225,224,60,8,241,224, - 255,24,241,224,0,48,115,192,0,48,3,128,0,96,7,0, - 0,96,14,0,0,192,24,0,0,128,48,32,1,128,64,32, - 3,0,64,96,3,0,191,224,6,0,255,224,6,0,159,192, - 12,0,135,128,30,29,116,34,2,0,0,0,3,0,31,0, - 3,0,51,192,6,0,97,224,4,0,113,224,12,0,121,224, - 8,0,121,224,24,0,1,192,48,0,3,128,48,0,30,0, - 96,0,3,192,64,0,1,224,192,0,49,240,128,224,249,241, - 128,224,249,243,1,224,225,226,3,224,99,230,3,224,63,132, - 5,224,0,12,5,224,0,8,9,224,0,16,25,224,0,48, - 17,224,0,32,49,224,0,96,63,252,0,64,1,224,0,192, - 1,224,0,128,1,224,1,0,1,224,3,0,15,252,12,29, - 58,18,3,247,30,0,63,0,63,0,63,0,63,0,30,0, - 0,0,14,0,17,0,32,128,32,128,32,128,1,128,3,0, - 3,0,6,0,14,0,28,0,60,96,120,32,120,48,248,16, - 248,16,248,16,248,16,248,48,124,96,63,192,31,128,26,37, - 148,29,2,0,0,224,0,0,0,240,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,12,0,0,0,6,0,0, - 0,0,0,0,0,4,0,0,0,6,0,0,0,14,0,0, - 0,14,0,0,0,15,0,0,0,31,0,0,0,31,0,0, - 0,31,128,0,0,63,128,0,0,47,128,0,0,47,192,0, - 0,111,192,0,0,79,192,0,0,71,192,0,0,199,224,0, - 0,135,224,0,0,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,252,0,12,0,124,0, - 30,0,254,0,255,199,255,192,26,37,148,29,2,0,0,0, - 224,0,0,0,224,0,0,1,224,0,0,3,192,0,0,3, - 128,0,0,6,0,0,0,12,0,0,0,0,0,0,0,4, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,31, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,37,148,29,2,0,0,4,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,59,128,0,0,224,192,0, - 1,128,48,0,0,0,0,0,0,4,0,0,0,6,0,0, - 0,14,0,0,0,14,0,0,0,15,0,0,0,31,0,0, - 0,31,0,0,0,31,128,0,0,63,128,0,0,47,128,0, - 0,47,192,0,0,111,192,0,0,79,192,0,0,71,192,0, - 0,199,224,0,0,135,224,0,0,131,224,0,1,131,240,0, - 1,3,240,0,3,1,240,0,3,255,248,0,2,1,248,0, - 6,0,248,0,6,0,252,0,4,0,252,0,12,0,252,0, - 12,0,124,0,30,0,254,0,255,199,255,192,26,36,144,29, - 2,0,0,56,32,0,0,126,32,0,0,255,224,0,0,143, - 192,0,0,131,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,63,128,0,0,63, - 128,0,0,47,128,0,0,111,192,0,0,111,192,0,0,79, - 192,0,0,199,192,0,0,199,224,0,0,135,224,0,1,131, - 224,0,1,131,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,6,0,252,0,4,0, - 252,0,12,0,252,0,12,0,126,0,62,0,255,0,255,199, - 255,192,26,36,144,29,2,0,0,224,224,0,1,241,240,0, - 1,241,240,0,1,241,240,0,0,224,224,0,0,0,0,0, - 0,0,0,0,0,4,0,0,0,14,0,0,0,14,0,0, - 0,14,0,0,0,31,0,0,0,31,0,0,0,31,0,0, - 0,63,128,0,0,63,128,0,0,63,128,0,0,111,192,0, - 0,111,192,0,0,79,192,0,0,199,192,0,0,199,224,0, - 0,135,224,0,1,131,224,0,1,131,240,0,1,3,240,0, - 3,1,240,0,3,255,248,0,2,1,248,0,6,0,248,0, - 6,0,252,0,4,0,252,0,12,0,124,0,12,0,124,0, - 30,0,126,0,255,199,255,192,26,37,148,29,2,0,0,31, - 0,0,0,63,128,0,0,97,192,0,0,96,192,0,0,96, - 192,0,0,113,192,0,0,63,128,0,0,30,0,0,0,0, - 0,0,0,6,0,0,0,14,0,0,0,14,0,0,0,15, - 0,0,0,31,0,0,0,31,0,0,0,31,128,0,0,63, - 128,0,0,63,128,0,0,47,128,0,0,111,192,0,0,79, - 192,0,0,71,192,0,0,135,224,0,0,135,224,0,0,131, - 224,0,1,3,240,0,1,3,240,0,3,1,240,0,3,255, - 248,0,2,1,248,0,6,0,248,0,4,0,252,0,4,0, - 252,0,12,0,252,0,12,0,124,0,28,0,254,0,255,199, - 255,192,36,28,140,38,1,0,0,7,255,255,224,0,1,254, - 3,224,0,1,254,1,224,0,1,254,0,224,0,1,254,0, - 224,0,3,126,0,96,0,3,126,0,96,0,6,126,0,32, - 0,6,126,4,32,0,12,126,4,0,0,12,126,12,0,0, - 24,126,12,0,0,24,126,28,0,0,48,127,252,0,0,48, - 126,60,0,0,96,126,28,0,0,96,126,12,0,0,192,126, - 4,48,0,192,126,4,48,1,255,254,4,48,1,128,126,0, - 48,3,0,126,0,112,3,0,126,0,112,6,0,126,0,240, - 6,0,126,0,240,14,0,126,1,240,63,0,126,7,240,255, - 199,255,255,240,21,37,111,26,3,248,1,254,48,7,3,48, - 14,1,240,30,0,240,60,0,240,60,0,112,124,0,112,124, - 0,48,124,0,48,252,0,48,252,0,48,252,0,16,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,24, - 252,0,24,124,0,16,124,0,16,124,0,16,60,0,48,60, - 0,32,30,0,96,14,0,192,7,1,128,1,254,0,0,32, - 0,0,96,0,0,120,0,0,28,0,0,14,0,0,14,0, - 0,14,0,2,28,0,1,248,0,22,37,111,26,2,0,1, - 128,0,1,192,0,1,224,0,0,224,0,0,112,0,0,24, - 0,0,8,0,0,0,0,0,0,0,255,255,252,15,192,124, - 15,192,60,15,192,28,15,192,28,15,192,12,15,192,12,15, - 192,12,15,193,4,15,193,0,15,195,0,15,195,0,15,199, - 0,15,255,0,15,199,0,15,195,0,15,195,0,15,193,4, - 15,193,4,15,193,4,15,192,12,15,192,12,15,192,12,15, - 192,28,15,192,28,15,192,60,15,192,252,255,255,252,22,37, - 111,26,2,0,0,1,192,0,3,192,0,3,192,0,7,128, - 0,14,0,0,12,0,0,24,0,0,0,0,0,0,0,255, - 255,252,15,192,124,15,192,60,15,192,28,15,192,28,15,192, - 12,15,192,12,15,192,4,15,193,4,15,193,0,15,195,0, - 15,195,0,15,199,0,15,255,0,15,199,0,15,195,0,15, - 195,0,15,193,4,15,193,4,15,193,4,15,192,4,15,192, - 12,15,192,12,15,192,28,15,192,28,15,192,60,15,192,252, - 255,255,252,22,37,111,26,2,0,0,8,0,0,24,0,0, - 60,0,0,126,0,0,231,0,1,193,128,3,0,64,0,0, - 0,0,0,0,255,255,252,15,192,124,15,192,60,15,192,28, - 15,192,28,15,192,12,15,192,12,15,192,12,15,193,4,15, - 193,0,15,195,0,15,195,0,15,199,0,15,255,0,15,199, - 0,15,195,0,15,195,0,15,193,4,15,193,4,15,193,4, - 15,192,12,15,192,12,15,192,12,15,192,28,15,192,28,15, - 192,60,15,192,252,255,255,252,22,36,108,26,2,0,1,193, - 192,3,227,224,3,227,224,3,227,224,1,193,192,0,0,0, - 0,0,0,0,0,0,255,255,252,15,192,124,15,192,60,15, - 192,28,15,192,28,15,192,12,15,192,12,15,192,4,15,193, - 4,15,193,0,15,195,0,15,195,0,15,199,0,15,255,0, - 15,199,0,15,195,0,15,195,0,15,193,4,15,193,4,15, - 193,4,15,192,4,15,192,12,15,192,12,15,192,28,15,192, - 28,15,192,60,15,192,252,255,255,252,13,37,74,17,2,0, - 96,0,112,0,120,0,56,0,28,0,14,0,2,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 0,112,0,240,1,240,1,224,3,128,7,0,4,0,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,37,74,17,2,0, - 6,0,6,0,15,0,31,128,57,192,112,112,192,24,0,0, - 0,0,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,255,248,13,36,72,16,2,0, - 112,112,248,248,248,248,248,248,112,112,0,0,0,0,0,0, - 255,248,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,255,248,25,28,112,29,2,0,255,255, - 128,0,31,128,224,0,31,128,112,0,31,128,56,0,31,128, - 60,0,31,128,30,0,31,128,30,0,31,128,31,0,31,128, - 31,0,31,128,31,0,31,128,31,128,31,128,31,128,31,128, - 31,128,255,248,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,30,0,31,128,30,0,31,128,60,0,31,128, - 56,0,31,128,112,0,31,128,224,0,255,255,128,0,27,36, - 144,30,2,0,0,24,0,0,0,62,32,0,0,127,224,0, - 0,71,192,0,0,1,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,128,255,224,31,192,63,0,31,192,30,0, - 15,224,12,0,7,240,12,0,7,240,12,0,7,248,12,0, - 7,248,12,0,6,252,12,0,6,254,12,0,6,126,12,0, - 6,63,12,0,6,63,140,0,6,31,140,0,6,31,204,0, - 6,15,236,0,6,7,236,0,6,7,252,0,6,3,252,0, - 6,1,252,0,6,1,252,0,6,0,252,0,6,0,252,0, - 6,0,124,0,6,0,60,0,15,0,60,0,31,128,28,0, - 255,224,12,0,22,37,111,27,3,1,7,128,0,7,128,0, - 3,192,0,1,192,0,0,224,0,0,112,0,0,16,0,0, - 0,0,0,0,0,1,254,0,3,3,0,6,1,128,14,1, - 192,28,0,224,60,0,240,60,0,240,124,0,248,124,0,248, - 124,0,248,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,124,0,248,124,0, - 248,124,0,248,60,0,240,60,0,240,28,0,224,14,1,192, - 6,1,128,3,3,0,1,254,0,22,37,111,27,3,1,0, - 7,128,0,7,128,0,15,0,0,14,0,0,28,0,0,56, - 0,0,32,0,0,0,0,0,0,0,1,254,0,3,3,0, - 6,1,128,14,1,192,28,0,224,60,0,240,60,0,240,124, - 0,248,124,0,248,124,0,248,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 124,0,248,124,0,248,124,0,248,60,0,240,60,0,240,28, - 0,224,14,1,192,6,1,128,3,3,0,1,254,0,22,37, - 111,27,3,0,0,48,0,0,48,0,0,120,0,0,252,0, - 1,206,0,3,135,0,6,1,128,0,0,0,0,0,0,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,0, - 240,60,0,240,28,0,224,14,1,192,6,1,128,3,3,0, - 1,254,0,22,36,108,27,3,0,1,192,128,3,241,128,3, - 255,0,4,63,0,4,12,0,0,0,0,0,0,0,0,0, - 0,1,254,0,3,3,0,6,1,128,14,1,192,28,0,224, - 60,0,240,60,0,240,124,0,248,124,0,248,124,0,248,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,252,0,252,252,0,252,124,0,248,124,0,248,124,0,248, - 60,0,240,60,0,240,28,0,224,14,1,192,6,1,128,3, - 3,0,1,254,0,22,36,108,27,3,0,3,131,128,7,199, - 192,7,199,192,7,199,192,3,131,128,0,0,0,0,0,0, - 0,0,0,1,254,0,3,3,0,6,1,128,14,1,192,28, - 0,224,60,0,240,60,0,240,124,0,248,124,0,248,124,0, - 248,252,0,252,252,0,252,252,0,252,252,0,252,252,0,252, - 252,0,252,252,0,252,252,0,252,124,0,248,124,0,248,124, - 0,248,60,0,240,60,0,240,28,0,224,14,1,192,6,1, - 128,3,3,0,1,254,0,24,25,75,36,6,254,64,0,2, - 224,0,7,240,0,14,120,0,28,60,0,60,30,0,120,15, - 0,240,7,129,224,3,195,192,1,231,128,0,239,0,0,126, - 0,0,60,0,0,124,0,0,254,0,1,231,0,3,195,128, - 7,129,192,15,0,224,30,0,112,60,0,56,120,0,28,112, - 0,14,224,0,7,192,0,2,22,28,84,27,3,1,1,254, - 12,3,3,152,6,3,208,14,1,240,28,1,224,60,1,240, - 60,1,240,124,1,248,124,3,248,124,6,248,252,14,252,252, - 12,252,252,24,252,252,56,252,252,112,252,252,96,252,252,192, - 252,253,192,252,125,128,248,127,0,248,126,0,248,62,0,240, - 62,0,240,30,0,224,62,1,192,46,1,128,103,3,0,193, - 254,0,26,37,148,30,3,1,0,224,0,0,0,240,0,0, - 0,120,0,0,0,56,0,0,0,28,0,0,0,12,0,0, - 0,6,0,0,0,0,0,0,0,0,0,0,255,240,127,192, - 31,128,31,0,31,128,14,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,15,128,12,0,15,192,12,0,7,192,24,0, - 7,224,56,0,1,252,240,0,0,255,192,0,26,37,148,30, - 3,1,0,0,224,0,0,1,224,0,0,1,224,0,0,3, - 192,0,0,7,0,0,0,6,0,0,0,12,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,26,37,148,30,3,0,0,4,0,0, - 0,14,0,0,0,31,0,0,0,31,128,0,0,59,192,0, - 0,224,224,0,1,128,48,0,0,0,0,0,0,0,0,0, - 255,240,127,192,31,128,31,0,31,128,14,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,31,128,6,0,31,128,6,0, - 31,128,6,0,31,128,6,0,15,128,4,0,15,128,12,0, - 7,192,24,0,7,224,24,0,1,240,112,0,0,255,192,0, - 26,36,144,30,3,0,0,224,224,0,1,241,240,0,1,241, - 240,0,1,241,240,0,0,224,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,127,192,31,128,31,0,31,128, - 14,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,31,128, - 6,0,31,128,6,0,31,128,6,0,31,128,6,0,15,128, - 12,0,15,192,12,0,7,192,24,0,7,224,56,0,1,252, - 240,0,0,255,192,0,25,37,148,28,2,0,0,0,224,0, - 0,0,224,0,0,1,224,0,0,3,192,0,0,3,128,0, - 0,6,0,0,0,12,0,0,0,0,0,0,0,0,0,0, - 255,240,255,128,31,192,60,0,31,192,24,0,15,192,24,0, - 15,224,24,0,7,224,16,0,7,224,48,0,3,240,32,0, - 3,240,32,0,1,248,96,0,1,248,64,0,1,252,64,0, - 0,252,192,0,0,254,128,0,0,127,128,0,0,127,128,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,1,255,224,0, - 23,28,84,27,2,0,255,248,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,255,128,31,129,224,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,255,248,0,19,28,84,22,1,0, - 0,248,0,3,156,0,7,142,0,15,15,0,15,15,0,15, - 15,0,31,15,0,31,15,0,31,14,0,31,28,0,31,112, - 0,31,12,0,31,7,0,31,7,128,31,3,192,31,3,192, - 31,3,192,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,224,31,115,224,31,243,192,31,243,192,31,227,128,31,103, - 0,255,62,0,17,28,84,20,2,0,56,0,0,60,0,0, - 60,0,0,30,0,0,14,0,0,3,0,0,1,0,0,0, - 0,0,0,0,0,15,192,0,24,240,0,48,120,0,112,120, - 0,124,124,0,124,124,0,56,124,0,1,252,0,14,124,0, - 28,124,0,56,124,0,120,124,0,248,124,0,248,124,128,248, - 124,128,248,124,128,252,253,128,127,191,0,62,30,0,17,28, - 84,20,2,0,0,48,0,0,112,0,0,240,0,0,224,0, - 1,192,0,1,128,0,3,0,0,0,0,0,0,0,0,15, - 192,0,24,240,0,48,120,0,112,120,0,124,124,0,124,124, - 0,124,124,0,0,252,0,7,124,0,28,124,0,56,124,0, - 120,124,0,248,124,0,248,124,128,248,124,128,248,124,128,252, - 253,128,127,191,0,62,30,0,17,28,84,20,2,0,3,0, - 0,3,128,0,7,128,0,7,192,0,12,224,0,24,112,0, - 48,24,0,0,0,0,0,0,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,17,27,81,20,2,0,14,8,0,31,152,0,63,240, - 0,35,240,0,32,224,0,0,0,0,0,0,0,0,0,0, - 15,192,0,24,240,0,48,120,0,112,120,0,124,124,0,124, - 124,0,124,124,0,0,252,0,7,124,0,28,124,0,56,124, - 0,120,124,0,248,124,0,248,124,128,248,124,128,248,124,128, - 252,253,128,127,191,0,62,30,0,17,27,81,20,2,0,56, - 112,0,124,248,0,124,248,0,124,248,0,56,112,0,0,0, - 0,0,0,0,0,0,0,15,192,0,24,240,0,48,120,0, - 112,120,0,124,124,0,124,124,0,124,124,0,0,252,0,7, - 124,0,28,124,0,56,124,0,120,124,0,248,124,0,248,124, - 128,248,124,128,248,124,128,252,253,128,127,191,0,62,30,0, - 17,28,84,20,2,1,15,192,0,12,192,0,24,96,0,24, - 96,0,24,96,0,28,224,0,15,192,0,7,128,0,0,0, - 0,15,192,0,16,240,0,48,120,0,112,120,0,120,124,0, - 124,124,0,124,124,0,0,252,0,7,124,0,28,124,0,56, - 124,0,120,124,0,248,124,0,248,124,128,248,124,128,248,124, - 128,252,253,128,127,255,0,62,62,0,23,19,57,27,2,0, - 15,195,224,24,238,112,48,124,56,112,124,60,120,124,60,124, - 124,62,124,124,62,24,124,62,3,252,62,14,127,254,60,124, - 0,120,124,0,248,124,2,248,124,2,248,124,2,248,124,4, - 252,222,4,127,143,8,63,3,240,14,27,54,18,2,248,7, - 224,14,48,60,24,60,28,120,60,120,124,248,124,248,120,248, - 48,248,0,248,0,248,0,248,0,120,4,120,4,56,4,60, - 8,30,16,7,224,2,0,2,0,3,128,0,192,0,224,0, - 224,0,224,7,128,14,28,56,18,2,0,56,0,56,0,60, - 0,30,0,14,0,7,0,1,0,0,0,0,0,7,192,28, - 224,56,112,56,120,120,120,120,124,248,124,248,124,248,124,255, - 252,248,0,248,0,248,4,120,4,120,4,56,8,60,24,30, - 48,7,192,14,28,56,18,2,0,0,112,0,112,0,240,1, - 224,1,192,3,128,2,0,0,0,0,0,7,192,28,224,56, - 112,56,120,120,120,120,124,248,124,248,124,255,252,248,0,248, - 0,248,0,248,4,120,4,120,12,56,8,60,24,30,48,7, - 192,14,28,56,18,2,0,3,0,7,128,7,128,15,192,12, - 192,24,96,48,56,0,0,0,0,7,192,28,224,56,112,56, - 120,120,120,120,124,248,124,248,124,248,124,255,252,248,0,248, - 0,248,0,120,4,120,4,56,8,60,8,30,16,7,224,14, - 27,54,18,2,0,56,112,124,248,124,248,124,248,56,112,0, - 0,0,0,0,0,7,192,28,224,56,112,56,120,120,120,120, - 124,248,124,248,124,248,124,255,252,248,0,248,0,248,0,120, - 4,120,12,56,8,60,24,30,48,7,192,10,28,56,12,1, - 0,224,0,240,0,248,0,120,0,28,0,14,0,2,0,0, - 0,0,0,127,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,127,192,9,28,56,12,2,0,1, - 128,3,128,7,128,15,0,14,0,28,0,16,0,0,0,0, - 0,254,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,11,28,56,11,1,0,14,0,30, - 0,31,0,63,0,115,128,224,192,128,96,0,0,0,0,127, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,127,192,11,27,54,12,1,0,113,192,251,224,251, - 224,251,224,113,192,0,0,0,0,0,0,127,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,127, - 192,16,28,56,20,2,0,31,8,15,184,7,224,7,224,7, - 224,13,240,16,248,0,248,0,124,7,252,30,126,60,62,56, - 62,120,30,120,31,248,31,248,31,248,31,248,31,248,31,248, - 31,248,30,120,30,120,30,56,60,60,60,12,112,7,224,19, - 27,81,22,2,0,0,2,0,7,194,0,15,254,0,15,252, - 0,8,120,0,0,0,0,0,0,0,0,0,0,254,60,0, - 62,222,0,63,15,0,63,15,128,63,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,255,191,224,16,28,56,20,2,0,24,0,28,0, - 30,0,15,0,7,0,3,128,0,192,0,0,0,0,7,192, - 12,112,28,56,56,60,120,30,120,30,248,30,248,31,248,31, - 248,31,248,31,248,31,248,30,120,30,120,30,56,60,28,56, - 12,112,7,192,16,28,56,20,2,0,0,56,0,56,0,120, - 0,240,0,224,1,192,3,0,0,0,0,0,7,192,12,112, - 28,56,56,60,120,30,120,30,248,30,248,31,248,31,248,31, - 248,31,248,31,248,30,120,30,120,30,56,60,28,56,12,112, - 7,192,16,28,56,20,2,0,3,128,3,192,3,192,7,224, - 14,112,28,56,48,12,0,0,0,0,7,192,12,112,28,56, - 56,60,120,30,120,30,248,30,248,31,248,31,248,31,248,31, - 248,31,248,30,120,30,120,30,56,60,28,56,12,112,7,192, - 16,27,54,20,2,0,14,4,31,140,31,248,35,248,32,112, - 0,0,0,0,0,0,7,192,12,112,28,56,56,60,120,30, - 120,30,248,30,248,31,248,31,248,31,248,31,248,31,248,30, - 120,30,120,30,56,60,28,56,12,112,7,192,16,27,54,20, - 2,0,28,56,62,124,62,124,62,124,28,56,0,0,0,0, - 0,0,7,192,12,112,28,56,56,60,120,30,120,30,248,30, - 248,31,248,31,248,31,248,31,248,31,248,30,120,30,120,30, - 56,60,28,56,12,112,7,192,33,26,130,37,2,253,0,3, - 192,0,0,0,7,224,0,0,0,7,224,0,0,0,7,224, - 0,0,0,7,224,0,0,0,3,192,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,255,128,255,255,255,255,128,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,192,0,0,0,7,224,0,0,0,7,224,0, - 0,0,7,224,0,0,0,7,224,0,0,0,3,192,0,0, - 16,19,38,20,2,0,7,225,12,114,28,60,56,60,120,62, - 120,62,248,126,248,95,248,223,249,159,251,31,254,31,252,30, - 124,30,120,30,60,28,124,56,78,48,135,192,19,28,84,21, - 1,0,12,0,0,30,0,0,15,0,0,7,0,0,3,128, - 0,1,192,0,0,64,0,0,0,0,0,0,0,254,63,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,31,128,62,31,128,30,47,128, - 31,79,128,7,143,224,19,28,84,21,1,0,0,28,0,0, - 60,0,0,60,0,0,120,0,0,224,0,0,192,0,1,128, - 0,0,0,0,0,0,0,254,63,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,15,128,62,15, - 128,62,31,128,62,31,128,30,47,128,30,79,128,7,143,224, - 19,28,84,21,1,0,1,192,0,1,224,0,3,224,0,3, - 240,0,7,56,0,12,28,0,24,4,0,0,0,0,0,0, - 0,254,63,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,62,15,128,62,31,128,62,31, - 128,30,47,128,30,79,128,7,143,224,19,27,81,21,1,0, - 28,28,0,62,62,0,62,62,0,62,62,0,28,28,0,0, - 0,0,0,0,0,0,0,0,254,63,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,31,128,62,31,128,30,47,128,30,79,128,7,143, - 224,18,37,111,19,0,247,0,14,0,0,30,0,0,30,0, - 0,60,0,0,48,0,0,96,0,0,192,0,0,0,0,0, - 0,0,255,207,192,63,3,0,31,3,0,31,2,0,15,2, - 0,15,130,0,15,132,0,7,196,0,7,196,0,3,196,0, - 3,232,0,3,232,0,1,248,0,1,240,0,0,240,0,0, - 240,0,0,96,0,0,96,0,0,96,0,0,32,0,0,64, - 0,12,64,0,30,64,0,62,128,0,62,128,0,60,128,0, - 29,0,0,14,0,0,18,36,108,20,0,247,3,0,0,15, - 0,0,63,0,0,223,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,31,0,31,63,128,31,71,128,31,135,192, - 31,135,192,31,7,192,31,7,192,31,7,192,31,7,128,31, - 7,128,31,15,0,31,15,0,31,14,0,31,12,0,31,24, - 0,31,48,0,31,96,0,31,128,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,0,30, - 0,0,56,0,0,224,0,0,19,36,108,20,0,247,7,14, - 0,15,159,0,15,159,0,15,159,0,7,14,0,0,0,0, - 0,0,0,0,0,0,255,207,224,63,3,0,31,3,0,31, - 2,0,15,2,0,15,130,0,15,132,0,7,196,0,7,196, - 0,3,196,0,3,232,0,3,232,0,1,248,0,1,240,0, - 0,240,0,0,240,0,0,240,0,0,96,0,0,96,0,0, - 32,0,0,64,0,12,64,0,30,64,0,62,64,0,62,128, - 0,60,128,0,29,0,0,14,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=33 h=37 x= 5 y=12 dx=37 dy= 0 ascent=29 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =29 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29n[1257] U8G_FONT_SECTION("u8g_font_osb29n") = { - 0,107,49,223,245,28,0,0,0,0,42,58,0,29,248,28, - 0,14,16,32,19,3,12,3,0,7,128,7,128,199,24,227, - 60,242,124,122,248,7,128,7,128,250,248,242,124,227,60,199, - 24,7,128,7,128,3,0,33,33,165,37,2,251,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,255,255,255,255,128,255,255,255, - 255,128,255,255,255,255,128,0,1,192,0,0,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,7,13,13,10,2,249,120,252,252,254,254,126,6,4, - 4,8,24,96,192,10,4,8,14,2,8,255,192,255,192,255, - 192,255,192,6,6,6,10,2,0,120,252,252,252,252,120,13, - 37,74,17,2,248,0,24,0,56,0,56,0,48,0,112,0, - 112,0,96,0,96,0,224,0,224,0,192,1,192,1,192,1, - 128,3,128,3,128,3,128,3,0,7,0,7,0,6,0,14, - 0,14,0,12,0,12,0,28,0,28,0,24,0,56,0,56, - 0,48,0,112,0,112,0,112,0,96,0,224,0,224,0,18, - 28,84,22,2,1,3,240,0,14,28,0,14,28,0,28,14, - 0,60,15,0,60,15,0,124,15,128,124,15,128,124,15,128, - 252,15,192,252,15,192,252,15,192,252,15,192,252,15,192,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,124,15, - 128,124,15,128,124,15,128,60,15,0,60,15,0,28,14,0, - 12,28,0,14,28,0,3,240,0,13,28,56,22,5,0,3, - 128,7,128,15,128,255,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,248,17,28,84,22,2,1,15,248,0, - 24,62,0,48,63,0,112,31,0,240,31,128,240,31,128,252, - 31,128,252,31,128,254,31,128,126,63,0,60,63,0,0,126, - 0,0,252,0,0,248,0,1,224,0,3,128,0,6,0,0, - 12,0,128,24,0,128,16,0,128,32,0,128,47,1,128,127, - 255,128,127,255,128,71,255,0,67,255,0,65,254,0,64,252, - 0,17,28,84,22,2,1,15,248,0,24,62,0,48,63,0, - 48,31,0,112,31,128,120,31,128,124,31,128,124,31,128,124, - 31,128,60,31,0,0,31,0,0,62,0,0,120,0,15,192, - 0,0,120,0,0,62,0,0,63,0,0,31,0,16,31,128, - 124,31,128,252,31,128,252,31,128,252,31,128,248,31,128,240, - 63,0,112,62,0,56,124,0,31,248,0,18,28,84,22,2, - 0,0,124,0,0,124,0,0,252,0,0,252,0,1,252,0, - 1,252,0,3,252,0,3,252,0,6,252,0,6,252,0,12, - 252,0,12,252,0,24,252,0,24,252,0,48,252,0,48,252, - 0,96,252,0,96,252,0,192,252,0,255,255,192,0,252,0, - 0,252,0,0,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,15,255,192,17,29,87,22,3,0,0,6,0,112,28, - 0,127,252,0,127,248,0,127,224,0,127,192,0,126,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,120, - 120,0,112,62,0,96,62,0,96,31,0,0,31,0,0,31, - 128,0,31,128,56,31,128,124,31,128,252,31,128,252,31,128, - 248,31,0,240,31,0,224,30,0,96,62,0,48,124,0,31, - 240,0,18,29,87,22,3,0,0,32,0,3,220,0,7,6, - 0,14,6,0,30,15,0,60,31,0,60,63,0,124,63,0, - 124,62,0,124,28,0,252,0,0,252,0,0,252,0,0,253, - 248,0,255,30,0,254,31,0,252,15,128,252,15,128,252,15, - 192,252,15,192,252,15,192,124,15,192,124,15,192,124,15,192, - 60,15,128,28,15,128,30,15,0,14,30,0,3,252,0,17, - 28,84,22,3,0,103,135,0,111,199,0,127,227,128,127,241, - 128,127,249,128,127,255,128,96,125,128,64,1,0,64,3,0, - 64,3,0,192,6,0,0,4,0,0,12,0,0,24,0,0, - 56,0,0,112,0,0,112,0,0,240,0,1,240,0,3,224, - 0,3,224,0,3,224,0,7,224,0,7,224,0,7,224,0, - 7,224,0,7,224,0,3,192,0,19,29,87,22,2,0,0, - 64,0,7,184,0,28,6,0,56,3,0,112,1,0,112,1, - 128,240,1,128,240,1,128,248,1,128,252,3,0,255,2,0, - 127,196,0,127,248,0,63,252,0,31,255,0,15,255,128,27, - 255,128,48,255,192,96,63,192,96,15,192,224,3,224,224,1, - 192,224,1,192,224,1,192,224,1,192,112,1,128,56,1,0, - 28,6,0,15,252,0,18,28,84,22,3,1,15,240,0,30, - 28,0,60,30,0,124,14,0,124,15,0,252,15,128,252,15, - 128,252,15,128,252,15,128,252,15,192,252,15,192,124,15,192, - 124,15,192,62,31,192,30,63,192,7,239,192,0,15,192,0, - 15,192,0,15,192,30,15,128,31,15,128,63,15,128,63,15, - 0,62,15,0,56,30,0,24,28,0,24,56,0,15,240,0, - 6,19,19,10,2,0,120,252,252,252,252,120,0,0,0,0, - 0,0,0,120,252,252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--38-380-72-72-P-206-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=38 h=37 x= 5 y=21 dx=41 dy= 0 ascent=31 len=165 - Font Bounding box w=107 h=49 x=-33 y=-11 - Calculated Min Values x=-2 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =29 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb29r[7481] U8G_FONT_SECTION("u8g_font_osb29r") = { - 0,107,49,223,245,29,9,166,21,115,32,127,247,31,247,29, - 247,0,0,0,11,0,0,6,28,28,10,2,1,120,252,252, - 252,252,252,252,120,120,120,120,120,48,48,48,48,48,48,48, - 48,0,0,120,252,252,252,252,120,10,9,18,16,3,20,243, - 192,243,192,243,192,243,192,243,192,243,192,97,128,97,128,97, - 128,22,28,84,28,3,0,1,192,224,1,192,224,1,192,224, - 1,192,224,1,128,192,1,128,192,1,128,192,3,129,252,255, - 255,252,255,255,252,3,129,128,3,1,128,3,1,128,7,3, - 128,7,3,128,7,3,128,7,3,128,6,3,0,255,255,252, - 255,255,252,255,255,252,14,7,0,14,7,0,14,6,0,12, - 6,0,12,6,0,28,14,0,28,14,0,18,34,102,22,2, - 253,1,16,0,1,16,0,1,16,0,7,252,0,29,19,0, - 57,17,128,49,16,192,113,16,192,113,17,192,113,19,192,121, - 23,192,127,23,128,127,19,0,63,144,0,63,240,0,31,240, - 0,15,252,0,7,254,0,1,255,0,1,255,128,1,63,128, - 121,31,192,249,23,192,249,19,192,249,17,192,225,17,192,193, - 17,192,97,17,128,97,19,0,57,22,0,15,60,0,1,208, - 0,1,16,0,1,16,0,26,29,116,32,3,0,4,0,12, - 0,27,0,8,0,49,128,24,0,113,192,16,0,113,192,48, - 0,241,224,96,0,241,224,96,0,241,224,192,0,241,224,128, - 0,241,225,128,0,241,225,0,0,113,195,0,0,113,194,0, - 0,59,134,0,0,30,12,0,0,0,12,28,0,0,24,119, - 0,0,16,227,128,0,48,227,128,0,33,227,192,0,97,227, - 192,0,65,227,192,0,193,227,192,1,129,227,192,1,129,227, - 192,3,1,227,128,2,0,227,128,6,0,99,0,4,0,62, - 0,27,28,112,31,2,1,0,254,0,0,1,195,0,0,3, - 129,0,0,7,129,128,0,7,129,128,0,7,129,128,0,7, - 131,128,0,7,195,0,0,7,198,0,0,3,236,0,0,3, - 248,0,0,1,240,0,0,0,248,0,0,1,252,31,224,7, - 124,3,128,14,62,3,0,28,63,3,0,56,31,134,0,120, - 15,134,0,120,7,196,0,248,7,232,0,248,3,248,0,248, - 1,240,0,252,1,248,0,254,0,248,32,127,1,252,64,63, - 254,127,192,31,248,31,128,4,9,9,10,3,20,240,240,240, - 240,240,240,96,96,96,11,35,70,13,2,249,0,96,0,192, - 1,128,3,0,6,0,12,0,28,0,24,0,56,0,56,0, - 120,0,120,0,120,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,120,0,120,0,120,0,120,0, - 56,0,56,0,28,0,12,0,14,0,7,0,3,0,1,128, - 0,96,11,36,72,14,1,249,192,0,96,0,48,0,24,0, - 12,0,14,0,7,0,7,0,3,128,3,128,3,192,3,192, - 3,192,3,192,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,192,3,192,3,192,3,128,3,128,7,0, - 7,0,6,0,12,0,28,0,56,0,112,0,192,0,128,0, - 14,16,32,19,3,12,3,0,7,128,7,128,199,24,227,60, - 242,124,122,248,7,128,7,128,250,248,242,124,227,60,199,24, - 7,128,7,128,3,0,33,33,165,37,2,251,0,1,192,0, - 0,0,1,192,0,0,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,255,255,255,255,128,255,255,255,255, - 128,255,255,255,255,128,0,1,192,0,0,0,1,192,0,0, - 0,1,192,0,0,0,1,192,0,0,0,1,192,0,0,0, - 1,192,0,0,0,1,192,0,0,0,1,192,0,0,0,1, - 192,0,0,0,1,192,0,0,0,1,192,0,0,0,1,192, - 0,0,0,1,192,0,0,0,1,192,0,0,0,1,192,0, - 0,7,13,13,10,2,249,120,252,252,254,254,126,6,4,4, - 8,24,96,192,10,4,8,14,2,8,255,192,255,192,255,192, - 255,192,6,6,6,10,2,0,120,252,252,252,252,120,13,37, - 74,17,2,248,0,24,0,56,0,56,0,48,0,112,0,112, - 0,96,0,96,0,224,0,224,0,192,1,192,1,192,1,128, - 3,128,3,128,3,128,3,0,7,0,7,0,6,0,14,0, - 14,0,12,0,12,0,28,0,28,0,24,0,56,0,56,0, - 48,0,112,0,112,0,112,0,96,0,224,0,224,0,18,28, - 84,22,2,1,3,240,0,14,28,0,14,28,0,28,14,0, - 60,15,0,60,15,0,124,15,128,124,15,128,124,15,128,252, - 15,192,252,15,192,252,15,192,252,15,192,252,15,192,252,15, - 192,252,15,192,252,15,192,252,15,192,252,15,192,124,15,128, - 124,15,128,124,15,128,60,15,0,60,15,0,28,14,0,12, - 28,0,14,28,0,3,240,0,13,28,56,22,5,0,3,128, - 7,128,15,128,255,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,255,248,17,28,84,22,2,1,15,248,0,24, - 62,0,48,63,0,112,31,0,240,31,128,240,31,128,252,31, - 128,252,31,128,254,31,128,126,63,0,60,63,0,0,126,0, - 0,252,0,0,248,0,1,224,0,3,128,0,6,0,0,12, - 0,128,24,0,128,16,0,128,32,0,128,47,1,128,127,255, - 128,127,255,128,71,255,0,67,255,0,65,254,0,64,252,0, - 17,28,84,22,2,1,15,248,0,24,62,0,48,63,0,48, - 31,0,112,31,128,120,31,128,124,31,128,124,31,128,124,31, - 128,60,31,0,0,31,0,0,62,0,0,120,0,15,192,0, - 0,120,0,0,62,0,0,63,0,0,31,0,16,31,128,124, - 31,128,252,31,128,252,31,128,252,31,128,248,31,128,240,63, - 0,112,62,0,56,124,0,31,248,0,18,28,84,22,2,0, - 0,124,0,0,124,0,0,252,0,0,252,0,1,252,0,1, - 252,0,3,252,0,3,252,0,6,252,0,6,252,0,12,252, - 0,12,252,0,24,252,0,24,252,0,48,252,0,48,252,0, - 96,252,0,96,252,0,192,252,0,255,255,192,0,252,0,0, - 252,0,0,252,0,0,252,0,0,252,0,0,252,0,0,252, - 0,15,255,192,17,29,87,22,3,0,0,6,0,112,28,0, - 127,252,0,127,248,0,127,224,0,127,192,0,126,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,103,224,0,120,120, - 0,112,62,0,96,62,0,96,31,0,0,31,0,0,31,128, - 0,31,128,56,31,128,124,31,128,252,31,128,252,31,128,248, - 31,0,240,31,0,224,30,0,96,62,0,48,124,0,31,240, - 0,18,29,87,22,3,0,0,32,0,3,220,0,7,6,0, - 14,6,0,30,15,0,60,31,0,60,63,0,124,63,0,124, - 62,0,124,28,0,252,0,0,252,0,0,252,0,0,253,248, - 0,255,30,0,254,31,0,252,15,128,252,15,128,252,15,192, - 252,15,192,252,15,192,124,15,192,124,15,192,124,15,192,60, - 15,128,28,15,128,30,15,0,14,30,0,3,252,0,17,28, - 84,22,3,0,103,135,0,111,199,0,127,227,128,127,241,128, - 127,249,128,127,255,128,96,125,128,64,1,0,64,3,0,64, - 3,0,192,6,0,0,4,0,0,12,0,0,24,0,0,56, - 0,0,112,0,0,112,0,0,240,0,1,240,0,3,224,0, - 3,224,0,3,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,3,192,0,19,29,87,22,2,0,0,64, - 0,7,184,0,28,6,0,56,3,0,112,1,0,112,1,128, - 240,1,128,240,1,128,248,1,128,252,3,0,255,2,0,127, - 196,0,127,248,0,63,252,0,31,255,0,15,255,128,27,255, - 128,48,255,192,96,63,192,96,15,192,224,3,224,224,1,192, - 224,1,192,224,1,192,224,1,192,112,1,128,56,1,0,28, - 6,0,15,252,0,18,28,84,22,3,1,15,240,0,30,28, - 0,60,30,0,124,14,0,124,15,0,252,15,128,252,15,128, - 252,15,128,252,15,128,252,15,192,252,15,192,124,15,192,124, - 15,192,62,31,192,30,63,192,7,239,192,0,15,192,0,15, - 192,0,15,192,30,15,128,31,15,128,63,15,128,63,15,0, - 62,15,0,56,30,0,24,28,0,24,56,0,15,240,0,6, - 19,19,10,2,0,120,252,252,252,252,120,0,0,0,0,0, - 0,0,120,252,252,252,252,120,7,26,26,10,2,249,120,252, - 252,252,252,120,0,0,0,0,0,0,0,120,252,252,254,254, - 126,6,4,4,8,16,96,192,29,33,132,36,3,250,0,0, - 0,24,0,0,0,120,0,0,1,240,0,0,7,192,0,0, - 31,128,0,0,62,0,0,0,248,0,0,3,224,0,0,15, - 192,0,0,31,0,0,0,124,0,0,1,240,0,0,7,192, - 0,0,15,128,0,0,62,0,0,0,248,0,0,0,240,0, - 0,0,124,0,0,0,62,0,0,0,15,128,0,0,3,224, - 0,0,0,248,0,0,0,124,0,0,0,31,0,0,0,7, - 192,0,0,1,240,0,0,0,252,0,0,0,62,0,0,0, - 15,128,0,0,3,224,0,0,1,248,0,0,0,120,0,0, - 0,16,32,11,44,36,2,5,255,255,255,255,255,255,255,255, - 255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255, - 255,255,255,255,29,33,132,36,4,250,192,0,0,0,240,0, - 0,0,124,0,0,0,31,0,0,0,15,192,0,0,3,224, - 0,0,0,248,0,0,0,62,0,0,0,31,128,0,0,7, - 192,0,0,1,240,0,0,0,124,0,0,0,31,0,0,0, - 15,128,0,0,3,224,0,0,0,248,0,0,0,120,0,0, - 1,240,0,0,3,224,0,0,15,128,0,0,62,0,0,0, - 248,0,0,1,240,0,0,7,192,0,0,31,0,0,0,124, - 0,0,1,248,0,0,3,224,0,0,15,128,0,0,62,0, - 0,0,252,0,0,0,240,0,0,0,64,0,0,0,12,28, - 56,18,3,1,63,128,119,224,65,224,129,240,129,240,129,240, - 129,240,129,224,193,224,67,192,3,128,7,0,6,0,12,0, - 8,0,24,0,16,64,16,64,16,64,24,128,15,0,0,0, - 7,128,15,192,15,192,15,192,15,192,7,128,28,29,116,32, - 2,0,0,2,0,0,0,125,240,0,1,192,28,0,3,0, - 6,0,6,0,3,0,12,0,1,128,24,15,61,192,56,28, - 188,192,48,56,248,224,112,112,120,224,112,240,120,96,225,224, - 120,112,225,224,248,112,225,224,240,112,227,224,240,112,227,192, - 240,112,227,192,240,112,227,193,224,96,227,193,224,224,99,193, - 224,192,99,195,224,192,115,194,225,128,49,228,227,0,56,120, - 124,0,28,0,0,0,12,0,0,0,7,0,0,0,3,128, - 24,0,0,255,224,0,26,29,116,29,2,0,0,4,0,0, - 0,6,0,0,0,14,0,0,0,14,0,0,0,15,0,0, - 0,31,0,0,0,31,0,0,0,31,128,0,0,63,128,0, - 0,47,128,0,0,47,192,0,0,111,192,0,0,79,192,0, - 0,71,192,0,0,199,224,0,0,135,224,0,0,131,224,0, - 1,131,240,0,1,3,240,0,3,1,240,0,3,255,248,0, - 2,1,248,0,6,0,248,0,6,0,252,0,4,0,252,0, - 12,0,252,0,12,0,124,0,30,0,254,0,255,199,255,192, - 22,28,84,27,3,0,255,255,0,31,131,192,31,131,224,31, - 129,240,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,240,31,129,240,31,131,192,31,131,128,31,252,0, - 31,131,128,31,129,224,31,128,240,31,128,248,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,248,31,128, - 248,31,129,240,31,131,224,255,255,128,21,28,84,26,3,1, - 1,254,48,7,3,48,14,1,240,30,0,240,60,0,240,60, - 0,112,124,0,112,124,0,48,124,0,48,252,0,48,252,0, - 48,252,0,16,252,0,0,252,0,0,252,0,0,252,0,0, - 252,0,0,252,0,24,252,0,24,124,0,16,124,0,16,124, - 0,16,60,0,48,60,0,32,30,0,96,14,0,192,7,1, - 128,1,254,0,25,28,112,30,3,0,255,255,128,0,31,128, - 224,0,31,128,112,0,31,128,56,0,31,128,60,0,31,128, - 30,0,31,128,30,0,31,128,31,0,31,128,31,0,31,128, - 31,0,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,0,31,128,31,0,31,128,31,0,31,128, - 30,0,31,128,30,0,31,128,60,0,31,128,56,0,31,128, - 112,0,31,128,224,0,255,255,128,0,22,28,84,26,2,0, - 255,255,252,15,192,124,15,192,60,15,192,28,15,192,28,15, - 192,12,15,192,12,15,192,12,15,193,4,15,193,0,15,195, - 0,15,195,0,15,199,0,15,255,0,15,199,0,15,195,0, - 15,195,0,15,193,4,15,193,4,15,193,4,15,192,12,15, - 192,12,15,192,12,15,192,28,15,192,28,15,192,60,15,192, - 252,255,255,252,22,28,84,25,2,0,255,255,252,31,128,252, - 31,128,124,31,128,60,31,128,28,31,128,28,31,128,28,31, - 128,12,31,129,12,31,129,12,31,131,12,31,131,0,31,135, - 0,31,255,0,31,143,0,31,135,0,31,131,0,31,129,0, - 31,129,0,31,129,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,255,252,0,24,29, - 87,28,3,0,0,16,0,1,239,24,3,3,152,14,0,248, - 30,0,248,28,0,120,60,0,56,60,0,56,124,0,24,124, - 0,24,124,0,24,252,0,8,252,0,0,252,0,0,252,0, - 0,252,31,255,252,1,248,252,1,248,252,1,248,252,1,248, - 124,1,248,124,1,248,124,1,248,60,1,248,60,1,248,30, - 3,152,14,3,24,7,6,24,1,220,24,27,28,112,31,2, - 0,255,251,255,224,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,255,255,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,31,128,63, - 0,31,128,63,0,31,128,63,0,31,128,63,0,255,251,255, - 224,13,28,56,17,2,0,255,248,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,255,248,18, - 28,84,20,1,0,7,255,192,0,126,0,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,16,126,0,124,126,0,252,126, - 0,252,126,0,252,126,0,248,126,0,240,124,0,224,124,0, - 96,120,0,32,240,0,31,224,0,26,28,112,29,2,0,255, - 241,255,0,31,128,120,0,31,128,112,0,31,128,96,0,31, - 128,64,0,31,128,192,0,31,129,128,0,31,131,0,0,31, - 134,0,0,31,134,0,0,31,142,0,0,31,159,0,0,31, - 191,0,0,31,255,128,0,31,223,128,0,31,159,192,0,31, - 143,192,0,31,143,224,0,31,135,224,0,31,135,240,0,31, - 131,240,0,31,131,248,0,31,129,248,0,31,129,252,0,31, - 128,252,0,31,128,254,0,31,128,254,0,255,243,255,192,22, - 28,84,25,2,0,255,248,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,12,31,128,12,31,128,12,31,128, - 12,31,128,28,31,128,28,31,128,60,31,128,60,31,128,124, - 31,128,252,31,129,252,255,255,252,31,28,112,34,2,0,255, - 128,15,254,15,128,15,224,15,192,15,224,15,192,15,224,15, - 192,15,224,15,224,23,224,15,224,23,224,15,240,23,224,13, - 240,23,224,13,240,39,224,13,248,39,224,12,248,39,224,12, - 248,39,224,12,252,71,224,12,124,71,224,12,124,71,224,12, - 126,71,224,12,62,135,224,12,63,135,224,12,63,135,224,12, - 31,135,224,12,31,7,224,12,31,7,224,12,15,7,224,12, - 15,7,224,28,14,7,224,62,6,7,224,255,134,63,254,27, - 28,112,30,2,0,255,128,255,224,31,192,63,0,31,192,30, - 0,15,224,12,0,7,240,12,0,7,240,12,0,7,248,12, - 0,7,248,12,0,6,252,12,0,6,254,12,0,6,126,12, - 0,6,63,12,0,6,63,140,0,6,31,140,0,6,31,204, - 0,6,15,236,0,6,7,236,0,6,7,252,0,6,3,252, - 0,6,1,252,0,6,1,252,0,6,0,252,0,6,0,252, - 0,6,0,124,0,6,0,60,0,15,0,60,0,31,128,28, - 0,255,224,12,0,22,28,84,27,3,1,1,254,0,3,3, - 0,6,1,128,14,1,192,28,0,224,60,0,240,60,0,240, - 124,0,248,124,0,248,124,0,248,252,0,252,252,0,252,252, - 0,252,252,0,252,252,0,252,252,0,252,252,0,252,252,0, - 252,124,0,248,124,0,248,124,0,248,60,0,240,60,0,240, - 28,0,224,14,1,192,6,1,128,3,3,0,1,254,0,23, - 28,84,27,2,0,255,255,128,31,129,240,31,128,248,31,128, - 252,31,128,124,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,128,124,31,128,252,31,128,248,31,129,224,31, - 255,128,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,255,248,0,22,37,111,27,3,248,1, - 254,0,3,3,0,6,1,128,14,1,192,28,0,224,60,0, - 240,60,0,240,124,0,248,124,0,248,124,0,248,252,0,252, - 252,0,252,252,0,252,252,0,252,252,0,252,252,0,252,252, - 0,252,252,0,252,124,0,248,124,0,248,124,0,248,60,56, - 240,60,76,240,30,133,224,14,135,224,7,135,192,3,135,132, - 1,238,4,0,22,4,0,6,4,0,7,12,0,7,12,0, - 7,252,0,7,248,0,7,248,0,3,240,0,1,224,25,28, - 112,28,2,0,255,255,0,0,31,135,192,0,31,131,224,0, - 31,129,240,0,31,129,248,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,240,0,31,131,224,0, - 31,135,192,0,31,254,0,0,31,135,128,0,31,131,192,0, - 31,129,240,0,31,129,240,0,31,129,248,0,31,129,248,0, - 31,129,248,0,31,129,248,0,31,129,248,128,31,129,248,128, - 31,129,248,128,31,129,248,128,31,129,249,0,31,128,249,0, - 255,248,126,0,18,29,87,23,3,0,1,0,0,31,225,128, - 48,57,128,96,31,128,96,15,128,224,7,128,240,3,128,240, - 3,128,248,1,128,254,1,128,255,1,128,127,192,0,127,224, - 0,63,248,0,31,252,0,7,255,0,3,255,0,128,255,128, - 128,127,128,192,31,192,192,15,192,192,7,192,224,3,192,224, - 1,192,240,1,128,248,1,128,248,3,0,206,2,0,135,188, - 0,24,28,84,27,2,0,255,255,255,252,126,63,248,126,31, - 240,126,15,224,126,15,224,126,7,192,126,7,192,126,3,192, - 126,3,192,126,3,128,126,3,128,126,2,0,126,0,0,126, - 0,0,126,0,0,126,0,0,126,0,0,126,0,0,126,0, - 0,126,0,0,126,0,0,126,0,0,126,0,0,126,0,0, - 126,0,0,126,0,0,126,0,7,255,224,26,28,112,30,3, - 0,255,240,127,192,31,128,31,0,31,128,14,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,31,128,6,0,31,128,6, - 0,31,128,6,0,31,128,6,0,15,128,12,0,15,192,12, - 0,7,192,24,0,7,224,56,0,1,252,240,0,0,255,192, - 0,27,28,112,30,2,0,255,248,127,224,31,192,15,0,15, - 192,6,0,15,192,6,0,7,224,4,0,7,224,12,0,7, - 224,8,0,3,240,8,0,3,240,8,0,3,240,24,0,1, - 248,16,0,1,248,16,0,1,252,48,0,0,252,32,0,0, - 252,32,0,0,254,96,0,0,126,64,0,0,126,64,0,0, - 127,192,0,0,63,128,0,0,63,128,0,0,63,128,0,0, - 31,0,0,0,31,0,0,0,31,0,0,0,14,0,0,0, - 14,0,0,0,14,0,0,38,28,140,41,2,0,255,243,255, - 207,252,31,192,126,1,224,15,192,126,0,192,15,192,62,0, - 192,7,192,63,0,128,7,224,63,0,128,7,224,63,1,128, - 7,224,63,129,0,3,240,63,129,0,3,240,127,131,0,3, - 240,111,195,0,1,248,79,194,0,1,248,207,194,0,1,248, - 199,230,0,0,252,135,230,0,0,252,135,228,0,0,253,131, - 244,0,0,127,131,252,0,0,127,3,248,0,0,127,3,248, - 0,0,127,1,248,0,0,63,1,248,0,0,62,1,240,0, - 0,62,0,240,0,0,30,0,240,0,0,28,0,240,0,0, - 28,0,96,0,0,12,0,96,0,26,28,112,29,2,0,255, - 241,255,128,31,224,124,0,15,224,56,0,15,224,48,0,7, - 240,96,0,7,240,96,0,3,248,192,0,3,248,128,0,1, - 253,128,0,0,255,0,0,0,254,0,0,0,126,0,0,0, - 127,0,0,0,63,0,0,0,63,128,0,0,31,128,0,0, - 63,192,0,0,111,192,0,0,79,224,0,0,199,224,0,1, - 135,240,0,1,131,240,0,3,3,248,0,2,1,248,0,6, - 1,252,0,14,0,252,0,30,1,254,0,255,199,255,192,25, - 28,112,28,2,0,255,240,255,128,31,192,60,0,31,192,24, - 0,15,192,24,0,15,224,24,0,7,224,16,0,7,224,48, - 0,3,240,32,0,3,240,32,0,1,248,96,0,1,248,64, - 0,1,252,64,0,0,252,192,0,0,254,128,0,0,127,128, - 0,0,127,128,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,0,63,0,0,0,63,0,0,0,63,0,0,0,63,0, - 0,1,255,224,0,20,28,84,25,3,0,127,255,240,126,7, - 240,124,7,224,120,15,224,112,15,192,96,31,192,96,31,128, - 96,63,128,64,63,0,64,127,0,0,254,0,0,254,0,1, - 252,0,1,248,0,3,248,0,3,240,0,7,240,0,7,224, - 16,15,224,16,15,192,16,31,192,48,31,128,48,63,128,112, - 63,0,112,127,0,240,126,1,240,254,7,240,255,255,240,9, - 35,70,15,3,249,255,128,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,248,0,248,0,248,0,248, - 0,248,0,248,0,248,0,248,0,255,128,13,37,74,17,2, - 248,192,0,224,0,224,0,96,0,112,0,112,0,48,0,56, - 0,56,0,24,0,24,0,28,0,28,0,12,0,14,0,14, - 0,6,0,6,0,7,0,7,0,3,0,3,128,3,128,1, - 128,1,192,1,192,0,192,0,192,0,224,0,224,0,96,0, - 112,0,112,0,48,0,48,0,56,0,56,9,35,70,15,3, - 249,255,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,255,128,18,14,42,22,2,15,0,192,0, - 0,192,0,1,224,0,3,240,0,3,240,0,7,56,0,7, - 56,0,14,28,0,28,14,0,28,14,0,56,7,0,56,7, - 0,112,3,128,224,1,192,20,3,9,20,0,249,255,255,240, - 255,255,240,255,255,240,7,7,7,17,3,21,224,240,240,120, - 60,12,6,17,19,57,20,2,0,15,192,0,24,240,0,48, - 120,0,112,120,0,124,124,0,124,124,0,124,124,0,0,252, - 0,7,124,0,28,124,0,56,124,0,120,124,0,248,124,0, - 248,124,128,248,124,128,248,124,128,252,253,128,127,191,0,62, - 30,0,18,28,84,20,0,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,60,0,31,78,0,31,143,0,31,135,128,31, - 7,128,31,7,128,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,128,31,7,128, - 31,135,0,25,143,0,16,206,0,16,120,0,14,19,38,18, - 2,0,7,224,14,48,60,24,60,28,120,60,120,124,248,124, - 248,120,248,48,248,0,248,0,248,0,248,0,120,4,120,4, - 56,4,28,8,14,16,7,224,18,28,84,21,2,0,0,254, - 0,0,62,0,0,62,0,0,62,0,0,62,0,0,62,0, - 0,62,0,0,62,0,0,62,0,15,62,0,28,190,0,60, - 126,0,120,126,0,120,62,0,120,62,0,248,62,0,248,62, - 0,248,62,0,248,62,0,248,62,0,248,62,0,248,62,0, - 120,62,0,120,62,0,120,126,0,60,126,0,28,190,0,15, - 63,192,14,19,38,18,2,0,7,192,28,224,56,112,56,120, - 120,120,120,124,248,124,248,124,248,124,255,252,248,0,248,0, - 248,0,120,4,120,4,56,8,60,8,30,16,7,224,14,28, - 56,13,1,0,1,240,7,24,15,28,30,60,30,124,62,124, - 62,56,62,0,62,0,255,192,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,62,0,62,0,62,0, - 62,0,62,0,62,0,62,0,62,0,255,192,19,28,84,22, - 2,247,7,225,192,30,118,96,60,60,224,60,60,224,124,62, - 192,124,62,0,124,62,0,124,62,0,60,60,0,60,60,0, - 30,120,0,7,224,0,56,0,0,96,0,0,96,0,0,127, - 224,0,127,254,0,127,255,0,63,255,128,31,255,128,96,7, - 128,192,3,128,128,3,128,128,3,0,128,3,0,64,6,0, - 48,28,0,15,240,0,20,28,84,22,1,0,255,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,30,0,31,111,0,31,135,128, - 31,135,192,31,135,192,31,7,192,31,7,192,31,7,192,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,192,31,7,192,31,7,192,255,223,240, - 8,28,28,12,2,0,60,126,126,126,126,60,0,0,0,252, - 124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124, - 124,255,12,37,74,13,254,247,1,224,3,240,3,240,3,240, - 3,240,1,224,0,0,0,0,0,0,15,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,123,224,251,224,251,224,243,192,227,192,103,128, - 30,0,20,28,84,21,1,0,255,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,31,192,31,7,0,31,6,0,31,4,0,31, - 8,0,31,16,0,31,16,0,31,48,0,31,120,0,31,248, - 0,31,188,0,31,60,0,31,30,0,31,31,0,31,15,0, - 31,15,128,31,15,128,31,15,192,255,223,240,11,28,56,12, - 1,0,255,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,255,224,27,19,76,30,2,0, - 254,60,30,0,62,222,111,0,63,31,143,0,63,31,143,128, - 63,31,143,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,62,31,15,128,62,31,15,128, - 62,31,15,128,62,31,15,128,255,63,223,224,19,19,57,22, - 2,0,254,60,0,62,222,0,63,15,0,63,15,128,63,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 15,128,62,15,128,62,15,128,255,191,224,16,19,38,20,2, - 0,7,192,12,112,28,56,56,60,120,30,120,30,248,30,248, - 31,248,31,248,31,248,31,248,31,248,30,120,30,120,30,56, - 60,28,56,12,112,7,192,18,28,84,21,1,247,255,60,0, - 31,78,0,31,143,0,31,135,128,31,7,128,31,7,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 192,31,7,192,31,7,128,31,7,128,31,135,128,31,143,0, - 31,78,0,31,60,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,255,192, - 0,17,28,84,20,2,247,7,130,0,28,194,0,60,102,0, - 120,126,0,120,62,0,120,62,0,248,62,0,248,62,0,248, - 62,0,248,62,0,248,62,0,248,62,0,248,62,0,120,62, - 0,120,62,0,120,126,0,60,126,0,28,190,0,15,62,0, - 0,62,0,0,62,0,0,62,0,0,62,0,0,62,0,0, - 62,0,0,62,0,0,62,0,0,255,128,14,19,38,17,2, - 0,254,48,62,120,62,188,63,60,63,124,62,124,62,56,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,0,62, - 0,62,0,62,0,255,128,13,19,38,16,2,0,31,16,97, - 208,96,112,224,48,224,48,240,16,248,0,126,0,127,128,63, - 224,15,240,135,240,193,248,192,120,224,56,224,24,240,16,156, - 48,135,192,12,27,54,14,1,0,6,0,6,0,6,0,6, - 0,6,0,14,0,30,0,62,0,255,224,62,0,62,0,62, - 0,62,0,62,0,62,0,62,0,62,0,62,0,62,16,62, - 16,62,16,62,16,62,16,62,32,62,32,31,192,7,128,19, - 19,57,21,1,0,254,63,128,62,15,128,62,15,128,62,15, - 128,62,15,128,62,15,128,62,15,128,62,15,128,62,15,128, - 62,15,128,62,15,128,62,15,128,62,15,128,62,15,128,62, - 31,128,62,31,128,30,47,128,30,79,128,7,143,224,18,19, - 57,20,1,0,255,143,192,62,3,0,30,2,0,30,2,0, - 31,2,0,15,4,0,15,4,0,15,132,0,7,136,0,7, - 200,0,7,216,0,3,208,0,3,240,0,3,240,0,1,224, - 0,1,224,0,0,224,0,0,192,0,0,192,0,28,19,76, - 30,1,0,255,63,231,240,62,15,129,192,30,7,129,128,30, - 7,129,128,31,7,193,0,15,7,193,0,15,7,195,0,15, - 143,226,0,7,137,226,0,7,137,230,0,7,217,244,0,3, - 208,244,0,3,240,248,0,3,240,248,0,1,224,248,0,1, - 224,112,0,1,192,112,0,0,192,112,0,0,192,32,0,18, - 19,57,20,1,0,255,63,128,126,14,0,62,12,0,31,8, - 0,31,16,0,15,176,0,15,160,0,7,192,0,3,192,0, - 3,224,0,1,240,0,3,240,0,2,248,0,4,248,0,12, - 124,0,8,126,0,24,62,0,56,63,0,254,127,192,19,28, - 84,20,0,247,255,207,224,63,3,128,31,3,0,31,2,0, - 15,2,0,15,130,0,15,130,0,7,196,0,7,196,0,3, - 196,0,3,232,0,3,232,0,1,248,0,1,248,0,0,240, - 0,0,240,0,0,112,0,0,96,0,0,96,0,0,32,0, - 0,64,0,12,64,0,30,64,0,62,64,0,62,128,0,60, - 128,0,29,0,0,14,0,0,14,19,38,17,1,0,127,252, - 120,124,112,248,96,248,65,240,65,224,67,224,3,192,7,192, - 7,128,15,128,31,4,31,4,62,4,62,12,124,12,120,28, - 248,60,255,252,12,35,70,16,2,249,1,240,7,128,15,0, - 15,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,30,0,30,0,56,0,224,0,56,0, - 30,0,30,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,15,0,15,0,7,128,1,240, - 3,36,36,11,4,248,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,12,37,74,16,2,248, - 128,0,240,0,28,0,15,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 7,128,3,192,0,112,3,192,7,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,0,15,0,28,0,248,0,128,0,21,8,24,25,2,6, - 62,0,48,127,192,16,255,240,8,135,252,8,129,255,24,128, - 127,248,192,31,240,96,3,224,255}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 9 y=28 dx=52 dy= 0 ascent=45 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-12 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =45 descent=-12 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35[22097] U8G_FONT_SECTION("u8g_font_osb35") = { - 0,133,60,215,242,35,12,220,29,224,32,255,246,45,244,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,13,0,0,8,35,35, - 14,3,245,60,126,255,255,255,126,60,0,0,0,24,24,24, - 24,24,24,24,24,60,60,60,60,126,126,126,126,254,255,255, - 255,255,255,255,126,60,18,34,102,28,5,250,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,1,240,0,7,236, - 0,15,103,0,30,99,0,62,99,128,126,103,128,126,111,128, - 124,111,128,252,111,128,252,103,0,252,96,0,252,96,0,252, - 96,0,252,96,0,252,96,0,252,96,0,124,96,192,124,96, - 192,62,96,128,62,97,128,30,97,0,15,99,0,7,252,0, - 0,248,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,29,34,136,34,3,1,0,1,255,0,0,7,129,192, - 0,31,0,224,0,31,0,224,0,63,0,240,0,126,1,240, - 0,126,3,240,0,254,3,240,0,254,3,224,0,254,1,192, - 0,254,0,0,0,254,0,0,0,254,0,0,0,254,0,0, - 15,254,0,0,24,126,6,0,0,127,252,0,0,127,0,0, - 0,63,0,0,0,63,0,0,0,63,0,0,0,63,0,0, - 0,31,0,0,0,31,0,0,0,30,0,0,0,30,0,24, - 30,28,0,56,127,220,0,112,195,248,0,224,128,255,255,224, - 128,127,255,192,128,255,255,128,193,207,255,0,127,3,252,0, - 24,22,66,28,2,5,96,126,6,243,255,207,127,255,254,63, - 129,252,30,0,120,60,0,60,56,0,28,56,0,28,112,0, - 14,112,0,14,112,0,14,112,0,14,112,0,14,112,0,14, - 56,0,28,56,0,28,60,0,60,30,0,120,63,129,252,127, - 255,254,243,255,207,96,126,6,26,34,136,28,1,0,255,248, - 63,192,63,224,15,0,31,224,14,0,31,224,12,0,31,224, - 12,0,15,240,8,0,15,240,8,0,7,240,24,0,7,248, - 16,0,3,248,48,0,3,252,32,0,3,252,96,0,1,254, - 64,0,1,254,192,0,0,254,128,0,0,255,128,0,0,255, - 0,0,63,255,254,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,63,255,254,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,0,127,0,0,0,127,0,0,0,127,0,0,0,127, - 0,0,7,255,248,0,3,42,42,13,5,248,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,0,0,0, - 0,0,0,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,22,43,129,30,2,248,1,255,0,7, - 1,192,14,0,224,28,0,224,28,1,240,60,3,240,60,7, - 240,60,7,240,62,7,224,62,3,192,63,0,0,31,192,0, - 31,248,0,15,254,0,31,255,128,55,255,192,97,255,240,96, - 127,248,224,31,248,224,7,252,240,1,252,252,0,124,255,0, - 60,255,192,28,127,240,24,63,252,24,31,255,16,15,255,160, - 3,255,192,0,255,224,0,63,224,0,15,240,6,3,240,31, - 129,240,63,128,240,63,128,240,63,128,240,63,0,240,62,0, - 224,28,1,192,28,3,192,15,7,0,3,252,0,15,6,12, - 21,3,26,120,60,252,126,252,126,252,126,252,126,120,60,35, - 34,170,39,2,1,0,15,254,0,0,0,112,3,192,0,0, - 192,0,96,0,3,128,0,56,0,6,0,0,28,0,12,0, - 0,6,0,24,3,225,134,0,24,15,25,131,0,48,30,15, - 129,128,48,62,7,129,128,96,60,3,128,192,96,124,3,128, - 192,96,124,1,128,192,192,252,1,128,96,192,252,1,128,96, - 192,252,0,0,96,192,252,0,0,96,192,252,0,0,96,192, - 252,0,0,96,192,252,0,128,96,192,252,0,128,96,64,124, - 0,128,192,96,124,1,128,192,96,60,1,0,192,48,62,3, - 1,128,48,30,2,1,128,24,15,12,3,0,24,3,248,6, - 0,12,0,0,6,0,6,0,0,12,0,3,128,0,56,0, - 0,192,0,96,0,0,112,1,192,0,0,15,254,0,0,14, - 17,34,18,2,17,31,0,51,192,97,224,113,224,121,224,57, - 224,7,224,57,224,113,224,241,224,241,228,241,228,241,228,126, - 248,0,0,127,252,127,252,13,20,40,23,5,1,4,0,28, - 24,24,48,56,112,112,96,112,224,241,224,241,224,241,224,241, - 224,241,224,241,224,241,224,112,224,112,224,112,96,56,48,24, - 16,12,0,4,0,23,13,39,27,2,6,255,255,254,255,255, - 254,255,255,254,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,12,5,10,18,3,10,255,240,255,240,255,240,255,240, - 255,240,35,34,170,39,2,1,0,15,254,0,0,0,112,3, - 192,0,0,192,0,96,0,3,128,0,56,0,6,0,0,28, - 0,12,0,0,6,0,24,255,252,6,0,24,62,31,3,0, - 48,62,15,129,128,48,62,15,193,128,96,62,15,192,192,96, - 62,15,192,192,96,62,15,192,192,192,62,15,128,96,192,62, - 31,0,96,192,63,248,0,96,192,62,60,0,96,192,62,30, - 0,96,192,62,15,0,96,192,62,15,128,96,192,62,15,128, - 96,64,62,15,128,192,96,62,15,136,192,96,62,15,136,192, - 48,62,15,137,128,48,62,15,145,128,24,255,231,243,0,24, - 0,3,230,0,12,0,0,6,0,6,0,0,12,0,3,128, - 0,56,0,0,192,0,96,0,0,112,1,192,0,0,15,254, - 0,0,12,3,6,20,4,28,255,240,255,240,255,240,16,15, - 30,28,6,20,15,240,31,248,62,124,120,30,240,14,224,7, - 224,7,224,7,224,7,224,14,112,14,124,60,63,252,31,240, - 3,192,41,36,216,45,2,253,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,255,255,255,255,255,128,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255, - 255,255,255,0,255,255,255,255,255,0,255,255,255,255,255,0, - 14,21,42,21,4,14,31,240,48,248,96,124,224,124,240,124, - 248,124,248,120,120,248,1,240,1,224,3,128,6,0,12,4, - 16,4,32,4,32,12,127,252,127,252,79,248,71,248,1,224, - 16,21,42,22,3,14,31,224,48,248,112,124,112,124,124,124, - 124,124,60,124,0,120,0,224,15,128,0,240,0,124,0,62, - 16,63,124,63,252,63,252,63,240,63,112,126,112,252,31,240, - 8,9,9,21,9,25,6,15,31,62,60,120,240,192,128,24, - 35,105,29,3,244,120,3,192,124,3,192,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 248,7,224,248,7,224,120,7,192,112,3,192,112,3,193,112, - 3,129,48,3,131,48,7,135,48,7,255,56,15,254,62,62, - 254,47,252,126,35,248,60,32,0,0,48,0,0,112,0,0, - 112,0,0,120,0,0,124,0,0,124,0,0,124,0,0,126, - 0,0,126,0,0,126,0,0,62,0,0,28,0,0,23,41, - 123,28,3,249,3,255,254,15,240,224,63,240,224,127,240,224, - 127,240,224,255,240,224,255,240,224,255,240,224,255,240,224,255, - 240,224,255,240,224,255,240,224,255,240,224,255,240,224,127,240, - 224,63,240,224,31,240,224,7,240,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,0, - 112,224,0,112,224,0,112,224,0,112,224,0,112,224,0,112, - 224,0,112,224,0,112,224,0,112,224,0,112,224,0,112,224, - 0,112,224,0,112,224,0,112,224,0,112,224,0,112,224,8, - 7,7,14,3,12,60,126,255,255,255,126,60,10,10,20,21, - 5,246,8,0,8,0,24,0,15,0,7,128,3,192,3,192, - 3,192,199,128,63,0,11,20,40,21,5,14,7,0,15,0, - 255,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,255,224,13,17,34,19,3,17,15,128,24,192,56,224, - 112,112,112,112,240,120,240,120,240,120,240,120,240,120,240,120, - 112,112,112,224,56,224,15,128,0,0,255,248,13,20,40,23, - 5,1,1,0,193,128,96,192,112,224,48,112,56,112,56,120, - 60,120,60,120,60,120,60,120,60,120,60,120,56,112,56,112, - 48,112,96,224,64,192,1,128,1,0,36,36,180,44,5,255, - 0,0,0,48,0,7,0,0,48,0,7,0,0,96,0,31, - 0,0,224,0,255,0,0,192,0,31,0,1,192,0,31,0, - 1,128,0,31,0,3,0,0,31,0,7,0,0,31,0,6, - 0,0,31,0,14,0,0,31,0,12,0,0,31,0,24,0, - 0,31,0,24,0,0,31,0,48,0,0,31,0,112,15,0, - 31,0,96,31,0,31,0,224,31,0,31,0,192,63,0,31, - 1,128,127,0,255,227,128,127,0,0,3,0,223,0,0,7, - 1,159,0,0,6,1,159,0,0,12,3,31,0,0,12,2, - 31,0,0,24,6,31,0,0,56,12,31,0,0,48,15,255, - 240,0,112,0,31,0,0,96,0,31,0,0,192,0,31,0, - 1,192,0,31,0,1,128,0,31,0,3,128,1,255,224,3, - 0,0,0,0,35,36,180,43,5,255,0,0,0,56,0,7, - 0,0,48,0,7,0,0,112,0,31,0,0,224,0,255,0, - 0,192,0,31,0,1,192,0,31,0,1,128,0,31,0,3, - 128,0,31,0,3,0,0,31,0,7,0,0,31,0,14,0, - 0,31,0,12,0,0,31,0,28,0,0,31,0,24,0,0, - 31,0,56,126,0,31,0,113,143,128,31,0,99,7,192,31, - 0,231,3,224,31,0,199,3,224,31,1,199,131,224,255,227, - 135,195,224,0,3,3,199,192,0,7,1,135,128,0,6,0, - 15,0,0,14,0,30,0,0,12,0,56,0,0,24,0,96, - 0,0,56,0,128,32,0,48,1,0,32,0,112,2,0,32, - 0,96,2,255,224,0,192,7,255,224,1,192,6,255,192,1, - 128,4,127,192,3,128,4,63,128,3,0,0,0,0,38,36, - 180,44,3,255,0,0,0,12,0,31,224,0,12,0,48,248, - 0,24,0,112,124,0,56,0,112,124,0,48,0,124,124,0, - 112,0,124,124,0,96,0,60,124,0,192,0,0,120,1,192, - 0,0,224,1,128,0,15,128,3,128,0,0,240,3,0,0, - 0,124,7,0,0,0,62,6,0,0,16,63,12,0,0,124, - 63,28,3,192,252,63,24,7,192,252,63,56,7,192,240,63, - 48,15,192,112,126,112,31,192,112,252,224,31,192,31,240,192, - 55,192,0,1,192,103,192,0,1,128,103,192,0,3,128,199, - 192,0,3,0,135,192,0,6,1,135,192,0,14,3,7,192, - 0,12,3,255,252,0,28,0,7,192,0,24,0,7,192,0, - 56,0,7,192,0,112,0,7,192,0,96,0,7,192,0,224, - 0,127,248,0,192,0,0,0,16,35,70,23,3,245,7,0, - 15,128,31,192,31,192,31,192,15,128,7,0,0,0,0,0, - 7,128,12,224,16,48,16,48,16,48,16,48,0,96,0,224, - 0,192,3,192,7,128,15,128,31,0,31,4,62,4,126,6, - 124,2,252,3,252,3,252,3,252,3,252,6,126,6,63,12, - 31,248,7,224,33,45,225,36,2,0,0,56,0,0,0,0, - 60,0,0,0,0,62,0,0,0,0,62,0,0,0,0,31, - 0,0,0,0,7,0,0,0,0,3,128,0,0,0,1,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,192,0, - 0,0,1,192,0,0,0,1,224,0,0,0,1,224,0,0, - 0,3,224,0,0,0,3,240,0,0,0,3,240,0,0,0, - 7,240,0,0,0,7,248,0,0,0,7,248,0,0,0,15, - 248,0,0,0,15,252,0,0,0,15,252,0,0,0,25,252, - 0,0,0,25,254,0,0,0,25,254,0,0,0,48,254,0, - 0,0,48,255,0,0,0,32,255,0,0,0,96,127,0,0, - 0,96,127,128,0,0,64,127,128,0,0,192,63,128,0,0, - 192,63,192,0,0,255,255,192,0,1,255,255,192,0,1,128, - 31,224,0,1,0,31,224,0,3,0,15,224,0,3,0,15, - 240,0,2,0,15,240,0,6,0,7,240,0,15,0,7,248, - 0,31,0,15,252,0,255,240,255,255,128,33,45,225,36,2, - 0,0,0,14,0,0,0,0,15,0,0,0,0,31,0,0, - 0,0,62,0,0,0,0,60,0,0,0,0,120,0,0,0, - 0,240,0,0,0,0,192,0,0,0,0,128,0,0,0,0, - 0,0,0,0,0,192,0,0,0,1,192,0,0,0,1,224, - 0,0,0,1,224,0,0,0,3,224,0,0,0,3,240,0, - 0,0,3,240,0,0,0,7,240,0,0,0,7,248,0,0, - 0,7,248,0,0,0,15,248,0,0,0,15,252,0,0,0, - 15,252,0,0,0,25,252,0,0,0,25,254,0,0,0,25, - 254,0,0,0,48,254,0,0,0,48,255,0,0,0,32,255, - 0,0,0,96,127,0,0,0,96,127,128,0,0,64,127,128, - 0,0,192,63,128,0,0,192,63,192,0,0,255,255,192,0, - 1,255,255,192,0,1,128,31,224,0,1,0,31,224,0,3, - 0,15,224,0,3,0,15,240,0,6,0,15,240,0,6,0, - 7,240,0,15,0,7,248,0,255,240,255,255,128,255,240,255, - 255,128,33,44,220,36,2,0,0,1,192,0,0,0,1,224, - 0,0,0,3,224,0,0,0,7,240,0,0,0,15,120,0, - 0,0,30,30,0,0,0,120,7,0,0,0,64,1,128,0, - 0,0,0,0,0,0,0,192,0,0,0,1,192,0,0,0, - 1,224,0,0,0,1,224,0,0,0,3,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,7,240,0,0,0,7,248, - 0,0,0,7,248,0,0,0,15,248,0,0,0,15,252,0, - 0,0,15,252,0,0,0,25,252,0,0,0,25,254,0,0, - 0,25,254,0,0,0,48,254,0,0,0,48,255,0,0,0, - 32,255,0,0,0,96,127,0,0,0,96,127,128,0,0,64, - 127,128,0,0,192,63,128,0,0,192,63,192,0,0,255,255, - 192,0,1,255,255,192,0,1,128,31,224,0,1,0,31,224, - 0,3,0,15,224,0,3,0,15,240,0,2,0,15,240,0, - 6,0,7,240,0,15,0,7,248,0,31,0,15,252,0,255, - 240,255,255,128,33,43,215,36,2,0,0,15,1,0,0,0, - 31,227,0,0,0,63,254,0,0,0,33,254,0,0,0,32, - 124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,6,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,255,240,255,255,128,255,240,255,255, - 128,33,43,215,36,2,0,0,60,15,0,0,0,126,31,128, - 0,0,126,31,128,0,0,126,31,128,0,0,126,31,128,0, - 0,60,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,7,248,0,0,0,7,248,0, - 0,0,7,248,0,0,0,15,252,0,0,0,15,252,0,0, - 0,25,252,0,0,0,25,254,0,0,0,24,254,0,0,0, - 48,254,0,0,0,48,255,0,0,0,48,127,0,0,0,96, - 127,0,0,0,96,127,128,0,0,96,63,128,0,0,192,63, - 128,0,0,192,63,192,0,0,255,255,192,0,1,255,255,192, - 0,1,128,31,224,0,1,128,15,224,0,3,0,15,224,0, - 3,0,15,240,0,3,0,7,240,0,7,0,7,240,0,15, - 0,7,248,0,31,128,15,252,0,255,240,255,255,128,33,45, - 225,36,2,0,0,1,224,0,0,0,7,248,0,0,0,14, - 28,0,0,0,12,12,0,0,0,12,12,0,0,0,12,12, - 0,0,0,14,28,0,0,0,7,248,0,0,0,3,240,0, - 0,0,0,0,0,0,0,0,192,0,0,0,1,192,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,224,0,0,0, - 3,240,0,0,0,3,240,0,0,0,7,240,0,0,0,7, - 248,0,0,0,7,248,0,0,0,15,248,0,0,0,13,252, - 0,0,0,13,252,0,0,0,29,252,0,0,0,25,254,0, - 0,0,24,254,0,0,0,56,254,0,0,0,48,255,0,0, - 0,48,127,0,0,0,112,127,0,0,0,96,127,128,0,0, - 96,63,128,0,0,224,63,128,0,0,192,63,192,0,0,255, - 255,192,0,1,255,255,192,0,1,128,31,224,0,1,128,31, - 224,0,3,0,15,224,0,3,0,15,240,0,3,0,15,240, - 0,7,0,7,240,0,15,0,7,248,0,31,128,15,252,0, - 255,240,255,255,128,45,34,204,48,1,0,0,0,127,255,255, - 240,0,0,31,248,7,240,0,0,15,248,1,240,0,0,15, - 248,0,240,0,0,31,248,0,240,0,0,27,248,0,112,0, - 0,59,248,0,112,0,0,51,248,0,48,0,0,115,248,0, - 48,0,0,99,248,12,48,0,0,227,248,12,16,0,0,195, - 248,12,0,0,1,195,248,28,0,0,1,131,248,28,0,0, - 3,131,248,60,0,0,3,3,248,124,0,0,7,3,255,252, - 0,0,6,3,248,124,0,0,14,3,248,60,0,0,12,3, - 248,28,0,0,28,3,248,28,0,0,24,3,248,12,24,0, - 56,3,248,12,24,0,63,255,248,12,24,0,96,3,248,0, - 56,0,224,3,248,0,56,0,192,3,248,0,56,1,192,3, - 248,0,120,1,128,3,248,0,120,3,128,3,248,0,248,7, - 128,3,248,1,248,15,128,3,248,3,248,255,248,127,255,255, - 248,255,248,127,255,255,248,26,45,180,31,3,246,0,127,193, - 128,1,224,241,128,3,192,63,128,7,128,31,128,15,128,15, - 128,31,0,15,128,63,0,7,128,63,0,7,128,63,0,3, - 128,127,0,3,128,127,0,1,128,127,0,1,128,255,0,1, - 128,255,0,1,128,255,0,1,128,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,192,127,0,0,192,127,0,0,192,127,0,0, - 128,63,0,0,128,63,0,1,128,63,0,1,128,31,128,3, - 0,15,128,3,0,7,128,6,0,3,192,12,0,1,224,56, - 0,0,127,224,0,0,12,0,0,0,8,0,0,0,30,0, - 0,0,31,128,0,0,3,192,0,0,1,224,0,0,1,224, - 0,0,1,224,0,0,129,192,0,0,199,192,0,0,63,0, - 0,27,45,180,33,3,0,0,224,0,0,1,240,0,0,1, - 240,0,0,0,248,0,0,0,124,0,0,0,60,0,0,0, - 14,0,0,0,6,0,0,0,2,0,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,45,180,33,3, - 0,0,0,56,0,0,0,120,0,0,0,248,0,0,0,248, - 0,0,1,240,0,0,3,192,0,0,3,128,0,0,6,0, - 0,0,4,0,0,0,0,0,0,0,0,0,0,255,255,255, - 224,15,224,31,224,15,224,7,224,15,224,3,224,15,224,1, - 224,15,224,1,224,15,224,0,224,15,224,0,224,15,224,0, - 96,15,224,48,96,15,224,48,96,15,224,48,0,15,224,112, - 0,15,224,112,0,15,224,240,0,15,225,240,0,15,255,240, - 0,15,225,240,0,15,224,240,0,15,224,112,0,15,224,112, - 32,15,224,48,96,15,224,48,96,15,224,48,96,15,224,0, - 96,15,224,0,224,15,224,0,224,15,224,0,224,15,224,1, - 224,15,224,3,224,15,224,3,224,15,224,15,224,255,255,255, - 224,255,255,255,224,27,44,176,33,3,0,0,6,0,0,0, - 15,0,0,0,15,128,0,0,31,192,0,0,57,224,0,0, - 240,112,0,3,192,28,0,0,0,4,0,0,0,0,0,0, - 0,0,0,255,255,255,224,15,224,31,224,15,224,7,224,15, - 224,3,224,15,224,1,224,15,224,1,224,15,224,0,224,15, - 224,0,224,15,224,0,96,15,224,48,96,15,224,48,96,15, - 224,48,0,15,224,112,0,15,224,112,0,15,224,240,0,15, - 225,240,0,15,255,240,0,15,225,240,0,15,224,240,0,15, - 224,112,0,15,224,112,32,15,224,48,96,15,224,48,96,15, - 224,48,96,15,224,0,96,15,224,0,96,15,224,0,224,15, - 224,0,224,15,224,1,224,15,224,3,224,15,224,3,224,15, - 224,15,224,255,255,255,224,255,255,255,224,27,43,172,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,255,255,224,15,224,31,224,15,224,7, - 224,15,224,3,224,15,224,1,224,15,224,1,224,15,224,0, - 224,15,224,0,224,15,224,0,224,15,224,48,96,15,224,48, - 96,15,224,48,0,15,224,112,0,15,224,112,0,15,224,240, - 0,15,225,240,0,15,255,240,0,15,225,240,0,15,224,240, - 0,15,224,112,0,15,224,112,96,15,224,48,96,15,224,48, - 96,15,224,48,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,0,224,15,224,1,224,15,224,3,224,15,224,3, - 224,15,224,15,224,255,255,255,224,255,255,255,224,16,45,90, - 21,3,0,56,0,124,0,124,0,62,0,31,0,15,0,3, - 128,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,45,90, - 21,3,0,0,14,0,30,0,62,0,60,0,120,0,240,0, - 224,1,192,0,0,0,0,0,0,255,255,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,255,255,16,44,88, - 21,3,0,1,192,3,192,3,224,7,240,31,120,60,28,240, - 7,0,1,0,0,0,0,255,255,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,255,255,255,255,16,43,86,21,3, - 0,120,30,252,63,252,63,252,63,252,63,120,30,0,0,0, - 0,0,0,255,255,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,255,255,32,34,136,37,3,0,255,255,248, - 0,7,240,31,0,7,240,7,128,7,240,3,224,7,240,1, - 240,7,240,1,240,7,240,0,248,7,240,0,252,7,240,0, - 252,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,255,255,0, - 255,7,240,0,255,7,240,0,255,7,240,0,255,7,240,0, - 255,7,240,0,254,7,240,0,254,7,240,0,254,7,240,0, - 254,7,240,0,252,7,240,0,252,7,240,0,248,7,240,1, - 240,7,240,1,224,7,240,3,192,7,240,7,128,7,240,31, - 0,255,255,248,0,34,44,220,37,2,255,0,7,128,128,0, - 0,15,241,128,0,0,31,255,0,0,0,16,255,0,0,0, - 16,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,224,15,255,192,31,240,3, - 255,0,15,240,0,252,0,15,248,0,120,0,7,252,0,48, - 0,3,254,0,48,0,3,254,0,48,0,3,255,0,48,0, - 3,255,128,48,0,3,255,128,48,0,3,127,192,48,0,3, - 63,224,48,0,3,31,224,48,0,3,31,240,48,0,3,15, - 248,48,0,3,7,248,48,0,3,7,252,48,0,3,3,254, - 48,0,3,1,255,48,0,3,1,255,48,0,3,0,255,176, - 0,3,0,127,240,0,3,0,127,240,0,3,0,63,240,0, - 3,0,31,240,0,3,0,15,240,0,3,0,15,240,0,3, - 0,7,240,0,3,0,3,240,0,3,0,3,240,0,7,128, - 1,240,0,15,192,0,240,0,63,240,0,240,0,255,252,0, - 112,0,0,0,0,48,0,28,45,180,33,3,0,0,192,0, - 0,1,224,0,0,1,240,0,0,0,248,0,0,0,120,0, - 0,0,60,0,0,0,28,0,0,0,6,0,0,0,2,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,28,45,180,33,3,0,0,0,48,0,0,0,120,0,0, - 0,248,0,0,1,240,0,0,1,224,0,0,3,192,0,0, - 3,128,0,0,6,0,0,0,4,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,45,180,33,3, - 0,0,6,0,0,0,14,0,0,0,15,0,0,0,31,128, - 0,0,63,192,0,0,121,224,0,0,240,240,0,3,192,60, - 0,3,0,12,0,0,0,0,0,0,0,0,0,0,63,192, - 0,0,224,112,0,3,192,56,0,7,128,30,0,15,128,30, - 0,15,0,15,0,31,0,15,128,63,0,15,192,63,0,15, - 192,127,0,15,192,127,0,15,224,127,0,15,224,127,0,15, - 224,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,127,0,15,224,127,0,15,224,127,0,15,224,127,0,15, - 192,63,0,15,192,63,0,15,192,31,0,15,128,15,0,15, - 0,15,128,31,0,7,128,30,0,3,192,60,0,0,224,112, - 0,0,63,192,0,28,44,176,33,3,0,0,0,8,0,0, - 126,24,0,0,255,248,0,1,255,240,0,1,7,224,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,63,192,0,0,224,112,0,3,192,56,0,7, - 128,30,0,15,128,30,0,15,0,15,0,31,0,15,128,63, - 0,15,192,63,0,15,192,127,0,15,192,127,0,15,224,127, - 0,15,224,127,0,15,224,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,255,0,15,240,255,0,15,240,255, - 0,15,240,255,0,15,240,127,0,15,224,127,0,15,224,127, - 0,15,224,127,0,15,192,63,0,15,192,63,0,15,192,31, - 0,15,128,15,0,15,0,15,128,31,0,7,128,30,0,3, - 192,60,0,0,224,112,0,0,63,192,0,28,44,176,33,3, - 0,1,224,120,0,3,240,252,0,3,240,252,0,3,240,252, - 0,3,240,252,0,1,224,120,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,63,192,0,0,224,112, - 0,3,192,56,0,7,128,30,0,15,128,30,0,15,0,15, - 0,31,0,15,128,63,0,15,192,63,0,15,192,127,0,15, - 192,127,0,15,224,127,0,15,224,127,0,15,224,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,255,0,15, - 240,255,0,15,240,255,0,15,240,255,0,15,240,127,0,15, - 224,127,0,15,224,127,0,15,224,127,0,15,192,63,0,15, - 192,63,0,15,192,31,0,15,128,15,0,15,0,15,128,31, - 0,7,128,30,0,3,192,60,0,0,224,112,0,0,63,192, - 0,31,30,120,45,7,253,32,0,0,0,112,0,0,12,248, - 0,0,30,124,0,0,60,62,0,0,120,31,0,1,240,15, - 128,3,224,7,192,7,192,3,224,15,128,1,240,31,0,0, - 248,62,0,0,124,124,0,0,62,248,0,0,31,240,0,0, - 15,224,0,0,7,192,0,0,15,224,0,0,31,240,0,0, - 62,248,0,0,124,60,0,0,248,30,0,1,240,15,0,3, - 224,7,128,7,192,3,192,15,128,1,224,31,0,0,240,62, - 0,0,120,124,0,0,60,248,0,0,30,112,0,0,12,28, - 34,136,33,3,1,0,63,224,48,0,224,112,96,1,192,60, - 192,7,128,31,192,15,128,31,128,15,0,15,0,31,0,15, - 128,63,0,15,192,63,0,31,192,63,0,31,224,127,0,63, - 224,127,0,111,224,127,0,239,224,255,0,207,240,255,1,143, - 240,255,3,15,240,255,7,15,240,255,14,15,240,255,12,15, - 240,255,24,15,240,255,48,15,240,255,112,15,224,127,96,15, - 224,127,192,15,224,127,128,15,192,63,128,15,192,63,0,15, - 192,31,0,15,128,15,0,15,0,31,128,30,0,63,128,30, - 0,51,192,56,0,96,224,112,0,192,127,192,0,33,45,225, - 38,3,0,0,24,0,0,0,0,60,0,0,0,0,62,0, - 0,0,0,31,0,0,0,0,15,128,0,0,0,7,128,0, - 0,0,1,192,0,0,0,0,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,33,45,225,38,3,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,31,0,0,0,0, - 60,0,0,0,0,56,0,0,0,0,112,0,0,0,0,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,255,255,7,255,128,15,224,1,254,0,15,224,0,120,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,7,224,0,48,0,7,224,0,96,0,7,240,0, - 96,0,3,240,0,192,0,1,248,1,192,0,0,252,3,128, - 0,0,127,159,0,0,0,31,252,0,0,33,45,225,38,3, - 0,0,0,64,0,0,0,0,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,7,248,0,0,0,15,28,0,0,0, - 30,15,0,0,0,112,3,128,0,0,0,0,128,0,0,0, - 0,0,0,0,0,0,0,0,255,255,7,255,128,15,224,1, - 254,0,15,224,0,120,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,7,224,0,48,0,7, - 224,0,96,0,7,240,0,96,0,3,240,0,192,0,1,248, - 1,192,0,0,252,3,128,0,0,127,159,0,0,0,31,252, - 0,0,33,44,220,38,3,0,0,60,15,0,0,0,126,31, - 128,0,0,126,31,128,0,0,126,31,128,0,0,126,31,128, - 0,0,60,15,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,254,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,32,45,180,35,2,0,0,0,7,0,0,0, - 15,0,0,0,31,0,0,0,31,0,0,0,60,0,0,0, - 120,0,0,0,112,0,0,0,192,0,0,0,128,0,0,0, - 0,0,0,0,0,0,255,254,15,255,31,248,1,248,15,248, - 0,240,7,248,0,224,7,248,0,192,3,252,0,192,3,252, - 0,192,1,252,1,128,1,254,1,128,0,254,3,0,0,255, - 3,0,0,255,3,0,0,127,134,0,0,127,134,0,0,63, - 196,0,0,63,204,0,0,31,204,0,0,31,248,0,0,15, - 248,0,0,15,248,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,255,255,0,29,34, - 136,34,3,0,255,255,128,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,255,248,0, - 7,240,63,0,7,240,15,192,7,240,15,224,7,240,15,240, - 7,240,7,240,7,240,7,248,7,240,7,248,7,240,7,248, - 7,240,7,248,7,240,7,248,7,240,7,248,7,240,7,240, - 7,240,15,240,7,240,15,224,7,240,15,192,7,240,31,0, - 7,255,252,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,7,240,0,0,7,240,0,0, - 7,240,0,0,7,240,0,0,255,255,128,0,23,34,102,27, - 2,0,0,127,0,1,227,128,3,195,224,7,193,224,7,193, - 240,15,129,240,15,129,240,15,129,240,31,129,240,31,129,224, - 31,129,224,31,129,192,31,131,128,31,188,0,31,131,0,31, - 129,192,31,128,240,31,128,248,31,128,248,31,128,124,31,128, - 124,31,128,126,31,128,126,31,128,126,31,128,126,31,128,126, - 31,128,126,31,184,126,31,252,124,31,252,124,31,248,252,31, - 248,248,31,184,240,255,159,224,21,34,102,24,2,0,24,0, - 0,60,0,0,62,0,0,30,0,0,15,0,0,7,128,0, - 3,128,0,1,192,0,0,192,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,60,31,128,0,127,128,3,223,128, - 15,31,128,30,31,128,62,31,128,124,31,128,252,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,127, - 240,63,143,224,21,34,102,24,2,0,0,12,0,0,30,0, - 0,62,0,0,62,0,0,124,0,0,120,0,0,224,0,0, - 192,0,1,128,0,0,0,0,0,0,0,0,0,0,15,248, - 0,24,62,0,56,63,0,120,31,0,124,31,128,126,31,128, - 126,31,128,62,31,128,8,63,128,1,255,128,7,159,128,30, - 31,128,62,31,128,124,31,128,124,31,128,252,31,128,252,31, - 136,252,31,136,252,31,152,254,63,144,127,127,240,63,143,224, - 21,34,102,24,2,0,1,192,0,1,224,0,3,224,0,3, - 224,0,7,240,0,7,56,0,14,28,0,28,14,0,48,7, - 0,0,0,0,0,0,0,0,0,0,15,248,0,24,62,0, - 56,63,0,120,31,0,124,31,128,126,31,128,126,31,128,62, - 31,128,8,63,128,1,255,128,7,159,128,30,31,128,62,31, - 128,124,31,128,124,31,128,252,31,128,252,31,136,252,31,136, - 252,31,152,254,63,144,127,127,240,63,143,224,21,32,96,24, - 2,0,15,3,0,31,195,0,63,254,0,49,252,0,32,120, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 15,248,0,24,62,0,56,63,0,120,31,0,124,31,128,126, - 31,128,126,31,128,62,31,128,8,63,128,1,255,128,7,159, - 128,30,31,128,62,31,128,124,31,128,124,31,128,252,31,128, - 252,31,136,252,31,136,252,31,152,254,63,144,127,127,240,63, - 143,224,21,32,96,24,2,0,60,30,0,126,63,0,126,63, - 0,126,63,0,126,63,0,60,30,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,21,34,102,24,2,1,3,240, - 0,7,248,0,14,28,0,12,12,0,12,12,0,12,12,0, - 14,28,0,7,248,0,1,224,0,0,0,0,0,0,0,0, - 0,0,15,248,0,24,62,0,56,63,0,120,31,0,124,31, - 128,126,31,128,126,31,128,62,31,128,8,63,128,1,255,128, - 7,31,128,30,31,128,62,31,128,124,31,128,124,31,128,252, - 31,128,252,31,136,252,31,136,252,31,152,254,63,144,127,111, - 240,63,199,224,29,22,88,34,2,1,15,240,255,128,24,63, - 195,192,56,63,195,224,120,31,131,240,124,31,129,240,126,31, - 129,240,126,31,129,248,62,31,129,248,0,63,129,248,1,255, - 129,248,7,31,255,248,30,31,128,0,62,31,128,0,124,31, - 128,0,124,31,128,8,252,31,128,8,252,31,128,24,252,31, - 192,16,252,31,192,16,254,51,192,32,127,97,240,64,63,192, - 255,128,18,32,96,22,2,247,3,252,0,15,6,0,31,7, - 0,62,7,128,62,7,128,126,15,128,124,31,128,252,31,128, - 252,31,0,252,14,0,252,0,0,252,0,0,252,0,0,252, - 0,0,252,0,0,124,0,64,124,0,192,62,0,128,62,1, - 128,30,1,0,15,130,0,3,252,0,0,128,0,0,128,0, - 1,128,0,0,240,0,0,56,0,0,60,0,0,60,0,0, - 60,0,4,120,0,3,240,0,18,34,102,23,2,0,28,0, - 0,30,0,0,30,0,0,31,0,0,15,128,0,7,128,0, - 3,192,0,0,192,0,0,96,0,0,0,0,0,0,0,0, - 0,0,3,252,0,14,30,0,30,31,0,62,15,128,60,15, - 128,124,15,128,124,15,192,252,15,192,252,15,192,252,15,192, - 255,255,192,252,0,0,252,0,0,252,0,0,252,0,64,124, - 0,64,124,0,192,62,0,192,62,1,128,31,1,0,15,135, - 0,3,252,0,18,34,102,23,2,0,0,14,0,0,31,0, - 0,31,0,0,62,0,0,60,0,0,120,0,0,240,0,0, - 224,0,1,128,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,23,2,0,1,224,0,1,224,0,1,240,0,3, - 240,0,3,248,0,7,56,0,14,28,0,28,14,0,56,3, - 0,0,0,0,0,0,0,0,0,0,3,252,0,14,30,0, - 30,31,0,62,15,128,60,15,128,124,15,128,124,15,192,252, - 15,192,252,15,192,252,15,192,255,255,192,252,0,0,252,0, - 0,252,0,0,252,0,64,124,0,64,124,0,192,62,0,192, - 62,0,128,31,1,0,15,131,0,3,252,0,18,32,96,23, - 2,0,30,15,0,63,31,128,63,31,128,63,31,128,63,31, - 128,30,15,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,14,30,0,30,31,0,62,15,128,60,15,128,124, - 15,128,124,15,192,252,15,192,252,15,192,252,15,192,255,255, - 192,252,0,0,252,0,0,252,0,0,252,0,64,124,0,64, - 124,0,192,62,0,192,62,0,128,31,1,0,15,131,0,3, - 252,0,12,34,68,15,1,0,96,0,240,0,248,0,248,0, - 124,0,28,0,14,0,7,0,3,0,0,0,0,0,0,0, - 127,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,31,128,31,128,31,128, - 31,128,31,128,31,128,31,128,31,128,127,240,12,34,68,15, - 2,0,0,224,1,240,1,240,3,224,7,192,7,128,15,0, - 28,0,24,0,0,0,0,0,0,0,255,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,63,0,63,0,63,0,63,0,63,0,63,0, - 63,0,63,0,255,224,14,34,68,14,0,0,7,128,15,128, - 15,128,15,192,31,224,60,224,56,112,112,60,192,12,0,0, - 0,0,0,0,63,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,63,248, - 14,32,64,14,1,0,120,120,252,252,252,252,252,252,252,252, - 120,120,0,0,0,0,0,0,0,0,63,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,15,192,15,192,15,192,15,192,15,192,15,192, - 15,192,15,192,63,248,20,34,102,24,2,0,15,193,128,15, - 227,0,7,254,0,3,248,0,1,248,0,1,252,0,3,254, - 0,14,126,0,24,63,0,0,63,128,0,31,128,0,15,192, - 7,255,192,15,15,224,30,7,224,62,7,224,62,7,224,124, - 7,240,124,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,7,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,23,32,96,27,2,0,3,224,96,7,248,64,15,255, - 192,12,127,128,8,15,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,31,192,63,35,224,63,65,240,63, - 65,248,63,129,248,63,129,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 63,1,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,255,199,254,20,34,102,24,2,0,14,0, - 0,31,0,0,31,0,0,15,128,0,7,192,0,3,192,0, - 1,224,0,0,96,0,0,48,0,0,0,0,0,0,0,0, - 0,0,3,252,0,15,15,0,30,7,128,62,7,192,62,7, - 192,124,3,224,124,3,224,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,252,3,240,252,3,240,252,3,240,124, - 3,224,124,3,224,62,7,192,62,7,192,30,7,128,15,15, - 0,3,252,0,20,34,102,24,2,0,0,7,0,0,15,128, - 0,15,128,0,31,0,0,62,0,0,60,0,0,120,0,0, - 224,0,0,192,0,0,0,0,0,0,0,0,0,0,3,252, - 0,15,15,0,30,7,128,62,7,192,62,7,192,124,3,224, - 124,3,224,252,3,240,252,3,240,252,3,240,252,3,240,252, - 3,240,252,3,240,252,3,240,252,3,240,124,3,224,124,3, - 224,62,7,192,62,7,192,30,7,128,15,15,0,3,252,0, - 20,34,102,24,2,0,0,240,0,0,240,0,1,248,0,1, - 248,0,3,252,0,3,156,0,7,14,0,14,7,0,24,1, - 128,0,0,0,0,0,0,0,0,0,3,252,0,15,15,0, - 30,7,128,62,7,192,62,7,192,124,3,224,124,3,224,252, - 3,240,252,3,240,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,124,3,224,124,3,224,62,7,192, - 62,7,192,30,7,128,15,15,0,3,252,0,20,32,96,24, - 2,0,7,192,128,15,240,128,31,255,128,16,255,0,16,62, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 3,252,0,15,15,0,30,7,128,62,7,192,62,7,192,124, - 3,224,124,3,224,252,3,240,252,3,240,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,124,3,224, - 124,3,224,62,7,192,62,7,192,30,7,128,15,15,0,3, - 252,0,20,32,96,24,2,0,30,15,0,63,31,128,63,31, - 128,63,31,128,63,31,128,30,15,0,0,0,0,0,0,0, - 0,0,0,0,0,0,3,252,0,15,15,0,30,7,128,62, - 7,192,62,7,192,124,3,224,124,3,224,252,3,240,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,124,3,224,124,3,224,62,7,192,62,7,192,30, - 7,128,15,15,0,3,252,0,41,32,192,45,2,253,0,0, - 28,0,0,0,0,0,62,0,0,0,0,0,127,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,62,0, - 0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,28,0,0,0,0,0,62,0,0,0, - 0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0, - 0,0,0,0,62,0,0,0,0,0,28,0,0,0,20,22, - 66,24,2,1,3,252,48,15,15,96,30,15,192,62,7,192, - 62,7,192,124,7,224,124,7,224,252,15,240,252,27,240,252, - 51,240,252,115,240,252,227,240,252,195,240,253,131,240,255,3, - 240,126,3,224,126,3,224,62,7,192,62,7,192,63,7,128, - 111,15,0,195,252,0,24,34,102,26,1,0,7,0,0,7, - 128,0,7,192,0,7,192,0,3,224,0,1,224,0,0,112, - 0,0,48,0,0,24,0,0,0,0,0,0,0,0,0,0, - 255,143,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,131,248,31,131,248,31,133,248,15,133,248,15,201,248,7, - 241,255,24,34,102,26,1,0,0,3,128,0,3,128,0,7, - 128,0,15,128,0,15,0,0,30,0,0,28,0,0,56,0, - 0,48,0,0,0,0,0,0,0,0,0,0,255,143,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,131,248,31, - 131,248,31,133,248,15,133,248,15,201,248,7,241,255,24,34, - 102,26,1,0,0,56,0,0,120,0,0,124,0,0,252,0, - 0,254,0,1,206,0,3,135,0,7,3,128,14,0,192,0, - 0,0,0,0,0,0,0,0,255,143,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,131,248,31,131,248,31,133, - 248,15,133,248,15,201,248,7,241,255,24,32,96,26,1,0, - 7,131,192,15,199,224,15,199,224,15,199,224,15,199,224,7, - 131,192,0,0,0,0,0,0,0,0,0,0,0,0,255,135, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,129,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,131, - 248,31,131,248,31,133,248,15,133,248,15,201,248,7,241,255, - 23,45,135,25,1,245,0,1,192,0,1,224,0,3,224,0, - 7,192,0,7,128,0,15,0,0,14,0,0,28,0,0,24, - 0,0,0,0,0,0,0,0,0,0,255,241,254,63,192,120, - 31,128,48,15,192,32,15,192,32,15,192,96,7,224,64,7, - 224,64,3,240,192,3,240,128,1,248,128,1,249,128,0,249, - 0,0,253,0,0,253,0,0,126,0,0,126,0,0,62,0, - 0,60,0,0,28,0,0,28,0,0,12,0,0,8,0,0, - 8,0,0,8,0,15,16,0,31,16,0,63,144,0,63,32, - 0,62,32,0,62,64,0,31,192,0,15,0,0,22,44,132, - 25,1,244,3,128,0,15,128,0,63,128,0,255,128,0,223, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,135,240,31,159,248,31,177,248,31,160,252,31,192,252, - 31,192,252,31,192,252,31,128,252,31,128,252,31,128,248,31, - 129,248,31,129,240,31,129,240,31,129,224,31,131,192,31,131, - 128,31,135,128,31,134,0,31,140,0,31,152,0,31,224,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,30,0,0,120,0, - 0,224,0,0,128,0,0,23,44,132,25,1,245,3,193,224, - 7,227,240,7,227,240,7,227,240,7,227,240,3,193,224,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,241, - 254,63,192,120,31,128,48,15,192,32,15,192,32,15,192,96, - 7,224,64,7,224,64,3,240,192,3,240,128,1,240,128,1, - 249,128,0,249,0,0,253,0,0,253,0,0,126,0,0,126, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,12,0, - 0,8,0,0,8,0,0,8,0,15,16,0,31,16,0,63, - 144,0,63,32,0,62,32,0,62,64,0,31,192,0,15,0, - 0}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=44 x= 6 y=13 dx=45 dy= 0 ascent=35 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x= 0 y=-9 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =35 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35n[1567] U8G_FONT_SECTION("u8g_font_osb35n") = { - 0,133,60,215,242,34,0,0,0,0,42,58,0,35,247,34, - 0,17,19,57,24,4,13,1,128,0,3,192,0,3,192,0, - 227,195,0,241,135,128,248,143,128,252,159,128,126,191,0,3, - 192,0,3,192,0,126,191,0,252,159,128,248,143,128,241,135, - 128,225,195,0,3,192,0,3,192,0,3,192,0,1,128,0, - 41,41,246,45,2,249,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,255,255,255,255,255,128,255,255, - 255,255,255,128,255,255,255,255,255,128,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,0,0,28,0, - 0,0,0,0,28,0,0,0,0,0,28,0,0,0,0,0, - 28,0,0,0,0,0,28,0,0,0,0,0,28,0,0,0, - 0,0,28,0,0,0,0,0,28,0,0,0,9,15,30,13, - 2,248,126,0,255,0,255,128,255,128,255,128,127,128,1,128, - 1,128,1,128,3,0,2,0,6,0,28,0,56,0,96,0, - 12,5,10,18,3,10,255,240,255,240,255,240,255,240,255,240, - 8,6,6,14,3,1,126,255,255,255,255,126,16,44,88,22, - 3,247,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,1,224,1,192,1,192,3,192,3,128, - 3,128,7,128,7,0,7,0,15,0,14,0,14,0,14,0, - 30,0,28,0,28,0,60,0,56,0,56,0,120,0,112,0, - 112,0,240,0,224,0,224,0,224,0,23,35,105,28,2,0, - 0,16,0,0,254,0,3,199,128,7,131,192,15,1,224,15, - 1,224,31,1,240,63,1,248,63,1,248,127,1,248,127,1, - 252,127,1,252,127,1,252,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,255,1,254,127,1,252,127,1,252,127,1,252,127,1, - 252,63,1,248,63,1,248,31,1,240,15,1,224,15,1,224, - 7,131,192,3,199,128,0,254,0,16,34,68,28,6,0,0, - 240,0,240,1,240,7,240,255,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,255, - 255,255,255,21,34,102,28,3,1,7,255,0,14,15,192,28, - 7,224,56,7,240,120,3,240,120,3,248,248,3,248,252,3, - 248,255,3,248,255,3,248,255,7,248,127,7,240,63,15,240, - 12,15,224,0,31,192,0,63,128,0,127,0,0,252,0,1, - 240,0,3,192,0,7,128,0,14,0,24,12,0,24,24,0, - 24,48,0,24,96,0,24,111,192,56,127,255,248,255,255,240, - 239,255,240,195,255,240,193,255,224,192,255,192,192,63,128,22, - 34,102,28,3,1,7,255,0,14,15,192,28,7,224,56,7, - 240,120,3,240,124,3,248,126,3,248,127,3,248,127,3,248, - 127,3,248,63,3,240,30,3,240,0,7,224,0,7,192,0, - 15,0,7,248,0,0,31,128,0,15,192,0,7,224,0,7, - 240,0,3,248,0,3,248,62,3,252,127,3,252,255,3,252, - 255,3,252,255,3,252,254,3,252,252,3,248,248,7,248,120, - 7,240,56,15,224,30,31,192,15,255,0,23,34,102,28,2, - 0,0,7,192,0,15,192,0,15,192,0,31,192,0,63,192, - 0,63,192,0,127,192,0,127,192,0,255,192,0,223,192,1, - 223,192,1,159,192,3,159,192,7,31,192,6,31,192,14,31, - 192,12,31,192,28,31,192,24,31,192,56,31,192,112,31,192, - 96,31,192,224,31,192,255,255,254,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,0,31, - 192,7,255,252,7,255,252,21,34,102,28,4,0,32,0,192, - 60,7,128,63,255,128,63,255,0,63,254,0,63,248,0,63, - 224,0,63,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,49,252,0,54,63,0,60,15,192,56,15,224, - 48,15,224,32,7,240,0,7,240,0,7,248,0,7,248,8, - 7,248,62,7,248,126,7,248,254,7,248,254,7,248,254,7, - 240,248,7,240,240,7,224,112,15,192,48,15,192,28,31,0, - 15,252,0,22,34,102,28,3,1,0,255,128,3,192,192,7, - 192,96,15,128,240,31,131,240,31,7,240,63,15,240,63,15, - 240,127,15,224,127,7,192,127,3,0,127,0,0,255,0,0, - 255,0,0,255,63,0,255,255,192,255,195,224,255,131,240,255, - 3,248,255,1,248,255,1,252,255,1,252,255,1,252,127,1, - 252,127,1,252,127,1,252,127,1,252,63,1,248,63,1,248, - 31,1,248,15,129,240,7,131,224,3,195,192,1,255,0,20, - 34,102,28,5,1,71,224,224,207,240,224,223,248,112,255,252, - 48,255,254,48,255,255,240,255,255,240,224,31,176,192,0,32, - 192,0,96,128,0,96,128,0,192,128,1,192,0,1,128,0, - 3,128,0,7,0,0,15,0,0,14,0,0,30,0,0,60, - 0,0,124,0,0,252,0,1,252,0,1,248,0,3,248,0, - 3,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,7,248,0,3,248,0,3,240,0,23,34,102,28,3, - 1,1,255,128,7,0,192,12,0,96,28,0,48,56,0,24, - 56,0,24,120,0,24,120,0,24,124,0,24,126,0,24,127, - 0,48,127,192,32,127,240,96,63,255,128,63,255,0,31,255, - 192,15,255,240,7,255,248,15,255,248,24,63,252,48,15,252, - 112,3,254,96,0,254,224,0,126,224,0,62,224,0,30,224, - 0,30,224,0,12,240,0,28,112,0,24,56,0,24,28,0, - 48,15,0,192,3,255,0,22,34,102,28,3,1,3,254,0, - 15,15,0,31,7,128,62,7,192,126,3,224,126,3,240,126, - 3,240,254,3,248,254,3,248,254,3,248,254,3,248,254,3, - 252,254,3,252,254,3,252,126,3,252,127,7,252,63,7,252, - 31,15,252,15,255,252,3,243,252,0,3,252,0,3,252,0, - 3,248,7,3,248,31,131,248,31,195,248,63,195,240,63,195, - 240,63,131,224,62,7,224,60,7,192,28,15,128,14,31,0, - 7,252,0,8,22,22,14,3,1,126,255,255,255,255,126,0, - 0,0,0,0,0,0,0,0,0,126,255,255,255,255,126}; -/* - Fontname: -FreeType-Old Standard TT-Bold-R-Normal--48-480-72-72-P-258-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=25 dx=52 dy= 0 ascent=38 len=246 - Font Bounding box w=133 h=60 x=-41 y=-14 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =35 descent=-10 - Max Font ascent =38 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osb35r[10247] U8G_FONT_SECTION("u8g_font_osb35r") = { - 0,133,60,215,242,35,12,220,29,224,32,127,246,38,245,35, - 246,0,0,0,13,0,0,8,34,34,14,3,1,126,126,255, - 255,255,255,255,255,126,126,126,126,60,60,60,60,60,24,24, - 24,24,24,24,24,24,0,0,0,126,255,255,255,255,126,12, - 12,24,18,3,23,32,64,241,224,249,240,249,240,249,240,249, - 240,249,240,112,224,112,224,112,224,112,224,112,224,28,34,136, - 34,3,0,0,112,14,0,0,112,14,0,0,112,14,0,0, - 112,14,0,0,240,30,0,0,224,28,0,0,224,28,0,0, - 224,28,0,0,224,28,0,255,255,255,240,255,255,255,240,255, - 255,255,240,1,192,56,0,1,192,56,0,1,192,56,0,1, - 192,56,0,3,192,56,0,3,128,120,0,3,128,112,0,3, - 128,112,0,3,128,112,0,3,128,112,0,255,255,255,224,255, - 255,255,224,255,255,255,224,7,0,224,0,7,0,224,0,7, - 0,224,0,7,0,224,0,15,1,224,0,14,1,224,0,14, - 1,192,0,14,1,192,0,14,1,192,0,23,42,126,28,2, - 252,0,195,0,0,195,0,0,195,0,0,195,0,3,255,192, - 7,195,112,28,195,24,60,195,12,56,195,14,120,195,14,120, - 195,30,120,195,62,124,195,126,126,195,126,127,195,124,127,195, - 56,63,243,0,63,251,0,31,255,0,31,255,128,7,255,192, - 3,255,240,0,255,248,0,255,248,0,223,252,0,199,252,124, - 195,254,124,195,254,252,195,126,252,195,62,248,195,30,240,195, - 30,224,195,28,96,195,28,112,195,56,56,195,56,28,195,96, - 7,255,192,0,195,0,0,195,0,0,195,0,0,195,0,33, - 35,175,41,4,0,0,0,0,48,0,15,192,0,96,0,60, - 240,0,224,0,56,112,0,192,0,120,120,1,128,0,120,120, - 1,128,0,248,124,3,0,0,248,124,7,0,0,248,124,6, - 0,0,248,124,14,0,0,248,124,12,0,0,248,124,24,0, - 0,120,120,24,0,0,120,120,48,0,0,56,240,112,0,0, - 28,224,96,0,0,15,192,192,0,0,0,0,192,0,0,0, - 1,128,240,0,0,3,131,156,0,0,3,7,158,0,0,7, - 15,15,0,0,6,15,15,0,0,12,31,15,128,0,12,31, - 15,128,0,24,31,15,128,0,56,31,15,128,0,48,31,15, - 128,0,96,31,15,128,0,96,31,15,128,0,192,15,15,0, - 1,192,15,15,0,1,128,7,14,0,3,128,7,158,0,3, - 0,1,248,0,33,34,170,37,2,1,0,31,224,0,0,0, - 112,112,0,0,0,224,48,0,0,0,224,24,0,0,1,224, - 24,0,0,1,224,24,0,0,1,224,24,0,0,1,240,56, - 0,0,1,240,48,0,0,1,248,96,0,0,1,248,192,0, - 0,0,255,128,0,0,0,255,0,0,0,0,126,0,0,0, - 0,63,0,0,0,0,255,129,255,128,1,223,128,62,0,3, - 143,192,28,0,7,15,224,24,0,14,7,224,56,0,30,3, - 240,48,0,60,1,248,48,0,124,1,248,96,0,124,0,252, - 96,0,252,0,126,192,0,252,0,127,128,0,252,0,63,128, - 0,254,0,31,128,0,255,0,31,128,0,255,0,15,193,128, - 127,192,63,225,0,63,248,247,243,0,31,255,195,254,0,15, - 254,0,252,0,5,12,12,11,3,23,32,240,248,248,248,248, - 248,112,112,112,112,112,14,43,86,18,3,248,0,28,0,56, - 0,112,0,224,1,192,3,128,7,0,15,0,14,0,30,0, - 30,0,60,0,60,0,124,0,124,0,124,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 124,0,124,0,124,0,124,0,60,0,60,0,30,0,30,0, - 14,0,15,0,7,0,3,128,1,192,0,224,0,112,0,56, - 0,12,13,43,86,17,1,248,192,0,224,0,48,0,24,0, - 28,0,14,0,7,0,7,128,3,128,3,192,1,224,1,224, - 1,224,1,240,1,240,1,240,1,248,1,248,1,248,1,248, - 1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,240, - 1,240,1,240,1,224,1,224,3,192,3,192,3,128,7,128, - 7,0,14,0,28,0,56,0,112,0,224,0,128,0,17,19, - 57,24,4,13,1,128,0,3,192,0,3,192,0,227,195,0, - 241,135,128,248,143,128,252,159,128,126,191,0,3,192,0,3, - 192,0,126,191,0,252,159,128,248,143,128,241,135,128,225,195, - 0,3,192,0,3,192,0,3,192,0,1,128,0,41,41,246, - 45,2,249,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,255,255,255,255,255,128,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,0,0,28,0,0,0,0, - 0,28,0,0,0,0,0,28,0,0,0,0,0,28,0,0, - 0,0,0,28,0,0,0,0,0,28,0,0,0,0,0,28, - 0,0,0,0,0,28,0,0,0,9,15,30,13,2,248,126, - 0,255,0,255,128,255,128,255,128,127,128,1,128,1,128,1, - 128,3,0,2,0,6,0,28,0,56,0,96,0,12,5,10, - 18,3,10,255,240,255,240,255,240,255,240,255,240,8,6,6, - 14,3,1,126,255,255,255,255,126,16,44,88,22,3,247,0, - 7,0,15,0,14,0,14,0,14,0,30,0,28,0,28,0, - 60,0,56,0,56,0,120,0,112,0,112,0,240,0,224,0, - 224,0,224,1,224,1,192,1,192,3,192,3,128,3,128,7, - 128,7,0,7,0,15,0,14,0,14,0,14,0,30,0,28, - 0,28,0,60,0,56,0,56,0,120,0,112,0,112,0,240, - 0,224,0,224,0,224,0,23,35,105,28,2,0,0,16,0, - 0,254,0,3,199,128,7,131,192,15,1,224,15,1,224,31, - 1,240,63,1,248,63,1,248,127,1,248,127,1,252,127,1, - 252,127,1,252,255,1,254,255,1,254,255,1,254,255,1,254, - 255,1,254,255,1,254,255,1,254,255,1,254,255,1,254,255, - 1,254,127,1,252,127,1,252,127,1,252,127,1,252,63,1, - 248,63,1,248,31,1,240,15,1,224,15,1,224,7,131,192, - 3,199,128,0,254,0,16,34,68,28,6,0,0,240,0,240, - 1,240,7,240,255,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,7,240,7,240, - 7,240,7,240,7,240,7,240,7,240,7,240,255,255,255,255, - 21,34,102,28,3,1,7,255,0,14,15,192,28,7,224,56, - 7,240,120,3,240,120,3,248,248,3,248,252,3,248,255,3, - 248,255,3,248,255,7,248,127,7,240,63,15,240,12,15,224, - 0,31,192,0,63,128,0,127,0,0,252,0,1,240,0,3, - 192,0,7,128,0,14,0,24,12,0,24,24,0,24,48,0, - 24,96,0,24,111,192,56,127,255,248,255,255,240,239,255,240, - 195,255,240,193,255,224,192,255,192,192,63,128,22,34,102,28, - 3,1,7,255,0,14,15,192,28,7,224,56,7,240,120,3, - 240,124,3,248,126,3,248,127,3,248,127,3,248,127,3,248, - 63,3,240,30,3,240,0,7,224,0,7,192,0,15,0,7, - 248,0,0,31,128,0,15,192,0,7,224,0,7,240,0,3, - 248,0,3,248,62,3,252,127,3,252,255,3,252,255,3,252, - 255,3,252,254,3,252,252,3,248,248,7,248,120,7,240,56, - 15,224,30,31,192,15,255,0,23,34,102,28,2,0,0,7, - 192,0,15,192,0,15,192,0,31,192,0,63,192,0,63,192, - 0,127,192,0,127,192,0,255,192,0,223,192,1,223,192,1, - 159,192,3,159,192,7,31,192,6,31,192,14,31,192,12,31, - 192,28,31,192,24,31,192,56,31,192,112,31,192,96,31,192, - 224,31,192,255,255,254,0,31,192,0,31,192,0,31,192,0, - 31,192,0,31,192,0,31,192,0,31,192,0,31,192,7,255, - 252,7,255,252,21,34,102,28,4,0,32,0,192,60,7,128, - 63,255,128,63,255,0,63,254,0,63,248,0,63,224,0,63, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 0,49,252,0,54,63,0,60,15,192,56,15,224,48,15,224, - 32,7,240,0,7,240,0,7,248,0,7,248,8,7,248,62, - 7,248,126,7,248,254,7,248,254,7,248,254,7,240,248,7, - 240,240,7,224,112,15,192,48,15,192,28,31,0,15,252,0, - 22,34,102,28,3,1,0,255,128,3,192,192,7,192,96,15, - 128,240,31,131,240,31,7,240,63,15,240,63,15,240,127,15, - 224,127,7,192,127,3,0,127,0,0,255,0,0,255,0,0, - 255,63,0,255,255,192,255,195,224,255,131,240,255,3,248,255, - 1,248,255,1,252,255,1,252,255,1,252,127,1,252,127,1, - 252,127,1,252,127,1,252,63,1,248,63,1,248,31,1,248, - 15,129,240,7,131,224,3,195,192,1,255,0,20,34,102,28, - 5,1,71,224,224,207,240,224,223,248,112,255,252,48,255,254, - 48,255,255,240,255,255,240,224,31,176,192,0,32,192,0,96, - 128,0,96,128,0,192,128,1,192,0,1,128,0,3,128,0, - 7,0,0,15,0,0,14,0,0,30,0,0,60,0,0,124, - 0,0,252,0,1,252,0,1,248,0,3,248,0,3,248,0, - 7,248,0,7,248,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,248,0,3,240,0,23,34,102,28,3,1,1,255, - 128,7,0,192,12,0,96,28,0,48,56,0,24,56,0,24, - 120,0,24,120,0,24,124,0,24,126,0,24,127,0,48,127, - 192,32,127,240,96,63,255,128,63,255,0,31,255,192,15,255, - 240,7,255,248,15,255,248,24,63,252,48,15,252,112,3,254, - 96,0,254,224,0,126,224,0,62,224,0,30,224,0,30,224, - 0,12,240,0,28,112,0,24,56,0,24,28,0,48,15,0, - 192,3,255,0,22,34,102,28,3,1,3,254,0,15,15,0, - 31,7,128,62,7,192,126,3,224,126,3,240,126,3,240,254, - 3,248,254,3,248,254,3,248,254,3,248,254,3,252,254,3, - 252,254,3,252,126,3,252,127,7,252,63,7,252,31,15,252, - 15,255,252,3,243,252,0,3,252,0,3,252,0,3,248,7, - 3,248,31,131,248,31,195,248,63,195,240,63,195,240,63,131, - 224,62,7,224,60,7,192,28,15,128,14,31,0,7,252,0, - 8,22,22,14,3,1,126,255,255,255,255,126,0,0,0,0, - 0,0,0,0,0,0,126,255,255,255,255,126,9,32,64,13, - 2,247,63,0,127,128,127,128,127,128,127,128,63,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,60,0,127,0,255,0,255,128,255,128,255,128,57,128, - 1,128,1,128,3,0,3,0,6,0,12,0,56,0,240,0, - 64,0,37,40,200,45,4,249,0,0,0,0,48,0,0,0, - 0,240,0,0,0,1,248,0,0,0,7,224,0,0,0,31, - 128,0,0,0,126,0,0,0,1,252,0,0,0,7,240,0, - 0,0,15,192,0,0,0,63,0,0,0,0,252,0,0,0, - 3,240,0,0,0,15,224,0,0,0,63,128,0,0,0,126, - 0,0,0,1,248,0,0,0,7,224,0,0,0,31,128,0, - 0,0,127,0,0,0,0,252,0,0,0,0,248,0,0,0, - 0,126,0,0,0,0,31,128,0,0,0,15,224,0,0,0, - 3,248,0,0,0,0,252,0,0,0,0,63,0,0,0,0, - 15,192,0,0,0,3,240,0,0,0,1,252,0,0,0,0, - 127,0,0,0,0,31,192,0,0,0,7,224,0,0,0,1, - 248,0,0,0,0,126,0,0,0,0,63,128,0,0,0,15, - 224,0,0,0,3,248,0,0,0,0,248,0,0,0,0,48, - 41,13,78,45,2,6,255,255,255,255,255,128,255,255,255,255, - 255,128,255,255,255,255,255,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,255,255,255,255,128,255,255,255,255,255,128,255,255, - 255,255,255,128,37,40,200,45,4,249,96,0,0,0,0,120, - 0,0,0,0,252,0,0,0,0,63,0,0,0,0,15,192, - 0,0,0,3,240,0,0,0,1,252,0,0,0,0,127,0, - 0,0,0,31,128,0,0,0,7,224,0,0,0,1,248,0, - 0,0,0,126,0,0,0,0,63,128,0,0,0,15,224,0, - 0,0,3,240,0,0,0,0,252,0,0,0,0,63,0,0, - 0,0,15,192,0,0,0,7,240,0,0,0,1,248,0,0, - 0,0,248,0,0,0,3,240,0,0,0,15,192,0,0,0, - 63,128,0,0,0,254,0,0,0,1,248,0,0,0,7,224, - 0,0,0,31,128,0,0,0,126,0,0,0,1,252,0,0, - 0,7,240,0,0,0,31,192,0,0,0,63,0,0,0,0, - 252,0,0,0,3,240,0,0,0,15,224,0,0,0,63,128, - 0,0,0,254,0,0,0,0,248,0,0,0,0,96,0,0, - 0,0,15,34,68,22,3,1,31,240,59,248,96,252,96,252, - 192,126,192,126,192,126,192,126,192,126,64,252,96,252,48,248, - 1,240,1,224,3,192,3,128,7,0,7,0,14,0,12,16, - 12,16,12,16,12,16,6,32,3,192,0,0,0,0,0,128, - 3,224,7,240,7,240,7,240,7,240,3,224,35,34,170,39, - 2,1,0,15,255,0,0,0,56,1,224,0,0,224,0,112, - 0,1,128,0,28,0,7,0,0,14,0,14,0,0,7,0, - 12,0,248,3,0,28,3,205,243,128,56,7,135,241,128,56, - 15,7,225,192,112,31,7,225,192,112,62,7,224,224,112,62, - 7,224,224,224,124,7,192,224,224,124,7,192,224,224,124,7, - 192,224,224,252,15,192,224,224,248,15,128,224,224,248,15,128, - 224,224,248,15,129,192,224,248,31,129,192,224,248,31,129,128, - 112,248,31,3,128,112,248,63,3,0,112,120,111,6,0,56, - 60,199,140,0,56,31,3,240,0,28,0,0,0,0,14,0, - 0,0,0,7,0,0,0,0,3,128,0,0,0,1,192,0, - 96,0,0,120,1,192,0,0,31,255,0,0,33,35,175,36, - 2,0,0,0,192,0,0,0,1,192,0,0,0,1,224,0, - 0,0,1,224,0,0,0,3,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,7,240,0,0,0,7,248,0,0,0, - 7,248,0,0,0,15,248,0,0,0,15,252,0,0,0,15, - 252,0,0,0,25,252,0,0,0,25,254,0,0,0,25,254, - 0,0,0,48,254,0,0,0,48,255,0,0,0,32,255,0, - 0,0,96,127,0,0,0,96,127,128,0,0,64,127,128,0, - 0,192,63,128,0,0,192,63,192,0,0,255,255,192,0,1, - 255,255,192,0,1,128,31,224,0,1,0,31,224,0,3,0, - 15,224,0,3,0,15,240,0,2,0,15,240,0,6,0,7, - 240,0,15,0,7,248,0,31,0,15,252,0,255,240,255,255, - 128,28,34,136,33,3,0,255,255,240,0,15,224,126,0,15, - 224,31,0,15,224,31,128,15,224,15,192,15,224,15,192,15, - 224,15,224,15,224,15,224,15,224,15,224,15,224,15,224,15, - 224,15,224,15,224,15,192,15,224,15,192,15,224,31,128,15, - 224,30,0,15,224,60,0,15,255,224,0,15,224,124,0,15, - 224,63,0,15,224,31,128,15,224,15,192,15,224,15,224,15, - 224,15,240,15,224,15,240,15,224,15,240,15,224,15,240,15, - 224,15,240,15,224,15,240,15,224,15,224,15,224,15,224,15, - 224,31,192,15,224,31,128,15,224,126,0,255,255,248,0,26, - 34,136,31,3,1,0,127,193,128,1,224,241,128,3,192,63, - 128,15,128,31,128,15,128,15,128,31,0,15,128,63,0,7, - 128,63,0,7,128,127,0,3,128,127,0,3,128,127,0,3, - 128,127,0,1,128,255,0,1,128,255,0,1,128,255,0,1, - 128,255,0,0,0,255,0,0,0,255,0,0,0,255,0,0, - 0,255,0,0,0,255,0,0,0,255,0,0,192,127,0,0, - 192,127,0,0,192,127,0,0,128,63,0,1,128,63,0,1, - 128,63,0,1,128,31,128,3,0,15,128,3,0,7,128,6, - 0,3,192,12,0,1,224,56,0,0,127,224,0,32,34,136, - 37,3,0,255,255,248,0,15,224,31,0,15,224,7,128,15, - 224,3,224,15,224,1,240,15,224,1,240,15,224,0,248,15, - 224,0,252,15,224,0,252,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,255,15,224,0,255,15, - 224,0,255,15,224,0,255,15,224,0,254,15,224,0,254,15, - 224,0,254,15,224,0,254,15,224,0,252,15,224,0,252,15, - 224,0,248,15,224,1,240,15,224,1,224,15,224,3,192,15, - 224,7,128,15,224,30,0,255,255,248,0,27,34,136,33,3, - 0,255,255,255,224,15,224,31,224,15,224,7,224,15,224,3, - 224,15,224,1,224,15,224,1,224,15,224,0,224,15,224,0, - 224,15,224,0,96,15,224,48,96,15,224,48,96,15,224,48, - 0,15,224,112,0,15,224,112,0,15,224,240,0,15,225,240, - 0,15,255,240,0,15,225,240,0,15,224,240,0,15,224,112, - 0,15,224,112,32,15,224,48,96,15,224,48,96,15,224,48, - 96,15,224,0,96,15,224,0,96,15,224,0,224,15,224,0, - 224,15,224,1,224,15,224,3,224,15,224,3,224,15,224,15, - 224,255,255,255,224,255,255,255,224,28,34,136,32,3,0,255, - 255,255,240,7,240,15,240,7,240,3,240,7,240,1,240,7, - 240,1,240,7,240,0,240,7,240,0,240,7,240,0,112,7, - 240,0,112,7,240,24,48,7,240,24,48,7,240,24,48,7, - 240,56,48,7,240,56,0,7,240,120,0,7,240,248,0,7, - 255,248,0,7,240,248,0,7,240,120,0,7,240,56,0,7, - 240,56,0,7,240,24,0,7,240,24,0,7,240,24,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,128,0,30,34,136,35,3,1,0,127,224, - 192,0,224,120,192,3,192,31,192,7,128,15,192,15,128,7, - 192,31,0,7,192,31,0,3,192,63,0,3,192,63,0,1, - 192,127,0,1,192,127,0,1,192,127,0,0,192,255,0,0, - 192,255,0,0,192,255,0,0,0,255,0,0,0,255,0,0, - 0,255,3,255,252,255,3,255,252,255,0,31,192,255,0,31, - 192,255,0,31,192,127,0,31,192,127,0,31,192,127,0,31, - 192,127,0,31,192,63,0,31,192,63,0,31,192,31,0,31, - 192,15,128,57,192,15,128,49,192,7,192,96,192,1,224,192, - 192,0,127,128,192,34,34,170,39,3,0,255,255,63,255,192, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,255,255,252,0, - 7,240,1,252,0,7,240,1,252,0,7,240,1,252,0,7, - 240,1,252,0,7,240,1,252,0,7,240,1,252,0,7,240, - 1,252,0,7,240,1,252,0,7,240,1,252,0,7,240,1, - 252,0,7,240,1,252,0,7,240,1,252,0,7,240,1,252, - 0,7,240,1,252,0,7,240,1,252,0,7,240,1,252,0, - 255,255,63,255,192,16,34,68,21,3,0,255,255,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,7,240,7, - 240,7,240,7,240,7,240,7,240,7,240,7,240,255,255,23, - 34,102,26,2,0,1,255,254,0,15,224,0,15,224,0,15, - 224,0,15,224,0,15,224,0,15,224,0,15,224,0,15,224, - 0,15,224,0,15,224,0,15,224,0,15,224,0,15,224,0, - 15,224,0,15,224,0,15,224,0,15,224,0,15,224,0,15, - 224,0,15,224,30,15,224,126,15,224,127,15,224,255,15,224, - 255,15,224,254,15,224,254,15,224,248,15,192,112,15,192,96, - 15,128,48,31,0,24,30,0,15,248,0,33,34,170,37,3, - 0,255,255,31,254,0,7,240,7,240,0,7,240,3,192,0, - 7,240,3,128,0,7,240,3,0,0,7,240,7,0,0,7, - 240,14,0,0,7,240,12,0,0,7,240,24,0,0,7,240, - 48,0,0,7,240,96,0,0,7,240,224,0,0,7,240,224, - 0,0,7,241,240,0,0,7,243,240,0,0,7,247,248,0, - 0,7,255,252,0,0,7,255,252,0,0,7,249,254,0,0, - 7,241,254,0,0,7,240,255,0,0,7,240,255,0,0,7, - 240,127,128,0,7,240,127,128,0,7,240,63,192,0,7,240, - 63,192,0,7,240,31,224,0,7,240,31,224,0,7,240,15, - 240,0,7,240,15,240,0,7,240,7,248,0,7,240,7,248, - 0,7,240,7,252,0,255,255,63,255,128,28,34,136,32,3, - 0,255,255,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 0,7,240,0,0,7,240,0,0,7,240,0,0,7,240,0, - 48,7,240,0,48,7,240,0,48,7,240,0,112,7,240,0, - 112,7,240,0,112,7,240,0,240,7,240,0,240,7,240,0, - 240,7,240,1,240,7,240,3,240,7,240,3,240,7,240,7, - 240,255,255,255,240,255,255,255,240,39,34,170,43,2,0,255, - 240,0,63,254,7,240,0,63,192,7,248,0,63,192,7,248, - 0,63,192,7,248,0,127,192,7,252,0,127,192,7,252,0, - 95,192,7,252,0,95,192,7,254,0,223,192,6,254,0,223, - 192,6,255,0,159,192,6,127,0,159,192,6,127,1,159,192, - 6,127,129,159,192,6,63,129,31,192,6,63,129,31,192,6, - 63,195,31,192,6,31,194,31,192,6,31,226,31,192,6,15, - 226,31,192,6,15,230,31,192,6,15,244,31,192,6,7,244, - 31,192,6,7,244,31,192,6,7,252,31,192,6,3,248,31, - 192,6,3,248,31,192,6,1,248,31,192,6,1,248,31,192, - 6,1,240,31,192,6,0,240,31,192,15,0,240,31,192,63, - 192,240,31,192,255,240,97,255,254,34,35,175,37,2,255,255, - 224,15,255,192,31,240,3,255,0,15,240,0,252,0,15,248, - 0,120,0,7,252,0,48,0,3,254,0,48,0,3,254,0, - 48,0,3,255,0,48,0,3,255,128,48,0,3,255,128,48, - 0,3,127,192,48,0,3,63,224,48,0,3,31,224,48,0, - 3,31,240,48,0,3,15,248,48,0,3,7,248,48,0,3, - 7,252,48,0,3,3,254,48,0,3,1,255,48,0,3,1, - 255,48,0,3,0,255,176,0,3,0,127,240,0,3,0,127, - 240,0,3,0,63,240,0,3,0,31,240,0,3,0,15,240, - 0,3,0,15,240,0,3,0,7,240,0,3,0,3,240,0, - 3,0,3,240,0,7,128,1,240,0,15,192,0,240,0,63, - 240,0,240,0,255,252,0,112,0,0,0,0,48,0,28,34, - 136,33,3,1,0,63,192,0,0,224,112,0,3,192,56,0, - 7,128,30,0,15,128,30,0,15,0,15,0,31,0,15,128, - 63,0,15,192,63,0,15,192,127,0,15,192,127,0,15,224, - 127,0,15,224,127,0,15,224,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,127,0,15,192,63,0,15,192,63,0,15,192, - 31,0,15,128,15,0,15,0,15,128,31,0,7,128,30,0, - 3,192,60,0,0,224,112,0,0,63,192,0,29,34,136,34, - 3,0,255,255,248,0,7,240,63,0,7,240,15,192,7,240, - 15,224,7,240,15,240,7,240,7,240,7,240,7,248,7,240, - 7,248,7,240,7,248,7,240,7,248,7,240,7,248,7,240, - 7,248,7,240,7,240,7,240,15,240,7,240,15,224,7,240, - 15,192,7,240,31,0,7,255,252,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,7,240,0,0,7,240,0,0,7,240, - 0,0,7,240,0,0,255,255,128,0,28,45,180,33,3,246, - 0,63,192,0,0,224,112,0,3,192,56,0,7,128,30,0, - 15,128,30,0,15,0,15,0,31,0,15,128,63,0,15,128, - 63,0,15,192,127,0,15,192,127,0,15,224,127,0,15,224, - 127,0,15,224,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,255,0,15,240,255,0,15,240, - 255,0,15,240,255,0,15,240,127,0,15,224,127,0,15,224, - 127,0,15,224,63,0,15,192,63,15,15,192,31,17,143,128, - 15,160,223,0,15,160,223,0,7,160,254,0,3,224,252,16, - 0,240,248,16,0,127,224,16,0,0,224,16,0,0,224,16, - 0,0,224,48,0,0,240,48,0,0,248,112,0,0,255,240, - 0,0,255,224,0,0,127,224,0,0,127,192,0,0,63,128, - 0,0,31,0,32,36,144,36,3,254,255,255,240,0,7,240, - 126,0,7,240,63,0,7,240,63,128,7,240,31,192,7,240, - 31,192,7,240,31,224,7,240,31,224,7,240,31,224,7,240, - 31,224,7,240,31,224,7,240,31,192,7,240,63,192,7,240, - 63,0,7,240,126,0,7,255,240,0,7,240,240,0,7,240, - 62,0,7,240,63,0,7,240,31,128,7,240,31,128,7,240, - 31,192,7,240,31,192,7,240,31,192,7,240,31,192,7,240, - 31,195,7,240,31,195,7,240,31,195,7,240,31,195,7,240, - 31,195,7,240,31,198,7,240,31,198,7,240,15,238,255,255, - 135,252,0,0,3,248,0,0,0,96,23,34,102,29,4,1, - 7,252,24,24,15,24,56,3,248,112,1,248,112,0,248,240, - 0,120,248,0,120,248,0,56,252,0,24,254,0,24,255,128, - 24,255,224,8,127,240,0,127,252,0,63,254,0,31,255,128, - 15,255,192,3,255,240,1,255,248,128,127,248,192,31,252,192, - 15,252,192,3,254,224,1,254,224,0,126,224,0,62,240,0, - 30,248,0,30,248,0,28,252,0,28,254,0,24,239,0,48, - 195,128,96,193,255,128,29,34,136,34,3,0,255,255,255,248, - 255,63,231,248,252,31,193,248,248,31,192,248,248,31,192,248, - 240,31,192,120,224,31,192,56,224,31,192,56,224,31,192,56, - 192,31,192,24,192,31,192,24,192,31,192,24,192,31,192,24, - 128,31,192,8,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 0,31,192,0,0,31,192,0,0,31,192,0,0,31,192,0, - 3,255,254,0,33,34,170,38,3,0,255,255,7,255,128,15, - 224,1,254,0,15,224,0,120,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,15,224,0,48, - 0,15,224,0,48,0,15,224,0,48,0,15,224,0,48,0, - 15,224,0,48,0,15,224,0,48,0,15,224,0,48,0,15, - 224,0,48,0,15,224,0,48,0,15,224,0,48,0,15,224, - 0,48,0,15,224,0,48,0,15,224,0,48,0,15,224,0, - 48,0,15,224,0,48,0,15,224,0,48,0,7,224,0,48, - 0,7,224,0,96,0,7,240,0,96,0,3,240,0,192,0, - 1,248,1,192,0,0,252,3,128,0,0,127,159,0,0,0, - 31,252,0,0,34,34,170,37,2,0,255,255,135,255,192,15, - 248,0,126,0,7,248,0,56,0,7,248,0,56,0,3,248, - 0,48,0,3,252,0,48,0,3,252,0,48,0,1,254,0, - 96,0,1,254,0,96,0,0,254,0,96,0,0,255,0,192, - 0,0,255,0,192,0,0,127,0,192,0,0,127,129,128,0, - 0,127,129,128,0,0,63,129,128,0,0,63,195,0,0,0, - 63,195,0,0,0,31,195,0,0,0,31,230,0,0,0,15, - 230,0,0,0,15,246,0,0,0,15,252,0,0,0,7,252, - 0,0,0,7,252,0,0,0,7,248,0,0,0,3,248,0, - 0,0,3,248,0,0,0,3,240,0,0,0,1,240,0,0, - 0,1,240,0,0,0,0,224,0,0,0,0,224,0,0,0, - 0,224,0,0,49,34,238,52,2,0,255,255,63,255,207,255, - 128,31,252,7,254,0,252,0,7,248,3,252,0,112,0,7, - 248,1,252,0,112,0,3,248,1,254,0,96,0,3,252,1, - 254,0,96,0,3,252,0,254,0,96,0,1,252,0,254,0, - 192,0,1,254,1,255,0,192,0,1,254,1,255,0,192,0, - 0,254,1,255,1,128,0,0,255,3,127,129,128,0,0,255, - 3,63,129,128,0,0,127,3,63,129,128,0,0,127,135,63, - 195,0,0,0,127,134,31,195,0,0,0,63,134,31,195,0, - 0,0,63,198,31,231,0,0,0,31,204,15,230,0,0,0, - 31,204,15,230,0,0,0,31,236,15,246,0,0,0,15,248, - 7,252,0,0,0,15,248,7,252,0,0,0,15,248,7,252, - 0,0,0,7,248,3,252,0,0,0,7,240,3,248,0,0, - 0,7,240,3,248,0,0,0,3,240,1,248,0,0,0,3, - 224,1,240,0,0,0,3,224,1,240,0,0,0,1,224,0, - 240,0,0,0,1,192,0,240,0,0,0,1,192,0,224,0, - 0,0,0,192,0,96,0,0,33,34,170,36,2,0,127,255, - 31,254,0,31,252,3,240,0,7,248,3,192,0,3,248,3, - 128,0,3,252,3,128,0,1,252,3,0,0,1,254,7,0, - 0,0,255,6,0,0,0,255,12,0,0,0,127,140,0,0, - 0,127,152,0,0,0,63,240,0,0,0,63,240,0,0,0, - 31,224,0,0,0,31,224,0,0,0,15,240,0,0,0,15, - 248,0,0,0,7,248,0,0,0,7,252,0,0,0,7,252, - 0,0,0,15,254,0,0,0,29,254,0,0,0,24,255,0, - 0,0,56,255,0,0,0,48,127,128,0,0,96,127,128,0, - 0,224,63,192,0,0,192,63,224,0,1,128,31,224,0,3, - 128,31,240,0,3,128,15,240,0,7,128,15,248,0,31,128, - 31,252,0,255,240,127,255,128,32,34,136,35,2,0,255,254, - 15,255,31,248,1,248,15,248,0,240,7,248,0,224,7,248, - 0,192,3,252,0,192,3,252,0,192,1,252,1,128,1,254, - 1,128,0,254,3,0,0,255,3,0,0,255,3,0,0,127, - 134,0,0,127,134,0,0,63,196,0,0,63,204,0,0,31, - 204,0,0,31,248,0,0,15,248,0,0,15,248,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,7,240,0,0,7,240,0,0,7,240,0,0,7, - 240,0,0,255,255,0,25,34,136,31,3,0,127,255,255,128, - 127,128,127,128,126,0,255,0,124,0,255,0,120,1,254,0, - 120,3,254,0,112,3,252,0,112,7,252,0,96,7,248,0, - 96,15,248,0,96,15,240,0,64,31,224,0,0,31,224,0, - 0,63,192,0,0,63,192,0,0,127,128,0,0,127,128,0, - 0,255,0,0,0,255,0,0,1,254,0,0,3,254,0,128, - 3,252,0,128,7,248,0,128,7,248,0,128,15,240,1,128, - 15,240,1,128,31,224,3,128,31,224,3,128,63,192,7,128, - 63,192,15,128,127,128,31,128,127,128,63,128,255,255,255,128, - 255,255,255,128,11,42,84,18,4,248,255,224,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,248,0,248,0,248,0,255,224,16,44, - 88,22,3,247,224,0,224,0,224,0,240,0,112,0,112,0, - 120,0,56,0,56,0,60,0,28,0,28,0,30,0,14,0, - 14,0,14,0,15,0,7,0,7,0,7,128,3,128,3,128, - 3,192,1,192,1,192,1,224,0,224,0,224,0,224,0,240, - 0,112,0,112,0,120,0,56,0,56,0,60,0,28,0,28, - 0,30,0,14,0,14,0,14,0,15,0,7,11,42,84,18, - 3,248,255,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,3,224,3,224,3,224,3,224,3,224,3,224, - 3,224,3,224,255,224,22,17,51,28,3,18,0,48,0,0, - 112,0,0,120,0,0,252,0,0,252,0,1,254,0,3,207, - 0,3,143,0,7,135,128,15,3,128,15,3,192,30,1,224, - 60,0,224,60,0,240,120,0,120,112,0,56,240,0,60,25, - 3,12,25,0,248,255,255,255,128,255,255,255,128,255,255,255, - 128,8,9,9,21,4,25,96,240,248,124,60,30,15,3,1, - 21,22,66,24,2,1,15,248,0,24,62,0,56,63,0,120, - 31,0,124,31,128,126,31,128,126,31,128,62,31,128,8,63, - 128,1,255,128,7,159,128,30,31,128,62,31,128,124,31,128, - 124,31,128,252,31,128,252,31,136,252,31,136,252,31,152,254, - 63,144,127,127,240,63,143,224,22,34,102,25,1,0,255,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,159,128,31,179,224,31,225,224,31,193,240,31,193, - 248,31,192,248,31,192,248,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,248,31,192,248,31,193,248,29,193,240,24,225,224,24,99, - 192,16,63,128,18,22,66,22,2,1,3,252,0,15,6,0, - 31,3,0,62,3,128,62,7,128,126,15,128,124,31,128,252, - 31,128,252,31,0,252,14,0,252,0,0,252,0,0,252,0, - 0,252,0,0,252,0,0,124,0,64,124,0,192,62,0,128, - 62,0,128,30,1,0,15,130,0,3,252,0,23,34,102,26, - 2,0,0,63,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,7,224,0,7,224, - 0,7,224,0,7,224,7,231,224,31,23,224,30,31,224,62, - 15,224,126,15,224,124,15,224,124,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,252,7,224,252,7,224,252,7,224, - 252,7,224,124,7,224,124,15,224,126,15,224,62,15,224,30, - 31,224,15,23,224,7,231,254,18,22,66,23,2,1,3,252, - 0,14,30,0,30,31,0,62,15,128,60,15,128,124,15,128, - 124,15,192,252,15,192,252,15,192,252,15,192,255,255,192,252, - 0,0,252,0,0,252,0,0,252,0,64,124,0,64,124,0, - 192,62,0,192,62,0,128,31,1,0,15,131,0,3,252,0, - 18,34,102,16,1,1,0,255,0,1,199,128,7,199,128,7, - 199,192,15,143,192,15,143,192,31,143,192,31,143,128,31,135, - 128,31,128,0,31,128,0,31,128,0,255,240,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,255,240,0,24,33,99,27, - 2,246,7,254,62,31,15,71,63,7,143,62,7,207,126,7, - 238,126,7,228,126,7,224,126,7,224,126,7,224,62,7,192, - 31,15,128,15,15,0,3,252,0,12,0,0,48,0,0,48, - 0,0,112,0,0,112,0,0,127,255,128,127,255,224,63,255, - 240,31,255,240,7,255,248,60,1,248,96,0,120,192,0,56, - 192,0,56,192,0,48,192,0,112,96,0,96,48,1,192,30, - 7,128,3,252,0,24,34,102,27,1,0,255,128,0,31,128, - 0,31,128,0,31,128,0,31,128,0,31,128,0,31,128,0, - 31,128,0,31,128,0,31,128,0,31,128,0,31,129,0,31, - 143,224,31,145,240,31,160,248,31,160,252,31,192,252,31,192, - 252,31,192,252,31,128,252,31,128,252,31,128,252,31,128,252, - 31,128,252,31,128,252,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,255,227, - 255,11,35,70,15,2,0,4,0,31,0,63,128,63,128,63, - 128,63,128,31,0,4,0,0,0,0,0,0,0,0,0,0, - 0,255,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,63,0,63,0,63, - 0,63,0,63,0,63,0,63,0,63,0,255,224,15,46,92, - 16,254,245,0,16,0,124,0,254,0,254,0,254,0,254,0, - 124,0,16,0,0,0,0,0,0,0,0,0,0,7,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0, - 252,0,252,0,252,0,252,0,252,0,252,0,252,56,252,124, - 252,252,252,252,252,248,248,248,248,113,240,49,224,31,128,25, - 34,136,27,1,0,255,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,128,0,0,31,128,0,0,31,128,0, - 0,31,128,0,0,31,131,254,0,31,128,240,0,31,128,96, - 0,31,128,192,0,31,128,128,0,31,129,128,0,31,131,0, - 0,31,134,0,0,31,143,0,0,31,159,0,0,31,159,128, - 0,31,191,128,0,31,239,192,0,31,199,224,0,31,135,224, - 0,31,131,240,0,31,129,248,0,31,129,248,0,31,128,252, - 0,31,128,252,0,31,128,254,0,255,243,255,128,12,34,68, - 14,1,0,255,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,255,240,34,22,110,37,2,1,255,31,193, - 248,0,63,35,230,124,0,63,67,228,62,0,63,131,248,63, - 0,63,131,248,63,0,63,131,248,63,0,63,3,240,63,0, - 63,3,240,63,0,63,3,240,63,0,63,3,240,63,0,63, - 3,240,63,0,63,3,240,63,0,63,3,240,63,0,63,3, - 240,63,0,63,3,240,63,0,63,3,240,63,0,63,3,240, - 63,0,63,3,240,63,0,63,3,240,63,0,63,3,240,63, - 0,63,3,240,63,0,255,207,252,255,192,23,22,66,27,2, - 1,255,31,192,63,35,224,63,65,240,63,65,248,63,129,248, - 63,129,248,63,1,248,63,1,248,63,1,248,63,1,248,63, - 1,248,63,1,248,63,1,248,63,1,248,63,1,248,63,1, - 248,63,1,248,63,1,248,63,1,248,63,1,248,63,1,248, - 255,199,254,20,22,66,24,2,1,3,252,0,15,15,0,30, - 7,128,62,7,192,62,7,192,124,3,224,124,3,224,252,3, - 240,252,3,240,252,3,240,252,3,240,252,3,240,252,3,240, - 252,3,240,252,3,240,124,3,224,124,3,224,62,7,192,62, - 7,192,30,7,128,15,15,0,3,252,0,22,33,99,25,1, - 246,255,159,128,31,163,192,31,225,224,31,193,240,31,192,248, - 31,192,248,31,192,248,31,128,252,31,128,252,31,128,252,31, - 128,252,31,128,252,31,128,252,31,128,252,31,128,252,31,192, - 252,31,192,248,31,192,248,31,193,240,31,225,240,31,179,224, - 31,159,128,31,128,0,31,128,0,31,128,0,31,128,0,31, - 128,0,31,128,0,31,128,0,31,128,0,31,128,0,31,128, - 0,255,240,0,22,33,99,25,2,246,7,240,32,15,24,96, - 30,28,96,62,14,224,126,15,224,124,15,224,124,7,224,252, - 7,224,252,7,224,252,7,224,252,7,224,252,7,224,252,7, - 224,252,7,224,252,7,224,124,7,224,124,15,224,126,15,224, - 62,15,224,30,31,224,31,23,224,7,231,224,0,7,224,0, - 7,224,0,7,224,0,7,224,0,7,224,0,7,224,0,7, - 224,0,7,224,0,7,224,0,7,224,0,63,252,17,22,66, - 20,2,1,255,31,0,63,63,128,63,79,128,63,79,128,63, - 159,128,63,159,128,63,159,0,63,14,0,63,0,0,63,0, - 0,63,0,0,63,0,0,63,0,0,63,0,0,63,0,0, - 63,0,0,63,0,0,63,0,0,63,0,0,63,0,0,63, - 0,0,255,192,0,16,22,44,21,3,1,31,196,48,116,96, - 60,224,28,224,28,240,12,248,4,254,4,127,128,127,224,63, - 240,31,252,7,254,129,254,192,127,192,31,224,15,224,7,240, - 7,248,6,204,14,135,248,15,32,64,17,1,0,1,128,1, - 128,1,128,1,128,1,128,3,128,3,128,7,128,15,128,63, - 128,255,248,31,128,31,128,31,128,31,128,31,128,31,128,31, - 128,31,128,31,128,31,128,31,128,31,130,31,130,31,130,31, - 130,31,134,31,134,31,132,15,196,15,248,7,240,24,22,66, - 26,1,0,255,143,248,31,129,248,31,129,248,31,129,248,31, - 129,248,31,129,248,31,129,248,31,129,248,31,129,248,31,129, - 248,31,129,248,31,129,248,31,129,248,31,129,248,31,129,248, - 31,129,248,31,131,248,31,131,248,31,133,248,15,133,248,15, - 201,248,7,241,255,23,23,69,25,1,255,255,241,254,63,192, - 120,31,128,48,15,192,48,15,192,32,7,192,96,7,224,96, - 7,224,64,3,224,192,3,240,128,3,240,128,1,241,128,1, - 249,0,0,249,0,0,255,0,0,254,0,0,126,0,0,126, - 0,0,124,0,0,60,0,0,60,0,0,24,0,0,24,0, - 35,23,115,37,1,255,255,231,255,31,224,63,129,252,7,128, - 31,128,252,3,0,15,128,252,2,0,15,192,124,2,0,15, - 192,124,6,0,7,192,126,4,0,7,224,254,4,0,3,224, - 191,12,0,3,224,191,8,0,3,241,159,24,0,1,241,31, - 144,0,1,241,31,144,0,1,251,31,176,0,0,250,15,224, - 0,0,250,15,224,0,0,254,15,224,0,0,124,7,192,0, - 0,124,7,192,0,0,60,7,192,0,0,56,3,128,0,0, - 56,3,128,0,0,24,3,0,0,23,22,66,25,1,0,255, - 231,252,63,192,240,31,192,224,15,192,192,15,225,128,7,227, - 0,3,242,0,3,254,0,1,252,0,1,252,0,0,252,0, - 0,126,0,0,127,0,0,127,0,0,223,128,1,159,192,3, - 15,192,2,15,224,6,7,224,14,7,240,30,7,248,255,207, - 254,23,33,99,25,1,245,255,241,254,63,192,120,31,128,48, - 15,192,32,15,192,32,15,192,96,7,224,64,7,224,64,3, - 240,192,3,240,128,1,248,128,1,249,128,0,249,0,0,253, - 0,0,253,0,0,126,0,0,126,0,0,62,0,0,60,0, - 0,28,0,0,28,0,0,12,0,0,8,0,0,8,0,0, - 8,0,15,16,0,31,16,0,63,144,0,63,32,0,62,32, - 0,62,64,0,31,192,0,15,0,0,18,22,66,22,2,0, - 127,255,192,124,15,192,120,31,128,112,63,0,96,63,0,96, - 126,0,64,126,0,64,252,0,1,248,0,1,248,0,3,240, - 0,3,240,0,7,224,64,15,192,64,15,192,64,31,128,192, - 31,0,192,63,1,192,126,1,192,126,3,192,252,15,192,255, - 255,192,14,43,86,20,3,247,0,60,0,240,3,192,7,128, - 7,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,0,15,0, - 28,0,240,0,60,0,30,0,15,0,15,128,15,128,15,128, - 15,128,15,128,15,128,15,128,15,128,15,128,15,128,15,128, - 15,128,15,128,7,128,7,128,3,192,0,240,0,60,3,44, - 44,13,5,247,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 15,43,86,20,3,247,240,0,60,0,15,0,7,128,7,128, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,3,192,3,192,0,240, - 0,62,0,240,1,224,3,192,7,192,7,192,7,192,7,192, - 7,192,7,192,7,192,7,192,7,192,7,192,7,192,7,192, - 7,192,7,128,7,128,15,0,60,0,240,0,27,9,36,31, - 2,8,31,128,1,128,63,240,0,192,127,254,0,96,255,255, - 128,96,193,255,240,96,192,63,255,224,192,15,255,192,96,1, - 255,128,48,0,63,0,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 5 y=15 dx=28 dy= 0 ascent=25 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18[7816] U8G_FONT_SECTION("u8g_font_osr18") = { - 0,68,33,235,248,18,4,197,10,125,32,255,250,25,249,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,7,0,0,3,18,18,7,2,250,224, - 224,224,0,64,64,64,64,64,64,64,64,224,224,224,224,224, - 224,9,18,36,15,3,253,4,0,4,0,4,0,31,0,53, - 0,100,128,229,128,197,128,196,0,196,0,196,0,228,128,100, - 128,53,0,31,0,4,0,4,0,4,0,14,18,36,19,2, - 0,0,248,1,132,3,4,2,12,6,0,6,0,6,0,62, - 0,7,224,6,0,6,0,6,0,6,0,6,0,116,4,140, - 4,139,248,112,240,11,11,22,15,2,2,159,32,113,192,64, - 64,128,96,128,32,128,32,128,32,128,32,64,64,96,192,159, - 32,15,18,36,15,0,0,252,126,56,24,24,16,28,16,12, - 32,14,64,6,64,7,128,3,128,63,240,3,0,3,0,63, - 240,3,0,3,0,3,0,3,0,31,224,1,23,23,7,3, - 251,128,128,128,128,128,128,128,128,128,0,0,0,0,0,128, - 128,128,128,128,128,128,128,128,10,23,46,17,3,251,30,0, - 33,0,35,0,35,0,32,0,48,0,28,0,46,0,71,0, - 131,128,129,192,192,192,224,64,112,64,56,128,29,0,6,0, - 3,0,3,0,49,0,49,0,34,0,28,0,7,2,2,11, - 2,15,198,198,19,18,54,21,1,0,3,248,0,12,6,0, - 16,225,0,33,28,128,67,12,64,70,4,64,134,4,32,134, - 0,32,134,0,32,134,0,32,134,0,32,134,8,32,67,8, - 64,67,8,64,32,240,128,16,1,0,12,6,0,3,248,0, - 7,8,8,11,2,10,240,200,24,104,136,154,100,252,6,10, - 10,12,3,1,32,68,136,136,136,136,136,136,68,32,13,6, - 12,15,1,3,255,248,0,8,0,8,0,8,0,8,0,8, - 7,1,1,11,2,6,254,19,18,54,21,1,0,3,248,0, - 12,6,0,31,225,0,35,24,128,67,24,64,67,24,64,131, - 24,32,131,24,32,131,224,32,131,16,32,131,24,32,131,24, - 32,67,26,64,67,26,64,47,142,128,16,1,0,12,6,0, - 3,248,0,7,1,1,11,2,15,254,7,7,7,15,4,11, - 56,68,130,130,130,68,56,22,18,54,24,1,255,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,255,255,252,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,0,0,0,0,0, - 255,255,252,7,10,10,11,2,8,124,134,134,230,6,8,16, - 96,66,254,7,11,11,12,3,7,120,132,198,198,4,120,14, - 70,198,134,120,4,4,4,11,5,13,48,48,96,128,14,19, - 38,17,2,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,64,192,64,128,64,132,163,252,158,56,128,0,128,0, - 192,0,192,0,192,0,224,0,64,0,11,22,44,14,2,252, - 63,224,120,128,248,128,248,128,248,128,248,128,248,128,120,128, - 8,128,8,128,8,128,8,128,8,128,8,128,8,128,8,128, - 8,128,8,128,8,128,8,128,8,128,8,128,3,3,3,7, - 2,7,224,224,224,5,5,5,11,3,251,64,48,24,24,240, - 6,11,11,12,3,7,16,16,240,48,48,48,48,48,48,48, - 252,6,9,9,10,2,9,112,136,132,132,132,132,72,48,252, - 7,10,10,13,3,1,8,68,68,34,34,34,34,68,68,136, - 18,18,54,23,3,0,16,4,0,240,12,0,48,8,0,48, - 16,0,48,16,0,48,32,0,48,96,0,48,67,0,48,135, - 0,48,139,0,253,11,0,3,19,0,2,19,0,6,35,0, - 4,63,192,8,3,0,24,3,0,16,15,192,17,18,54,22, - 3,0,16,4,0,240,8,0,48,8,0,48,16,0,48,16, - 0,48,32,0,48,64,0,48,78,0,48,179,128,48,161,128, - 253,49,128,3,17,128,2,3,0,4,6,0,4,8,0,8, - 16,128,24,49,128,16,63,128,18,18,54,23,3,0,120,4, - 0,134,12,0,198,8,0,4,16,0,120,16,0,12,32,0, - 6,96,0,198,67,0,198,135,0,142,139,0,121,11,0,2, - 19,0,2,19,0,4,35,0,12,63,192,8,3,0,16,3, - 0,16,15,192,9,18,36,12,1,250,28,0,28,0,28,0, - 0,0,28,0,34,0,34,0,6,0,4,0,24,0,48,0, - 96,0,227,0,195,128,192,128,224,128,97,0,62,0,18,24, - 72,20,2,0,6,0,0,6,0,0,3,0,0,0,128,0, - 0,0,0,0,0,0,0,128,0,0,192,0,1,192,0,1, - 192,0,1,224,0,3,224,0,2,96,0,2,112,0,6,112, - 0,4,48,0,4,56,0,12,24,0,15,248,0,24,28,0, - 16,12,0,16,14,0,48,14,0,254,63,192,18,24,72,20, - 2,0,0,16,0,0,48,0,0,96,0,0,64,0,0,128, - 0,0,0,0,0,128,0,0,192,0,1,192,0,1,192,0, - 1,224,0,3,224,0,2,96,0,2,112,0,6,112,0,4, - 48,0,4,56,0,12,56,0,15,248,0,24,28,0,16,12, - 0,16,14,0,48,14,0,254,63,192,18,24,72,20,2,0, - 0,128,0,0,192,0,1,96,0,2,48,0,4,8,0,0, - 0,0,0,128,0,0,192,0,1,192,0,1,192,0,1,224, - 0,3,224,0,2,96,0,2,112,0,6,112,0,4,48,0, - 4,56,0,12,56,0,15,248,0,24,28,0,16,12,0,16, - 12,0,48,14,0,254,63,192,18,23,69,20,2,0,3,144, - 0,5,240,0,0,0,0,0,0,0,0,0,0,0,128,0, - 0,128,0,1,192,0,1,192,0,1,224,0,3,224,0,2, - 96,0,2,112,0,6,112,0,4,48,0,12,56,0,12,56, - 0,15,248,0,24,28,0,16,28,0,16,12,0,48,14,0, - 254,63,192,18,23,69,20,1,0,6,24,0,6,24,0,2, - 16,0,0,0,0,0,0,0,0,192,0,0,192,0,0,192, - 0,1,224,0,1,224,0,1,96,0,2,112,0,2,112,0, - 2,48,0,4,56,0,4,24,0,12,24,0,15,252,0,8, - 12,0,24,12,0,24,14,0,56,6,0,254,63,192,17,24, - 72,20,2,0,1,192,0,2,32,0,2,32,0,2,32,0, - 1,192,0,0,0,0,0,128,0,0,128,0,1,192,0,1, - 192,0,1,192,0,2,224,0,2,96,0,2,96,0,4,112, - 0,4,112,0,12,48,0,8,56,0,15,248,0,24,28,0, - 16,28,0,16,12,0,48,14,0,254,127,128,24,18,54,26, - 0,0,0,127,255,0,28,7,0,28,3,0,44,1,0,44, - 1,0,76,17,0,76,16,0,140,48,0,143,240,1,12,48, - 3,12,16,2,12,17,7,252,17,4,12,1,8,12,1,8, - 12,3,24,12,7,254,63,255,14,24,48,18,2,250,7,132, - 24,108,32,60,96,28,96,12,192,12,192,4,192,0,192,0, - 192,0,192,0,192,4,96,4,96,4,96,8,48,24,24,48, - 7,192,2,0,3,128,0,192,0,192,8,192,7,128,15,24, - 48,18,1,0,4,0,6,0,3,0,1,128,0,0,0,0, - 255,254,24,6,24,2,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,15,24,48,18,1,0,0,48,0,48,0,96, - 0,192,0,0,0,0,255,254,24,14,24,6,24,2,24,2, - 24,34,24,32,24,96,31,224,24,96,24,32,24,32,24,34, - 24,2,24,2,24,6,24,14,255,254,15,24,48,18,1,0, - 0,128,1,192,3,64,6,48,8,8,0,0,255,254,24,6, - 24,2,24,2,24,2,24,34,24,32,24,96,31,224,24,96, - 24,32,24,32,24,34,24,2,24,2,24,6,24,14,255,254, - 15,23,46,18,1,0,6,48,6,48,4,16,0,0,0,0, - 255,254,24,14,24,6,24,2,24,2,24,34,24,32,24,96, - 31,224,24,96,24,32,24,32,24,34,24,2,24,2,24,6, - 24,14,255,254,8,24,24,10,1,0,64,96,48,16,8,0, - 255,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,255,8,24,24,10,1,0,3,3,6,8,0,0,255,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,255, - 8,24,24,10,1,0,8,24,52,66,129,0,255,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,255,8,23, - 23,10,1,0,195,195,66,0,0,255,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,255,17,18,54,19,1, - 0,255,240,0,24,12,0,24,6,0,24,3,0,24,3,0, - 24,1,128,24,1,128,24,1,128,127,1,128,24,1,128,24, - 1,128,24,1,128,24,1,128,24,3,0,24,3,0,24,6, - 0,24,12,0,255,240,0,18,24,72,19,1,0,3,200,0, - 2,248,0,0,0,0,0,0,0,0,0,0,0,0,0,252, - 15,192,28,2,0,30,2,0,22,2,0,23,2,0,19,130, - 0,17,130,0,17,194,0,16,226,0,16,226,0,16,114,0, - 16,50,0,16,58,0,16,30,0,16,14,0,16,14,0,16, - 6,0,252,2,0,15,24,48,18,2,1,28,0,12,0,6, - 0,2,0,1,0,0,0,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,96,12,32,8,48,24,24,48,7,192,15,24,48,18,2, - 1,0,112,0,96,0,192,0,128,1,0,0,0,7,192,24, - 48,48,24,32,8,96,12,96,12,192,6,192,6,192,6,192, - 6,192,6,192,6,96,12,96,12,32,8,48,24,24,48,7, - 192,15,24,48,18,2,0,1,0,3,128,6,192,12,96,16, - 16,0,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,24,48,18,2,0,15,16,19, - 224,0,0,0,0,0,0,0,0,7,192,24,48,48,24,32, - 8,96,12,96,12,192,6,192,6,192,6,192,6,192,6,192, - 6,96,12,96,12,32,8,48,24,24,48,7,192,15,24,48, - 18,2,0,8,0,12,96,12,96,0,0,0,0,0,0,7, - 192,24,48,48,24,32,8,96,12,96,12,192,6,192,6,192, - 6,192,6,192,6,192,6,96,12,96,12,32,8,48,24,24, - 48,7,192,16,16,32,24,4,255,0,1,64,3,32,6,16, - 12,8,24,4,48,2,96,1,192,1,128,3,64,6,32,12, - 16,24,8,48,4,96,2,192,1,15,18,36,18,2,0,7, - 194,24,52,48,28,32,12,96,28,96,44,192,70,192,198,193, - 134,195,6,198,6,196,6,232,12,112,12,96,8,112,24,88, - 48,135,192,19,24,72,21,1,1,3,0,0,3,128,0,0, - 128,0,0,64,0,0,0,0,0,0,0,255,15,224,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,12,1,0,12,2,0,6,4,0,1,248, - 0,19,24,72,21,1,1,0,28,0,0,24,0,0,48,0, - 0,32,0,0,64,0,0,0,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,19, - 24,72,21,1,0,0,96,0,0,224,0,1,176,0,3,8, - 0,0,4,0,0,0,0,255,15,224,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,12,1,0,12,2,0,6,4,0,1,248,0,19,23,69, - 21,1,1,3,24,0,3,24,0,0,0,0,0,0,0,0, - 0,0,255,15,224,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,24,1,0,24,1,0,24,1,0,12,1,0,12, - 2,0,6,4,0,1,248,0,17,24,72,19,1,0,0,24, - 0,0,56,0,0,48,0,0,64,0,0,0,0,0,0,0, - 255,31,128,28,6,0,28,4,0,14,4,0,6,8,0,7, - 8,0,3,144,0,3,160,0,1,224,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 0,192,0,7,252,0,15,18,36,17,1,0,255,0,24,0, - 24,0,31,224,24,24,24,12,24,6,24,6,24,6,24,14, - 24,12,24,24,31,240,24,0,24,0,24,0,24,0,255,0, - 12,18,36,14,1,0,7,128,24,224,24,96,48,96,48,192, - 48,128,55,0,49,128,48,64,48,96,48,112,48,48,48,48, - 48,48,54,48,54,112,52,96,243,192,11,18,36,13,1,0, - 96,0,96,0,48,0,24,0,8,0,0,0,30,0,99,0, - 65,128,97,128,33,128,15,128,113,128,193,128,195,160,195,160, - 197,160,121,192,11,18,36,13,1,0,1,128,3,128,3,0, - 4,0,8,0,0,0,62,0,65,0,65,128,97,128,33,128, - 15,128,113,128,193,128,193,160,195,160,197,160,120,192,11,18, - 36,13,1,0,8,0,12,0,28,0,50,0,65,0,0,0, - 30,0,99,0,65,128,97,128,33,128,15,128,113,128,193,128, - 195,160,195,160,197,160,121,192,11,17,34,13,1,0,56,128, - 79,0,0,0,0,0,0,0,30,0,99,0,65,128,97,128, - 33,128,15,128,113,128,193,128,195,160,195,160,197,160,121,192, - 11,17,34,13,1,0,99,0,99,0,1,0,0,0,0,0, - 60,0,67,0,67,0,99,0,3,0,15,0,115,0,195,0, - 195,32,199,32,203,32,121,192,11,18,36,13,1,0,28,0, - 34,0,34,0,34,0,28,0,0,0,60,0,67,0,67,0, - 99,0,35,0,15,0,115,0,195,0,195,32,199,32,199,32, - 121,192,16,12,24,18,1,0,30,120,99,198,65,134,97,131, - 1,131,31,255,97,128,193,128,195,129,195,130,196,194,120,124, - 9,18,36,11,1,250,30,0,33,0,96,128,193,128,193,128, - 192,0,192,0,192,0,192,0,96,128,33,0,30,0,8,0, - 12,0,2,0,3,0,3,0,30,0,9,18,36,12,1,0, - 96,0,112,0,48,0,8,0,0,0,0,0,30,0,35,0, - 97,128,193,128,193,128,255,128,192,0,192,0,192,128,96,128, - 33,0,30,0,9,18,36,12,1,0,1,0,3,0,2,0, - 4,0,8,0,0,0,30,0,35,0,97,128,193,128,193,128, - 255,128,192,0,192,0,192,128,96,128,33,0,30,0,9,18, - 36,12,1,0,8,0,12,0,28,0,18,0,33,0,0,0, - 30,0,35,0,97,128,193,128,193,128,255,128,192,0,192,0, - 192,128,96,128,33,0,30,0,9,17,34,12,1,0,51,0, - 51,0,1,0,0,0,0,0,30,0,35,0,97,128,193,128, - 193,128,255,128,192,0,192,0,192,128,96,128,33,0,30,0, - 7,18,18,8,0,0,192,224,96,16,8,0,120,24,24,24, - 24,24,24,24,24,24,24,126,6,18,18,7,1,0,4,12, - 24,16,32,0,240,48,48,48,48,48,48,48,48,48,48,252, - 8,17,17,8,0,0,24,56,36,195,0,120,24,24,24,24, - 24,24,24,24,24,24,126,7,17,17,9,1,0,4,198,198, - 0,0,120,24,24,24,24,24,24,24,24,24,24,124,10,18, - 36,13,1,0,56,128,27,0,12,0,22,0,35,0,3,0, - 31,128,33,128,97,192,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,33,128,30,0,13,17,34,15,1,0,14,64, - 19,192,0,0,0,0,0,0,243,192,52,192,56,96,56,96, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,253,248, - 10,18,36,13,1,0,96,0,48,0,16,0,8,0,4,0, - 0,0,30,0,33,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,33,128,30,0,10,18,36,13,1,0, - 1,128,3,128,3,0,4,0,0,0,0,0,30,0,33,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 33,128,30,0,10,18,36,13,1,0,4,0,12,0,14,0, - 18,0,33,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,10,17, - 34,13,1,0,60,128,47,0,0,0,0,0,0,0,30,0, - 33,128,97,128,192,192,192,192,192,192,192,192,192,192,192,192, - 97,128,33,128,30,0,10,17,34,13,1,0,49,128,49,128, - 1,0,0,0,0,0,30,0,33,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,33,128,30,0,22,16, - 48,24,1,255,0,112,0,0,112,0,0,112,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,255,252,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,112, - 0,0,112,0,10,12,24,13,1,0,30,64,33,128,96,128, - 193,192,194,192,196,192,200,192,208,192,208,192,97,128,97,128, - 158,0,13,18,36,14,0,0,16,0,24,0,12,0,4,0, - 2,0,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,18,36,14, - 0,0,0,192,0,192,1,128,2,0,0,0,0,0,241,224, - 48,96,48,96,48,96,48,96,48,96,48,96,48,96,48,224, - 48,224,57,96,30,120,13,18,36,14,0,0,2,0,6,0, - 5,0,8,128,16,0,0,0,241,224,48,96,48,96,48,96, - 48,96,48,96,48,96,48,96,48,224,48,224,57,96,30,120, - 13,17,34,14,0,0,24,192,24,192,0,0,0,0,0,0, - 240,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,224,48,224,57,96,30,120,13,24,48,14,0,250,0,96, - 0,224,0,192,1,0,0,0,0,0,252,248,56,32,24,32, - 24,64,12,64,12,64,12,128,6,128,6,128,7,0,3,0, - 3,0,3,0,2,0,34,0,98,0,100,0,56,0,11,24, - 48,14,1,250,48,0,240,0,48,0,48,0,48,0,48,0, - 49,192,54,224,52,96,56,96,56,96,48,96,48,192,48,192, - 49,128,49,0,50,0,60,0,48,0,48,0,48,0,48,0, - 48,0,96,0,13,23,46,14,0,250,8,64,12,96,12,96, - 0,0,0,0,252,120,24,32,24,32,24,64,12,64,12,64, - 14,128,6,128,6,128,7,0,3,0,3,0,2,0,2,0, - 34,0,114,0,100,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 18 - Calculated Max Values w=22 h=24 x= 3 y= 8 dx=24 dy= 0 ascent=18 len=66 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent= 0 - X Font ascent =18 descent= 0 - Max Font ascent =18 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18n[613] U8G_FONT_SECTION("u8g_font_osr18n") = { - 0,68,33,235,248,18,0,0,0,0,42,58,0,18,250,18, - 0,10,10,20,14,2,8,12,0,12,0,204,192,201,192,43, - 0,28,0,123,128,201,192,12,0,12,0,22,22,66,24,1, - 252,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,255, - 255,252,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,0,16,0,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,3,8,8,7,2,252,192,224,224,32,32,64,64, - 128,7,1,1,11,2,6,254,3,3,3,7,2,0,224,224, - 224,8,24,24,12,2,250,1,1,2,2,2,4,4,4,12, - 8,8,24,16,16,16,32,32,32,64,64,64,128,128,128,12, - 18,36,15,1,0,15,0,16,192,32,64,96,96,96,32,192, - 48,192,48,192,48,192,48,192,48,192,48,192,48,192,48,96, - 32,96,96,32,64,16,192,15,0,9,18,36,15,3,0,8, - 0,8,0,24,0,248,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,255,128,10,18,36,15,2,0,30,0,99,128,129,192,128, - 192,128,192,224,192,240,192,32,192,1,128,3,0,6,0,8, - 0,16,0,32,0,64,64,192,64,255,192,255,192,11,18,36, - 15,2,0,63,0,97,128,192,192,224,192,240,192,0,192,0, - 192,1,128,62,0,1,128,0,192,0,96,96,96,240,96,240, - 96,192,192,65,128,63,0,12,18,36,15,2,0,1,0,3, - 0,3,0,7,0,15,0,11,0,19,0,51,0,35,0,67, - 0,195,0,131,0,255,224,3,0,3,0,3,0,3,0,31, - 240,11,18,36,15,2,0,96,192,127,128,126,0,64,0,64, - 0,64,0,95,0,97,128,64,192,64,224,0,96,0,96,96, - 96,240,96,224,192,192,192,65,128,62,0,11,18,36,15,2, - 0,15,0,24,128,48,64,96,192,96,192,64,0,192,0,207, - 0,209,192,224,192,224,224,224,96,224,96,224,96,96,224,96, - 192,49,128,15,0,10,18,36,15,3,0,255,192,255,192,128, - 64,128,64,128,128,0,128,1,0,1,0,2,0,6,0,6, - 0,12,0,12,0,30,0,30,0,30,0,30,0,14,0,12, - 18,36,15,2,0,31,128,48,224,96,96,192,48,192,48,224, - 48,240,32,124,64,63,128,55,224,96,240,192,112,192,48,192, - 48,192,48,96,96,112,192,31,128,11,18,36,15,2,0,30, - 0,49,128,96,192,224,192,192,64,192,96,192,96,192,224,96, - 224,113,96,30,96,0,96,0,64,96,192,96,192,64,128,65, - 0,62,0,3,12,12,7,2,0,224,224,224,0,0,0,0, - 0,0,224,224,224}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--26-260-72-72-P-138-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 18, '1' Height: 18 - Calculated Max Values w=26 h=24 x= 3 y=13 dx=28 dy= 0 ascent=20 len=72 - Font Bounding box w=68 h=33 x=-21 y=-8 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =18 descent=-6 - X Font ascent =19 descent=-6 - Max Font ascent =20 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr18r[3683] U8G_FONT_SECTION("u8g_font_osr18r") = { - 0,68,33,235,248,18,4,197,10,125,32,127,250,20,250,19, - 250,0,0,0,7,0,0,3,18,18,7,2,0,224,224,224, - 224,224,224,64,64,64,64,64,64,64,64,0,224,224,224,6, - 5,5,10,2,13,204,204,204,204,72,14,18,36,18,2,0, - 4,32,4,32,4,32,4,32,4,32,255,252,8,64,8,64, - 8,64,8,64,8,64,24,64,255,252,16,128,16,128,16,128, - 16,128,16,128,11,22,44,15,2,254,9,0,9,0,31,128, - 41,64,73,32,73,32,73,96,73,96,105,0,61,0,31,128, - 15,192,9,192,9,96,233,32,233,32,201,32,201,64,105,64, - 31,128,9,0,9,0,18,18,54,22,2,0,56,2,0,68, - 4,0,198,8,0,198,8,0,198,16,0,198,32,0,198,32, - 0,68,64,0,56,64,0,0,134,0,1,25,128,1,48,128, - 2,48,192,4,48,192,4,48,192,8,48,192,8,24,128,16, - 15,0,18,18,54,20,1,0,7,128,0,8,64,0,24,64, - 0,24,64,0,24,192,0,28,128,0,15,0,0,6,31,192, - 15,6,0,23,6,0,35,132,0,97,196,0,192,232,0,192, - 240,0,192,112,0,224,120,128,96,220,128,63,15,0,2,5, - 5,7,2,13,192,192,192,192,64,6,23,23,10,3,252,8, - 16,48,32,64,64,192,128,128,128,128,128,128,128,128,192,64, - 64,96,32,16,24,12,6,23,23,9,1,252,64,32,48,16, - 24,8,8,12,4,4,4,4,4,4,12,8,8,8,16,16, - 32,64,192,10,10,20,14,2,8,12,0,12,0,204,192,201, - 192,43,0,28,0,123,128,201,192,12,0,12,0,22,22,66, - 24,1,252,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,0,16,0,0,16,0,0,16,0,0,16, - 0,255,255,252,0,16,0,0,16,0,0,16,0,0,16,0, - 0,16,0,0,16,0,0,16,0,0,16,0,0,16,0,0, - 16,0,0,16,0,3,8,8,7,2,252,192,224,224,32,32, - 64,64,128,7,1,1,11,2,6,254,3,3,3,7,2,0, - 224,224,224,8,24,24,12,2,250,1,1,2,2,2,4,4, - 4,12,8,8,24,16,16,16,32,32,32,64,64,64,128,128, - 128,12,18,36,15,1,0,15,0,16,192,32,64,96,96,96, - 32,192,48,192,48,192,48,192,48,192,48,192,48,192,48,192, - 48,96,32,96,96,32,64,16,192,15,0,9,18,36,15,3, - 0,8,0,8,0,24,0,248,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,255,128,10,18,36,15,2,0,30,0,99,128,129, - 192,128,192,128,192,224,192,240,192,32,192,1,128,3,0,6, - 0,8,0,16,0,32,0,64,64,192,64,255,192,255,192,11, - 18,36,15,2,0,63,0,97,128,192,192,224,192,240,192,0, - 192,0,192,1,128,62,0,1,128,0,192,0,96,96,96,240, - 96,240,96,192,192,65,128,63,0,12,18,36,15,2,0,1, - 0,3,0,3,0,7,0,15,0,11,0,19,0,51,0,35, - 0,67,0,195,0,131,0,255,224,3,0,3,0,3,0,3, - 0,31,240,11,18,36,15,2,0,96,192,127,128,126,0,64, - 0,64,0,64,0,95,0,97,128,64,192,64,224,0,96,0, - 96,96,96,240,96,224,192,192,192,65,128,62,0,11,18,36, - 15,2,0,15,0,24,128,48,64,96,192,96,192,64,0,192, - 0,207,0,209,192,224,192,224,224,224,96,224,96,224,96,96, - 224,96,192,49,128,15,0,10,18,36,15,3,0,255,192,255, - 192,128,64,128,64,128,128,0,128,1,0,1,0,2,0,6, - 0,6,0,12,0,12,0,30,0,30,0,30,0,30,0,14, - 0,12,18,36,15,2,0,31,128,48,224,96,96,192,48,192, - 48,224,48,240,32,124,64,63,128,55,224,96,240,192,112,192, - 48,192,48,192,48,96,96,112,192,31,128,11,18,36,15,2, - 0,30,0,49,128,96,192,224,192,192,64,192,96,192,96,192, - 224,96,224,113,96,30,96,0,96,0,64,96,192,96,192,64, - 128,65,0,62,0,3,12,12,7,2,0,224,224,224,0,0, - 0,0,0,0,224,224,224,4,16,16,8,2,252,240,240,240, - 0,0,0,0,0,96,240,240,16,16,32,32,64,20,21,63, - 24,2,253,0,0,48,0,0,192,0,3,0,0,12,0,0, - 48,0,0,224,0,3,128,0,14,0,0,24,0,0,96,0, - 0,192,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,1,128,0,0,96,0, - 0,16,22,6,18,24,1,4,255,255,252,0,0,0,0,0, - 0,0,0,0,0,0,0,255,255,252,20,21,63,24,2,253, - 192,0,0,48,0,0,12,0,0,3,0,0,0,192,0,0, - 112,0,0,28,0,0,7,0,0,1,128,0,0,96,0,0, - 48,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 1,128,0,6,0,0,24,0,0,96,0,0,128,0,0,9, - 18,36,12,2,0,62,0,67,0,129,128,129,128,225,128,97, - 128,3,0,6,0,12,0,16,0,48,0,34,0,34,0,28, - 0,0,0,28,0,28,0,28,0,18,18,54,20,1,0,3, - 248,0,12,6,0,16,109,0,33,156,128,67,12,128,70,8, - 64,142,8,64,142,24,64,140,24,64,140,16,64,140,48,128, - 140,48,128,140,241,0,71,30,0,96,0,0,32,0,0,24, - 12,0,7,240,0,18,18,54,20,2,0,0,128,0,0,192, - 0,1,192,0,1,192,0,1,224,0,3,224,0,2,96,0, - 2,112,0,6,112,0,4,48,0,4,56,0,12,56,0,15, - 248,0,24,28,0,16,12,0,16,12,0,48,14,0,254,63, - 192,15,18,36,17,1,0,255,240,24,28,24,12,24,6,24, - 6,24,6,24,12,24,24,31,224,24,24,24,12,24,6,24, - 6,24,6,24,6,24,12,24,28,255,240,14,18,36,18,2, - 0,7,132,24,108,32,60,96,28,96,12,192,12,192,4,192, - 0,192,0,192,0,192,0,192,4,96,4,96,4,32,8,48, - 24,24,48,7,192,17,18,54,20,1,0,255,240,0,24,12, - 0,24,6,0,24,3,0,24,3,0,24,1,128,24,1,128, - 24,1,128,24,1,128,24,1,128,24,1,128,24,1,128,24, - 1,128,24,3,0,24,3,0,24,6,0,24,12,0,255,240, - 0,15,18,36,18,1,0,255,254,24,6,24,2,24,2,24, - 2,24,34,24,32,24,96,31,224,24,96,24,32,24,32,24, - 34,24,2,24,2,24,6,24,14,255,254,15,18,36,17,1, - 0,255,254,24,6,24,2,24,2,24,2,24,34,24,32,24, - 96,31,224,24,96,24,32,24,32,24,32,24,0,24,0,24, - 0,24,0,127,0,17,18,54,19,2,0,7,196,0,24,100, - 0,48,28,0,96,28,0,96,12,0,96,4,0,192,4,0, - 192,0,0,192,127,128,192,28,0,192,28,0,192,28,0,192, - 28,0,96,28,0,96,28,0,48,52,0,24,100,0,7,132, - 0,18,18,54,20,1,0,255,63,192,24,6,0,24,6,0, - 24,6,0,24,6,0,24,6,0,24,6,0,24,6,0,31, - 254,0,24,6,0,24,6,0,24,6,0,24,6,0,24,6, - 0,24,6,0,24,6,0,24,6,0,255,63,192,8,18,18, - 10,1,0,255,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,255,12,18,36,14,1,0,7,240,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,97,128,241,128,225,128,193,128,67,0,62,0,17, - 18,54,19,1,0,255,63,128,24,14,0,24,8,0,24,16, - 0,24,32,0,24,64,0,24,128,0,25,192,0,26,192,0, - 28,224,0,24,96,0,24,112,0,24,56,0,24,56,0,24, - 28,0,24,28,0,24,14,0,255,127,128,15,18,36,17,1, - 0,255,0,24,0,24,0,24,0,24,0,24,0,24,0,24, - 0,24,0,24,0,24,0,24,2,24,2,24,2,24,6,24, - 6,24,14,255,254,20,18,54,22,1,0,252,3,240,28,3, - 128,30,5,128,22,5,128,22,5,128,23,5,128,19,9,128, - 19,9,128,19,137,128,19,145,128,17,145,128,17,209,128,17, - 209,128,16,225,128,16,225,128,16,225,128,16,65,128,254,79, - 240,18,18,54,19,1,0,252,15,192,28,2,0,30,2,0, - 22,2,0,23,2,0,19,130,0,17,130,0,17,194,0,16, - 226,0,16,226,0,16,114,0,16,50,0,16,58,0,16,30, - 0,16,14,0,16,14,0,16,6,0,254,2,0,15,18,36, - 18,2,0,7,192,24,48,48,24,32,8,96,12,96,12,192, - 6,192,6,192,6,192,6,192,6,192,6,96,12,96,12,32, - 8,48,24,24,48,7,192,15,18,36,17,1,0,255,240,24, - 28,24,12,24,6,24,6,24,6,24,12,24,24,31,240,24, - 0,24,0,24,0,24,0,24,0,24,0,24,0,24,0,255, - 0,15,22,44,18,2,252,7,192,24,48,48,24,32,8,96, - 12,96,12,192,6,192,6,192,6,192,6,192,6,192,6,96, - 12,99,140,36,76,52,120,28,114,7,226,0,98,0,118,0, - 60,0,24,17,18,54,19,1,0,255,240,0,24,24,0,24, - 12,0,24,12,0,24,12,0,24,12,0,24,24,0,31,224, - 0,24,48,0,24,56,0,24,24,0,24,24,0,24,24,0, - 24,28,128,24,28,128,24,28,128,24,31,0,255,15,0,13, - 18,36,16,2,0,30,32,97,160,192,96,192,96,192,32,192, - 32,224,0,124,0,63,128,15,224,129,240,128,112,128,24,192, - 24,192,24,224,16,152,32,135,192,15,18,36,18,2,0,255, - 254,195,14,131,6,131,2,3,2,3,2,3,2,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,31,240,19,18,54,21,1,0,255,15,224,24,1,0,24, - 1,0,24,1,0,24,1,0,24,1,0,24,1,0,24,1, - 0,24,1,0,24,1,0,24,1,0,24,1,0,24,1,0, - 24,1,0,12,1,0,12,2,0,6,4,0,1,248,0,18, - 18,54,20,1,0,255,31,192,28,3,0,28,2,0,12,2, - 0,14,6,0,6,4,0,7,4,0,7,8,0,3,8,0, - 3,136,0,3,144,0,1,144,0,1,208,0,0,224,0,0, - 224,0,0,224,0,0,64,0,0,64,0,26,18,72,28,1, - 0,255,63,159,192,28,14,3,0,12,6,2,0,12,14,2, - 0,14,15,6,0,14,15,4,0,6,19,4,0,7,19,140, - 0,7,19,136,0,3,49,136,0,3,161,216,0,3,161,208, - 0,1,160,208,0,1,192,240,0,1,192,224,0,0,192,96, - 0,0,128,96,0,0,128,64,0,18,18,54,20,1,0,127, - 191,128,14,12,0,14,12,0,7,8,0,7,16,0,3,176, - 0,1,160,0,1,192,0,0,192,0,0,224,0,1,96,0, - 3,112,0,2,56,0,4,56,0,12,28,0,8,12,0,24, - 14,0,254,63,192,17,18,54,19,1,0,255,31,128,28,6, - 0,28,4,0,14,4,0,6,8,0,7,8,0,3,144,0, - 3,160,0,1,224,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,7,252, - 0,14,18,36,17,2,0,127,252,112,56,96,48,64,112,64, - 224,128,192,1,192,3,128,3,0,7,0,14,0,12,4,28, - 4,56,4,48,12,112,28,224,56,255,248,5,23,23,10,3, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,248,8,24,24,12,2,250,128,128, - 128,64,64,64,32,32,32,16,16,16,16,8,8,8,4,4, - 4,2,2,2,1,1,5,23,23,10,2,251,248,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,248,11,9,18,15,2,9,4,0,14,0,10,0,17, - 0,49,128,32,128,64,64,64,96,128,32,14,1,2,14,0, - 252,255,252,4,4,4,11,2,13,192,224,96,16,11,12,24, - 13,1,0,30,0,99,0,65,128,97,128,33,128,15,128,113, - 128,193,128,195,160,195,160,197,160,121,192,11,18,36,13,0, - 0,240,0,48,0,48,0,48,0,48,0,48,0,51,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,40,192,39,128,9,12,24,11,1,0,30,0,33,0,96, - 128,193,128,193,128,192,0,192,0,192,0,192,128,96,128,33, - 0,30,0,12,18,36,14,1,0,7,192,0,192,0,192,0, - 192,0,192,0,192,28,192,98,192,97,192,193,192,192,192,192, - 192,192,192,192,192,192,192,97,192,97,192,30,240,9,12,24, - 12,1,0,30,0,35,0,97,128,193,128,193,128,255,128,192, - 0,192,0,192,128,96,128,33,0,30,0,9,18,36,9,1, - 0,15,0,24,128,49,128,49,0,48,0,48,0,254,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48, - 0,48,0,254,0,12,18,36,15,2,250,30,112,97,176,225, - 240,192,192,192,192,192,192,225,128,97,128,30,0,224,0,255, - 0,127,192,64,96,128,32,128,32,128,32,192,64,63,128,13, - 18,36,15,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,51,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,6,18,18,8,1,0,112, - 112,32,0,0,0,240,48,48,48,48,48,48,48,48,48,48, - 252,7,24,24,8,255,250,6,6,0,0,0,0,62,6,6, - 6,6,6,6,6,6,6,6,6,6,6,198,198,140,120,12, - 18,36,14,1,0,240,0,48,0,48,0,48,0,48,0,48, - 0,49,240,48,128,49,0,50,0,50,0,54,0,59,0,51, - 0,49,128,49,192,48,224,253,240,6,18,18,8,1,0,240, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 252,19,12,36,21,1,0,243,199,0,52,249,128,56,113,192, - 56,97,192,48,97,192,48,97,192,48,97,192,48,97,192,48, - 97,192,48,97,192,48,97,192,253,251,224,13,12,24,15,1, - 0,243,192,52,192,56,96,56,96,48,96,48,96,48,96,48, - 96,48,96,48,96,48,96,253,248,10,12,24,13,1,0,30, - 0,33,128,97,128,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,33,128,30,0,11,18,36,14,1,250,243,128,52, - 192,56,96,56,96,48,96,48,96,48,96,48,96,48,96,56, - 96,56,192,55,128,48,0,48,0,48,0,48,0,48,0,252, - 0,12,18,36,13,1,250,28,64,98,64,97,192,192,192,192, - 192,192,192,192,192,192,192,192,192,97,192,97,192,30,192,0, - 192,0,192,0,192,0,192,0,192,3,240,9,12,24,11,1, - 0,243,128,52,128,57,128,56,128,56,0,48,0,48,0,48, - 0,48,0,48,0,48,0,252,0,9,12,24,11,1,0,125, - 0,131,0,129,0,193,0,240,0,124,0,31,0,131,128,128, - 128,192,128,224,128,159,0,8,17,17,10,1,0,16,16,16, - 48,48,254,48,48,48,48,48,48,48,49,49,51,30,13,12, - 24,14,0,0,241,224,48,96,48,96,48,96,48,96,48,96, - 48,96,48,96,48,224,48,224,57,96,30,120,13,12,24,14, - 1,0,252,248,48,96,48,64,24,64,24,128,12,128,12,128, - 13,0,7,0,7,0,2,0,2,0,19,12,36,21,1,0, - 253,251,224,48,96,128,48,96,128,24,113,0,24,177,0,12, - 177,0,12,154,0,13,26,0,7,28,0,7,12,0,2,12, - 0,2,8,0,12,12,24,14,1,0,249,224,48,128,57,0, - 25,0,14,0,14,0,6,0,11,0,19,0,17,128,33,192, - 243,240,13,18,36,14,0,250,252,248,56,32,24,32,24,64, - 12,64,12,64,12,128,6,128,6,128,7,0,3,0,3,0, - 2,0,2,0,34,0,98,0,100,0,56,0,9,12,24,12, - 1,0,255,128,195,128,131,0,134,0,142,0,12,0,24,0, - 56,0,48,128,96,128,96,128,255,128,6,23,23,12,3,251, - 12,16,48,48,48,48,56,24,24,24,16,224,48,16,24,24, - 56,48,48,48,48,16,12,1,24,24,7,3,250,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,6,23,23,11,3,251,192,32,48,48,48, - 112,96,96,96,96,32,28,48,96,96,96,96,112,48,48,48, - 32,192,15,5,10,17,1,4,32,4,254,2,143,194,129,254, - 64,124,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 6 y=17 dx=32 dy= 0 ascent=28 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21[9530] U8G_FONT_SECTION("u8g_font_osr21") = { - 0,76,38,232,247,21,5,131,12,189,32,255,249,28,248,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,0,4,21,21,8,2,249,96,240,240,96,0,64,64,96, - 96,96,96,96,96,96,96,240,240,240,240,240,96,10,21,42, - 17,3,253,4,0,4,0,4,0,4,0,31,0,52,128,100, - 64,100,192,229,192,228,128,228,0,228,0,228,0,228,0,100, - 64,100,64,52,128,31,0,4,0,4,0,4,0,16,21,42, - 21,2,0,0,60,0,194,0,131,1,135,1,135,3,130,3, - 128,3,128,3,128,63,128,3,240,3,128,3,128,3,128,3, - 0,3,0,123,1,142,1,135,3,135,254,120,252,13,13,26, - 17,2,4,143,136,112,112,96,48,64,16,128,8,128,8,128, - 8,128,8,128,8,64,16,96,48,112,112,143,136,16,21,42, - 17,1,0,252,63,56,8,56,8,24,16,28,16,28,32,14, - 32,14,64,6,64,7,128,3,128,63,248,3,128,3,128,63, - 248,3,128,3,128,3,128,3,128,3,128,31,240,1,27,27, - 8,4,251,128,128,128,128,128,128,128,128,128,128,128,0,0, - 0,0,0,128,128,128,128,128,128,128,128,128,128,128,11,27, - 54,19,3,250,30,0,49,0,97,128,99,128,97,0,112,0, - 56,0,60,0,62,0,79,0,131,128,129,192,128,224,192,96, - 224,32,112,32,56,64,28,128,15,0,7,0,3,0,1,128, - 33,128,113,128,97,128,35,0,28,0,8,3,3,12,2,16, - 195,231,195,21,22,66,23,1,0,0,32,0,3,222,0,12, - 1,128,24,0,192,48,114,96,33,142,32,67,6,16,67,2, - 16,135,2,8,135,0,8,135,0,8,135,0,8,135,0,8, - 135,0,8,135,2,8,67,2,16,67,4,16,33,132,32,48, - 120,96,24,0,192,12,1,128,3,222,0,8,9,9,12,2, - 12,120,196,12,52,68,197,205,118,254,7,12,12,14,3,1, - 16,34,98,68,196,196,196,196,196,66,34,16,14,6,12,16, - 1,5,255,252,0,4,0,4,0,4,0,4,0,4,7,2, - 2,11,2,7,254,254,21,22,66,23,1,0,0,32,0,3, - 222,0,12,1,128,24,0,192,63,248,96,35,140,32,67,142, - 16,67,142,16,131,142,8,131,140,8,131,240,8,131,140,8, - 131,140,8,131,142,8,131,142,72,67,142,80,67,134,80,47, - 195,160,48,0,96,24,0,192,12,1,128,3,222,0,8,1, - 1,14,3,17,255,8,8,8,16,4,13,60,66,129,129,129, - 129,66,60,24,21,63,26,1,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,255,255,255,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,0,8,0,0,8,0,0, - 0,0,0,0,0,255,255,255,8,13,13,13,3,8,60,198, - 135,199,231,6,12,24,48,65,193,255,255,9,13,26,13,3, - 8,60,0,70,0,67,0,99,0,3,0,6,0,120,0,7, - 0,3,0,227,128,227,0,135,0,124,0,5,5,5,13,6, - 16,24,56,48,96,128,15,22,44,18,2,248,192,64,192,96, - 224,224,192,224,192,224,192,96,192,96,192,96,64,96,64,64, - 64,66,192,194,177,190,143,28,128,0,128,0,192,0,192,0, - 192,0,224,0,224,0,96,0,12,26,52,16,2,251,31,240, - 124,64,252,64,252,64,252,64,252,64,252,64,124,64,60,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,64,4,64,4,64,4,64,4,64,4,64,4,64, - 4,64,4,4,4,8,2,8,96,240,240,96,6,7,7,13, - 3,250,32,32,48,8,12,140,120,6,12,12,13,4,9,16, - 48,240,48,48,48,48,48,48,48,48,252,7,10,10,11,2, - 11,56,68,198,198,198,198,198,68,56,254,8,12,12,14,3, - 1,8,132,70,66,35,35,35,35,34,70,68,8,19,21,63, - 25,4,0,16,3,0,48,2,0,240,4,0,48,4,0,48, - 8,0,48,8,0,48,16,0,48,48,0,48,32,0,48,65, - 128,48,67,128,48,131,128,252,133,128,1,9,128,3,9,128, - 2,17,128,4,31,224,4,1,128,8,1,128,8,1,128,16, - 7,224,19,21,63,25,4,0,16,2,0,48,2,0,240,4, - 0,48,4,0,48,8,0,48,16,0,48,16,0,48,32,0, - 48,39,128,48,72,192,48,80,224,48,144,224,252,156,224,1, - 12,192,2,0,192,2,1,0,4,6,0,4,12,32,8,8, - 32,8,31,224,16,31,224,20,21,63,25,3,0,60,1,0, - 70,1,0,67,2,0,99,2,0,3,4,0,6,12,0,120, - 8,0,7,16,0,3,16,0,227,160,192,227,33,192,135,65, - 192,124,130,192,0,132,192,1,4,192,1,8,192,2,15,240, - 2,0,192,4,0,192,8,0,192,8,3,240,11,21,42,14, - 1,249,12,0,30,0,30,0,12,0,0,0,14,0,17,0, - 17,0,17,0,2,0,6,0,28,0,56,0,112,0,224,192, - 225,224,225,224,224,32,96,32,112,64,31,128,20,28,84,22, - 1,0,3,0,0,3,128,0,1,128,0,0,192,0,0,64, - 0,0,0,0,0,0,0,0,32,0,0,96,0,0,96,0, - 0,112,0,0,240,0,0,240,0,0,184,0,1,56,0,1, - 56,0,3,28,0,3,28,0,2,28,0,6,14,0,6,14, - 0,7,254,0,12,7,0,12,7,0,8,7,0,24,3,128, - 24,3,128,255,31,240,20,28,84,22,1,0,0,4,0,0, - 12,0,0,24,0,0,48,0,0,32,0,0,0,0,0,0, - 0,0,32,0,0,96,0,0,96,0,0,112,0,0,240,0, - 0,240,0,1,184,0,1,56,0,1,56,0,3,28,0,3, - 28,0,2,28,0,6,14,0,6,14,0,7,254,0,12,7, - 0,12,7,0,8,7,0,24,3,128,24,3,128,255,31,240, - 20,28,84,22,1,0,0,32,0,0,96,0,0,240,0,1, - 152,0,3,4,0,0,0,0,0,0,0,0,32,0,0,96, - 0,0,96,0,0,112,0,0,240,0,0,240,0,0,184,0, - 1,56,0,1,56,0,3,28,0,3,28,0,2,28,0,6, - 14,0,6,14,0,7,254,0,12,7,0,12,7,0,8,7, - 0,24,3,128,24,3,128,255,31,240,20,27,81,22,1,0, - 1,228,0,3,252,0,2,56,0,0,0,0,0,0,0,0, - 0,0,0,32,0,0,96,0,0,96,0,0,112,0,0,240, - 0,0,240,0,0,184,0,1,184,0,1,56,0,3,28,0, - 3,28,0,2,28,0,6,14,0,6,14,0,7,254,0,12, - 7,0,12,7,0,8,7,0,24,3,128,24,3,128,255,31, - 240,19,27,81,22,2,0,6,24,0,7,28,0,6,24,0, - 0,0,0,0,0,0,0,0,0,0,64,0,0,192,0,0, - 224,0,0,224,0,1,224,0,1,224,0,1,112,0,3,112, - 0,2,48,0,2,56,0,6,56,0,4,24,0,4,28,0, - 12,28,0,15,252,0,8,14,0,24,14,0,24,6,0,24, - 7,0,56,7,0,254,31,224,20,28,84,23,2,0,0,96, - 0,1,152,0,1,8,0,1,8,0,1,152,0,0,96,0, - 0,0,0,0,96,0,0,96,0,0,96,0,0,240,0,0, - 240,0,0,240,0,1,184,0,1,56,0,1,56,0,3,28, - 0,2,28,0,2,28,0,6,14,0,4,14,0,15,254,0, - 8,7,0,8,7,0,24,7,0,24,3,128,56,3,128,255, - 31,240,27,21,84,30,1,0,0,63,255,224,0,15,0,224, - 0,15,0,96,0,31,0,96,0,23,0,32,0,55,0,32, - 0,39,8,32,0,103,8,0,0,71,8,0,0,199,24,0, - 0,135,248,0,1,7,24,0,3,7,8,0,2,7,8,32, - 7,255,8,32,4,7,0,32,12,7,0,32,8,7,0,96, - 24,7,0,96,56,7,1,224,255,63,255,224,15,28,56,19, - 2,250,15,226,16,54,48,30,32,14,96,6,96,6,224,6, - 224,2,224,0,224,0,224,0,224,0,224,0,224,2,96,2, - 96,2,96,4,32,4,48,12,24,8,6,112,1,128,1,0, - 1,192,0,96,0,112,8,96,7,192,17,28,84,20,2,0, - 4,0,0,6,0,0,3,0,0,1,0,0,0,128,0,0, - 0,0,0,0,0,255,255,128,28,3,128,28,3,128,28,1, - 128,28,1,128,28,0,128,28,32,128,28,32,0,28,32,0, - 28,96,0,31,224,0,28,96,0,28,32,0,28,32,128,28, - 32,128,28,0,128,28,1,128,28,1,128,28,3,128,28,7, - 128,255,255,128,17,28,84,20,2,0,0,24,0,0,56,0, - 0,48,0,0,96,0,0,128,0,0,0,0,0,0,0,255, - 255,128,28,3,128,28,3,128,28,1,128,28,1,128,28,0, - 128,28,32,128,28,32,0,28,32,0,28,96,0,31,224,0, - 28,96,0,28,32,0,28,32,128,28,32,128,28,0,128,28, - 1,128,28,1,128,28,3,128,28,7,128,255,255,128,17,28, - 84,20,2,0,0,128,0,0,192,0,1,192,0,2,32,0, - 4,24,0,0,0,0,0,0,0,255,255,128,28,3,128,28, - 3,128,28,1,128,28,1,128,28,0,128,28,32,128,28,32, - 0,28,32,0,28,96,0,31,224,0,28,96,0,28,32,0, - 28,32,128,28,32,128,28,0,128,28,1,128,28,1,128,28, - 3,128,28,7,128,255,255,128,17,27,81,20,2,0,6,48, - 0,7,56,0,6,48,0,0,0,0,0,0,0,0,0,0, - 255,255,128,28,7,128,28,3,128,28,1,128,28,1,128,28, - 1,128,28,32,128,28,32,0,28,32,0,28,96,0,31,224, - 0,28,96,0,28,32,0,28,32,128,28,32,128,28,1,0, - 28,1,128,28,1,128,28,3,128,28,7,128,255,255,128,8, - 28,28,12,2,0,192,224,96,48,24,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,28,56,12,2,0,1,0,3,0,6,0,4,0,8, - 0,0,0,0,0,255,128,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,8, - 28,28,12,2,0,8,24,28,38,193,0,0,255,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 255,9,27,54,11,2,0,195,0,227,128,195,0,0,0,0, - 0,0,0,255,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,0,19,21,63, - 22,2,0,255,248,0,28,6,0,28,3,0,28,1,128,28, - 1,192,28,0,192,28,0,192,28,0,224,28,0,224,255,128, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,192, - 28,0,192,28,1,128,28,1,128,28,3,0,28,6,0,255, - 248,0,20,27,81,23,2,0,1,226,0,3,254,0,2,28, - 0,0,0,0,0,0,0,0,0,0,252,7,240,28,0,128, - 30,0,128,31,0,128,23,0,128,19,128,128,19,192,128,17, - 192,128,16,224,128,16,240,128,16,112,128,16,56,128,16,56, - 128,16,28,128,16,30,128,16,14,128,16,7,128,16,7,128, - 16,3,128,16,1,128,254,1,128,17,28,84,20,2,0,12, - 0,0,14,0,0,6,0,0,3,0,0,1,128,0,0,0, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,28,84,20,2,0,0,24,0,0,56,0,0, - 112,0,0,64,0,0,128,0,0,0,0,0,128,0,7,112, - 0,24,8,0,16,12,0,48,6,0,96,6,0,96,3,0, - 96,3,0,224,3,0,224,3,0,224,3,0,224,3,128,224, - 3,128,224,3,0,224,3,0,96,3,0,96,3,0,96,6, - 0,48,6,0,16,12,0,24,8,0,7,240,0,17,28,84, - 20,2,0,0,128,0,1,128,0,3,192,0,6,32,0,12, - 16,0,0,8,0,0,128,0,7,112,0,24,8,0,16,12, - 0,48,6,0,96,6,0,96,3,0,96,3,0,224,3,0, - 224,3,0,224,3,0,224,3,128,224,3,128,224,3,0,224, - 3,0,96,3,0,96,3,0,96,6,0,48,6,0,16,12, - 0,24,8,0,7,240,0,17,27,81,20,2,0,7,136,0, - 15,248,0,8,112,0,0,0,0,0,0,0,0,128,0,7, - 112,0,24,8,0,16,12,0,48,6,0,96,6,0,96,3, - 0,96,3,0,224,3,0,224,3,0,224,3,0,224,3,128, - 224,3,128,224,3,0,224,3,0,96,3,0,96,3,0,96, - 6,0,48,6,0,16,12,0,24,8,0,7,240,0,17,27, - 81,20,2,0,12,48,0,14,56,0,12,48,0,0,0,0, - 0,0,0,0,128,0,7,112,0,24,8,0,16,12,0,48, - 6,0,96,6,0,96,3,0,96,3,0,224,3,0,224,3, - 0,224,3,0,224,3,128,224,3,128,224,3,0,224,3,0, - 96,3,0,96,3,0,96,6,0,48,6,0,16,12,0,24, - 8,0,7,240,0,18,18,54,27,5,255,128,0,192,192,1, - 128,96,3,0,48,6,0,24,12,0,12,24,0,6,48,0, - 3,96,0,1,192,0,1,192,0,3,96,0,6,48,0,12, - 24,0,24,12,0,48,6,0,96,3,0,64,1,128,128,0, - 192,17,21,63,20,2,1,7,241,0,8,15,0,16,14,0, - 48,6,0,96,14,0,96,27,0,96,19,0,224,35,0,224, - 99,0,224,195,128,225,131,128,225,3,0,226,3,0,230,3, - 0,236,3,0,104,3,0,112,6,0,112,6,0,112,12,0, - 88,8,0,143,240,0,20,28,84,23,2,0,3,0,0,3, - 128,0,1,128,0,0,192,0,0,32,0,0,0,0,0,0, - 0,255,7,240,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,12,0,128,12,1,0,6,2,0,3,252,0, - 20,28,84,23,2,0,0,4,0,0,12,0,0,24,0,0, - 16,0,0,32,0,0,0,0,0,0,0,255,7,240,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,12,0, - 128,12,1,0,6,2,0,3,252,0,20,28,84,23,2,0, - 0,32,0,0,96,0,0,112,0,0,136,0,3,4,0,0, - 0,0,0,0,0,255,7,240,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,28,0,128,28,0,128,12,1,128,12,1,0,6,2, - 0,3,252,0,20,27,81,23,2,0,1,134,0,3,142,0, - 1,134,0,0,0,0,0,0,0,0,0,0,255,131,240,28, - 0,128,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,12, - 0,128,12,1,0,6,2,0,3,252,0,19,28,84,21,1, - 0,0,4,0,0,12,0,0,24,0,0,16,0,0,32,0, - 0,0,0,0,0,0,255,143,224,30,3,128,14,3,0,14, - 2,0,7,2,0,7,4,0,3,132,0,1,200,0,1,200, - 0,0,240,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,254,0,17,21,63,20,2,0,255,128,0,28,0, - 0,28,0,0,31,240,0,28,12,0,28,6,0,28,3,0, - 28,3,0,28,3,128,28,3,128,28,3,0,28,3,0,28, - 6,0,28,12,0,31,240,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,255,128,0,13,21,42,15,1,0, - 7,192,12,96,24,112,56,112,56,112,56,96,56,192,59,0, - 56,192,56,96,56,48,56,48,56,56,56,56,56,56,56,56, - 58,56,63,56,62,48,60,48,251,192,13,21,42,15,1,0, - 96,0,96,0,48,0,24,0,8,0,4,0,0,0,31,0, - 97,128,65,192,97,192,113,192,1,192,15,192,49,192,97,192, - 193,192,193,200,195,200,196,216,56,240,13,21,42,15,1,0, - 0,192,1,192,1,128,3,0,6,0,4,0,0,0,31,0, - 33,128,96,192,112,192,112,192,0,192,7,192,56,192,96,192, - 224,192,224,200,225,200,226,216,60,112,13,21,42,15,1,0, - 4,0,12,0,14,0,26,0,17,0,32,128,0,0,31,0, - 33,128,97,192,113,192,113,192,1,192,15,192,49,192,97,192, - 225,192,225,200,225,200,226,216,60,240,13,20,40,15,1,0, - 24,0,63,128,71,128,0,0,0,0,0,0,31,0,33,128, - 97,192,113,192,113,192,1,192,15,192,49,192,97,192,225,192, - 225,200,225,200,226,216,60,240,13,20,40,15,1,0,97,128, - 97,192,97,128,0,0,0,0,0,0,30,0,97,128,64,128, - 96,128,96,192,0,192,15,192,48,192,96,192,192,192,193,200, - 194,200,194,216,60,112,13,21,42,15,1,0,14,0,49,0, - 33,0,33,0,19,0,14,0,0,0,30,0,33,128,97,128, - 97,128,113,192,1,192,15,192,113,192,97,192,225,192,225,200, - 227,200,229,216,120,240,18,14,42,20,1,0,31,30,0,97, - 227,0,65,227,0,97,193,128,113,193,128,1,193,128,15,255, - 192,113,192,0,65,192,0,193,192,128,193,192,128,194,224,128, - 194,97,0,60,62,0,10,20,40,12,1,250,31,0,48,128, - 96,192,96,192,225,192,224,128,224,0,224,0,224,0,224,64, - 96,64,96,128,48,128,31,0,8,0,12,0,3,0,3,0, - 3,0,30,0,10,21,42,13,1,0,96,0,112,0,56,0, - 24,0,4,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,0,192,1,192,1,128, - 3,0,6,0,0,0,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,21,42,13,1,0,4,0,4,0,14,0, - 11,0,17,0,32,128,0,0,30,0,49,128,97,128,96,192, - 224,192,224,192,255,192,224,0,224,0,224,64,96,64,96,64, - 48,128,31,0,10,20,40,13,1,0,49,128,113,192,49,128, - 0,0,0,0,0,0,30,0,49,128,97,128,96,192,224,192, - 224,192,255,192,224,0,224,0,224,64,96,64,96,64,48,128, - 31,0,7,21,21,8,0,0,192,192,96,48,24,0,0,124, - 28,28,28,28,28,28,28,28,28,28,28,28,126,7,21,21, - 8,1,0,6,14,12,24,16,0,0,248,56,56,56,56,56, - 56,56,56,56,56,56,56,252,7,20,20,9,1,0,48,48, - 104,132,2,0,248,56,56,56,56,56,56,56,56,56,56,56, - 56,252,8,19,19,9,1,0,198,231,198,0,0,124,28,28, - 28,28,28,28,28,28,28,28,28,28,126,12,21,42,14,1, - 0,56,64,29,128,14,0,15,0,19,0,33,128,1,192,15, - 192,48,224,96,224,96,96,224,96,224,112,224,112,224,96,224, - 96,224,96,96,96,96,192,48,128,15,0,14,20,40,16,1, - 0,14,32,15,32,19,192,16,192,0,0,0,0,249,192,62, - 96,60,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,252,252,12,21,42,14,1,0,32, - 0,48,0,24,0,8,0,4,0,0,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,0, - 192,1,192,1,128,3,0,2,0,4,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,21,42,14,1,0,4, - 0,6,0,14,0,11,0,16,128,32,0,0,0,15,0,48, - 128,96,192,96,96,224,96,224,96,224,112,224,112,224,96,224, - 96,96,96,96,192,48,128,15,0,12,20,40,14,1,0,28, - 64,63,192,39,128,0,0,0,0,0,0,15,0,48,128,96, - 192,96,96,224,96,224,96,224,112,224,112,224,96,224,96,96, - 96,96,192,48,128,15,0,12,20,40,14,1,0,48,192,57, - 192,48,192,0,0,0,0,0,0,15,0,48,128,96,192,96, - 96,224,96,224,96,224,112,224,112,224,96,224,96,96,96,96, - 192,48,128,15,0,24,19,57,26,1,254,0,24,0,0,60, - 0,0,60,0,0,24,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,255,255,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,24,0,0,60,0,0,60, - 0,0,24,0,12,14,28,14,1,0,15,32,48,160,96,192, - 96,224,225,96,227,96,226,112,228,112,232,96,240,96,96,96, - 96,192,112,128,143,0,14,21,42,16,1,0,24,0,24,0, - 12,0,6,0,2,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,0,96,0,224, - 0,192,1,128,1,0,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,21,42,16,1,0,2,0,3,0, - 7,0,4,128,8,64,0,0,0,0,248,240,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,112, - 56,240,25,112,14,124,14,20,40,16,1,0,24,96,28,224, - 24,96,0,0,0,0,0,0,248,240,56,112,56,112,56,112, - 56,112,56,112,56,112,56,112,56,112,56,112,56,112,56,240, - 25,112,14,124,14,28,56,15,0,249,0,48,0,112,0,96, - 0,192,1,128,0,0,0,0,254,124,24,16,24,16,28,16, - 12,32,12,32,14,32,6,64,6,64,6,64,3,128,3,128, - 3,128,1,128,1,0,1,0,1,0,98,0,114,0,100,0, - 56,0,12,28,56,14,1,249,56,0,248,0,56,0,56,0, - 56,0,56,0,56,0,57,224,62,112,60,112,56,112,56,112, - 56,112,56,96,56,96,56,192,56,128,57,128,58,0,60,0, - 56,0,56,0,56,0,56,0,56,0,56,0,48,0,192,0, - 14,26,52,15,0,249,12,48,14,112,12,48,0,0,0,0, - 254,60,24,16,24,16,28,32,12,32,12,32,14,32,6,64, - 6,64,7,64,3,128,3,128,3,128,1,0,1,0,1,0, - 1,0,114,0,114,0,116,0,56,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 21 - Calculated Max Values w=24 h=28 x= 3 y= 9 dx=26 dy= 0 ascent=22 len=75 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =21 descent= 0 - X Font ascent =21 descent= 0 - Max Font ascent =22 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21n[722] U8G_FONT_SECTION("u8g_font_osr21n") = { - 0,76,38,232,247,21,0,0,0,0,42,58,0,22,250,21, - 0,10,12,24,14,2,9,12,0,14,0,204,64,228,192,117, - 192,14,0,30,0,229,192,196,192,12,0,14,0,12,0,24, - 25,75,26,1,252,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,0,8,0,255,255,255,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 4,8,8,8,2,251,224,240,240,16,16,16,32,64,7,2, - 2,11,2,7,254,254,4,4,4,8,2,0,96,240,240,96, - 9,28,56,13,2,250,0,128,0,128,1,128,1,0,1,0, - 1,0,2,0,2,0,2,0,6,0,4,0,4,0,12,0, - 8,0,8,0,24,0,16,0,16,0,16,0,32,0,32,0, - 32,0,64,0,64,0,64,0,192,0,128,0,128,0,14,21, - 42,17,1,0,7,128,24,64,48,32,32,48,96,16,96,24, - 96,24,224,24,224,24,224,24,224,28,224,28,224,24,224,24, - 224,24,96,24,96,24,96,48,48,32,16,96,15,192,10,21, - 42,17,3,0,2,0,6,0,6,0,14,0,254,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,12,21, - 42,17,2,0,31,0,32,192,64,96,128,112,128,112,192,112, - 240,112,112,112,32,96,0,224,0,192,1,0,6,0,12,0, - 24,0,48,16,96,16,64,16,224,112,255,240,255,240,12,21, - 42,17,2,0,31,0,97,192,192,224,224,96,240,96,112,112, - 0,96,0,96,0,224,48,192,63,0,0,192,0,96,0,112, - 0,112,96,112,240,112,240,112,192,96,192,192,127,128,14,21, - 42,17,2,0,0,64,0,192,1,192,1,192,3,192,7,192, - 5,192,13,192,9,192,17,192,49,192,33,192,65,192,193,192, - 255,252,1,192,1,192,1,192,1,192,1,192,15,252,12,21, - 42,17,2,0,96,64,127,128,127,0,64,0,64,0,64,0, - 64,0,95,0,96,192,64,96,64,96,0,112,0,112,0,112, - 96,112,240,112,240,112,224,96,192,224,64,192,63,128,12,21, - 42,17,2,0,7,128,24,64,16,96,48,224,96,224,96,192, - 96,0,224,0,231,128,232,192,240,96,240,96,224,112,224,112, - 224,112,224,112,96,112,96,96,112,96,48,192,31,128,11,21, - 42,17,3,0,255,224,255,224,192,32,128,32,128,64,128,64, - 0,64,0,128,1,0,1,0,2,0,6,0,6,0,12,0, - 12,0,12,0,30,0,30,0,30,0,30,0,30,0,14,21, - 42,17,2,0,15,128,48,96,96,48,224,24,224,24,224,24, - 224,24,240,16,124,32,63,192,15,224,51,240,96,248,224,56, - 224,28,224,28,224,24,224,24,96,24,112,48,31,192,12,21, - 42,17,2,0,15,0,48,128,96,64,96,96,224,96,224,96, - 224,112,224,112,224,112,96,112,96,240,49,176,14,48,0,48, - 0,32,48,96,112,96,112,64,96,192,96,128,63,0,4,14, - 14,8,2,0,96,240,240,96,0,0,0,0,0,0,96,240, - 240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--29-290-72-72-P-153-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 21, '1' Height: 21 - Calculated Max Values w=29 h=28 x= 4 y=17 dx=32 dy= 0 ascent=23 len=88 - Font Bounding box w=76 h=38 x=-24 y=-9 - Calculated Min Values x=-1 y=-7 dx= 0 dy= 0 - Pure Font ascent =21 descent=-7 - X Font ascent =22 descent=-7 - Max Font ascent =23 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr21r[4396] U8G_FONT_SECTION("u8g_font_osr21r") = { - 0,76,38,232,247,21,5,131,12,189,32,127,249,23,249,22, - 249,0,0,0,8,0,0,4,21,21,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,64,0,96,240, - 240,96,7,5,5,11,2,17,238,204,204,204,68,15,21,42, - 19,2,0,2,16,6,16,6,16,4,16,4,48,4,48,255, - 254,4,32,12,32,12,32,8,32,8,96,8,96,8,64,255, - 254,24,64,24,64,16,192,16,192,16,128,16,128,13,25,50, - 17,2,254,5,0,5,0,15,128,53,96,37,16,69,24,69, - 24,69,56,69,56,117,48,61,0,63,0,15,192,7,224,5, - 240,5,48,101,24,229,24,229,24,197,24,69,48,69,32,61, - 192,7,0,5,0,19,21,63,25,3,0,60,1,0,70,2, - 0,66,2,0,195,4,0,195,8,0,195,8,0,195,16,0, - 195,16,0,66,32,0,102,32,0,56,64,0,0,67,0,0, - 140,192,1,8,64,1,24,96,2,24,96,2,24,96,4,24, - 96,4,24,96,8,8,64,8,7,128,20,21,63,23,2,0, - 3,128,0,12,64,0,8,32,0,24,32,0,24,32,0,24, - 96,0,28,64,0,12,128,0,15,0,0,7,15,240,15,1, - 128,27,129,0,51,193,0,97,194,0,96,226,0,224,244,0, - 224,124,0,224,56,0,224,60,0,96,60,32,59,198,192,3, - 5,5,7,2,17,224,192,192,192,64,6,28,28,10,3,250, - 4,12,24,16,32,32,64,64,64,128,128,128,128,128,128,128, - 128,128,128,192,64,64,32,32,16,24,8,4,6,28,28,11, - 2,250,128,192,64,32,48,16,24,8,8,8,4,4,4,4, - 4,4,4,4,12,8,8,24,16,48,32,96,192,128,10,12, - 24,14,2,9,12,0,14,0,204,64,228,192,117,192,14,0, - 30,0,229,192,196,192,12,0,14,0,12,0,24,25,75,26, - 1,252,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,0,8,0, - 0,8,0,0,8,0,255,255,255,0,8,0,0,8,0,0, - 8,0,0,8,0,0,8,0,0,8,0,0,8,0,0,8, - 0,0,8,0,0,8,0,0,8,0,0,8,0,4,8,8, - 8,2,251,224,240,240,16,16,16,32,64,7,2,2,11,2, - 7,254,254,4,4,4,8,2,0,96,240,240,96,9,28,56, - 13,2,250,0,128,0,128,1,128,1,0,1,0,1,0,2, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,16,0,16,0,16,0,32,0,32,0,32,0,64, - 0,64,0,64,0,192,0,128,0,128,0,14,21,42,17,1, - 0,7,128,24,64,48,32,32,48,96,16,96,24,96,24,224, - 24,224,24,224,24,224,28,224,28,224,24,224,24,224,24,96, - 24,96,24,96,48,48,32,16,96,15,192,10,21,42,17,3, - 0,2,0,6,0,6,0,14,0,254,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,255,192,12,21,42,17,2, - 0,31,0,32,192,64,96,128,112,128,112,192,112,240,112,112, - 112,32,96,0,224,0,192,1,0,6,0,12,0,24,0,48, - 16,96,16,64,16,224,112,255,240,255,240,12,21,42,17,2, - 0,31,0,97,192,192,224,224,96,240,96,112,112,0,96,0, - 96,0,224,48,192,63,0,0,192,0,96,0,112,0,112,96, - 112,240,112,240,112,192,96,192,192,127,128,14,21,42,17,2, - 0,0,64,0,192,1,192,1,192,3,192,7,192,5,192,13, - 192,9,192,17,192,49,192,33,192,65,192,193,192,255,252,1, - 192,1,192,1,192,1,192,1,192,15,252,12,21,42,17,2, - 0,96,64,127,128,127,0,64,0,64,0,64,0,64,0,95, - 0,96,192,64,96,64,96,0,112,0,112,0,112,96,112,240, - 112,240,112,224,96,192,224,64,192,63,128,12,21,42,17,2, - 0,7,128,24,64,16,96,48,224,96,224,96,192,96,0,224, - 0,231,128,232,192,240,96,240,96,224,112,224,112,224,112,224, - 112,96,112,96,96,112,96,48,192,31,128,11,21,42,17,3, - 0,255,224,255,224,192,32,128,32,128,64,128,64,0,64,0, - 128,1,0,1,0,2,0,6,0,6,0,12,0,12,0,12, - 0,30,0,30,0,30,0,30,0,30,0,14,21,42,17,2, - 0,15,128,48,96,96,48,224,24,224,24,224,24,224,24,240, - 16,124,32,63,192,15,224,51,240,96,248,224,56,224,28,224, - 28,224,24,224,24,96,24,112,48,31,192,12,21,42,17,2, - 0,15,0,48,128,96,64,96,96,224,96,224,96,224,112,224, - 112,224,112,96,112,96,240,49,176,14,48,0,48,0,32,48, - 96,112,96,112,64,96,192,96,128,63,0,4,14,14,8,2, - 0,96,240,240,96,0,0,0,0,0,0,96,240,240,96,4, - 18,18,8,2,251,96,240,240,96,0,0,0,0,0,0,224, - 240,240,16,16,48,32,64,22,24,72,27,2,251,0,0,12, - 0,0,56,0,0,96,0,1,128,0,7,0,0,28,0,0, - 112,0,0,192,0,3,0,0,14,0,0,56,0,0,224,0, - 0,224,0,0,48,0,0,12,0,0,7,0,0,1,192,0, - 0,112,0,0,24,0,0,6,0,0,3,128,0,0,224,0, - 0,56,0,0,12,24,7,21,26,1,5,255,255,255,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 22,24,72,27,3,251,192,0,0,112,0,0,24,0,0,6, - 0,0,3,128,0,0,224,0,0,56,0,0,12,0,0,3, - 0,0,0,192,0,0,112,0,0,28,0,0,28,0,0,48, - 0,0,192,0,3,128,0,14,0,0,56,0,0,96,0,1, - 128,0,7,0,0,28,0,0,112,0,0,192,0,0,11,21, - 42,14,2,0,30,0,97,128,128,192,128,192,240,224,240,192, - 97,192,1,128,3,128,6,0,12,0,8,0,17,0,17,0, - 17,0,14,0,0,0,12,0,30,0,30,0,12,0,21,21, - 63,25,2,1,3,255,0,12,0,128,24,0,64,48,0,32, - 32,59,144,64,199,16,65,135,8,131,7,8,135,6,8,134, - 6,8,142,14,8,142,14,8,142,12,16,142,28,16,142,28, - 32,70,44,64,67,199,128,32,0,0,16,0,0,8,1,128, - 7,222,0,20,21,63,22,1,0,0,32,0,0,96,0,0, - 96,0,0,112,0,0,240,0,0,240,0,0,184,0,1,56, - 0,1,56,0,3,28,0,3,28,0,2,28,0,6,14,0, - 6,14,0,7,254,0,12,7,0,12,7,0,8,7,0,24, - 3,128,24,3,128,255,31,240,16,21,42,20,2,0,255,240, - 28,12,28,6,28,7,28,7,28,7,28,7,28,6,28,12, - 31,240,28,28,28,6,28,6,28,7,28,7,28,7,28,7, - 28,7,28,6,28,12,255,240,15,21,42,19,2,1,15,226, - 16,54,48,30,32,14,96,6,96,6,224,6,224,2,224,0, - 224,0,224,0,224,0,224,0,224,2,96,2,96,2,96,4, - 32,4,48,12,24,8,7,240,19,21,63,22,2,0,255,248, - 0,28,6,0,28,3,0,28,1,128,28,1,128,28,1,192, - 28,0,192,28,0,192,28,0,192,28,0,224,28,0,224,28, - 0,224,28,0,192,28,0,192,28,0,192,28,1,192,28,1, - 128,28,1,0,28,3,0,28,6,0,255,248,0,17,21,63, - 20,2,0,255,255,128,28,3,128,28,3,128,28,1,128,28, - 1,128,28,0,128,28,32,128,28,32,0,28,32,0,28,96, - 0,31,224,0,28,96,0,28,32,0,28,32,128,28,32,128, - 28,0,128,28,1,128,28,1,128,28,3,128,28,7,128,255, - 255,128,17,21,63,20,2,0,255,255,128,28,3,128,28,3, - 128,28,1,128,28,1,128,28,0,128,28,32,128,28,32,0, - 28,32,0,28,96,0,31,224,0,28,96,0,28,32,0,28, - 32,0,28,32,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,21,63,21,2,1,15,226,0, - 24,26,0,48,14,0,32,14,0,96,6,0,96,6,0,224, - 2,0,224,2,0,224,0,0,224,0,0,224,127,192,224,14, - 0,224,14,0,224,14,0,224,14,0,96,14,0,96,14,0, - 32,14,0,48,26,0,16,50,0,15,226,0,20,21,63,23, - 2,0,255,15,240,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,31,255,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,15, - 240,8,21,21,12,2,0,255,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,255,13,21,42,15, - 1,0,7,248,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 112,224,240,192,240,192,192,192,65,128,127,0,19,21,63,22, - 2,0,255,31,224,28,7,0,28,6,0,28,12,0,28,8, - 0,28,16,0,28,32,0,28,64,0,28,192,0,29,224,0, - 30,224,0,28,112,0,28,112,0,28,56,0,28,28,0,28, - 28,0,28,14,0,28,14,0,28,7,0,28,7,0,255,63, - 224,16,21,42,20,2,0,255,128,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,1,28,1,28,1,28,1,28,3,28,3,28,15,255, - 255,21,21,63,25,2,0,252,1,248,30,1,224,30,1,224, - 30,2,224,22,2,224,23,2,224,23,2,224,19,4,224,19, - 132,224,19,132,224,17,132,224,17,200,224,17,200,224,16,200, - 224,16,208,224,16,240,224,16,240,224,16,112,224,16,96,224, - 16,96,224,254,39,248,20,21,63,23,2,0,252,7,240,28, - 0,128,30,0,128,31,0,128,23,0,128,19,128,128,19,192, - 128,17,192,128,16,224,128,16,240,128,16,112,128,16,56,128, - 16,56,128,16,28,128,16,30,128,16,14,128,16,7,128,16, - 7,128,16,3,128,16,1,128,254,1,128,17,22,66,20,2, - 0,0,128,0,7,112,0,24,8,0,16,12,0,48,6,0, - 96,6,0,96,3,0,96,3,0,224,3,0,224,3,0,224, - 3,0,224,3,128,224,3,128,224,3,0,224,3,0,96,3, - 0,96,3,0,96,6,0,48,6,0,16,12,0,24,8,0, - 7,240,0,17,21,63,20,2,0,255,248,0,28,14,0,28, - 7,0,28,3,0,28,3,0,28,3,128,28,3,0,28,3, - 0,28,6,0,28,12,0,31,240,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,255,128,0,17,27,81,20,2,251,0,128, - 0,7,112,0,24,8,0,16,12,0,48,6,0,96,6,0, - 96,3,0,96,3,0,224,3,0,224,3,0,224,3,0,224, - 3,128,224,3,128,224,3,0,224,3,0,96,3,0,96,3, - 0,97,198,0,51,38,0,26,60,0,14,60,0,7,48,128, - 0,241,0,0,49,0,0,57,0,0,31,0,0,14,0,18, - 21,63,21,2,0,255,248,0,28,14,0,28,6,0,28,7, - 0,28,7,0,28,7,0,28,7,0,28,6,0,28,12,0, - 31,240,0,28,24,0,28,24,0,28,12,0,28,12,0,28, - 12,0,28,14,0,28,14,64,28,14,64,28,14,64,28,7, - 128,255,131,128,14,21,42,18,3,1,63,144,96,208,192,112, - 192,48,192,16,192,16,224,16,240,16,124,0,63,128,31,224, - 7,240,128,248,128,56,128,28,128,12,192,12,224,12,224,8, - 144,16,142,224,17,21,63,21,2,0,255,255,128,225,195,128, - 193,193,128,193,193,128,193,192,128,129,192,128,129,192,128,129, - 192,128,1,192,0,1,192,0,1,192,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,15,248,0,20,21,63,23,2,0,255, - 7,240,28,0,128,28,0,128,28,0,128,28,0,128,28,0, - 128,28,0,128,28,0,128,28,0,128,28,0,128,28,0,128, - 28,0,128,28,0,128,28,0,128,28,0,128,28,0,128,28, - 0,128,12,0,128,12,1,0,6,2,0,3,252,0,20,22, - 66,23,2,255,255,143,240,28,1,192,28,1,128,14,1,128, - 14,1,0,14,1,0,7,3,0,7,2,0,7,2,0,3, - 134,0,3,132,0,3,132,0,1,196,0,1,200,0,1,200, - 0,0,232,0,0,240,0,0,112,0,0,112,0,0,112,0, - 0,32,0,0,32,0,29,22,88,32,2,255,255,63,231,248, - 28,7,0,192,28,7,0,128,28,7,0,128,12,7,128,128, - 14,15,129,128,14,11,129,0,6,9,129,0,7,9,195,0, - 7,25,194,0,7,17,194,0,3,16,230,0,3,144,228,0, - 3,176,228,0,1,160,108,0,1,224,120,0,1,224,120,0, - 1,192,120,0,0,192,48,0,0,192,48,0,0,192,48,0, - 0,128,16,0,19,21,63,22,2,0,255,159,224,14,7,0, - 14,6,0,7,4,0,7,12,0,3,136,0,3,208,0,1, - 208,0,1,224,0,0,224,0,0,112,0,0,240,0,1,184, - 0,1,56,0,2,28,0,6,28,0,4,14,0,8,14,0, - 24,7,0,24,7,0,255,31,224,19,21,63,21,1,0,255, - 143,224,30,3,128,14,3,0,14,2,0,7,2,0,7,4, - 0,3,132,0,1,200,0,1,200,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,7,254,0,15,21, - 42,19,2,0,63,254,56,14,112,28,96,56,64,56,64,112, - 64,240,0,224,1,192,1,192,3,128,7,128,7,0,14,2, - 14,2,28,2,60,2,56,6,112,6,240,14,255,254,6,27, - 27,11,3,250,252,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,252,9, - 28,56,13,2,250,128,0,128,0,192,0,64,0,64,0,64, - 0,32,0,32,0,32,0,16,0,16,0,16,0,24,0,8, - 0,8,0,12,0,4,0,4,0,4,0,2,0,2,0,2, - 0,1,0,1,0,1,0,1,128,0,128,0,128,6,27,27, - 11,2,250,252,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,252,13,11, - 22,17,2,10,2,0,2,0,5,0,13,128,8,128,24,192, - 16,64,32,32,96,48,64,16,192,24,15,1,2,15,0,251, - 255,254,5,5,5,13,2,16,192,224,96,48,8,13,14,28, - 15,1,0,31,0,33,128,97,192,113,192,113,192,1,192,15, - 192,49,192,97,192,225,192,225,200,225,200,226,216,60,240,13, - 21,42,15,1,0,248,0,56,0,56,0,56,0,56,0,56, - 0,56,0,59,192,60,96,56,48,56,48,56,48,56,48,56, - 56,56,56,56,48,56,48,56,48,56,48,36,96,35,192,10, - 14,28,12,1,0,31,0,48,128,96,64,96,192,225,192,224, - 128,224,0,224,0,224,0,224,0,96,64,96,128,48,128,31, - 0,13,21,42,15,1,0,3,224,0,224,0,224,0,224,0, - 224,0,224,0,224,30,224,49,224,97,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 248,10,14,28,13,1,0,30,0,49,128,97,128,96,192,224, - 192,224,192,255,192,224,0,224,0,224,64,96,64,96,64,48, - 128,31,0,10,21,42,10,1,0,15,0,24,128,57,192,57, - 128,56,0,56,0,56,0,254,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,254,0,14,21,42,16,2,249,31,56,113,200,96,220,224, - 248,224,224,224,224,224,224,96,192,49,128,31,0,96,0,128, - 0,224,0,127,224,56,112,64,16,128,16,128,16,128,48,64, - 96,63,128,14,21,42,16,1,0,248,0,56,0,56,0,56, - 0,56,0,56,0,56,0,57,192,62,96,60,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,56,112,56,112,56, - 112,252,252,6,21,21,7,1,0,112,112,112,0,0,0,0, - 240,112,112,112,112,112,112,112,112,112,112,112,112,252,8,28, - 28,9,255,249,6,7,6,0,0,0,0,31,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,70,230,198,204,120, - 13,21,42,15,1,0,248,0,56,0,56,0,56,0,56,0, - 56,0,56,0,57,248,56,192,56,128,57,0,57,0,58,0, - 63,0,63,0,59,128,57,192,56,192,56,224,56,224,253,248, - 7,21,21,8,1,0,248,56,56,56,56,56,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,254,21,14,42,23,1, - 0,249,195,192,62,100,224,60,120,96,56,120,96,56,112,96, - 56,112,96,56,112,96,56,112,96,56,112,96,56,112,96,56, - 112,96,56,112,96,56,112,96,252,253,248,14,14,28,16,1, - 0,249,192,62,96,60,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,112,252,252,12,14,28, - 14,1,0,15,0,48,128,96,192,96,96,224,96,224,96,224, - 112,224,112,224,96,224,96,96,96,96,192,48,128,15,0,13, - 21,42,15,1,249,251,192,60,96,56,48,56,48,56,48,56, - 48,56,56,56,56,56,48,56,48,56,48,56,48,60,96,59, - 192,56,0,56,0,56,0,56,0,56,0,56,0,252,0,13, - 21,42,15,1,249,30,32,49,32,96,224,96,224,224,224,224, - 224,224,224,224,224,224,224,224,224,96,224,96,224,49,224,30, - 224,0,224,0,224,0,224,0,224,0,224,0,224,3,248,10, - 14,28,12,1,0,249,128,58,64,60,192,60,192,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,252, - 0,10,14,28,13,2,0,60,128,195,128,129,128,128,128,192, - 128,240,0,62,0,15,128,131,192,128,192,192,64,192,64,160, - 128,159,0,8,20,20,10,1,0,16,16,16,16,48,48,254, - 48,48,48,48,48,48,48,48,49,49,49,59,30,14,14,28, - 16,1,0,248,240,56,112,56,112,56,112,56,112,56,112,56, - 112,56,112,56,112,56,112,56,112,56,240,25,112,14,124,15, - 14,28,15,0,0,254,126,56,16,24,16,28,16,12,32,12, - 32,6,32,6,64,7,64,3,64,3,128,1,128,1,128,1, - 0,22,14,42,22,0,0,254,252,252,56,56,32,24,56,32, - 28,56,32,12,56,64,12,60,64,6,76,64,6,76,128,7, - 70,128,3,134,128,3,135,0,1,131,0,1,131,0,1,2, - 0,14,14,28,16,1,0,124,248,56,96,24,64,12,128,14, - 128,7,0,7,0,3,128,5,128,5,192,8,192,16,224,16, - 96,249,252,15,21,42,15,0,249,254,126,24,16,24,16,28, - 16,12,32,12,32,14,32,6,64,6,64,6,64,3,128,3, - 128,3,128,1,128,1,0,1,0,1,0,98,0,114,0,100, - 0,56,0,10,14,28,13,1,0,255,192,193,192,129,128,131, - 0,135,0,6,0,14,0,28,0,24,0,56,64,48,64,112, - 64,224,192,255,192,6,27,27,12,3,250,12,24,48,48,48, - 48,48,56,24,24,24,16,48,192,48,16,24,24,24,56,48, - 48,48,48,48,16,12,1,28,28,8,4,250,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,6,27,27,12,3,250,128,96, - 32,48,48,48,112,96,96,96,96,96,32,28,48,96,96,96, - 96,96,112,48,48,48,32,96,192,16,6,12,18,1,5,56, - 2,126,1,143,193,131,241,128,255,64,62,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=35 x= 7 y=21 dx=38 dy= 0 ascent=35 len=140 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-10 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =35 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26[13186] U8G_FONT_SECTION("u8g_font_osr26") = { - 0,94,46,227,245,26,7,96,17,82,32,255,248,35,246,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,0,0,0,10,0,0,4,25,25,10,3,248,96,240,240, - 240,96,64,64,96,96,96,96,96,96,96,96,96,96,240,240, - 240,240,240,240,240,96,12,25,50,21,4,252,1,0,1,0, - 1,0,1,0,7,192,25,32,57,48,113,48,113,112,225,112, - 225,32,225,0,225,0,225,0,225,0,225,0,113,16,113,16, - 57,16,29,32,7,192,1,0,1,0,1,0,1,0,20,25, - 75,25,2,0,0,15,128,0,24,96,0,48,32,0,96,112, - 0,192,240,0,192,240,1,192,224,1,192,0,1,192,0,1, - 192,0,1,192,0,63,192,0,1,254,0,1,192,0,1,192, - 0,1,192,0,1,192,0,1,192,0,1,192,0,57,128,16, - 199,128,16,131,128,48,131,224,96,134,255,192,120,63,128,18, - 16,48,22,2,5,195,241,192,124,15,128,48,7,0,32,3, - 0,96,1,0,64,1,128,64,0,128,64,0,128,64,0,128, - 64,0,128,64,1,128,96,1,0,32,3,0,48,7,0,124, - 15,128,227,241,192,20,25,75,22,1,0,255,7,240,60,1, - 192,28,1,128,30,1,0,14,3,0,15,2,0,7,6,0, - 7,132,0,3,140,0,3,136,0,1,216,0,1,208,0,1, - 224,0,31,255,0,0,224,0,0,224,0,31,255,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,15,254,0,2,33,33,10,4,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,0,0,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,192,192,192,13,32,64, - 23,4,249,7,128,24,64,16,96,48,224,48,224,48,64,56, - 0,28,0,30,0,15,0,23,128,99,192,129,224,128,240,128, - 120,128,24,192,24,224,8,120,8,60,16,30,32,15,64,7, - 128,3,192,1,192,0,224,16,96,56,96,56,96,48,64,16, - 192,15,0,10,4,8,16,3,20,96,192,225,192,225,192,96, - 192,26,26,104,30,2,1,0,255,192,0,3,0,48,0,4, - 0,8,0,8,0,4,0,16,30,2,0,32,113,225,0,32, - 224,225,0,65,192,96,128,65,192,96,128,129,128,32,64,131, - 128,32,64,131,128,0,64,131,128,0,64,131,128,0,64,131, - 128,0,64,131,128,0,64,131,128,32,64,65,192,64,128,65, - 192,64,128,32,224,65,0,32,112,129,0,16,31,2,0,8, - 0,4,0,4,0,8,0,3,0,48,0,0,255,192,0,9, - 13,26,13,2,12,120,0,132,0,198,0,198,0,14,0,54, - 0,70,0,198,0,198,128,206,128,115,0,0,0,255,0,10, - 14,28,18,4,2,16,64,48,128,97,128,97,0,195,0,195, - 0,195,0,195,0,195,0,67,0,97,0,32,128,16,192,8, - 0,18,7,21,22,2,6,255,255,192,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,9,2,4,13, - 2,8,255,128,255,128,26,26,104,30,2,1,0,255,192,0, - 3,0,48,0,4,0,8,0,8,0,4,0,19,255,2,0, - 32,225,193,0,32,224,225,0,64,224,224,128,64,224,224,128, - 128,224,224,64,128,224,224,64,128,225,192,64,128,254,0,64, - 128,225,128,64,128,224,192,64,128,224,224,64,128,224,224,64, - 64,224,228,128,64,224,228,128,32,224,233,0,35,248,121,0, - 16,0,2,0,8,0,4,0,4,0,8,0,3,0,48,0, - 0,255,192,0,9,1,2,15,3,21,255,128,10,9,18,22, - 6,16,30,0,97,128,192,128,128,64,128,64,128,64,64,128, - 97,128,30,0,30,25,100,34,2,255,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,255,255,255,252,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,3, - 0,0,0,3,0,0,0,3,0,0,0,3,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,255,255,255,252,10,15, - 30,16,3,10,63,0,67,128,129,192,129,192,225,192,225,192, - 1,128,3,0,6,0,8,0,48,0,64,64,64,64,255,192, - 255,192,10,16,32,16,4,9,62,0,67,0,193,128,225,128, - 225,128,1,128,3,0,124,0,3,128,1,192,1,192,225,192, - 225,192,129,192,131,128,126,0,6,6,6,16,7,19,12,28, - 56,48,96,192,19,27,81,22,2,246,96,24,0,224,60,0, - 224,60,0,224,60,0,224,60,0,224,60,0,224,60,0,224, - 60,0,224,60,0,192,24,0,64,24,0,64,24,0,64,56, - 0,96,48,32,112,124,96,95,231,224,71,195,192,128,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,224,0,0,224, - 0,0,224,0,0,240,0,0,96,0,0,15,31,62,19,2, - 251,31,254,62,16,126,16,254,16,254,16,254,16,254,16,254, - 16,254,16,126,16,62,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2, - 16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4, - 5,5,10,3,9,96,240,240,240,96,7,7,7,16,4,248, - 16,32,28,6,6,134,124,8,15,15,16,4,10,8,24,248, - 24,24,24,24,24,24,24,24,24,24,24,255,9,13,26,15, - 3,12,28,0,99,0,67,0,193,128,193,128,193,128,193,128, - 193,128,67,0,99,0,28,0,0,0,255,128,9,14,28,17, - 4,2,132,0,66,0,99,0,33,0,49,128,49,128,49,128, - 49,128,49,128,33,128,99,0,67,0,134,0,4,0,24,25, - 75,31,4,0,8,0,16,24,0,48,248,0,32,24,0,64, - 24,0,64,24,0,128,24,1,128,24,1,0,24,2,0,24, - 6,0,24,4,12,24,8,28,24,8,28,24,16,44,255,48, - 76,0,32,76,0,64,140,0,192,140,0,129,12,1,2,12, - 1,3,255,2,0,12,6,0,12,4,0,12,8,0,127,24, - 25,75,31,4,0,8,0,32,24,0,96,248,0,64,24,0, - 192,24,0,128,24,1,0,24,1,0,24,2,0,24,6,0, - 24,4,0,24,12,248,24,9,14,24,18,15,24,18,7,255, - 35,135,0,97,135,0,64,14,0,128,12,0,128,24,1,0, - 32,3,0,193,2,1,1,6,1,1,4,3,255,8,3,254, - 24,25,75,31,4,0,62,0,32,67,0,32,193,128,64,225, - 128,192,1,128,128,3,1,128,124,1,0,3,130,0,1,194, - 0,1,196,0,225,204,24,225,200,24,129,208,56,131,144,88, - 126,32,88,0,96,152,0,64,152,0,193,24,0,129,24,1, - 2,24,3,3,255,2,0,24,6,0,24,4,0,24,8,0, - 127,13,25,50,17,1,248,6,0,15,0,15,0,15,0,6, - 0,7,0,8,192,16,64,16,64,16,192,0,128,1,0,7, - 0,14,0,28,0,56,0,112,0,240,112,224,120,224,120,224, - 24,224,24,112,16,56,96,15,192,25,34,136,28,2,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,48,0,0,0, - 24,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,12,0,0,0,28,0,0,0,28,0,0,0, - 30,0,0,0,62,0,0,0,46,0,0,0,47,0,0,0, - 103,0,0,0,103,0,0,0,71,128,0,0,195,128,0,0, - 195,128,0,0,131,192,0,1,129,192,0,1,129,192,0,3, - 1,224,0,3,255,224,0,2,0,224,0,6,0,240,0,6, - 0,112,0,6,0,112,0,12,0,120,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,34,136,28,2,0,0,0,192, - 0,0,1,192,0,0,3,128,0,0,7,0,0,0,6,0, - 0,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0, - 0,0,12,0,0,0,28,0,0,0,28,0,0,0,30,0, - 0,0,62,0,0,0,46,0,0,0,47,0,0,0,103,0, - 0,0,103,0,0,0,71,128,0,0,195,128,0,0,195,128, - 0,1,131,192,0,1,129,192,0,1,129,192,0,3,1,224, - 0,3,255,224,0,2,0,224,0,6,0,240,0,6,0,112, - 0,4,0,112,0,12,0,120,0,12,0,56,0,30,0,124, - 0,255,195,255,128,25,34,136,28,2,0,0,8,0,0,0, - 28,0,0,0,30,0,0,0,51,0,0,0,65,128,0,1, - 128,64,0,0,0,0,0,0,0,0,0,0,8,0,0,0, - 12,0,0,0,28,0,0,0,28,0,0,0,30,0,0,0, - 62,0,0,0,46,0,0,0,47,0,0,0,103,0,0,0, - 103,0,0,0,71,128,0,0,195,128,0,0,195,128,0,0, - 131,192,0,1,129,192,0,1,129,192,0,3,1,224,0,3, - 255,224,0,2,0,224,0,6,0,240,0,6,0,112,0,6, - 0,112,0,12,0,120,0,12,0,120,0,30,0,120,0,255, - 195,255,128,25,33,132,28,2,0,0,112,64,0,0,252,64, - 0,0,159,192,0,1,7,128,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,8,0,0,0,12,0,0,0,28,0, - 0,0,28,0,0,0,30,0,0,0,62,0,0,0,46,0, - 0,0,47,0,0,0,103,0,0,0,103,0,0,0,71,128, - 0,0,195,128,0,0,195,128,0,1,131,192,0,1,129,192, - 0,1,129,192,0,3,1,224,0,3,255,224,0,2,0,224, - 0,6,0,240,0,6,0,112,0,4,0,112,0,12,0,120, - 0,12,0,56,0,30,0,124,0,255,195,255,128,25,33,132, - 28,2,0,0,193,128,0,1,193,192,0,1,193,192,0,0, - 193,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 8,0,0,0,24,0,0,0,28,0,0,0,28,0,0,0, - 60,0,0,0,62,0,0,0,62,0,0,0,110,0,0,0, - 79,0,0,0,71,0,0,0,199,0,0,0,199,128,0,0, - 131,128,0,1,131,128,0,1,129,192,0,1,1,192,0,3, - 1,192,0,3,255,224,0,2,0,224,0,6,0,224,0,6, - 0,112,0,4,0,112,0,12,0,112,0,12,0,120,0,30, - 0,120,0,255,195,255,128,25,35,140,28,2,0,0,28,0, - 0,0,34,0,0,0,65,0,0,0,65,0,0,0,65,0, - 0,0,65,0,0,0,34,0,0,0,28,0,0,0,0,0, - 0,0,8,0,0,0,12,0,0,0,28,0,0,0,28,0, - 0,0,30,0,0,0,62,0,0,0,46,0,0,0,47,0, - 0,0,111,0,0,0,71,0,0,0,71,128,0,0,199,128, - 0,0,131,128,0,1,131,192,0,1,131,192,0,1,1,192, - 0,3,1,224,0,3,255,224,0,2,0,224,0,6,0,240, - 0,6,0,240,0,4,0,112,0,12,0,120,0,12,0,120, - 0,28,0,120,0,255,195,255,128,33,26,130,36,1,0,0, - 7,255,255,128,0,1,224,7,128,0,1,224,3,128,0,3, - 224,1,128,0,2,224,1,128,0,6,224,0,128,0,4,224, - 0,128,0,12,224,32,128,0,8,224,32,0,0,24,224,32, - 0,0,16,224,96,0,0,48,224,96,0,0,48,255,224,0, - 0,96,224,96,0,0,96,224,96,0,0,192,224,32,0,0, - 192,224,32,128,1,255,224,32,128,1,0,224,0,128,3,0, - 224,0,128,2,0,224,1,128,6,0,224,1,128,6,0,224, - 1,128,14,0,224,3,128,30,0,224,15,128,255,199,255,255, - 128,19,34,102,24,3,249,3,252,64,14,6,96,28,3,224, - 24,1,224,56,0,224,120,0,224,112,0,96,112,0,96,240, - 0,96,240,0,32,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,32,112,0,32, - 120,0,96,56,0,64,56,0,64,24,0,128,12,0,128,6, - 3,0,3,204,0,0,112,0,0,64,0,0,240,0,0,28, - 0,0,28,0,0,28,0,2,28,0,1,240,0,21,34,102, - 25,2,0,3,0,0,3,128,0,1,192,0,0,192,0,0, - 96,0,0,16,0,0,0,0,0,0,0,255,255,248,14,0, - 120,14,0,56,14,0,24,14,0,24,14,0,8,14,0,8, - 14,4,8,14,4,0,14,4,0,14,12,0,14,12,0,15, - 252,0,14,12,0,14,4,0,14,4,0,14,4,8,14,4, - 8,14,0,8,14,0,8,14,0,24,14,0,24,14,0,56, - 14,0,56,14,0,248,255,255,248,21,34,102,25,2,0,0, - 3,0,0,7,128,0,7,0,0,12,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,255,248,14,0,120,14,0,56, - 14,0,24,14,0,24,14,0,8,14,0,8,14,4,8,14, - 4,0,14,4,0,14,12,0,14,12,0,15,252,0,14,12, - 0,14,4,0,14,4,0,14,4,8,14,4,8,14,0,8, - 14,0,8,14,0,24,14,0,24,14,0,56,14,0,56,14, - 0,248,255,255,248,21,34,102,25,2,0,0,48,0,0,48, - 0,0,120,0,0,204,0,1,134,0,2,1,128,0,0,0, - 0,0,0,255,255,248,14,0,120,14,0,56,14,0,24,14, - 0,24,14,0,8,14,0,8,14,4,8,14,4,0,14,4, - 0,14,12,0,14,12,0,15,252,0,14,12,0,14,4,0, - 14,4,0,14,4,8,14,4,8,14,0,8,14,0,8,14, - 0,24,14,0,24,14,0,56,14,0,56,14,0,248,255,255, - 248,21,33,99,25,2,0,1,131,0,3,135,0,3,135,0, - 1,131,0,0,0,0,0,0,0,0,0,0,255,255,248,14, - 0,120,14,0,56,14,0,24,14,0,24,14,0,8,14,0, - 8,14,4,8,14,4,0,14,4,0,14,12,0,14,12,0, - 15,252,0,14,12,0,14,4,0,14,4,0,14,4,8,14, - 4,8,14,0,8,14,0,8,14,0,24,14,0,24,14,0, - 56,14,0,56,14,0,248,255,255,248,10,34,68,14,2,0, - 192,0,224,0,112,0,56,0,8,0,4,0,0,0,0,0, - 255,192,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,255,192,10,34,68,14,2,0,0,192,1,192,1,128, - 3,0,6,0,4,0,0,0,0,0,255,192,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,255,192,10,34, - 68,14,2,0,4,0,14,0,30,0,59,0,97,128,128,64, - 0,0,0,0,255,192,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,255,192,11,33,66,14,2,0,96,192, - 224,224,224,224,96,192,0,0,0,0,0,0,127,224,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,127,224, - 24,26,78,27,2,0,255,255,0,14,0,192,14,0,112,14, - 0,56,14,0,60,14,0,28,14,0,30,14,0,30,14,0, - 14,14,0,15,14,0,15,14,0,15,255,224,15,14,0,15, - 14,0,15,14,0,15,14,0,15,14,0,14,14,0,30,14, - 0,30,14,0,28,14,0,56,14,0,56,14,0,112,14,0, - 192,255,255,0,25,33,132,28,2,0,0,120,32,0,0,254, - 96,0,0,143,192,0,0,131,128,0,0,0,0,0,0,0, - 0,0,0,0,0,0,254,0,255,128,15,0,28,0,15,128, - 8,0,15,128,8,0,11,192,8,0,11,192,8,0,9,224, - 8,0,8,240,8,0,8,240,8,0,8,120,8,0,8,60, - 8,0,8,60,8,0,8,30,8,0,8,30,8,0,8,15, - 8,0,8,7,136,0,8,7,136,0,8,3,200,0,8,1, - 232,0,8,1,232,0,8,0,248,0,8,0,120,0,8,0, - 120,0,8,0,56,0,28,0,24,0,255,128,24,0,21,34, - 102,26,3,0,3,0,0,7,0,0,3,128,0,1,192,0, - 0,64,0,0,32,0,0,0,0,0,32,0,3,220,0,6, - 3,0,12,1,128,28,1,192,56,0,224,56,0,224,120,0, - 240,112,0,112,112,0,112,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,240,0,120,112, - 0,112,112,0,112,120,0,240,56,0,224,56,0,224,28,1, - 192,12,1,128,6,3,0,3,254,0,21,34,102,26,3,0, - 0,6,0,0,7,0,0,14,0,0,28,0,0,16,0,0, - 32,0,0,0,0,0,32,0,3,220,0,6,3,0,12,1, - 128,28,1,192,56,0,224,56,0,224,120,0,240,112,0,112, - 112,0,112,240,0,120,240,0,120,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,112,0,112,112,0, - 112,120,0,240,56,0,224,56,0,224,28,1,192,12,1,128, - 6,3,0,3,254,0,21,34,102,26,3,0,0,32,0,0, - 112,0,0,112,0,0,216,0,1,4,0,6,3,0,0,0, - 0,0,32,0,3,220,0,6,3,0,12,1,128,28,1,192, - 56,0,224,56,0,224,120,0,240,112,0,112,112,0,112,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,112,0,112,112,0,112,120,0,240, - 56,0,224,56,0,224,28,1,192,12,1,128,6,3,0,3, - 254,0,21,33,99,26,3,0,3,225,0,3,255,0,4,62, - 0,0,0,0,0,0,0,0,0,0,0,32,0,3,220,0, - 6,3,0,12,1,128,28,1,192,56,0,224,56,0,224,120, - 0,240,112,0,112,112,0,112,240,0,120,240,0,120,240,0, - 120,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 112,0,112,112,0,112,120,0,240,56,0,224,56,0,224,28, - 1,192,12,1,128,6,3,0,3,254,0,21,33,99,26,3, - 0,3,6,0,7,7,0,7,7,0,3,6,0,0,0,0, - 0,0,0,0,32,0,3,220,0,6,3,0,12,1,128,28, - 1,192,56,0,224,56,0,224,120,0,240,112,0,112,112,0, - 112,240,0,120,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,112,0,112,112,0,112,120, - 0,240,56,0,224,56,0,224,28,1,192,12,1,128,6,3, - 0,3,254,0,22,23,69,34,6,254,128,0,4,192,0,12, - 96,0,24,48,0,48,24,0,96,12,0,192,6,1,128,3, - 3,0,1,134,0,0,204,0,0,120,0,0,48,0,0,120, - 0,0,204,0,1,134,0,3,3,0,6,1,128,12,0,192, - 24,0,96,48,0,48,96,0,24,192,0,12,128,0,0,21, - 27,81,26,3,0,0,32,0,3,222,24,6,3,48,12,1, - 224,28,1,192,56,0,224,56,1,224,120,3,240,112,2,112, - 112,6,112,240,12,120,240,24,120,240,16,120,240,48,120,240, - 96,120,240,192,120,240,192,120,241,128,120,115,0,112,114,0, - 112,126,0,240,60,0,224,56,0,224,28,1,192,60,1,128, - 102,3,0,195,222,0,25,34,136,29,2,0,0,192,0,0, - 0,224,0,0,0,224,0,0,0,48,0,0,0,16,0,0, - 0,8,0,0,0,0,0,0,0,0,0,0,255,192,255,128, - 14,0,14,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 6,0,8,0,7,0,8,0,3,0,16,0,1,192,32,0, - 0,127,192,0,25,34,136,29,2,0,0,0,192,0,0,1, - 192,0,0,3,128,0,0,7,0,0,0,4,0,0,0,8, - 0,0,0,0,0,0,0,0,0,0,255,192,255,128,14,0, - 14,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,6,0, - 8,0,7,0,8,0,3,0,16,0,1,192,32,0,0,127, - 192,0,25,34,136,29,2,0,0,8,0,0,0,28,0,0, - 0,30,0,0,0,55,0,0,0,65,128,0,1,128,96,0, - 0,0,0,0,0,0,0,0,255,192,255,128,14,0,14,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,14,0,4,0, - 14,0,4,0,14,0,4,0,14,0,4,0,6,0,8,0, - 7,0,8,0,3,128,16,0,1,192,96,0,0,127,192,0, - 25,33,132,29,2,0,0,192,192,0,0,225,192,0,0,225, - 192,0,0,192,192,0,0,0,0,0,0,0,0,0,0,0, - 0,0,255,192,255,128,14,0,14,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,14,0,4,0,14,0,4,0,14,0, - 4,0,14,0,4,0,6,0,8,0,7,0,8,0,3,0, - 16,0,1,192,32,0,0,127,192,0,24,34,102,27,2,0, - 0,0,192,0,1,192,0,3,128,0,7,0,0,4,0,0, - 8,0,0,0,0,0,0,0,255,225,255,31,0,56,15,0, - 48,7,128,48,7,128,32,3,192,96,3,192,64,1,224,128, - 0,224,128,0,241,0,0,113,0,0,122,0,0,58,0,0, - 60,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,1,255,224,21,26,78,25,2,0,255,224,0,14, - 0,0,14,0,0,14,0,0,14,0,0,15,255,0,14,1, - 192,14,0,224,14,0,240,14,0,120,14,0,120,14,0,120, - 14,0,120,14,0,120,14,0,240,14,0,224,14,1,192,15, - 255,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,255,224,0,16,26,52,19,1,0, - 1,240,3,28,6,14,14,14,28,14,28,14,28,12,28,28, - 28,48,29,192,28,48,28,24,28,12,28,14,28,6,28,7, - 28,7,28,7,28,7,28,7,28,135,29,199,29,199,29,142, - 29,140,252,120,16,25,50,19,2,1,112,0,112,0,56,0, - 28,0,12,0,2,0,0,0,0,0,15,128,48,224,32,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,25,50,19, - 2,1,0,112,0,240,0,224,1,128,3,0,2,0,0,0, - 0,0,15,128,48,224,96,112,96,112,120,112,120,112,0,112, - 1,240,30,112,112,112,96,112,224,112,224,113,224,241,225,113, - 113,126,62,60,16,25,50,19,2,0,6,0,7,0,7,0, - 13,128,24,192,48,96,0,0,0,0,15,128,48,224,96,112, - 96,112,120,112,120,112,0,112,1,240,30,112,112,112,96,112, - 224,112,224,113,224,241,225,113,113,126,62,60,16,24,48,19, - 2,0,30,48,63,224,35,192,0,0,0,0,0,0,0,0, - 15,128,48,224,96,112,96,112,120,112,120,112,0,112,1,240, - 30,112,112,112,96,112,224,112,224,113,224,241,225,113,113,126, - 62,60,16,24,48,19,2,0,48,96,112,224,112,224,48,96, - 0,0,0,0,0,0,15,0,48,192,96,96,96,96,112,96, - 112,96,0,96,1,224,30,96,112,96,96,96,224,96,224,97, - 224,225,225,99,113,126,62,60,16,25,50,19,2,0,7,0, - 24,192,16,64,16,64,24,192,7,0,0,0,0,0,15,128, - 48,224,96,112,96,112,120,112,120,112,0,112,1,240,30,112, - 112,112,96,112,224,112,224,113,224,241,225,113,113,126,62,60, - 22,17,51,26,2,0,15,135,192,48,236,112,96,120,48,112, - 120,56,120,112,24,56,112,28,0,112,28,7,255,252,56,112, - 0,112,112,0,224,112,0,224,112,4,224,248,8,224,184,8, - 225,56,16,113,28,48,62,7,192,12,24,48,16,2,249,15, - 128,24,96,48,48,112,48,96,112,224,112,224,112,224,0,224, - 0,224,0,224,0,224,0,96,16,112,16,48,32,24,96,15, - 128,2,0,6,0,1,128,0,192,0,192,16,192,15,128,13, - 25,50,17,2,1,48,0,56,0,28,0,12,0,6,0,3, - 0,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,16,24,96,7,128,13,25,50,17,2,1,0,112,0, - 112,0,224,0,192,1,128,3,0,0,0,0,0,15,128,24, - 224,48,96,112,112,96,48,224,56,224,56,255,248,224,0,224, - 0,224,0,224,8,112,16,112,16,48,16,24,96,7,128,13, - 25,50,17,2,0,3,0,3,0,7,128,5,128,8,64,16, - 32,0,0,0,0,15,128,24,224,48,96,112,112,96,48,224, - 56,224,56,255,248,224,0,224,0,224,0,224,8,112,16,112, - 16,48,32,24,96,7,128,13,24,48,17,2,0,24,96,56, - 112,56,112,24,96,0,0,0,0,0,0,15,128,24,224,48, - 96,112,48,96,48,224,56,224,56,255,248,224,0,224,0,224, - 0,224,8,112,16,112,16,48,32,24,96,7,128,9,25,50, - 11,0,0,192,0,224,0,112,0,56,0,8,0,4,0,0, - 0,0,0,62,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,63,128,8,25,25,10,2,0,3,7,7,12,24, - 48,0,0,248,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,254,9,25,50,11,1,0,24,0,28,0,60,0, - 54,0,99,0,128,128,0,0,0,0,124,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,127,0,9,24,48,11, - 1,0,97,128,227,128,227,128,97,128,0,0,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 127,128,14,26,52,18,2,0,28,16,14,48,15,192,7,128, - 7,128,13,192,48,224,0,224,0,112,7,240,24,120,48,56, - 112,60,112,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,24,112,56,48,48,24,96,7,128,17,24,72,21, - 2,0,7,4,0,15,204,0,9,248,0,8,112,0,0,0, - 0,0,0,0,0,0,0,248,248,0,57,28,0,58,14,0, - 60,14,0,60,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,254,63,128,14,25,50,18,2,1, - 56,0,56,0,28,0,12,0,6,0,3,0,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,25,50,18,2,1,0,48,0,112,0,224,0,192, - 1,128,1,0,0,0,0,0,7,128,24,96,48,48,112,56, - 112,24,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,24,112,56,48,48,24,96,7,128,14,25,50,18,2,0, - 3,0,3,0,7,128,4,128,8,64,16,32,0,0,0,0, - 7,128,24,96,48,48,112,56,112,24,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,24,112,56,48,48,24,96, - 7,128,14,24,48,18,2,0,30,16,31,240,33,224,0,0, - 0,0,0,0,0,0,7,128,24,96,48,48,112,56,112,24, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,24, - 112,56,48,48,24,96,7,128,14,24,48,18,2,0,24,48, - 56,112,56,112,24,48,0,0,0,0,0,0,7,128,24,96, - 48,48,112,56,112,24,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,24,112,56,48,48,24,96,7,128,30,23, - 92,34,2,254,0,3,0,0,0,7,128,0,0,7,128,0, - 0,7,128,0,0,3,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 255,255,255,252,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0, - 0,7,128,0,0,7,128,0,0,7,128,0,0,3,0,0, - 14,17,34,18,2,0,7,132,24,104,48,56,112,56,112,56, - 224,92,224,156,225,156,227,28,226,28,228,28,232,28,120,24, - 112,56,48,48,88,96,135,192,17,25,75,20,1,1,28,0, - 0,28,0,0,14,0,0,3,0,0,1,0,0,0,128,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,17,25,75,20,1,1,0, - 28,0,0,60,0,0,48,0,0,96,0,0,192,0,0,128, - 0,0,0,0,0,0,0,248,62,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,30,0,56,30, - 0,56,46,0,28,78,0,15,143,128,17,25,75,20,1,0, - 0,128,0,1,192,0,1,192,0,3,96,0,4,48,0,8, - 8,0,0,0,0,0,0,0,248,62,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,30,0,56, - 30,0,56,46,0,28,78,0,15,143,128,17,24,72,20,1, - 0,12,48,0,28,56,0,28,56,0,12,48,0,0,0,0, - 0,0,0,0,0,0,248,62,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,30,0,56,30,0, - 56,46,0,28,78,0,15,143,128,18,33,99,19,1,249,0, - 12,0,0,28,0,0,24,0,0,48,0,0,96,0,0,64, - 0,0,0,0,0,0,0,255,31,192,28,6,0,28,4,0, - 12,4,0,14,4,0,14,4,0,6,8,0,7,8,0,7, - 8,0,3,16,0,3,144,0,3,144,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,113,128,0,113,0,0,114,0,0,60, - 0,0,16,34,68,19,1,247,12,0,60,0,92,0,28,0, - 28,0,28,0,28,0,28,0,28,60,28,126,28,143,29,7, - 30,7,30,7,30,7,28,6,28,14,28,14,28,12,28,24, - 28,16,28,32,28,64,29,128,31,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,224,0,17,32,96,19, - 1,248,6,12,0,7,28,0,7,28,0,6,12,0,0,0, - 0,0,0,0,0,0,0,255,31,128,28,6,0,28,4,0, - 14,4,0,14,4,0,14,8,0,7,8,0,7,8,0,7, - 16,0,3,144,0,3,144,0,3,160,0,1,224,0,1,224, - 0,1,224,0,0,192,0,0,192,0,0,64,0,0,128,0, - 0,128,0,112,128,0,121,0,0,121,0,0,114,0,0,60, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 25 - Calculated Max Values w=30 h=34 x= 4 y=10 dx=34 dy= 0 ascent=27 len=124 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x= 0 y=-7 dx= 0 dy= 0 - Pure Font ascent =25 descent= 0 - X Font ascent =25 descent= 0 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26n[955] U8G_FONT_SECTION("u8g_font_osr26n") = { - 0,94,46,227,245,25,0,0,0,0,42,58,0,27,249,25, - 0,13,15,30,18,3,10,7,0,7,0,7,0,195,24,226, - 56,242,120,58,224,7,0,7,128,122,240,242,120,226,56,7, - 0,7,0,7,0,30,31,124,34,2,250,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,255,255,255,252,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,5,11,11,10,2,250,112,248,248, - 120,8,8,8,16,16,32,64,9,2,4,13,2,8,255,128, - 255,128,4,5,5,10,3,0,96,240,240,240,96,12,34,68, - 16,2,249,0,16,0,48,0,48,0,32,0,96,0,96,0, - 64,0,192,0,192,0,128,0,128,1,128,1,0,1,0,3, - 0,2,0,2,0,6,0,4,0,4,0,12,0,8,0,8, - 0,24,0,24,0,16,0,48,0,48,0,32,0,96,0,96, - 0,64,0,192,0,192,0,17,25,75,21,2,0,3,224,0, - 14,56,0,28,28,0,24,12,0,56,14,0,112,7,0,112, - 7,0,112,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,240,7,128,240,7,128,240,7,128,240,7,128, - 112,7,0,112,7,0,112,7,0,56,14,0,56,14,0,24, - 12,0,12,24,0,7,112,0,12,25,50,21,4,0,1,0, - 3,0,3,0,15,0,255,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,240, - 15,25,50,21,3,0,15,192,48,112,96,56,64,60,192,30, - 192,30,224,30,248,30,248,30,120,28,0,60,0,56,0,112, - 0,224,1,192,3,0,14,0,28,4,56,4,48,4,96,4, - 96,12,255,252,255,252,255,252,15,25,50,21,3,0,15,192, - 48,112,32,56,96,28,112,28,120,28,120,28,48,28,0,28, - 0,56,0,112,31,192,24,112,0,56,0,60,0,30,0,30, - 112,30,248,30,248,30,248,30,192,60,192,56,96,112,63,224, - 17,25,75,21,2,0,0,16,0,0,48,0,0,112,0,0, - 112,0,0,240,0,1,240,0,1,112,0,3,112,0,6,112, - 0,6,112,0,12,112,0,8,112,0,24,112,0,48,112,0, - 32,112,0,96,112,0,192,112,0,255,255,128,0,112,0,0, - 112,0,0,112,0,0,112,0,0,112,0,0,112,0,7,255, - 128,15,26,52,21,3,0,32,0,48,56,63,240,63,192,47, - 0,32,0,32,0,32,0,32,0,39,192,56,112,48,56,32, - 60,32,28,0,30,0,30,0,30,0,30,120,30,248,30,248, - 28,240,60,224,60,96,56,112,112,63,192,15,25,50,21,3, - 0,3,224,6,24,12,12,24,28,56,60,48,60,112,16,112, - 0,112,0,243,224,246,56,252,28,248,28,248,14,240,14,240, - 14,240,14,240,14,112,14,112,14,112,12,56,28,56,24,24, - 56,14,224,14,25,50,21,3,0,255,252,255,252,255,252,192, - 12,128,8,128,8,128,8,128,16,0,16,0,32,0,96,0, - 64,0,128,1,128,1,128,3,0,3,0,7,0,7,0,15, - 128,15,128,15,128,15,128,15,128,7,128,17,25,75,21,2, - 0,7,240,0,28,28,0,48,14,0,112,6,0,224,3,0, - 224,3,0,224,3,0,240,3,0,240,6,0,124,6,0,127, - 140,0,31,240,0,7,252,0,25,254,0,48,63,0,96,15, - 128,224,7,128,224,3,128,224,3,128,224,3,128,224,3,0, - 96,7,0,112,6,0,56,12,0,15,248,0,15,25,50,21, - 3,0,7,192,24,96,48,48,112,56,112,28,224,28,224,28, - 224,30,224,30,224,30,224,30,112,62,112,62,56,94,15,158, - 0,30,0,28,0,28,56,28,120,28,120,56,112,56,96,112, - 48,224,31,192,4,17,17,10,3,0,96,240,240,240,96,0, - 0,0,0,0,0,0,96,240,240,240,96}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--36-360-72-72-P-189-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 26, '1' Height: 25 - Calculated Max Values w=36 h=34 x= 4 y=20 dx=38 dy= 0 ascent=28 len=130 - Font Bounding box w=94 h=46 x=-29 y=-11 - Calculated Min Values x=-1 y=-8 dx= 0 dy= 0 - Pure Font ascent =26 descent=-8 - X Font ascent =27 descent=-8 - Max Font ascent =28 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr26r[6049] U8G_FONT_SECTION("u8g_font_osr26r") = { - 0,94,46,227,245,26,7,96,17,82,32,127,248,28,248,27, - 248,0,0,0,10,0,0,4,25,25,10,3,0,96,240,240, - 240,240,240,240,240,96,96,96,96,96,96,96,96,96,96,32, - 64,96,240,240,240,96,8,7,7,14,3,20,195,195,195,195, - 195,195,66,19,25,75,25,3,0,1,130,0,1,130,0,1, - 2,0,1,6,0,3,6,0,3,6,0,3,6,0,255,255, - 224,2,4,0,2,4,0,2,12,0,6,12,0,6,12,0, - 6,12,0,6,8,0,4,8,0,4,8,0,255,255,224,12, - 24,0,12,24,0,12,16,0,8,16,0,8,48,0,8,48, - 0,24,48,0,16,31,62,21,2,253,2,64,2,64,2,64, - 7,224,26,92,50,70,34,66,98,67,98,71,98,79,98,79, - 114,78,58,64,63,64,31,192,7,240,3,252,2,126,2,78, - 34,71,242,67,242,67,226,67,226,67,194,66,66,70,34,76, - 30,112,3,192,2,64,2,64,24,25,75,30,3,0,30,0, - 48,33,0,32,97,128,96,192,192,64,192,192,192,192,192,128, - 192,193,0,192,195,0,192,194,0,64,134,0,97,132,0,34, - 8,0,28,24,112,0,16,132,0,49,134,0,33,2,0,67, - 3,0,195,3,0,131,3,1,131,3,1,3,3,3,3,3, - 6,1,6,4,1,134,12,0,252,24,25,75,28,2,0,1, - 240,0,3,8,0,6,12,0,12,4,0,12,4,0,12,12, - 0,14,8,0,14,24,0,7,48,0,7,192,0,3,193,255, - 7,192,56,13,224,48,24,240,48,48,112,32,112,120,96,112, - 60,64,224,28,128,224,15,128,224,15,0,224,7,0,240,3, - 129,112,15,194,120,25,228,31,224,252,2,7,7,8,3,20, - 192,192,192,192,192,192,64,8,33,33,14,4,250,3,6,12, - 12,24,16,48,48,96,96,96,192,192,192,192,192,192,192,192, - 192,192,64,96,96,96,48,48,24,24,12,6,6,3,8,33, - 33,13,2,250,192,96,96,48,24,24,12,12,6,6,6,2, - 3,3,3,3,3,3,3,3,2,6,6,6,4,12,12,24, - 24,48,96,192,128,13,15,30,18,3,10,7,0,7,0,7, - 0,195,24,226,56,242,120,58,224,7,0,7,128,122,240,242, - 120,226,56,7,0,7,0,7,0,30,31,124,34,2,250,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,255,255,255,252,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,0,3,0,0,0, - 3,0,0,0,3,0,0,0,3,0,0,5,11,11,10,2, - 250,112,248,248,120,8,8,8,16,16,32,64,9,2,4,13, - 2,8,255,128,255,128,4,5,5,10,3,0,96,240,240,240, - 96,12,34,68,16,2,249,0,16,0,48,0,48,0,32,0, - 96,0,96,0,64,0,192,0,192,0,128,0,128,1,128,1, - 0,1,0,3,0,2,0,2,0,6,0,4,0,4,0,12, - 0,8,0,8,0,24,0,24,0,16,0,48,0,48,0,32, - 0,96,0,96,0,64,0,192,0,192,0,17,25,75,21,2, - 0,3,224,0,14,56,0,28,28,0,24,12,0,56,14,0, - 112,7,0,112,7,0,112,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,240,7,128,240,7,128,240,7,128,240,7, - 128,240,7,128,112,7,0,112,7,0,112,7,0,56,14,0, - 56,14,0,24,12,0,12,24,0,7,112,0,12,25,50,21, - 4,0,1,0,3,0,3,0,15,0,255,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,240,15,25,50,21,3,0,15,192,48,112,96,56, - 64,60,192,30,192,30,224,30,248,30,248,30,120,28,0,60, - 0,56,0,112,0,224,1,192,3,0,14,0,28,4,56,4, - 48,4,96,4,96,12,255,252,255,252,255,252,15,25,50,21, - 3,0,15,192,48,112,32,56,96,28,112,28,120,28,120,28, - 48,28,0,28,0,56,0,112,31,192,24,112,0,56,0,60, - 0,30,0,30,112,30,248,30,248,30,248,30,192,60,192,56, - 96,112,63,224,17,25,75,21,2,0,0,16,0,0,48,0, - 0,112,0,0,112,0,0,240,0,1,240,0,1,112,0,3, - 112,0,6,112,0,6,112,0,12,112,0,8,112,0,24,112, - 0,48,112,0,32,112,0,96,112,0,192,112,0,255,255,128, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,15,26,52,21,3,0,32,0,48,56,63, - 240,63,192,47,0,32,0,32,0,32,0,32,0,39,192,56, - 112,48,56,32,60,32,28,0,30,0,30,0,30,0,30,120, - 30,248,30,248,28,240,60,224,60,96,56,112,112,63,192,15, - 25,50,21,3,0,3,224,6,24,12,12,24,28,56,60,48, - 60,112,16,112,0,112,0,243,224,246,56,252,28,248,28,248, - 14,240,14,240,14,240,14,240,14,112,14,112,14,112,12,56, - 28,56,24,24,56,14,224,14,25,50,21,3,0,255,252,255, - 252,255,252,192,12,128,8,128,8,128,8,128,16,0,16,0, - 32,0,96,0,64,0,128,1,128,1,128,3,0,3,0,7, - 0,7,0,15,128,15,128,15,128,15,128,15,128,7,128,17, - 25,75,21,2,0,7,240,0,28,28,0,48,14,0,112,6, - 0,224,3,0,224,3,0,224,3,0,240,3,0,240,6,0, - 124,6,0,127,140,0,31,240,0,7,252,0,25,254,0,48, - 63,0,96,15,128,224,7,128,224,3,128,224,3,128,224,3, - 128,224,3,0,96,7,0,112,6,0,56,12,0,15,248,0, - 15,25,50,21,3,0,7,192,24,96,48,48,112,56,112,28, - 224,28,224,28,224,30,224,30,224,30,224,30,112,62,112,62, - 56,94,15,158,0,30,0,28,0,28,56,28,120,28,120,56, - 112,56,96,112,48,224,31,192,4,17,17,10,3,0,96,240, - 240,240,96,0,0,0,0,0,0,0,96,240,240,240,96,5, - 23,23,11,3,250,112,248,248,248,112,0,0,0,0,0,0, - 0,112,248,248,120,24,24,24,16,48,32,64,28,29,116,34, - 3,251,0,0,0,112,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,1,224,0,0,3,128,0,0,14, - 0,0,0,56,0,0,0,224,0,0,3,128,0,0,15,0, - 0,0,28,0,0,0,112,0,0,0,192,0,0,0,112,0, - 0,0,28,0,0,0,7,0,0,0,1,192,0,0,0,240, - 0,0,0,56,0,0,0,14,0,0,0,3,128,0,0,0, - 224,0,0,0,56,0,0,0,14,0,0,0,7,0,0,0, - 1,192,0,0,0,112,30,8,32,34,2,6,255,255,255,252, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,252,28,29,116,34, - 3,251,224,0,0,0,56,0,0,0,14,0,0,0,3,128, - 0,0,0,224,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,1,192,0,0,0,112,0,0,0,28,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,48,0,0, - 0,224,0,0,3,128,0,0,14,0,0,0,56,0,0,0, - 240,0,0,1,192,0,0,7,0,0,0,28,0,0,0,112, - 0,0,1,192,0,0,7,0,0,0,30,0,0,0,56,0, - 0,0,224,0,0,0,13,25,50,17,2,0,15,128,48,224, - 64,112,192,56,192,56,248,56,248,56,112,56,0,112,0,224, - 1,192,3,128,3,0,4,0,12,0,8,64,8,64,8,128, - 7,0,0,0,3,0,7,128,7,128,7,128,3,0,26,27, - 108,30,2,0,0,4,0,0,0,251,224,0,3,0,56,0, - 6,0,12,0,12,0,6,0,24,0,3,0,48,15,1,0, - 48,49,241,128,96,96,241,128,96,192,224,128,193,192,224,192, - 193,128,224,192,193,128,192,192,195,128,192,192,195,1,192,192, - 195,1,192,192,195,1,129,128,195,3,129,128,67,7,129,0, - 99,7,130,0,97,137,132,0,32,240,248,0,48,0,0,0, - 24,0,0,0,12,0,16,0,7,0,48,0,1,255,192,0, - 25,26,104,28,2,0,0,8,0,0,0,12,0,0,0,28, - 0,0,0,28,0,0,0,30,0,0,0,62,0,0,0,46, - 0,0,0,47,0,0,0,103,0,0,0,103,0,0,0,71, - 128,0,0,195,128,0,0,195,128,0,0,131,192,0,1,129, - 192,0,1,129,192,0,3,1,224,0,3,255,224,0,2,0, - 224,0,6,0,240,0,6,0,112,0,6,0,112,0,12,0, - 120,0,12,0,120,0,30,0,120,0,255,195,255,128,20,26, - 78,25,3,0,255,252,0,28,3,0,28,1,192,28,1,192, - 28,0,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 1,192,28,1,128,28,3,0,31,252,0,28,7,0,28,1, - 192,28,1,224,28,0,224,28,0,240,28,0,240,28,0,240, - 28,0,240,28,0,240,28,1,224,28,1,192,28,3,128,255, - 254,0,19,26,78,24,3,1,3,252,32,14,6,96,28,3, - 224,24,1,224,56,0,224,120,0,224,112,0,96,112,0,96, - 240,0,96,240,0,32,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,112,0,32,112,0, - 32,120,0,96,56,0,64,56,0,64,28,0,128,12,0,128, - 6,3,0,3,222,0,24,26,78,29,3,0,255,255,0,28, - 1,192,28,0,112,28,0,56,28,0,56,28,0,28,28,0, - 30,28,0,30,28,0,14,28,0,15,28,0,15,28,0,15, - 28,0,15,28,0,15,28,0,15,28,0,15,28,0,15,28, - 0,14,28,0,30,28,0,30,28,0,28,28,0,56,28,0, - 56,28,0,112,28,1,192,255,255,0,21,26,78,25,2,0, - 255,255,248,14,0,120,14,0,56,14,0,24,14,0,24,14, - 0,8,14,0,8,14,4,8,14,4,0,14,4,0,14,12, - 0,14,12,0,15,252,0,14,12,0,14,4,0,14,4,0, - 14,4,8,14,4,8,14,0,8,14,0,8,14,0,24,14, - 0,24,14,0,56,14,0,56,14,0,248,255,255,248,20,26, - 78,24,2,0,255,255,240,14,0,240,14,0,112,14,0,48, - 14,0,48,14,0,16,14,0,16,14,4,16,14,4,0,14, - 4,0,14,12,0,14,12,0,15,252,0,14,12,0,14,12, - 0,14,4,0,14,4,0,14,4,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,255, - 224,0,22,27,81,26,3,0,0,32,0,3,220,32,6,7, - 32,12,3,224,24,1,224,56,0,224,56,0,96,112,0,96, - 112,0,96,112,0,32,240,0,32,240,0,0,240,0,0,240, - 0,0,240,15,252,240,0,224,240,0,224,240,0,224,240,0, - 224,112,0,224,112,0,224,56,0,224,56,1,224,24,1,32, - 12,3,32,6,6,32,3,252,32,24,26,78,28,2,0,255, - 195,255,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,15,255,248,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,255,195,255,10,26,52, - 14,2,0,255,192,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,14,0,14,0,14,0,14,0,14,0,14, - 0,14,0,14,0,255,192,16,26,52,19,2,0,3,255,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,112,56,248,56,248,56,240,56,192,48,192,112,96,96,63, - 192,24,26,78,28,2,0,255,199,254,14,1,240,14,0,224, - 14,0,192,14,1,128,14,3,0,14,6,0,14,12,0,14, - 24,0,14,24,0,14,56,0,14,124,0,14,188,0,15,62, - 0,15,30,0,14,31,0,14,15,0,14,15,128,14,7,128, - 14,7,192,14,3,192,14,1,224,14,1,240,14,0,240,14, - 0,248,255,199,255,20,26,78,24,2,0,255,224,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,16,14,0, - 16,14,0,32,14,0,48,14,0,48,14,0,48,14,0,112, - 14,0,240,14,3,240,255,255,240,26,26,104,30,2,0,255, - 0,31,192,15,0,30,0,15,128,30,0,15,128,46,0,11, - 128,46,0,11,128,46,0,11,192,110,0,9,192,78,0,9, - 192,78,0,9,224,78,0,8,224,142,0,8,224,142,0,8, - 224,142,0,8,241,142,0,8,113,14,0,8,113,14,0,8, - 121,14,0,8,59,14,0,8,58,14,0,8,58,14,0,8, - 30,14,0,8,28,14,0,8,28,14,0,8,12,14,0,28, - 12,14,0,255,136,255,192,25,26,104,28,2,0,254,0,255, - 128,15,0,28,0,15,128,8,0,15,128,8,0,11,192,8, - 0,11,192,8,0,9,224,8,0,8,240,8,0,8,240,8, - 0,8,120,8,0,8,60,8,0,8,60,8,0,8,30,8, - 0,8,30,8,0,8,15,8,0,8,7,136,0,8,7,136, - 0,8,3,200,0,8,1,232,0,8,1,232,0,8,0,248, - 0,8,0,120,0,8,0,120,0,8,0,56,0,28,0,24, - 0,255,128,24,0,21,27,81,26,3,0,0,32,0,3,220, - 0,6,3,0,12,1,128,28,1,192,56,0,224,56,0,224, - 120,0,240,112,0,112,112,0,112,240,0,120,240,0,120,240, - 0,120,240,0,120,240,0,120,240,0,120,240,0,120,240,0, - 120,112,0,112,112,0,112,120,0,240,56,0,224,56,0,224, - 28,1,192,12,1,128,6,3,0,3,254,0,21,26,78,25, - 2,0,255,255,0,14,1,192,14,0,224,14,0,240,14,0, - 120,14,0,120,14,0,120,14,0,120,14,0,120,14,0,112, - 14,0,240,14,0,224,14,1,192,15,254,0,14,0,0,14, - 0,0,14,0,0,14,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,255,224,0, - 21,33,99,26,3,250,0,32,0,3,220,0,6,3,0,12, - 1,128,28,1,192,56,0,224,56,0,224,120,0,240,112,0, - 112,112,0,112,240,0,120,240,0,120,240,0,120,240,0,120, - 240,0,120,240,0,120,240,0,120,240,0,120,112,0,112,112, - 0,112,120,0,240,56,112,224,57,152,224,29,13,192,13,13, - 128,7,15,8,3,158,8,0,110,8,0,14,8,0,14,24, - 0,7,176,0,7,240,0,3,192,22,26,78,25,2,0,255, - 255,0,14,3,192,14,1,224,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,1,224,14,1,192,14,7,128, - 15,252,0,14,6,0,14,7,0,14,3,128,14,3,128,14, - 3,128,14,3,192,14,3,192,14,3,192,14,3,196,14,1, - 196,14,1,196,14,1,236,14,1,248,255,224,240,17,26,78, - 22,3,1,31,227,0,48,51,0,96,31,0,192,15,0,192, - 7,0,192,3,0,192,3,0,224,3,0,240,1,0,120,0, - 0,127,0,0,63,192,0,31,248,0,7,252,0,1,254,0, - 128,63,0,128,15,128,128,3,128,192,3,128,192,1,128,192, - 1,128,224,1,128,240,1,0,248,3,0,140,6,0,135,252, - 0,21,26,78,26,3,0,255,255,248,240,112,120,224,112,56, - 192,112,24,192,112,24,192,112,24,128,112,8,128,112,8,128, - 112,8,128,112,8,0,112,0,0,112,0,0,112,0,0,112, - 0,0,112,0,0,112,0,0,112,0,0,112,0,0,112,0, - 0,112,0,0,112,0,0,112,0,0,112,0,0,112,0,0, - 112,0,7,255,128,25,26,104,29,2,0,255,192,255,128,14, - 0,14,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,14, - 0,4,0,14,0,4,0,14,0,4,0,14,0,4,0,6, - 0,8,0,7,0,8,0,3,0,16,0,1,192,32,0,0, - 127,192,0,25,26,104,28,2,0,255,241,255,128,15,0,60, - 0,15,0,24,0,7,128,24,0,7,128,16,0,3,128,48, - 0,3,192,48,0,3,192,48,0,1,192,32,0,1,224,96, - 0,1,224,96,0,0,224,64,0,0,240,192,0,0,240,192, - 0,0,112,128,0,0,113,128,0,0,121,128,0,0,57,0, - 0,0,59,0,0,0,63,0,0,0,30,0,0,0,30,0, - 0,0,14,0,0,0,14,0,0,0,12,0,0,0,4,0, - 0,36,26,130,38,1,0,255,231,255,63,240,15,0,248,7, - 128,15,0,120,3,0,7,0,120,3,0,7,128,120,6,0, - 7,128,248,6,0,3,128,252,6,0,3,128,252,4,0,3, - 192,156,12,0,1,193,156,12,0,1,193,158,12,0,1,225, - 14,24,0,1,227,14,24,0,0,227,14,24,0,0,227,15, - 16,0,0,242,7,48,0,0,118,7,48,0,0,118,7,32, - 0,0,116,3,224,0,0,124,3,224,0,0,60,3,192,0, - 0,60,1,192,0,0,56,1,192,0,0,24,1,192,0,0, - 24,1,128,0,0,16,0,128,0,24,26,78,27,2,0,255, - 227,255,15,128,112,7,128,96,7,192,96,3,192,192,1,224, - 128,1,225,128,0,227,0,0,242,0,0,118,0,0,124,0, - 0,56,0,0,60,0,0,60,0,0,62,0,0,79,0,0, - 207,0,0,135,128,1,135,128,1,3,192,3,3,192,6,1, - 224,6,0,224,14,0,240,30,0,240,255,199,255,24,26,78, - 27,2,0,255,225,255,31,0,56,15,0,48,7,128,48,7, - 128,32,3,192,96,3,192,64,1,224,128,0,224,128,0,241, - 0,0,113,0,0,122,0,0,58,0,0,60,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,1,255, - 224,19,26,78,23,2,0,63,255,224,60,3,192,56,3,192, - 112,7,128,96,15,0,96,15,0,64,30,0,64,30,0,64, - 60,0,0,120,0,0,120,0,0,240,0,0,224,0,1,224, - 0,3,192,0,3,192,0,7,128,32,7,0,32,15,0,32, - 30,0,96,30,0,96,60,0,224,56,0,224,120,1,224,240, - 3,192,255,255,192,7,33,33,14,4,249,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,240,254,12,34,68,16, - 2,249,128,0,192,0,64,0,64,0,96,0,32,0,32,0, - 48,0,16,0,16,0,24,0,8,0,8,0,12,0,4,0, - 4,0,6,0,6,0,2,0,3,0,3,0,1,0,1,128, - 1,128,0,128,0,128,0,192,0,64,0,64,0,96,0,32, - 0,32,0,48,0,16,7,33,33,15,3,249,254,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,254,15,13,26, - 21,3,12,1,0,3,128,3,128,6,192,4,64,12,96,24, - 48,16,16,48,24,96,8,96,12,192,6,128,2,19,1,3, - 19,0,250,255,255,224,6,6,6,16,3,19,192,224,112,48, - 24,12,16,17,34,19,2,0,15,128,48,224,96,112,96,112, - 120,112,120,112,0,112,1,240,30,112,112,112,96,112,224,112, - 224,113,224,241,225,113,113,126,62,60,16,26,52,18,0,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,112,29,140,29,14,30,6,30,7,28,7,28,7, - 28,7,28,7,28,7,28,7,28,7,28,7,30,6,26,14, - 17,12,16,240,12,17,34,16,2,0,15,128,24,96,48,48, - 112,48,96,112,224,112,224,112,224,0,224,0,224,0,224,0, - 224,0,96,16,112,16,48,32,24,64,15,128,16,26,52,19, - 2,0,1,248,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,14,56,57,184,48,184,112,120,96,120,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,96,56,112,120, - 48,120,48,248,15,63,13,17,34,17,2,0,15,128,24,224, - 48,96,112,112,96,48,224,56,224,56,255,248,224,0,224,0, - 224,0,224,8,112,16,112,16,48,32,24,96,7,128,12,26, - 52,12,1,0,7,192,12,32,28,48,56,112,56,112,56,0, - 56,0,56,0,56,0,255,128,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,0,56,0, - 56,0,56,0,56,0,255,128,17,25,75,20,2,248,7,199, - 0,28,117,128,56,59,128,112,31,128,112,28,0,112,28,0, - 112,28,0,112,28,0,56,56,0,28,112,0,7,192,0,56, - 0,0,64,0,0,64,0,0,64,0,0,127,224,0,63,248, - 0,14,28,0,112,2,0,192,2,0,192,2,0,192,2,0, - 224,4,0,112,8,0,15,240,0,18,26,78,21,1,0,252, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,124,0,28,142,0, - 29,7,0,30,7,0,30,7,0,28,7,0,28,7,0,28, - 7,0,28,7,0,28,7,0,28,7,0,28,7,0,28,7, - 0,28,7,0,28,7,0,28,7,0,255,31,192,7,25,25, - 10,2,0,48,120,120,48,0,0,0,0,248,56,56,56,56, - 56,56,56,56,56,56,56,56,56,56,56,254,9,34,68,11, - 255,248,1,128,3,128,3,128,1,128,0,0,0,0,0,0, - 0,0,0,0,31,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,67,128,227,128,227,0, - 195,0,70,0,60,0,17,26,78,19,1,0,252,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,127,0,28,24,0,28,16,0, - 28,48,0,28,32,0,28,64,0,28,128,0,29,192,0,29, - 192,0,30,224,0,28,112,0,28,112,0,28,56,0,28,60, - 0,28,28,0,28,30,0,255,127,128,9,26,52,11,1,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,25,17,68,29,2,0,248,240,120,0,57,56, - 156,0,58,29,14,0,60,30,14,0,60,30,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,56,28,14,0,56,28, - 14,0,56,28,14,0,56,28,14,0,254,127,63,128,17,17, - 51,21,2,0,248,248,0,57,28,0,58,14,0,60,14,0, - 60,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 14,0,56,14,0,56,14,0,56,14,0,56,14,0,56,14, - 0,56,14,0,254,63,128,14,17,34,18,2,0,7,128,24, - 96,48,48,112,56,112,24,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,48,48,24,96,7,128,16, - 25,50,19,1,248,252,240,29,140,31,14,30,6,30,7,28, - 7,28,7,28,7,28,7,28,7,28,7,28,7,28,7,30, - 6,30,14,29,12,28,240,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,128,16,25,50,18,2,248,15,8,56, - 136,48,216,112,88,96,120,224,56,224,56,224,56,224,56,224, - 56,224,56,224,56,96,56,112,120,48,120,48,184,15,56,0, - 56,0,56,0,56,0,56,0,56,0,56,0,56,1,255,12, - 17,34,15,2,0,248,224,57,16,58,48,58,112,60,112,60, - 0,60,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,12,17,34,16,2,0,62,64,97, - 64,192,192,192,64,192,64,224,64,120,0,127,0,31,192,7, - 224,128,240,192,112,192,48,224,48,224,48,152,96,135,192,11, - 24,48,13,1,0,8,0,8,0,8,0,8,0,24,0,24, - 0,56,0,255,192,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,32,56,32,56,32,56, - 96,31,192,15,128,17,17,51,20,1,0,248,62,0,56,14, - 0,56,14,0,56,14,0,56,14,0,56,14,0,56,14,0, - 56,14,0,56,14,0,56,14,0,56,14,0,56,14,0,56, - 30,0,56,30,0,56,46,0,28,78,0,15,143,128,18,17, - 51,19,0,0,255,31,192,28,7,0,28,6,0,12,4,0, - 14,4,0,14,4,0,7,8,0,7,8,0,3,8,0,3, - 144,0,1,144,0,1,208,0,1,224,0,0,224,0,0,224, - 0,0,64,0,0,64,0,27,17,68,28,0,0,255,63,207, - 224,28,15,3,0,28,7,3,0,12,7,2,0,14,7,2, - 0,14,15,130,0,7,11,132,0,7,9,132,0,3,137,196, - 0,3,145,200,0,1,144,200,0,1,208,232,0,1,224,240, - 0,0,224,112,0,0,224,112,0,0,64,96,0,0,64,32, - 0,16,17,34,19,2,0,254,126,60,56,28,48,28,32,14, - 64,14,64,7,128,3,128,3,128,3,192,3,192,4,224,8, - 96,8,112,16,56,48,56,252,255,18,25,75,20,1,248,255, - 31,192,28,6,0,28,6,0,12,4,0,14,4,0,14,4, - 0,6,8,0,7,8,0,7,8,0,3,16,0,3,144,0, - 3,144,0,1,240,0,1,224,0,1,224,0,0,224,0,0, - 192,0,0,64,0,0,192,0,0,128,0,112,128,0,113,128, - 0,113,0,0,115,0,0,60,0,0,12,17,34,15,1,0, - 255,240,224,112,192,224,128,224,129,192,131,128,131,128,7,0, - 7,0,14,0,28,16,28,16,56,16,56,16,112,48,224,112, - 255,240,8,33,33,15,3,249,3,4,8,24,24,24,24,28, - 28,28,12,12,12,12,8,24,224,24,8,12,12,12,12,28, - 28,28,24,24,24,24,8,4,3,2,34,34,10,4,249,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,8,33,33,14,3,249,192,32,16,24,24,24,24,24,56, - 56,48,48,48,48,16,24,7,24,16,48,48,48,48,56,56, - 24,24,24,24,24,16,32,192,20,6,18,24,2,6,62,0, - 32,127,192,16,135,248,16,128,255,48,128,63,224,96,7,192, - 255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=39 x= 8 y=23 dx=44 dy= 0 ascent=39 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-11 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =39 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29[16232] U8G_FONT_SECTION("u8g_font_osr29") = { - 0,107,51,223,244,29,9,148,21,166,32,255,247,39,245,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,11,0,0,5,28,28,11,3, - 247,112,248,248,248,112,0,32,32,32,32,32,32,112,112,112, - 112,112,112,112,112,248,248,248,248,248,248,248,112,14,28,56, - 24,5,252,0,128,0,128,0,128,0,128,0,128,7,224,12, - 152,24,136,56,140,112,156,112,188,240,188,240,152,240,128,240, - 128,240,128,240,128,240,132,112,132,112,132,56,132,24,136,14, - 144,3,224,0,128,0,128,0,128,0,128,23,28,84,30,3, - 0,0,3,240,0,6,24,0,28,12,0,24,14,0,48,62, - 0,112,62,0,112,62,0,112,24,0,112,0,0,240,0,0, - 240,0,0,240,0,31,240,0,32,255,128,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,224,0, - 0,224,0,62,224,2,67,192,2,128,224,4,129,127,60,194, - 63,248,60,15,240,20,20,60,24,2,4,64,0,32,225,248, - 112,119,254,224,62,7,192,24,1,128,48,0,192,48,0,192, - 96,0,96,96,0,96,96,0,96,96,0,96,96,0,96,96, - 0,96,48,0,192,48,0,192,24,1,128,62,7,192,119,254, - 224,225,248,112,64,0,32,22,28,84,24,1,0,255,131,252, - 62,0,112,30,0,96,14,0,64,15,0,64,15,0,128,7, - 128,128,7,129,0,3,193,0,3,194,0,1,226,0,1,228, - 0,0,252,0,0,248,0,0,120,0,31,255,192,0,120,0, - 0,120,0,31,255,192,0,120,0,0,120,0,0,120,0,0, - 120,0,0,120,0,0,120,0,0,120,0,0,120,0,7,255, - 128,2,37,37,12,5,249,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,0,0,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,15,36,72,26, - 4,248,7,192,12,32,24,48,48,120,48,120,48,112,56,0, - 56,0,28,0,30,0,15,0,31,192,35,224,97,240,64,248, - 192,60,192,30,192,14,224,6,240,6,120,6,60,4,31,12, - 15,152,7,224,3,224,0,224,0,112,0,112,0,56,56,56, - 60,56,56,48,48,48,24,96,7,128,12,4,8,18,3,22, - 96,96,240,240,240,240,96,96,30,29,116,34,2,1,0,127, - 248,0,1,192,14,0,3,0,3,0,4,0,0,128,8,0, - 0,64,16,7,196,32,32,24,108,16,32,48,60,16,64,112, - 28,8,64,224,12,8,192,224,12,8,129,224,4,4,129,224, - 0,4,129,224,0,4,129,224,0,4,129,224,0,4,129,224, - 0,4,129,224,4,4,192,224,4,8,64,224,8,8,64,112, - 8,8,32,112,24,16,48,24,48,48,16,15,192,32,8,0, - 0,64,4,0,0,128,3,0,3,0,1,192,14,0,0,127, - 248,0,11,14,28,16,3,14,60,0,102,0,67,0,99,0, - 99,0,7,0,27,0,99,0,195,0,195,32,231,32,121,192, - 0,0,127,192,10,16,32,19,4,1,24,64,48,192,32,128, - 97,128,97,0,195,0,195,0,195,0,195,0,195,0,195,0, - 97,128,97,128,48,128,16,64,8,0,20,8,24,24,2,7, - 255,255,240,255,255,240,0,0,48,0,0,48,0,0,48,0, - 0,48,0,0,48,0,0,48,10,2,4,14,2,9,255,192, - 255,192,30,29,116,34,2,1,0,127,248,0,1,192,14,0, - 3,0,3,0,4,0,0,128,8,0,0,64,19,255,192,32, - 32,112,240,48,32,112,120,16,64,112,120,8,64,112,120,8, - 192,112,120,8,128,112,112,4,128,112,224,4,128,127,128,4, - 128,112,224,4,128,112,112,4,128,112,112,4,128,112,120,4, - 128,112,120,8,64,112,120,136,64,112,120,136,32,112,56,144, - 32,112,57,16,19,252,30,32,8,0,0,64,4,0,0,128, - 3,0,3,0,1,192,14,0,0,127,248,0,11,2,4,19, - 4,23,255,224,255,224,11,10,20,23,6,18,31,0,96,128, - 64,64,128,32,128,32,128,32,128,32,64,64,96,128,31,0, - 35,28,140,39,2,254,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 0,0,0,0,0,0,0,0,255,255,255,255,192,255,255,255, - 255,192,11,17,34,18,4,11,31,0,99,192,129,192,128,224, - 192,224,224,224,112,224,1,192,1,128,3,0,12,0,24,0, - 32,32,64,32,64,96,255,224,255,224,11,17,34,18,5,11, - 31,0,97,192,192,192,224,224,240,224,0,224,0,192,97,128, - 126,0,1,128,0,192,0,224,224,224,240,224,224,192,129,192, - 127,0,7,7,7,18,8,21,6,14,28,56,48,96,128,21, - 30,90,25,3,245,96,6,0,224,15,0,240,15,0,240,15, - 0,240,15,0,224,15,0,224,15,0,224,15,0,224,15,0, - 224,15,0,224,6,0,64,6,0,64,6,0,64,6,0,96, - 12,8,96,14,24,88,57,248,79,241,248,67,224,112,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,224,0,0, - 224,0,0,240,0,0,240,0,0,112,0,0,112,0,0,17, - 35,105,23,3,250,15,255,128,63,140,0,127,140,0,127,140, - 0,255,140,0,255,140,0,255,140,0,255,140,0,255,140,0, - 127,140,0,127,140,0,63,140,0,7,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,1,140, - 0,1,140,0,1,140,0,1,140,0,1,140,0,1,140,0, - 1,140,0,1,140,0,1,140,0,1,140,0,1,140,0,1, - 140,0,1,140,0,1,140,0,1,140,0,1,140,0,5,5, - 5,11,3,10,112,248,248,248,112,8,8,8,18,5,248,48, - 32,60,6,7,7,15,252,9,17,34,19,5,11,4,0,12, - 0,28,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,255,128,10, - 14,28,16,3,14,30,0,51,0,97,128,192,192,192,192,192, - 192,192,192,192,192,193,192,97,128,35,0,30,0,0,0,255, - 192,10,16,32,20,5,1,134,0,195,0,65,0,97,128,32, - 192,48,192,48,192,48,192,48,192,48,192,48,192,97,128,97, - 128,67,0,130,0,4,0,27,28,112,35,5,0,4,0,12, - 0,12,0,8,0,28,0,24,0,252,0,16,0,28,0,32, - 0,28,0,96,0,28,0,64,0,28,0,192,0,28,0,128, - 0,28,1,128,0,28,3,0,0,28,2,0,0,28,6,7, - 0,28,4,15,0,28,12,15,0,28,24,23,0,255,144,23, - 0,0,48,39,0,0,32,71,0,0,96,71,0,0,192,135, - 0,0,129,7,0,1,129,255,224,1,0,7,0,3,0,7, - 0,6,0,7,0,6,0,7,0,12,0,63,224,27,28,112, - 35,5,0,4,0,4,0,12,0,12,0,28,0,8,0,252, - 0,16,0,28,0,48,0,28,0,32,0,28,0,96,0,28, - 0,64,0,28,0,128,0,28,1,128,0,28,1,0,0,28, - 3,31,0,28,6,99,192,28,4,129,192,28,12,128,224,28, - 8,192,224,255,152,224,224,0,48,240,224,0,32,1,192,0, - 96,1,128,0,64,3,0,0,192,12,0,1,128,24,0,1, - 0,32,32,3,0,64,32,2,0,64,96,6,0,255,224,12, - 0,255,224,28,28,112,36,5,0,31,0,6,0,97,192,4, - 0,192,224,8,0,224,224,24,0,240,224,16,0,0,192,48, - 0,1,128,96,0,126,0,64,0,97,128,192,0,0,192,128, - 0,0,225,128,0,96,227,3,128,240,226,3,128,224,230,7, - 128,129,196,7,128,67,136,11,128,62,24,19,128,0,16,19, - 128,0,48,35,128,0,96,99,128,0,64,67,128,0,192,131, - 128,0,128,255,240,1,128,3,128,3,0,3,128,2,0,3, - 128,6,0,3,128,4,0,31,240,15,28,56,19,1,247,3, - 128,7,192,7,192,7,192,3,128,0,0,3,128,4,64,8, - 32,8,32,8,96,0,96,0,192,1,128,7,0,14,0,28, - 0,56,0,120,0,240,60,240,62,240,62,240,6,240,6,112, - 6,120,12,28,24,7,224,29,38,152,32,2,0,0,224,0, - 0,0,240,0,0,0,112,0,0,0,56,0,0,0,12,0, - 0,0,6,0,0,0,2,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,15,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,240, - 0,0,192,120,0,0,128,120,0,1,128,120,0,1,255,252, - 0,1,0,60,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,30,0,15, - 128,255,224,255,248,29,38,152,32,2,0,0,0,48,0,0, - 0,112,0,0,0,240,0,0,0,224,0,0,1,128,0,0, - 3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0, - 2,0,0,0,6,0,0,0,7,0,0,0,7,0,0,0, - 15,128,0,0,15,128,0,0,15,128,0,0,31,192,0,0, - 19,192,0,0,51,192,0,0,49,224,0,0,33,224,0,0, - 97,224,0,0,96,240,0,0,64,240,0,0,192,240,0,0, - 192,120,0,0,128,120,0,1,128,120,0,1,255,252,0,3, - 0,60,0,3,0,30,0,3,0,30,0,6,0,30,0,6, - 0,15,0,6,0,15,0,14,0,15,0,31,0,31,192,255, - 224,255,248,29,38,152,32,2,0,0,6,0,0,0,7,0, - 0,0,15,128,0,0,29,128,0,0,56,192,0,0,96,48, - 0,0,128,8,0,0,0,0,0,0,0,0,0,0,2,0, - 0,0,6,0,0,0,7,0,0,0,7,0,0,0,15,128, - 0,0,15,128,0,0,15,128,0,0,31,192,0,0,19,192, - 0,0,51,192,0,0,49,224,0,0,33,224,0,0,97,224, - 0,0,96,240,0,0,64,240,0,0,192,240,0,0,192,120, - 0,0,128,120,0,1,128,120,0,1,255,252,0,1,0,60, - 0,3,0,28,0,3,0,30,0,6,0,30,0,6,0,15, - 0,6,0,15,0,14,0,15,0,30,0,15,128,255,224,255, - 248,29,37,148,32,2,0,0,60,8,0,0,127,24,0,0, - 207,240,0,0,129,240,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,2,0,0,0,6,0,0,0, - 7,0,0,0,7,0,0,0,15,128,0,0,15,128,0,0, - 15,128,0,0,31,192,0,0,19,192,0,0,51,192,0,0, - 49,224,0,0,33,224,0,0,97,224,0,0,96,240,0,0, - 64,240,0,0,192,240,0,0,192,120,0,0,128,120,0,1, - 128,120,0,1,255,252,0,3,0,60,0,3,0,30,0,3, - 0,30,0,6,0,30,0,6,0,15,0,6,0,15,0,14, - 0,15,0,31,0,31,192,255,224,255,248,29,37,148,32,2, - 0,0,96,48,0,0,240,120,0,0,240,120,0,0,96,48, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,2,0,0,0,6,0,0,0,7,0,0,0,7,0, - 0,0,15,128,0,0,15,128,0,0,31,128,0,0,31,192, - 0,0,19,192,0,0,51,192,0,0,49,224,0,0,33,224, - 0,0,97,224,0,0,96,240,0,0,64,240,0,0,192,112, - 0,0,192,120,0,0,128,120,0,1,128,56,0,1,255,252, - 0,1,0,28,0,3,0,28,0,3,0,30,0,6,0,30, - 0,6,0,15,0,6,0,15,0,14,0,15,0,31,0,15, - 128,255,224,255,248,29,39,156,32,2,0,0,15,0,0,0, - 16,128,0,0,32,64,0,0,32,64,0,0,32,64,0,0, - 32,64,0,0,16,128,0,0,15,0,0,0,0,0,0,0, - 0,0,0,0,2,0,0,0,6,0,0,0,7,0,0,0, - 7,0,0,0,15,128,0,0,15,128,0,0,31,128,0,0, - 31,192,0,0,19,192,0,0,51,192,0,0,51,224,0,0, - 33,224,0,0,97,224,0,0,97,240,0,0,64,240,0,0, - 192,240,0,0,192,248,0,0,128,120,0,1,128,120,0,1, - 255,252,0,1,0,60,0,3,0,60,0,2,0,62,0,6, - 0,30,0,6,0,31,0,6,0,31,0,14,0,15,0,30, - 0,15,128,255,224,255,248,37,29,145,41,1,0,0,3,255, - 255,248,0,0,124,0,248,0,0,124,0,56,0,0,124,0, - 56,0,0,252,0,24,0,1,188,0,24,0,1,188,0,8, - 0,3,60,0,8,0,3,60,4,8,0,6,60,4,0,0, - 6,60,4,0,0,12,60,4,0,0,12,60,12,0,0,24, - 60,28,0,0,24,63,252,0,0,48,60,28,0,0,48,60, - 12,0,0,96,60,4,0,0,96,60,4,8,0,255,252,4, - 8,0,128,60,4,8,1,128,60,0,8,1,0,60,0,24, - 3,0,60,0,24,2,0,60,0,24,6,0,60,0,56,14, - 0,60,0,120,31,0,60,1,248,255,225,255,255,248,22,38, - 114,28,3,248,1,255,12,7,1,140,14,0,252,28,0,124, - 24,0,60,56,0,60,56,0,28,112,0,28,112,0,12,112, - 0,12,240,0,8,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,240,0,0,112,0,4, - 112,0,4,120,0,12,56,0,8,56,0,8,28,0,16,12, - 0,16,14,0,32,3,0,192,1,247,128,0,56,0,0,32, - 0,0,56,0,0,14,0,0,7,0,0,7,0,0,7,0, - 1,14,0,0,252,0,23,38,114,29,3,0,1,128,0,1, - 192,0,1,224,0,0,224,0,0,48,0,0,24,0,0,12, - 0,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,38, - 114,29,3,0,0,0,192,0,1,224,0,3,192,0,3,128, - 0,6,0,0,12,0,0,8,0,0,0,0,0,0,0,255, - 255,254,15,0,62,15,0,14,15,0,14,15,0,6,15,0, - 6,15,0,2,15,0,2,15,1,2,15,1,0,15,1,0, - 15,1,0,15,3,0,15,7,0,15,255,0,15,7,0,15, - 3,0,15,1,0,15,1,2,15,1,2,15,1,2,15,0, - 2,15,0,6,15,0,6,15,0,6,15,0,14,15,0,30, - 15,0,126,255,255,254,23,38,114,29,3,0,0,8,0,0, - 28,0,0,62,0,0,55,0,0,99,128,1,128,192,2,0, - 32,0,0,0,0,0,0,255,255,254,15,0,62,15,0,14, - 15,0,14,15,0,6,15,0,6,15,0,2,15,0,2,15, - 1,2,15,1,0,15,1,0,15,1,0,15,3,0,15,7, - 0,15,255,0,15,7,0,15,3,0,15,1,0,15,1,2, - 15,1,2,15,1,2,15,0,2,15,0,6,15,0,6,15, - 0,6,15,0,14,15,0,30,15,0,126,255,255,254,23,37, - 111,29,3,0,1,128,192,3,193,224,3,193,224,1,128,192, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,254,15, - 0,62,15,0,14,15,0,14,15,0,6,15,0,6,15,0, - 2,15,0,2,15,1,2,15,1,0,15,1,0,15,3,0, - 15,3,0,15,7,0,15,255,0,15,7,0,15,3,0,15, - 3,0,15,1,2,15,1,2,15,1,2,15,0,2,15,0, - 6,15,0,6,15,0,6,15,0,14,15,0,30,15,0,126, - 255,255,254,12,38,76,17,3,0,192,0,224,0,112,0,56, - 0,24,0,12,0,2,0,0,0,0,0,255,240,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,255,240,12,38,76,17,3,0,0,48,0,112,0, - 224,1,192,3,128,2,0,4,0,0,0,0,0,255,240,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,255,240,12,38,76,17,3,0,6,0,14, - 0,15,0,27,128,48,192,96,96,128,16,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,12,37,74,15,2,0,96, - 96,240,240,240,240,96,96,0,0,0,0,0,0,0,0,255, - 240,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,15,0,15,0,15,0,15,0,15, - 0,15,0,15,0,15,0,255,240,27,29,116,32,3,0,255, - 255,192,0,15,0,112,0,15,0,28,0,15,0,14,0,15, - 0,7,0,15,0,7,128,15,0,3,128,15,0,3,192,15, - 0,3,192,15,0,1,192,15,0,1,224,15,0,1,224,15, - 0,1,224,255,240,1,224,15,0,1,224,15,0,1,224,15, - 0,1,224,15,0,1,224,15,0,1,224,15,0,3,192,15, - 0,3,192,15,0,3,192,15,0,3,128,15,0,7,0,15, - 0,7,0,15,0,14,0,15,0,28,0,15,0,112,0,255, - 255,192,0,28,37,148,32,3,0,0,60,8,0,0,127,152, - 0,0,71,240,0,0,65,240,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,63,240,15,128,7, - 128,15,128,3,0,15,192,3,0,15,224,3,0,13,224,3, - 0,13,240,3,0,12,248,3,0,12,120,3,0,12,124,3, - 0,12,60,3,0,12,30,3,0,12,31,3,0,12,15,3, - 0,12,7,131,0,12,7,131,0,12,3,195,0,12,3,227, - 0,12,1,227,0,12,0,243,0,12,0,251,0,12,0,123, - 0,12,0,63,0,12,0,63,0,12,0,31,0,12,0,31, - 0,12,0,15,0,30,0,7,0,255,192,7,0,24,38,114, - 29,3,1,3,128,0,3,192,0,1,192,0,0,224,0,0, - 112,0,0,48,0,0,8,0,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,38,114,29,3,1,0,1,192,0,3, - 192,0,3,128,0,7,0,0,14,0,0,12,0,0,16,0, - 0,0,0,0,0,0,0,255,0,3,0,192,6,0,96,12, - 0,48,28,0,56,56,0,28,56,0,28,120,0,30,112,0, - 14,112,0,14,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,112, - 0,14,112,0,14,120,0,30,56,0,28,56,0,28,28,0, - 56,12,0,48,6,0,96,3,0,192,0,255,0,24,38,114, - 29,3,0,0,24,0,0,24,0,0,60,0,0,126,0,0, - 195,0,1,129,128,6,0,96,0,0,0,0,0,0,0,255, - 0,3,0,192,6,0,96,12,0,48,28,0,56,56,0,28, - 56,0,28,120,0,30,112,0,14,112,0,14,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,240,0,15,240,0,15,112,0,14,112,0,14,120,0,30, - 56,0,28,56,0,28,28,0,56,12,0,48,6,0,96,3, - 0,192,0,255,0,24,37,111,29,3,0,1,240,32,3,252, - 64,2,63,192,2,7,128,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,0,3,0,192,6,0,96,12,0,48,28, - 0,56,56,0,28,56,0,28,120,0,30,112,0,14,112,0, - 14,240,0,15,240,0,15,240,0,15,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,112,0,14,112, - 0,14,120,0,30,56,0,28,56,0,28,28,0,56,12,0, - 48,6,0,96,3,0,192,0,255,0,24,37,111,29,3,0, - 1,129,128,3,195,192,3,195,192,1,129,128,0,0,0,0, - 0,0,0,0,0,0,0,0,0,255,0,3,0,192,6,0, - 96,12,0,48,28,0,56,56,0,28,56,0,28,120,0,30, - 112,0,14,112,0,14,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,240,0,15,240,0, - 15,112,0,14,112,0,14,120,0,30,56,0,28,56,0,28, - 28,0,56,12,0,48,6,0,96,3,0,192,0,255,0,25, - 25,100,39,7,254,192,0,1,128,224,0,3,0,112,0,6, - 0,56,0,12,0,28,0,24,0,14,0,48,0,7,0,96, - 0,3,128,192,0,1,193,128,0,0,227,0,0,0,118,0, - 0,0,60,0,0,0,28,0,0,0,62,0,0,0,103,0, - 0,0,195,128,0,1,129,192,0,3,0,224,0,6,0,112, - 0,12,0,56,0,24,0,28,0,48,0,14,0,96,0,7, - 0,192,0,3,128,128,0,1,0,24,29,87,29,3,1,0, - 255,131,3,0,230,6,0,124,12,0,60,28,0,56,56,0, - 60,56,0,124,120,0,254,112,0,206,112,1,142,240,3,15, - 240,6,15,240,14,15,240,12,15,240,24,15,240,48,15,240, - 96,15,240,224,15,240,192,15,113,128,14,115,0,14,126,0, - 30,62,0,28,60,0,28,28,0,56,60,0,48,62,0,96, - 103,0,192,193,255,0,29,38,152,34,3,1,0,112,0,0, - 0,112,0,0,0,56,0,0,0,28,0,0,0,14,0,0, - 0,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, - 255,240,31,248,15,0,3,192,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,7,0,1,0, - 7,0,3,0,3,128,2,0,1,192,6,0,0,224,24,0, - 0,63,240,0,29,38,152,34,3,1,0,0,56,0,0,0, - 120,0,0,0,240,0,0,0,224,0,0,1,128,0,0,3, - 0,0,0,2,0,0,0,0,0,0,0,0,0,0,255,240, - 31,248,15,0,3,192,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,7,0,1,0,7,0, - 3,0,3,128,2,0,1,192,6,0,0,224,24,0,0,63, - 240,0,29,38,152,34,3,0,0,3,0,0,0,7,0,0, - 0,7,128,0,0,13,192,0,0,24,96,0,0,96,48,0, - 0,192,8,0,0,0,0,0,0,0,0,0,255,240,31,248, - 15,0,3,192,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,15,0,1,128,15,0,1,128, - 15,0,1,128,15,0,1,128,7,0,3,0,7,0,3,0, - 3,128,6,0,1,192,14,0,0,224,24,0,0,63,240,0, - 29,37,148,34,3,0,0,48,48,0,0,120,120,0,0,120, - 120,0,0,48,48,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,240,31,248,15,0,3,192,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,7,0,1,0,7,0,3,0,3,128,2,0,1,192, - 6,0,0,224,24,0,0,63,240,0,27,38,152,30,2,0, - 0,0,48,0,0,0,112,0,0,0,224,0,0,0,192,0, - 0,1,128,0,0,3,0,0,0,2,0,0,0,0,0,0, - 0,0,0,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,23,29,87,28,3,0,255,248, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,255,128, - 15,0,224,15,0,120,15,0,60,15,0,60,15,0,30,15, - 0,30,15,0,30,15,0,30,15,0,30,15,0,60,15,0, - 60,15,0,120,15,0,224,15,255,128,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,255,248,0,19,29,87,22,1,0,0,252,0,3,14, - 0,6,7,0,14,7,128,12,7,128,28,7,128,28,7,128, - 28,7,0,28,14,0,28,28,0,28,224,0,28,24,0,28, - 6,0,28,7,0,28,3,128,28,3,128,28,1,192,28,1, - 192,28,1,192,28,1,224,28,1,224,28,1,224,28,1,224, - 28,225,192,29,225,192,29,225,192,28,131,128,28,199,0,252, - 60,0,18,28,84,21,2,1,112,0,0,120,0,0,60,0, - 0,28,0,0,6,0,0,3,0,0,1,0,0,0,0,0, - 0,0,0,15,192,0,56,112,0,32,56,0,96,28,0,120, - 28,0,120,28,0,56,28,0,0,28,0,0,252,0,15,28, - 0,56,28,0,112,28,0,224,28,0,224,28,64,224,60,64, - 224,60,64,224,92,192,112,159,128,31,15,0,18,28,84,21, - 2,1,0,28,0,0,60,0,0,120,0,0,112,0,0,192, - 0,1,128,0,1,0,0,0,0,0,0,0,0,15,192,0, - 56,112,0,32,56,0,96,28,0,120,28,0,120,28,0,56, - 28,0,0,28,0,0,252,0,15,28,0,56,28,0,112,28, - 0,224,28,0,224,28,64,224,60,64,224,60,64,224,92,192, - 112,159,128,31,15,0,18,28,84,21,2,0,3,128,0,3, - 128,0,7,128,0,6,192,0,12,96,0,24,48,0,32,24, - 0,0,0,0,0,0,0,15,192,0,56,112,0,32,56,0, - 96,28,0,120,28,0,120,28,0,56,28,0,0,28,0,0, - 252,0,15,28,0,56,28,0,112,28,0,224,28,0,224,28, - 64,224,60,64,224,60,64,224,92,192,112,159,128,31,15,0, - 18,27,81,21,2,0,30,8,0,63,136,0,39,248,0,64, - 240,0,0,0,0,0,0,0,0,0,0,0,0,0,15,192, - 0,56,112,0,32,56,0,96,28,0,120,28,0,120,28,0, - 56,28,0,0,28,0,0,252,0,15,28,0,56,28,0,112, - 28,0,224,28,0,224,28,64,224,60,64,224,60,64,224,92, - 192,112,159,128,31,15,0,18,27,81,21,2,0,56,48,0, - 120,120,0,120,120,0,56,48,0,0,0,0,0,0,0,0, - 0,0,0,0,0,15,192,0,24,112,0,32,56,0,96,28, - 0,112,28,0,120,28,0,56,28,0,0,28,0,0,252,0, - 15,28,0,56,28,0,112,28,0,224,28,0,224,28,64,224, - 60,64,224,60,64,224,92,192,112,159,128,31,15,0,18,28, - 84,21,2,0,7,128,0,8,64,0,16,32,0,16,32,0, - 16,32,0,8,64,0,7,128,0,0,0,0,0,0,0,15, - 192,0,56,112,0,32,56,0,96,28,0,112,28,0,120,28, - 0,56,28,0,0,28,0,0,252,0,15,28,0,56,28,0, - 112,28,0,224,28,0,224,28,64,224,60,64,224,92,64,224, - 156,192,112,159,128,31,15,0,25,19,76,29,2,0,15,193, - 240,0,56,115,28,0,32,30,14,0,96,30,7,0,120,28, - 7,0,120,28,7,0,56,28,7,128,0,28,7,128,3,255, - 255,128,28,28,0,0,112,28,0,0,112,28,0,0,224,28, - 1,128,224,28,1,0,224,62,1,0,224,46,1,0,224,70, - 2,0,112,131,4,0,31,0,248,0,15,27,54,18,2,248, - 7,224,28,16,56,8,48,12,112,28,112,60,240,60,240,24, - 240,0,240,0,240,0,240,0,240,6,112,4,112,4,48,12, - 56,8,28,48,7,224,1,0,2,0,1,192,0,96,0,112, - 0,112,8,240,7,192,15,28,56,19,2,1,56,0,60,0, - 28,0,14,0,7,0,3,0,0,128,0,0,0,0,7,192, - 12,112,56,56,48,28,112,28,112,28,240,30,240,30,255,254, - 240,0,240,0,240,0,240,2,112,4,112,4,56,4,56,8, - 28,16,7,224,15,28,56,19,2,1,0,28,0,60,0,56, - 0,112,0,224,0,192,1,0,0,0,0,0,7,192,12,112, - 56,56,48,28,112,28,112,28,240,30,240,30,255,254,240,0, - 240,0,240,0,240,2,112,4,112,4,56,4,56,8,28,16, - 7,224,15,28,56,19,2,0,1,128,3,128,3,192,7,192, - 6,96,8,48,16,8,0,0,0,0,7,192,12,112,56,56, - 48,28,112,28,112,28,240,30,240,30,255,254,240,0,240,0, - 240,0,240,6,112,4,112,4,56,4,56,8,28,16,7,224, - 15,27,54,19,2,0,24,24,60,60,60,60,24,24,0,0, - 0,0,0,0,0,0,7,192,12,112,56,56,48,28,112,28, - 112,28,240,14,240,14,255,254,240,0,240,0,240,0,240,2, - 112,4,112,4,56,4,56,8,28,16,7,224,10,28,56,11, - 0,0,192,0,224,0,224,0,112,0,24,0,12,0,4,0, - 0,0,0,0,126,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,127,192,10,28,56,11,1,0, - 0,192,1,192,3,128,7,0,6,0,12,0,16,0,0,0, - 0,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,255,128,11,28,56,11,0,0,12,0, - 12,0,30,0,31,0,51,0,96,128,128,96,0,0,0,0, - 126,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,127,192,11,26,52,13,1,0,96,192,241,224, - 241,224,96,192,0,0,0,0,0,0,62,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,63,192, - 17,29,87,21,2,0,30,4,0,15,12,0,7,176,0,3, - 224,0,1,224,0,6,224,0,12,240,0,16,120,0,0,56, - 0,0,28,0,3,254,0,12,62,0,24,30,0,56,15,0, - 112,15,0,112,7,0,240,7,0,240,7,128,240,7,128,240, - 7,128,240,7,0,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,20,26,78, - 22,1,0,3,225,0,7,254,0,4,126,0,0,0,0,0, - 0,0,0,0,0,0,0,0,252,60,0,28,199,0,29,3, - 0,31,3,128,30,3,128,30,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,255,159, - 240,17,28,84,21,2,1,56,0,0,60,0,0,30,0,0, - 14,0,0,3,0,0,1,128,0,0,128,0,0,0,0,0, - 0,0,3,224,0,12,56,0,24,28,0,56,14,0,112,14, - 0,112,7,0,240,7,0,240,7,0,240,7,128,240,7,128, - 240,7,128,240,7,0,240,7,0,112,7,0,112,14,0,56, - 14,0,24,28,0,12,56,0,3,224,0,17,28,84,21,2, - 1,0,28,0,0,28,0,0,56,0,0,112,0,0,96,0, - 0,192,0,1,128,0,0,0,0,0,0,0,3,224,0,12, - 56,0,24,28,0,56,14,0,112,14,0,112,7,0,240,7, - 0,240,7,0,240,7,128,240,7,128,240,7,128,240,7,0, - 240,7,0,112,7,0,112,14,0,56,14,0,24,28,0,12, - 56,0,3,224,0,17,28,84,21,2,0,1,128,0,1,192, - 0,3,192,0,3,96,0,6,32,0,12,16,0,16,12,0, - 0,0,0,0,0,0,3,224,0,12,56,0,24,28,0,56, - 14,0,112,14,0,112,7,0,240,7,0,240,7,0,240,7, - 128,240,7,128,240,7,128,240,7,0,240,7,0,112,7,0, - 112,14,0,56,14,0,24,28,0,12,56,0,3,224,0,17, - 27,81,21,2,0,15,4,0,31,204,0,19,248,0,16,240, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,224,0, - 12,56,0,24,28,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 0,240,7,0,112,7,0,112,14,0,56,14,0,24,28,0, - 12,56,0,3,224,0,17,27,81,21,2,0,24,24,0,60, - 60,0,60,60,0,24,24,0,0,0,0,0,0,0,0,0, - 0,0,0,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,35,26,130, - 39,2,254,0,0,224,0,0,0,1,240,0,0,0,1,240, - 0,0,0,1,240,0,0,0,0,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0, - 0,0,1,240,0,0,0,1,240,0,0,0,1,240,0,0, - 0,0,224,0,0,17,19,57,21,2,0,3,225,0,12,59, - 0,24,30,0,56,14,0,112,14,0,112,31,0,240,55,0, - 240,103,0,240,199,128,240,135,128,241,7,128,242,7,0,244, - 7,0,124,7,0,120,14,0,56,14,0,120,28,0,76,56, - 0,131,224,0,20,28,84,22,1,1,14,0,0,15,0,0, - 7,0,0,3,128,0,1,192,0,0,64,0,0,32,0,0, - 0,0,0,0,0,252,31,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,7,128,28, - 7,128,28,15,128,12,11,128,14,51,128,3,195,240,20,28, - 84,22,1,1,0,7,0,0,15,0,0,30,0,0,24,0, - 0,48,0,0,96,0,0,64,0,0,0,0,0,0,0,252, - 31,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,7,128,28,7,128,28,15,128,12, - 11,128,14,51,128,3,195,240,20,28,84,22,1,0,0,96, - 0,0,224,0,0,240,0,1,176,0,3,24,0,2,4,0, - 4,2,0,0,0,0,0,0,0,252,31,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,128,28,15,128,12,11,128,14,51,128,3, - 195,240,20,27,81,22,1,0,6,6,0,15,15,0,15,15, - 0,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, - 252,15,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,3,128,28,3, - 128,28,3,128,28,3,128,28,7,128,28,7,128,28,15,128, - 12,11,128,14,51,128,3,195,240,20,37,111,22,1,248,0, - 3,0,0,7,0,0,15,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,0,0,0,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,18,38, - 114,21,1,246,12,0,0,60,0,0,252,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 30,0,28,127,0,28,199,128,29,3,128,31,3,192,30,3, - 192,30,3,128,28,3,128,28,3,128,28,7,0,28,7,0, - 28,6,0,28,12,0,28,28,0,28,24,0,28,48,0,28, - 192,0,29,128,0,30,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 56,0,0,192,0,0,19,36,108,21,1,247,3,6,0,7, - 143,0,7,143,0,3,6,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,143,224,30,3,128,30,1,0,14,3,0, - 14,2,0,7,2,0,7,2,0,7,6,0,3,132,0,3, - 132,0,3,140,0,1,200,0,1,200,0,1,200,0,0,240, - 0,0,240,0,0,240,0,0,96,0,0,96,0,0,96,0, - 0,64,0,0,64,0,48,64,0,120,64,0,120,128,0,121, - 128,0,59,0,0,30,0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 28 - Calculated Max Values w=35 h=38 x= 5 y=11 dx=39 dy= 0 ascent=30 len=170 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x= 0 y=-8 dx= 0 dy= 0 - Pure Font ascent =28 descent= 0 - X Font ascent =28 descent= 0 - Max Font ascent =30 descent=-8 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29n[1226] U8G_FONT_SECTION("u8g_font_osr29n") = { - 0,107,51,223,244,28,0,0,0,0,42,58,0,30,248,28, - 0,15,17,34,21,3,11,3,128,3,192,3,128,3,128,225, - 142,241,30,249,62,29,112,3,192,3,192,29,120,249,62,241, - 30,227,142,3,128,3,192,3,128,35,34,170,39,2,250,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,255, - 255,255,255,224,255,255,255,255,224,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,5,12,12,11,3,249,112, - 240,248,248,24,8,8,16,16,32,32,64,10,2,4,14,2, - 9,255,192,255,192,5,5,5,11,3,0,112,248,248,248,112, - 14,38,76,18,2,248,0,12,0,12,0,12,0,8,0,24, - 0,24,0,16,0,48,0,48,0,32,0,96,0,96,0,64, - 0,192,0,192,0,128,1,128,1,128,1,0,3,0,3,0, - 2,0,6,0,6,0,4,0,12,0,12,0,8,0,24,0, - 24,0,16,0,48,0,48,0,32,0,96,0,96,0,64,0, - 192,0,20,28,84,24,2,0,1,248,0,7,12,0,12,7, - 0,28,3,128,24,1,128,56,1,192,56,1,192,112,0,224, - 112,0,224,112,0,224,240,0,240,240,0,240,240,0,240,240, - 0,240,240,0,240,240,0,240,240,0,240,240,0,240,240,0, - 240,112,0,224,112,0,224,112,0,224,56,1,192,56,1,192, - 24,1,128,12,3,0,6,6,0,3,252,0,14,28,56,24, - 5,0,1,128,1,128,3,128,7,128,255,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,255,252,17,28,84,24,3,0, - 7,224,0,24,60,0,32,30,0,64,15,0,192,15,0,192, - 7,128,192,7,128,240,7,128,252,7,128,252,7,128,124,7, - 128,24,15,0,0,14,0,0,28,0,0,56,0,0,112,0, - 0,224,0,1,192,0,3,0,0,6,0,0,12,0,128,24, - 0,128,48,0,128,48,1,128,112,1,128,127,255,128,127,255, - 128,127,255,128,17,28,84,24,3,0,15,224,0,48,56,0, - 96,28,0,96,14,0,240,15,0,248,15,0,248,15,0,120, - 15,0,0,15,0,0,15,0,0,14,0,0,28,0,28,56, - 0,31,224,0,0,60,0,0,30,0,0,15,0,0,7,0, - 0,7,128,0,7,128,120,7,128,248,7,128,248,7,128,248, - 7,0,192,15,0,192,14,0,96,28,0,31,240,0,19,28, - 84,24,2,0,0,12,0,0,12,0,0,28,0,0,60,0, - 0,60,0,0,124,0,0,252,0,0,252,0,1,188,0,3, - 60,0,3,60,0,6,60,0,12,60,0,12,60,0,24,60, - 0,48,60,0,32,60,0,96,60,0,192,60,0,255,255,224, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,7,255,224,17,29,87,24,4,0,0,2, - 0,120,12,0,127,248,0,127,240,0,111,192,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,103,224,0,104, - 60,0,112,30,0,96,14,0,96,15,0,96,7,0,0,7, - 128,0,7,128,0,7,128,16,7,128,120,7,128,252,7,128, - 252,7,128,248,15,0,224,15,0,224,14,0,96,28,0,48, - 56,0,31,240,0,17,28,84,24,3,0,1,248,0,3,12, - 0,12,6,0,28,7,0,24,15,0,56,31,0,48,31,0, - 112,14,0,112,0,0,112,0,0,240,0,0,241,240,0,246, - 28,0,252,14,0,248,7,0,248,7,0,240,7,128,240,7, - 128,240,7,128,240,7,128,112,7,128,112,7,128,112,7,0, - 48,7,0,56,7,0,24,14,0,12,28,0,7,248,0,16, - 28,56,24,4,0,255,255,255,255,255,255,192,3,128,2,128, - 2,128,6,128,4,0,12,0,8,0,24,0,48,0,32,0, - 96,0,192,0,192,1,128,3,128,3,128,7,128,7,128,7, - 128,15,192,15,192,15,192,15,192,15,192,7,192,20,28,84, - 24,2,0,3,248,0,14,14,0,56,7,0,112,3,128,112, - 1,192,240,1,192,240,1,192,240,1,192,240,1,192,248,1, - 128,126,3,128,127,131,0,63,252,0,15,252,0,7,255,0, - 24,127,192,48,15,224,112,3,224,224,1,240,224,0,240,224, - 0,240,224,0,224,224,0,224,224,0,224,112,1,192,48,1, - 128,28,7,0,15,252,0,17,28,84,24,3,0,7,224,0, - 12,56,0,56,12,0,56,14,0,112,14,0,112,7,0,240, - 7,0,240,7,0,240,7,128,240,7,128,240,7,128,240,7, - 128,112,15,128,112,15,128,56,27,128,28,51,128,7,199,128, - 0,7,128,0,7,0,0,7,0,56,7,0,124,7,0,124, - 14,0,120,14,0,112,12,0,112,24,0,48,48,0,31,224, - 0,5,19,19,11,3,0,112,248,248,248,112,0,0,0,0, - 0,0,0,0,0,112,248,248,248,112}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--41-410-72-72-P-216-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 29, '1' Height: 28 - Calculated Max Values w=41 h=38 x= 5 y=22 dx=44 dy= 0 ascent=31 len=174 - Font Bounding box w=107 h=51 x=-33 y=-12 - Calculated Min Values x=-1 y=-9 dx= 0 dy= 0 - Pure Font ascent =29 descent=-9 - X Font ascent =30 descent=-9 - Max Font ascent =31 descent=-9 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr29r[7573] U8G_FONT_SECTION("u8g_font_osr29r") = { - 0,107,51,223,244,29,9,148,21,166,32,127,247,31,247,30, - 247,0,0,0,11,0,0,5,28,28,11,3,0,112,248,248, - 248,248,248,248,248,112,112,112,112,112,112,112,112,32,32,32, - 32,32,32,0,112,248,248,248,112,9,8,16,17,4,22,227, - 128,227,128,227,128,227,128,193,128,65,128,65,0,65,0,22, - 28,84,28,3,0,0,192,192,0,192,192,0,192,192,0,192, - 128,0,129,128,1,129,128,1,129,128,1,129,128,255,255,252, - 255,255,252,1,129,0,3,3,0,3,3,0,3,3,0,3, - 3,0,3,3,0,2,2,0,6,6,0,255,255,252,255,255, - 252,6,6,0,6,6,0,6,4,0,4,12,0,12,12,0, - 12,12,0,12,12,0,12,12,0,18,34,102,24,3,253,1, - 16,0,1,16,0,1,16,0,3,248,0,13,22,0,25,17, - 0,49,16,128,97,16,192,97,16,192,97,17,192,97,19,192, - 97,19,192,113,19,128,61,16,0,63,144,0,31,240,0,15, - 252,0,3,254,0,1,127,0,1,31,128,1,19,128,33,17, - 192,113,16,192,249,16,192,241,16,192,241,16,192,225,16,128, - 97,17,128,97,17,0,49,19,0,15,188,0,1,240,0,1, - 16,0,1,16,0,28,28,112,36,4,0,31,0,6,0,49, - 128,4,0,96,192,12,0,96,192,8,0,224,224,24,0,224, - 224,48,0,224,224,32,0,224,224,96,0,224,224,64,0,224, - 224,128,0,96,193,128,0,96,193,0,0,49,131,0,0,31, - 6,0,0,0,4,15,0,0,12,48,128,0,8,48,192,0, - 16,96,96,0,48,96,96,0,32,224,112,0,96,224,112,0, - 64,224,112,0,128,224,112,1,128,224,112,1,0,96,96,2, - 0,96,96,6,0,48,192,4,0,31,128,28,28,112,32,2, - 0,0,248,0,0,3,140,0,0,7,4,0,0,6,2,0, - 0,14,2,0,0,14,2,0,0,14,6,0,0,14,4,0, - 0,15,12,0,0,7,24,0,0,7,176,0,0,3,224,0, - 0,1,224,63,240,3,224,7,128,6,240,7,0,12,120,6, - 0,24,124,6,0,48,60,4,0,112,30,12,0,112,31,24, - 0,240,15,144,0,240,7,176,0,240,7,224,0,240,3,224, - 0,240,3,240,32,120,6,248,32,60,12,124,192,31,240,63, - 128,3,8,8,10,4,22,224,224,224,224,192,64,64,64,9, - 37,74,15,4,249,1,128,3,0,6,0,14,0,12,0,24, - 0,24,0,48,0,48,0,96,0,96,0,96,0,96,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,96,0,96,0,96,0,96,0,48,0,48,0,56, - 0,24,0,12,0,12,0,6,0,3,0,3,128,1,128,9, - 37,74,15,2,249,192,0,96,0,48,0,56,0,24,0,12, - 0,12,0,6,0,6,0,3,0,3,0,3,0,3,0,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,3,128,3,0,3,0,3,0,6,0,6,0,14, - 0,12,0,24,0,24,0,48,0,96,0,224,0,192,0,15, - 17,34,21,3,11,3,128,3,192,3,128,3,128,225,142,241, - 30,249,62,29,112,3,192,3,192,29,120,249,62,241,30,227, - 142,3,128,3,192,3,128,35,34,170,39,2,250,0,0,192, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,255,255,255, - 255,224,255,255,255,255,224,0,0,192,0,0,0,0,192,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,192,0,0, - 0,0,192,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,192,0,0,0,0,192,0,0,0,0,192,0,0,0,0, - 192,0,0,0,0,192,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,192,0,0,5,12,12,11,3,249,112,240,248, - 248,24,8,8,16,16,32,32,64,10,2,4,14,2,9,255, - 192,255,192,5,5,5,11,3,0,112,248,248,248,112,14,38, - 76,18,2,248,0,12,0,12,0,12,0,8,0,24,0,24, - 0,16,0,48,0,48,0,32,0,96,0,96,0,64,0,192, - 0,192,0,128,1,128,1,128,1,0,3,0,3,0,2,0, - 6,0,6,0,4,0,12,0,12,0,8,0,24,0,24,0, - 16,0,48,0,48,0,32,0,96,0,96,0,64,0,192,0, - 20,28,84,24,2,0,1,248,0,7,12,0,12,7,0,28, - 3,128,24,1,128,56,1,192,56,1,192,112,0,224,112,0, - 224,112,0,224,240,0,240,240,0,240,240,0,240,240,0,240, - 240,0,240,240,0,240,240,0,240,240,0,240,240,0,240,112, - 0,224,112,0,224,112,0,224,56,1,192,56,1,192,24,1, - 128,12,3,0,6,6,0,3,252,0,14,28,56,24,5,0, - 1,128,1,128,3,128,7,128,255,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,255,252,17,28,84,24,3,0,7,224, - 0,24,60,0,32,30,0,64,15,0,192,15,0,192,7,128, - 192,7,128,240,7,128,252,7,128,252,7,128,124,7,128,24, - 15,0,0,14,0,0,28,0,0,56,0,0,112,0,0,224, - 0,1,192,0,3,0,0,6,0,0,12,0,128,24,0,128, - 48,0,128,48,1,128,112,1,128,127,255,128,127,255,128,127, - 255,128,17,28,84,24,3,0,15,224,0,48,56,0,96,28, - 0,96,14,0,240,15,0,248,15,0,248,15,0,120,15,0, - 0,15,0,0,15,0,0,14,0,0,28,0,28,56,0,31, - 224,0,0,60,0,0,30,0,0,15,0,0,7,0,0,7, - 128,0,7,128,120,7,128,248,7,128,248,7,128,248,7,0, - 192,15,0,192,14,0,96,28,0,31,240,0,19,28,84,24, - 2,0,0,12,0,0,12,0,0,28,0,0,60,0,0,60, - 0,0,124,0,0,252,0,0,252,0,1,188,0,3,60,0, - 3,60,0,6,60,0,12,60,0,12,60,0,24,60,0,48, - 60,0,32,60,0,96,60,0,192,60,0,255,255,224,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,7,255,224,17,29,87,24,4,0,0,2,0,120, - 12,0,127,248,0,127,240,0,111,192,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,103,224,0,104,60,0, - 112,30,0,96,14,0,96,15,0,96,7,0,0,7,128,0, - 7,128,0,7,128,16,7,128,120,7,128,252,7,128,252,7, - 128,248,15,0,224,15,0,224,14,0,96,28,0,48,56,0, - 31,240,0,17,28,84,24,3,0,1,248,0,3,12,0,12, - 6,0,28,7,0,24,15,0,56,31,0,48,31,0,112,14, - 0,112,0,0,112,0,0,240,0,0,241,240,0,246,28,0, - 252,14,0,248,7,0,248,7,0,240,7,128,240,7,128,240, - 7,128,240,7,128,112,7,128,112,7,128,112,7,0,48,7, - 0,56,7,0,24,14,0,12,28,0,7,248,0,16,28,56, - 24,4,0,255,255,255,255,255,255,192,3,128,2,128,2,128, - 6,128,4,0,12,0,8,0,24,0,48,0,32,0,96,0, - 192,0,192,1,128,3,128,3,128,7,128,7,128,7,128,15, - 192,15,192,15,192,15,192,15,192,7,192,20,28,84,24,2, - 0,3,248,0,14,14,0,56,7,0,112,3,128,112,1,192, - 240,1,192,240,1,192,240,1,192,240,1,192,248,1,128,126, - 3,128,127,131,0,63,252,0,15,252,0,7,255,0,24,127, - 192,48,15,224,112,3,224,224,1,240,224,0,240,224,0,240, - 224,0,224,224,0,224,224,0,224,112,1,192,48,1,128,28, - 7,0,15,252,0,17,28,84,24,3,0,7,224,0,12,56, - 0,56,12,0,56,14,0,112,14,0,112,7,0,240,7,0, - 240,7,0,240,7,128,240,7,128,240,7,128,240,7,128,112, - 15,128,112,15,128,56,27,128,28,51,128,7,199,128,0,7, - 128,0,7,0,0,7,0,56,7,0,124,7,0,124,14,0, - 120,14,0,112,12,0,112,24,0,48,48,0,31,224,0,5, - 19,19,11,3,0,112,248,248,248,112,0,0,0,0,0,0, - 0,0,0,112,248,248,248,112,6,26,26,12,3,249,112,248, - 248,248,112,0,0,0,0,0,0,0,0,0,112,248,252,124, - 12,12,12,8,24,48,32,64,32,34,136,39,3,250,0,0, - 0,2,0,0,0,7,0,0,0,28,0,0,0,112,0,0, - 1,224,0,0,7,128,0,0,30,0,0,0,120,0,0,1, - 224,0,0,3,128,0,0,14,0,0,0,56,0,0,0,240, - 0,0,3,192,0,0,15,0,0,0,60,0,0,0,240,0, - 0,0,224,0,0,0,120,0,0,0,30,0,0,0,7,128, - 0,0,1,192,0,0,0,112,0,0,0,28,0,0,0,7, - 0,0,0,3,192,0,0,0,240,0,0,0,60,0,0,0, - 15,0,0,0,3,128,0,0,0,224,0,0,0,56,0,0, - 0,14,0,0,0,6,35,10,50,39,2,6,255,255,255,255, - 224,255,255,255,255,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,224,255,255,255,255,224,32,34, - 136,39,3,250,64,0,0,0,224,0,0,0,56,0,0,0, - 14,0,0,0,7,128,0,0,1,224,0,0,0,120,0,0, - 0,30,0,0,0,7,128,0,0,1,192,0,0,0,112,0, - 0,0,28,0,0,0,15,0,0,0,3,192,0,0,0,240, - 0,0,0,60,0,0,0,15,0,0,0,7,0,0,0,30, - 0,0,0,120,0,0,1,224,0,0,3,128,0,0,14,0, - 0,0,56,0,0,0,224,0,0,3,192,0,0,15,0,0, - 0,60,0,0,0,240,0,0,1,192,0,0,7,0,0,0, - 28,0,0,0,112,0,0,0,96,0,0,0,15,28,56,20, - 3,0,15,192,48,112,64,60,192,28,192,30,248,30,248,30, - 112,30,0,28,0,60,0,120,0,240,1,192,3,128,6,0, - 12,0,8,32,8,32,8,32,12,64,7,128,0,0,0,0, - 3,128,7,192,7,192,7,192,3,128,29,29,116,33,2,1, - 0,63,248,0,1,192,14,0,3,0,3,0,6,0,1,128, - 12,0,0,192,24,7,206,96,48,12,124,32,48,56,60,48, - 96,112,60,16,96,224,56,24,96,224,56,24,193,192,56,24, - 193,192,56,24,193,192,48,24,195,192,112,24,195,128,112,24, - 195,128,112,48,195,128,224,48,195,128,224,48,67,129,224,96, - 97,130,224,192,97,196,225,128,48,120,62,0,48,0,0,0, - 24,0,0,0,12,0,0,0,6,0,4,0,3,128,28,0, - 0,127,240,0,29,29,116,32,2,0,0,2,0,0,0,6, - 0,0,0,7,0,0,0,7,0,0,0,15,128,0,0,15, - 128,0,0,15,128,0,0,31,192,0,0,19,192,0,0,51, - 192,0,0,49,224,0,0,33,224,0,0,97,224,0,0,96, - 240,0,0,64,240,0,0,192,240,0,0,192,120,0,0,128, - 120,0,1,128,120,0,1,255,252,0,1,0,60,0,3,0, - 28,0,3,0,30,0,6,0,30,0,6,0,15,0,6,0, - 15,0,14,0,15,0,30,0,15,128,255,224,255,248,23,29, - 87,28,3,0,255,255,128,15,0,224,15,0,120,15,0,60, - 15,0,28,15,0,28,15,0,30,15,0,30,15,0,28,15, - 0,28,15,0,56,15,0,48,15,0,224,15,255,0,15,0, - 224,15,0,112,15,0,56,15,0,60,15,0,30,15,0,30, - 15,0,30,15,0,30,15,0,30,15,0,30,15,0,60,15, - 0,60,15,0,120,15,0,224,255,255,128,22,29,87,28,3, - 1,1,254,8,7,3,152,12,0,248,28,0,248,24,0,120, - 56,0,56,120,0,56,112,0,24,112,0,24,240,0,8,240, - 0,8,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,0,240,0,0,112,0,12,112,0,12, - 120,0,12,56,0,24,56,0,24,28,0,24,12,0,48,6, - 0,96,3,0,192,0,255,128,27,29,116,32,3,0,255,255, - 192,0,15,0,112,0,15,0,28,0,15,0,14,0,15,0, - 7,0,15,0,7,128,15,0,3,128,15,0,3,192,15,0, - 3,192,15,0,1,192,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,1,224,15,0, - 1,224,15,0,1,224,15,0,1,224,15,0,3,192,15,0, - 3,192,15,0,3,192,15,0,3,128,15,0,7,0,15,0, - 7,0,15,0,14,0,15,0,28,0,15,0,112,0,255,255, - 192,0,23,29,87,29,3,0,255,255,254,15,0,62,15,0, - 14,15,0,14,15,0,6,15,0,6,15,0,2,15,0,2, - 15,1,2,15,1,0,15,1,0,15,1,0,15,3,0,15, - 7,0,15,255,0,15,7,0,15,3,0,15,1,0,15,1, - 2,15,1,2,15,1,2,15,0,2,15,0,6,15,0,6, - 15,0,6,15,0,14,15,0,30,15,0,126,255,255,254,23, - 29,87,28,3,0,255,255,254,15,0,62,15,0,14,15,0, - 14,15,0,6,15,0,6,15,0,2,15,0,2,15,1,2, - 15,1,0,15,1,0,15,1,0,15,3,0,15,7,0,15, - 255,0,15,7,0,15,3,0,15,1,0,15,1,0,15,1, - 0,15,1,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,255,240,0,25,30,120,29, - 3,0,0,16,0,0,1,254,8,0,6,3,152,0,12,0, - 248,0,28,0,248,0,24,0,120,0,56,0,56,0,56,0, - 56,0,112,0,24,0,112,0,24,0,112,0,8,0,240,0, - 8,0,240,0,0,0,240,0,0,0,240,0,0,0,240,7, - 255,128,240,0,120,0,240,0,120,0,240,0,120,0,240,0, - 120,0,112,0,120,0,112,0,120,0,112,0,120,0,56,0, - 120,0,56,0,120,0,24,0,248,0,28,0,200,0,12,1, - 136,0,6,3,8,0,1,254,8,0,28,29,116,33,3,0, - 255,240,255,240,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,255,255,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 255,240,255,240,12,29,58,17,3,0,255,240,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,15,0,15,0,15,0,15,0,15,0,15,0,15,0, - 15,0,255,240,19,29,87,22,2,0,1,255,224,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,120,30,0,248,30,0,248,30,0,248, - 30,0,192,28,0,192,28,0,64,24,0,96,48,0,31,224, - 0,27,29,116,32,3,0,255,241,255,192,15,0,126,0,15, - 0,60,0,15,0,56,0,15,0,112,0,15,0,96,0,15, - 0,192,0,15,1,128,0,15,3,0,0,15,6,0,0,15, - 14,0,0,15,30,0,0,15,63,0,0,15,111,0,0,15, - 207,128,0,15,135,128,0,15,7,192,0,15,3,192,0,15, - 3,224,0,15,3,224,0,15,1,240,0,15,1,240,0,15, - 0,248,0,15,0,248,0,15,0,124,0,15,0,124,0,15, - 0,62,0,15,0,63,0,255,241,255,224,23,29,87,28,3, - 0,255,248,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,2,15,0,2,15,0,6, - 15,0,6,15,0,6,15,0,14,15,0,14,15,0,30,15, - 0,62,15,0,254,255,255,254,30,29,116,35,3,0,255,128, - 3,252,15,128,7,192,15,192,7,192,15,192,7,192,15,192, - 15,192,13,192,11,192,13,224,11,192,13,224,11,192,12,224, - 27,192,12,240,19,192,12,240,19,192,12,112,51,192,12,112, - 35,192,12,120,35,192,12,120,35,192,12,56,99,192,12,60, - 67,192,12,60,67,192,12,28,195,192,12,28,131,192,12,30, - 131,192,12,14,131,192,12,15,131,192,12,15,3,192,12,15, - 3,192,12,7,3,192,12,6,3,192,30,6,3,192,255,194, - 63,252,28,29,116,32,3,0,255,0,63,240,15,128,7,128, - 15,128,3,0,15,192,3,0,15,224,3,0,13,224,3,0, - 13,240,3,0,12,248,3,0,12,120,3,0,12,124,3,0, - 12,60,3,0,12,30,3,0,12,31,3,0,12,15,3,0, - 12,7,131,0,12,7,131,0,12,3,195,0,12,3,227,0, - 12,1,227,0,12,0,243,0,12,0,251,0,12,0,123,0, - 12,0,63,0,12,0,63,0,12,0,31,0,12,0,31,0, - 12,0,15,0,30,0,7,0,255,192,7,0,24,29,87,29, - 3,1,0,255,0,3,0,192,6,0,96,12,0,48,28,0, - 56,56,0,28,56,0,28,120,0,30,112,0,14,112,0,14, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,240,0,15,240,0,15,112,0,14,112,0, - 14,120,0,30,56,0,28,56,0,28,28,0,56,12,0,48, - 6,0,96,3,0,192,0,255,0,23,29,87,28,3,0,255, - 255,128,15,0,224,15,0,120,15,0,60,15,0,60,15,0, - 30,15,0,30,15,0,30,15,0,30,15,0,30,15,0,60, - 15,0,60,15,0,120,15,0,224,15,255,128,15,0,0,15, - 0,0,15,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,255,248,0,24,36,108,29,3,250,0,255,0,3, - 0,192,6,0,96,12,0,48,28,0,56,56,0,28,56,0, - 28,120,0,30,112,0,14,112,0,14,240,0,15,240,0,15, - 240,0,15,240,0,15,240,0,15,240,0,15,240,0,15,240, - 0,15,240,0,15,112,0,14,120,0,30,120,0,30,56,60, - 28,56,99,28,28,195,56,14,193,184,6,193,240,3,193,225, - 0,247,193,0,9,193,0,1,193,0,1,195,0,1,226,0, - 1,254,0,0,252,0,0,56,25,29,116,29,3,0,255,255, - 128,0,15,1,240,0,15,0,120,0,15,0,120,0,15,0, - 60,0,15,0,60,0,15,0,60,0,15,0,60,0,15,0, - 60,0,15,0,120,0,15,0,240,0,15,1,224,0,15,255, - 0,0,15,3,128,0,15,1,192,0,15,0,224,0,15,0, - 224,0,15,0,240,0,15,0,240,0,15,0,240,0,15,0, - 240,0,15,0,240,0,15,0,248,128,15,0,120,128,15,0, - 120,128,15,0,121,128,15,0,127,0,15,0,63,0,255,248, - 30,0,19,29,87,25,4,1,15,240,192,48,28,192,96,15, - 192,96,7,192,192,3,192,192,1,192,192,1,192,192,0,192, - 224,0,192,240,0,192,120,0,64,127,0,0,63,192,0,31, - 248,0,15,254,0,1,255,128,128,127,128,128,15,192,128,3, - 224,128,1,224,192,0,224,192,0,96,224,0,96,224,0,96, - 240,0,96,248,0,192,156,0,128,134,1,0,131,254,0,24, - 29,87,29,3,0,255,255,255,248,60,31,240,60,15,224,60, - 7,192,60,3,192,60,3,192,60,3,128,60,1,128,60,1, - 128,60,1,128,60,1,0,60,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,0,0,60,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,0,0,60,0,0,60,0, - 0,60,0,0,60,0,0,60,0,7,255,224,29,29,116,34, - 3,0,255,240,31,248,15,0,3,192,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,15,0, - 1,128,15,0,1,128,15,0,1,128,15,0,1,128,7,0, - 1,0,7,0,3,0,3,128,2,0,1,192,6,0,0,224, - 24,0,0,63,240,0,29,29,116,32,2,0,255,248,63,248, - 15,128,3,192,7,128,3,128,7,128,3,0,3,192,3,0, - 3,192,3,0,3,192,2,0,1,224,6,0,1,224,6,0, - 1,240,4,0,0,240,12,0,0,240,12,0,0,248,8,0, - 0,120,24,0,0,120,24,0,0,60,16,0,0,60,48,0, - 0,60,48,0,0,30,32,0,0,30,96,0,0,31,96,0, - 0,15,64,0,0,15,192,0,0,15,192,0,0,7,128,0, - 0,7,128,0,0,7,128,0,0,3,0,0,0,3,0,0, - 41,29,174,44,2,0,255,241,255,227,255,128,15,128,63,0, - 124,0,7,128,30,0,56,0,7,128,30,0,48,0,7,128, - 31,0,48,0,3,192,31,0,48,0,3,192,31,0,96,0, - 3,192,55,0,96,0,1,224,55,128,96,0,1,224,55,128, - 64,0,1,224,39,128,192,0,1,224,99,192,192,0,0,240, - 99,192,128,0,0,240,67,193,128,0,0,240,193,193,128,0, - 0,120,193,225,0,0,0,120,193,227,0,0,0,120,129,227, - 0,0,0,125,128,242,0,0,0,61,128,246,0,0,0,61, - 0,246,0,0,0,61,0,116,0,0,0,31,0,124,0,0, - 0,31,0,124,0,0,0,30,0,60,0,0,0,14,0,56, - 0,0,0,14,0,56,0,0,0,12,0,56,0,0,0,12, - 0,16,0,0,28,29,116,31,2,0,255,248,255,224,7,192, - 30,0,7,192,28,0,3,224,24,0,1,224,24,0,1,240, - 48,0,0,240,32,0,0,248,96,0,0,120,192,0,0,124, - 128,0,0,61,128,0,0,63,0,0,0,30,0,0,0,15, - 0,0,0,15,0,0,0,15,128,0,0,31,128,0,0,51, - 192,0,0,51,224,0,0,97,224,0,0,193,240,0,0,192, - 240,0,1,128,248,0,3,0,120,0,3,0,124,0,6,0, - 60,0,14,0,62,0,31,0,63,0,255,225,255,240,27,29, - 116,30,2,0,255,248,127,224,15,128,31,0,15,128,14,0, - 7,128,12,0,3,192,12,0,3,192,8,0,1,224,24,0, - 1,240,16,0,0,240,48,0,0,248,32,0,0,120,96,0, - 0,60,64,0,0,60,192,0,0,30,128,0,0,31,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,0,15,0,0,0,15,0,0,0,15,0,0, - 0,15,0,0,1,255,248,0,22,29,87,27,3,0,63,255, - 252,62,0,120,60,0,248,56,0,240,48,1,224,48,3,224, - 96,3,192,96,7,128,64,15,128,64,15,0,0,31,0,0, - 62,0,0,60,0,0,124,0,0,120,0,0,240,0,1,240, - 0,1,224,0,3,224,4,7,192,4,7,128,12,15,128,12, - 31,0,12,31,0,28,62,0,28,60,0,60,124,0,120,248, - 0,248,255,255,248,8,37,37,16,5,248,255,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,255, - 14,38,76,18,2,248,192,0,64,0,96,0,96,0,32,0, - 48,0,48,0,16,0,24,0,24,0,8,0,12,0,12,0, - 4,0,4,0,6,0,2,0,2,0,3,0,3,0,1,0, - 1,128,1,128,0,128,0,192,0,192,0,64,0,96,0,96, - 0,32,0,48,0,48,0,16,0,24,0,24,0,8,0,12, - 0,12,8,37,37,16,3,248,255,15,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,15,255,18,14,42, - 24,3,15,0,192,0,1,192,0,1,224,0,3,48,0,3, - 48,0,6,24,0,12,12,0,12,12,0,24,6,0,48,6, - 0,48,3,0,96,1,128,224,1,128,192,0,192,21,2,6, - 21,0,250,255,255,248,255,255,248,7,7,7,18,3,21,192, - 224,112,56,24,12,2,18,19,57,21,2,0,15,192,0,56, - 112,0,32,56,0,96,28,0,120,28,0,120,28,0,56,28, - 0,0,28,0,0,252,0,15,28,0,56,28,0,112,28,0, - 224,28,0,224,28,64,224,60,64,224,60,64,224,92,192,112, - 159,128,31,15,0,18,29,87,21,1,0,252,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,120,0,28,142,0,29, - 7,0,30,3,128,30,3,128,28,3,128,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,192,28,3,192, - 28,3,128,28,3,128,30,3,128,27,7,0,17,142,0,16, - 248,0,15,19,38,18,2,0,7,224,28,16,56,8,48,12, - 112,28,112,60,240,60,240,24,240,0,240,0,240,0,240,0, - 240,6,112,4,112,4,48,12,56,8,12,48,7,224,18,29, - 87,21,2,0,0,254,0,0,14,0,0,14,0,0,14,0, - 0,14,0,0,14,0,0,14,0,0,14,0,0,14,0,0, - 14,0,15,142,0,28,78,0,56,46,0,112,30,0,112,30, - 0,112,14,0,240,14,0,240,14,0,240,14,0,240,14,0, - 240,14,0,240,14,0,240,14,0,112,14,0,112,14,0,112, - 30,0,56,62,0,24,110,0,7,207,192,15,19,38,19,2, - 0,7,192,12,112,56,56,48,28,112,28,112,28,240,30,240, - 30,255,254,240,0,240,0,240,0,240,6,112,4,112,4,56, - 4,56,8,28,16,7,224,14,29,58,14,1,0,1,240,7, - 24,14,24,12,60,28,60,28,56,28,0,28,0,28,0,28, - 0,255,192,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,255,192,20,28,84,22,2,247,7,225,192, - 28,58,96,56,30,240,112,30,240,112,14,224,240,15,0,240, - 15,0,240,15,0,112,14,0,112,30,0,56,28,0,28,56, - 0,7,224,0,56,0,0,64,0,0,192,0,0,240,0,0, - 255,254,0,63,255,0,15,7,128,112,1,192,64,0,192,192, - 0,192,192,0,192,192,1,128,96,1,128,56,6,0,7,248, - 0,20,29,87,22,1,0,252,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,60,0,28,199,0,29,3,0,29,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,8,28, - 28,11,1,0,24,60,60,24,0,0,0,0,0,252,28,28, - 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,255, - 11,37,74,14,255,247,0,192,1,224,1,224,0,192,0,0, - 0,0,0,0,0,0,0,0,15,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,224,224,240,224,224,192,193,128,99,128,62,0, - 19,29,87,21,1,0,252,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,63,192,28,14,0,28,12,0,28,8,0, - 28,16,0,28,48,0,28,96,0,28,192,0,28,224,0,29, - 224,0,30,240,0,30,120,0,28,60,0,28,60,0,28,30, - 0,28,15,0,28,15,0,28,15,128,255,63,224,9,29,58, - 11,1,0,252,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,31,19,76, - 33,1,0,252,124,15,128,28,199,24,192,29,7,32,224,31, - 3,224,112,30,3,192,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,28,3,128,112,28, - 3,128,112,28,3,128,112,28,3,128,112,255,159,243,254,20, - 19,57,22,1,0,252,60,0,28,199,0,29,3,0,31,3, - 128,30,3,128,30,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,3,128,28,3,128,28,3,128,255,159,240,17,19, - 57,21,2,0,3,224,0,12,56,0,24,28,0,56,14,0, - 112,14,0,112,7,0,240,7,0,240,7,0,240,7,128,240, - 7,128,240,7,128,240,7,0,240,7,0,112,7,0,112,14, - 0,56,14,0,24,28,0,12,56,0,3,224,0,18,28,84, - 21,1,247,252,120,0,29,142,0,31,7,0,30,3,128,30, - 3,128,28,3,128,28,3,192,28,3,192,28,3,192,28,3, - 192,28,3,192,28,3,192,28,3,192,28,3,128,28,3,128, - 30,3,128,31,7,0,29,134,0,28,120,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,255,128,0,18,28,84,21,2,247,7,130,0, - 28,98,0,56,54,0,112,22,0,112,30,0,112,14,0,240, - 14,0,240,14,0,240,14,0,240,14,0,240,14,0,240,14, - 0,240,14,0,112,14,0,112,14,0,112,30,0,56,62,0, - 24,110,0,7,206,0,0,14,0,0,14,0,0,14,0,0, - 14,0,0,14,0,0,14,0,0,14,0,0,14,0,0,127, - 192,15,19,38,16,1,0,252,56,28,196,28,142,29,30,31, - 28,30,12,30,0,30,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,255,128,14,19,38, - 18,2,0,31,16,96,208,64,112,192,48,192,16,224,16,240, - 0,126,0,63,128,31,224,3,248,128,252,192,28,192,12,224, - 12,224,12,240,8,140,24,131,224,12,27,54,14,1,0,4, - 0,4,0,4,0,4,0,4,0,12,0,12,0,28,0,255, - 224,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,16,28,16,28,16,28,48,30, - 32,15,224,7,192,20,19,57,22,1,0,252,31,128,28,3, - 128,28,3,128,28,3,128,28,3,128,28,3,128,28,3,128, - 28,3,128,28,3,128,28,3,128,28,3,128,28,3,128,28, - 3,128,28,7,128,28,7,128,28,15,128,12,11,128,14,51, - 128,3,195,240,20,19,57,21,1,0,255,15,240,60,3,128, - 28,3,0,28,3,0,14,2,0,14,2,0,15,6,0,7, - 4,0,7,4,0,3,140,0,3,136,0,3,200,0,1,216, - 0,1,208,0,0,240,0,0,240,0,0,96,0,0,96,0, - 0,96,0,30,19,76,31,1,0,255,31,243,252,60,7,128, - 224,28,3,128,192,28,3,128,192,14,3,192,128,14,3,192, - 128,15,7,193,128,7,5,225,0,7,4,225,0,3,140,227, - 0,3,136,114,0,1,200,114,0,1,216,118,0,1,240,60, - 0,0,240,60,0,0,240,60,0,0,96,24,0,0,96,24, - 0,0,32,24,0,18,19,57,21,1,0,255,31,192,30,14, - 0,30,12,0,14,8,0,15,24,0,7,16,0,3,160,0, - 3,224,0,1,192,0,1,224,0,1,224,0,1,112,0,3, - 120,0,2,56,0,4,28,0,12,28,0,24,14,0,24,15, - 0,254,63,192,20,28,84,22,1,247,255,143,240,30,1,128, - 30,1,128,14,1,0,14,1,0,15,3,0,7,2,0,7, - 2,0,3,134,0,3,132,0,3,132,0,1,204,0,1,200, - 0,1,200,0,0,248,0,0,240,0,0,240,0,0,112,0, - 0,96,0,0,96,0,0,96,0,0,64,0,48,64,0,120, - 192,0,120,128,0,113,128,0,51,0,0,30,0,0,14,19, - 38,18,2,0,255,252,224,60,192,56,192,120,128,240,128,224, - 129,224,1,192,3,128,7,128,7,0,15,0,30,4,28,4, - 60,4,56,12,112,12,240,28,255,252,10,37,74,17,4,248, - 1,192,6,0,12,0,8,0,24,0,24,0,24,0,28,0, - 28,0,12,0,14,0,14,0,14,0,6,0,6,0,6,0, - 4,0,8,0,240,0,24,0,12,0,4,0,6,0,6,0, - 14,0,14,0,14,0,12,0,28,0,28,0,24,0,24,0, - 24,0,8,0,12,0,6,0,1,192,2,38,38,12,5,248, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,10,37,74,17,3,248,224,0,24,0, - 12,0,4,0,6,0,6,0,6,0,14,0,14,0,12,0, - 28,0,28,0,28,0,24,0,24,0,24,0,8,0,4,0, - 3,192,6,0,8,0,24,0,24,0,24,0,28,0,28,0, - 28,0,12,0,14,0,14,0,6,0,6,0,6,0,4,0, - 12,0,24,0,224,0,23,8,24,27,2,7,30,0,8,127, - 192,4,255,240,2,199,254,2,128,255,134,128,63,254,192,15, - 252,96,1,248,255}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=47 x=10 y=28 dx=52 dy= 0 ascent=47 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-13 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =47 descent=-13 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35[22370] U8G_FONT_SECTION("u8g_font_osr35") = { - 0,128,62,216,241,35,12,236,30,116,32,255,246,47,243,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,14,0,0,6,33,33,14,4,246,120, - 252,252,252,120,0,0,48,48,48,48,48,48,48,48,48,48, - 48,120,120,120,120,120,120,248,252,252,252,252,252,252,252,120, - 17,34,102,28,5,250,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,7,252,0,14,198,0,28,195, - 0,56,195,128,120,195,128,120,207,128,120,207,128,248,207,128, - 240,199,0,240,192,0,240,192,0,240,192,0,240,192,0,240, - 192,0,248,192,128,120,192,128,120,192,128,120,193,128,56,193, - 0,28,195,0,14,198,0,7,252,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,28,34,136,35, - 3,0,0,0,126,0,0,1,227,128,0,3,128,192,0,7, - 0,192,0,14,0,224,0,14,1,224,0,28,3,224,0,28, - 3,224,0,60,3,192,0,60,0,128,0,60,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,31,252, - 0,0,0,127,248,0,0,124,0,0,0,124,0,0,0,60, - 0,0,0,60,0,0,0,60,0,0,0,60,0,0,0,60, - 0,0,0,56,0,0,0,56,0,16,62,56,0,32,99,240, - 0,32,193,240,0,96,128,120,0,64,128,254,0,192,128,159, - 255,128,193,7,255,0,126,1,254,0,24,24,72,28,2,5, - 64,0,2,224,126,7,115,255,206,63,129,252,30,0,120,28, - 0,56,56,0,24,48,0,12,48,0,12,96,0,6,96,0, - 6,96,0,6,96,0,6,96,0,6,96,0,6,112,0,12, - 48,0,12,56,0,28,28,0,56,30,0,120,63,129,252,115, - 255,206,224,126,7,64,0,2,27,33,132,29,1,0,255,224, - 127,224,31,0,15,0,15,0,6,0,15,128,6,0,7,128, - 12,0,7,192,12,0,3,192,24,0,3,224,24,0,1,224, - 48,0,1,240,32,0,0,240,96,0,0,248,64,0,0,248, - 192,0,0,124,128,0,0,125,128,0,0,63,0,0,0,63, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,15,255,252,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,30,0,0,0,30, - 0,0,0,30,0,0,0,30,0,0,0,31,0,0,3,255, - 240,0,2,44,44,14,6,248,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,0,0,0,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,18,43,129,31,5,247,1,240,0,6,24,0, - 12,12,0,24,30,0,56,62,0,56,62,0,56,62,0,56, - 8,0,60,0,0,30,0,0,31,0,0,15,128,0,7,192, - 0,15,224,0,25,240,0,48,252,0,96,126,0,64,63,0, - 192,15,128,192,7,128,192,3,192,224,1,192,240,0,192,120, - 0,192,124,0,192,62,0,128,31,1,128,15,131,0,7,198, - 0,3,248,0,1,240,0,0,248,0,0,124,0,0,60,0, - 0,30,0,0,14,0,30,14,0,62,14,0,62,14,0,60, - 12,0,24,28,0,12,56,0,7,224,0,14,5,10,22,4, - 27,112,56,248,124,248,124,248,124,112,56,35,36,180,40,3, - 0,0,7,252,0,0,0,60,7,128,0,0,224,0,192,0, - 1,128,0,48,0,3,0,0,24,0,4,0,0,12,0,8, - 0,0,6,0,24,1,240,131,0,48,7,28,129,0,32,30, - 7,128,128,96,28,3,128,128,64,56,1,128,64,64,120,1, - 128,64,192,120,0,128,64,128,120,0,128,96,128,248,0,0, - 32,128,240,0,0,32,128,240,0,0,32,128,240,0,0,32, - 128,240,0,0,32,128,240,0,0,32,128,240,0,0,32,128, - 248,0,128,96,64,120,0,128,64,64,120,0,128,64,96,56, - 1,128,192,32,60,1,0,128,48,30,3,1,128,16,15,14, - 3,0,24,3,248,2,0,12,0,0,6,0,6,0,0,12, - 0,3,128,0,56,0,0,192,0,96,0,0,120,3,192,0, - 0,31,254,0,0,13,17,34,19,3,17,62,0,99,0,193, - 128,225,128,225,128,3,128,13,128,49,128,113,128,225,128,225, - 136,225,136,247,152,120,240,0,0,0,0,255,240,13,19,38, - 23,5,1,4,0,12,24,24,48,48,32,112,96,96,96,96, - 192,224,192,224,192,224,192,224,192,224,192,224,192,96,192,112, - 96,48,96,56,48,24,16,12,0,23,10,30,29,3,8,255, - 255,254,255,255,254,0,0,6,0,0,6,0,0,6,0,0, - 6,0,0,6,0,0,6,0,0,6,0,0,6,12,3,6, - 18,3,11,255,240,255,240,255,240,35,36,180,40,3,0,0, - 7,252,0,0,0,60,7,128,0,0,224,0,192,0,1,128, - 0,48,0,3,0,0,24,0,4,0,0,12,0,8,0,0, - 6,0,25,255,248,3,0,48,60,30,1,0,32,60,15,0, - 128,96,60,7,128,128,64,60,7,128,64,64,60,7,128,64, - 192,60,7,128,64,128,60,7,128,96,128,60,15,0,32,128, - 60,30,0,32,128,63,240,0,32,128,60,28,0,32,128,60, - 14,0,32,128,60,7,0,32,128,60,7,0,32,128,60,7, - 128,96,64,60,7,128,64,64,60,7,132,64,64,60,7,132, - 192,32,60,7,136,128,48,60,3,201,128,17,255,129,241,0, - 24,0,0,2,0,12,0,0,6,0,6,0,0,12,0,3, - 0,0,24,0,0,192,0,96,0,0,112,1,192,0,0,31, - 254,0,0,13,2,4,21,4,28,255,248,255,248,14,13,26, - 29,8,21,15,192,56,96,112,48,96,24,192,8,192,12,192, - 12,192,12,192,12,96,24,96,24,56,112,15,192,41,34,204, - 45,2,254,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,255,255,255,255,255,128,255,255,255,255,255,128,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,255,255,255,255,128,255,255,255,255,255,128,14, - 21,42,22,4,13,15,192,49,240,96,120,192,124,192,60,224, - 60,248,60,120,60,48,120,0,112,0,224,1,192,3,128,6, - 0,12,0,48,4,32,4,96,12,127,248,255,248,255,248,14, - 21,42,22,5,13,15,192,56,224,96,112,96,56,112,56,120, - 56,48,56,0,112,0,224,63,128,56,224,0,120,0,56,0, - 60,112,60,248,60,240,60,192,56,192,120,96,240,31,192,8, - 9,9,22,10,25,7,15,15,30,60,48,96,192,128,25,36, - 144,29,3,243,112,1,192,0,240,3,192,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,240,3,224,0, - 240,3,224,0,240,3,224,0,240,3,224,0,224,3,224,0, - 224,1,192,0,224,1,192,0,96,1,192,0,96,1,192,0, - 96,1,192,0,96,1,128,0,96,3,129,128,112,7,193,128, - 88,15,127,128,79,254,63,128,67,252,31,0,64,0,0,0, - 192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0, - 192,0,0,0,224,0,0,0,224,0,0,0,240,0,0,0, - 240,0,0,0,240,0,0,0,248,0,0,0,120,0,0,0, - 120,0,0,0,20,42,126,26,3,249,7,255,240,31,193,128, - 63,193,128,127,193,128,127,193,128,255,193,128,255,193,128,255, - 193,128,255,193,128,255,193,128,255,193,128,127,193,128,127,193, - 128,63,193,128,15,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,0,193,128,0,193,128,0,193, - 128,0,193,128,0,193,128,0,193,128,0,193,128,0,193,128, - 0,193,128,0,193,128,0,193,128,0,193,128,0,193,128,0, - 193,128,0,193,128,0,193,128,6,6,6,14,4,12,120,252, - 252,252,252,120,10,10,20,21,5,246,8,0,8,0,24,0, - 15,0,3,128,1,192,1,192,1,192,195,128,63,0,11,20, - 40,21,5,14,2,0,6,0,14,0,254,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,14,0,14,0,14,0,255,224,12,17,34,18, - 3,17,15,0,57,192,112,192,96,224,224,96,224,112,224,112, - 224,112,224,112,224,112,96,96,112,224,49,192,31,0,0,0, - 0,0,255,240,13,19,38,23,5,1,1,0,193,128,96,192, - 32,96,48,112,48,48,24,48,24,56,24,56,24,56,24,56, - 24,56,24,56,24,48,48,112,48,96,96,224,64,192,1,128, - 33,35,175,42,5,255,2,0,0,96,0,6,0,0,64,0, - 14,0,0,192,0,254,0,1,128,0,14,0,1,0,0,14, - 0,3,0,0,14,0,2,0,0,14,0,6,0,0,14,0, - 12,0,0,14,0,8,0,0,14,0,24,0,0,14,0,16, - 0,0,14,0,48,0,0,14,0,96,0,0,14,0,96,56, - 0,14,0,192,120,0,14,0,128,120,0,14,1,128,248,0, - 14,3,0,184,0,255,227,1,56,0,0,6,1,56,0,0, - 4,2,56,0,0,12,2,56,0,0,8,4,56,0,0,24, - 12,56,0,0,48,8,56,0,0,32,24,56,0,0,96,31, - 255,128,0,64,0,56,0,0,192,0,56,0,1,128,0,56, - 0,1,128,0,56,0,3,0,0,56,0,2,0,1,255,128, - 6,0,0,0,0,33,35,175,42,5,255,2,0,0,96,0, - 6,0,0,64,0,6,0,0,192,0,14,0,1,128,0,254, - 0,1,128,0,14,0,3,0,0,14,0,2,0,0,14,0, - 6,0,0,14,0,4,0,0,14,0,12,0,0,14,0,24, - 0,0,14,0,16,0,0,14,0,48,0,0,14,0,33,248, - 0,14,0,102,62,0,14,0,204,15,0,14,0,152,15,128, - 14,1,152,7,128,14,1,24,7,128,255,227,31,7,128,0, - 6,31,7,128,0,4,15,7,0,0,12,0,14,0,0,8, - 0,28,0,0,24,0,56,0,0,48,0,112,0,0,48,0, - 192,0,0,96,1,128,0,0,64,2,0,128,0,192,4,0, - 128,1,128,12,1,128,1,128,15,255,0,3,0,15,255,0, - 2,0,31,255,0,6,0,0,0,0,33,35,175,42,5,255, - 15,192,0,48,0,56,224,0,96,0,96,112,0,96,0,96, - 56,0,192,0,112,56,0,128,0,120,56,1,128,0,48,56, - 3,0,0,0,112,3,0,0,0,224,6,0,0,63,128,4, - 0,0,56,224,12,0,0,0,120,24,0,0,0,56,24,0, - 0,0,60,48,0,0,112,60,32,28,0,248,60,96,28,0, - 240,60,192,60,0,192,120,192,92,0,96,241,128,92,0,63, - 193,0,156,0,0,3,1,156,0,0,6,1,28,0,0,6, - 2,28,0,0,12,6,28,0,0,8,4,28,0,0,24,8, - 28,0,0,48,24,28,0,0,48,31,255,128,0,96,0,28, - 0,0,64,0,28,0,0,192,0,28,0,1,128,0,28,0, - 1,128,0,28,0,3,0,1,255,128,2,0,0,0,0,18, - 33,99,24,2,246,1,224,0,3,240,0,3,240,0,3,240, - 0,1,224,0,0,0,0,0,0,0,1,224,0,2,48,0, - 4,24,0,4,24,0,4,24,0,4,24,0,0,48,0,0, - 112,0,0,224,0,1,192,0,7,128,0,15,0,0,30,0, - 0,60,0,0,124,0,0,120,15,0,248,31,128,240,31,192, - 240,15,192,240,0,192,240,0,192,120,0,192,120,1,128,60, - 3,0,15,14,0,3,248,0,34,46,230,37,2,0,0,56, - 0,0,0,0,60,0,0,0,0,60,0,0,0,0,30,0, - 0,0,0,15,0,0,0,0,3,128,0,0,0,1,128,0, - 0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,192,0,0,0,0,192,0,0,0, - 0,224,0,0,0,1,224,0,0,0,1,224,0,0,0,3, - 240,0,0,0,3,240,0,0,0,3,240,0,0,0,6,248, - 0,0,0,6,248,0,0,0,6,248,0,0,0,12,124,0, - 0,0,12,124,0,0,0,12,124,0,0,0,24,62,0,0, - 0,24,62,0,0,0,24,30,0,0,0,48,31,0,0,0, - 48,31,0,0,0,48,15,0,0,0,96,15,128,0,0,96, - 15,128,0,0,96,7,128,0,0,255,255,192,0,0,255,255, - 192,0,0,192,3,192,0,1,128,3,224,0,1,128,3,224, - 0,3,128,1,224,0,3,0,1,240,0,3,0,1,240,0, - 7,0,0,240,0,7,0,0,248,0,31,128,1,252,0,255, - 248,31,255,192,34,46,230,37,2,0,0,0,7,0,0,0, - 0,15,0,0,0,0,15,0,0,0,0,30,0,0,0,0, - 60,0,0,0,0,48,0,0,0,0,96,0,0,0,0,192, - 0,0,0,0,128,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,192,0,0,0,0,192,0,0,0,0,224,0,0, - 0,1,224,0,0,0,1,224,0,0,0,3,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,6,248,0,0,0,6, - 248,0,0,0,6,248,0,0,0,12,124,0,0,0,12,124, - 0,0,0,12,124,0,0,0,24,62,0,0,0,24,62,0, - 0,0,24,30,0,0,0,48,31,0,0,0,48,31,0,0, - 0,48,15,0,0,0,96,15,128,0,0,96,15,128,0,0, - 224,7,128,0,0,255,255,192,0,0,255,255,192,0,1,192, - 3,192,0,1,128,3,224,0,1,128,3,224,0,3,128,1, - 224,0,3,0,1,240,0,3,0,1,240,0,7,0,0,240, - 0,15,128,0,248,0,255,248,31,255,192,255,248,31,255,192, - 34,45,225,37,2,0,0,0,192,0,0,0,1,224,0,0, - 0,3,240,0,0,0,7,56,0,0,0,14,28,0,0,0, - 28,14,0,0,0,48,3,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,192,0,0,0,0,192, - 0,0,0,0,224,0,0,0,1,224,0,0,0,1,224,0, - 0,0,3,240,0,0,0,3,240,0,0,0,3,240,0,0, - 0,6,248,0,0,0,6,248,0,0,0,6,248,0,0,0, - 12,124,0,0,0,12,124,0,0,0,12,124,0,0,0,24, - 62,0,0,0,24,62,0,0,0,24,30,0,0,0,48,31, - 0,0,0,48,31,0,0,0,48,15,0,0,0,96,15,128, - 0,0,96,15,128,0,0,96,7,128,0,0,255,255,192,0, - 0,255,255,192,0,0,192,3,192,0,1,128,3,224,0,1, - 128,3,224,0,3,128,1,224,0,3,0,1,240,0,3,0, - 1,240,0,7,0,0,240,0,7,0,0,248,0,31,128,1, - 252,0,255,248,31,255,192,34,45,225,37,2,0,0,15,0, - 128,0,0,31,225,128,0,0,63,255,0,0,0,33,255,0, - 0,0,32,62,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,192,0,0,0,0,192,0,0,0,1,224,0,0,0,1, - 224,0,0,0,1,224,0,0,0,3,240,0,0,0,3,240, - 0,0,0,3,240,0,0,0,6,248,0,0,0,6,248,0, - 0,0,6,248,0,0,0,12,124,0,0,0,12,124,0,0, - 0,12,124,0,0,0,24,62,0,0,0,24,62,0,0,0, - 24,30,0,0,0,48,31,0,0,0,48,31,0,0,0,112, - 15,0,0,0,96,15,128,0,0,96,15,128,0,0,224,7, - 128,0,0,255,255,192,0,0,255,255,192,0,1,192,3,192, - 0,1,128,3,224,0,1,128,3,224,0,3,128,1,224,0, - 3,0,1,240,0,3,0,1,240,0,7,0,0,240,0,15, - 128,0,248,0,255,248,31,255,192,255,248,31,255,192,34,44, - 220,37,2,0,0,28,7,0,0,0,62,15,128,0,0,62, - 15,128,0,0,62,15,128,0,0,28,7,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,64,0,0,0,0,192,0,0,0,0,224,0,0, - 0,0,224,0,0,0,1,224,0,0,0,1,240,0,0,0, - 3,240,0,0,0,3,240,0,0,0,3,248,0,0,0,7, - 248,0,0,0,6,120,0,0,0,6,124,0,0,0,14,60, - 0,0,0,12,60,0,0,0,12,62,0,0,0,28,30,0, - 0,0,24,30,0,0,0,24,31,0,0,0,48,15,0,0, - 0,48,15,0,0,0,112,15,128,0,0,96,7,128,0,0, - 96,7,128,0,0,255,255,192,0,0,255,255,192,0,0,192, - 3,192,0,1,192,3,224,0,1,192,1,224,0,1,128,1, - 224,0,3,128,1,240,0,3,128,0,240,0,7,128,0,240, - 0,7,128,0,248,0,31,192,1,252,0,255,248,31,255,192, - 34,47,235,37,2,0,0,1,224,0,0,0,6,24,0,0, - 0,4,8,0,0,0,8,4,0,0,0,8,4,0,0,0, - 8,4,0,0,0,8,4,0,0,0,4,8,0,0,0,6, - 24,0,0,0,3,224,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,7,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,1, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,44,35,210,48,1,0,0,0,127,255,255,240,0,0,15, - 224,3,240,0,0,15,192,0,240,0,0,15,192,0,112,0, - 0,15,192,0,112,0,0,27,192,0,48,0,0,27,192,0, - 48,0,0,51,192,0,48,0,0,51,192,0,16,0,0,99, - 192,0,16,0,0,99,192,16,16,0,0,195,192,16,16,0, - 1,195,192,16,0,0,1,131,192,48,0,0,3,131,192,48, - 0,0,3,3,192,48,0,0,7,3,192,112,0,0,6,3, - 255,240,0,0,14,3,192,240,0,0,12,3,192,48,0,0, - 24,3,192,48,0,0,24,3,192,16,0,0,48,3,192,16, - 16,0,63,255,192,16,16,0,96,3,192,16,16,0,96,3, - 192,0,16,0,192,3,192,0,16,0,192,3,192,0,48,1, - 128,3,192,0,48,1,128,3,192,0,112,3,128,3,192,0, - 112,7,128,3,192,0,240,15,128,3,192,1,240,255,248,127, - 255,255,240,255,248,127,255,255,240,26,47,188,32,3,245,0, - 63,0,128,0,225,225,128,3,128,113,128,7,0,63,128,14, - 0,31,128,30,0,15,128,28,0,7,128,60,0,7,128,60, - 0,3,128,124,0,3,128,120,0,1,128,120,0,1,128,120, - 0,0,128,248,0,0,128,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,248,0,0,0,248, - 0,0,0,248,0,0,0,248,0,0,0,120,0,0,192,120, - 0,0,192,120,0,0,192,124,0,0,192,60,0,0,128,60, - 0,1,128,28,0,1,128,30,0,3,0,14,0,3,0,7, - 0,6,0,3,128,12,0,1,192,56,0,0,127,224,0,0, - 8,0,0,0,8,0,0,0,28,0,0,0,15,128,0,0, - 3,192,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 129,224,0,0,199,192,0,0,63,0,0,28,46,184,34,3, - 0,0,224,0,0,0,240,0,0,0,240,0,0,0,120,0, - 0,0,60,0,0,0,14,0,0,0,6,0,0,0,3,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255, - 240,255,255,255,240,7,128,1,240,7,128,0,240,7,128,0, - 112,7,128,0,112,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,16,7,128,32,16,7,128,32,16,7,128,32, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,224, - 0,7,255,224,0,7,129,224,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,32,16,7,128,32,16,7,128,32, - 16,7,128,0,16,7,128,0,48,7,128,0,48,7,128,0, - 48,7,128,0,112,7,128,0,112,7,128,0,240,7,128,1, - 240,255,255,255,240,255,255,255,240,28,46,184,34,3,0,0, - 0,28,0,0,0,60,0,0,0,60,0,0,0,120,0,0, - 0,240,0,0,0,192,0,0,1,128,0,0,3,0,0,0, - 2,0,0,0,0,0,0,0,0,0,0,255,255,255,240,255, - 255,255,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,96,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,96,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,28,45,180,34,3,0,0,3,0, - 0,0,7,128,0,0,15,192,0,0,12,224,0,0,24,112, - 0,0,112,24,0,0,192,12,0,0,0,2,0,0,0,0, - 0,0,0,0,0,255,255,255,240,255,255,255,240,7,128,1, - 240,7,128,0,240,7,128,0,112,7,128,0,112,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,16,7,128,32, - 16,7,128,32,16,7,128,32,0,7,128,96,0,7,128,96, - 0,7,128,96,0,7,128,224,0,7,255,224,0,7,129,224, - 0,7,128,96,0,7,128,96,0,7,128,96,0,7,128,32, - 16,7,128,32,16,7,128,32,16,7,128,0,16,7,128,0, - 48,7,128,0,48,7,128,0,48,7,128,0,112,7,128,0, - 112,7,128,0,240,7,128,1,240,255,255,255,240,255,255,255, - 240,28,44,176,34,3,0,0,112,28,0,0,248,62,0,0, - 248,62,0,0,248,62,0,0,112,28,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,255,255,255,240,7, - 192,7,240,7,128,1,240,7,128,0,240,7,128,0,112,7, - 128,0,112,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,16,7,128,32,16,7,128,32,16,7,128,32,0,7, - 128,32,0,7,128,96,0,7,128,96,0,7,128,224,0,7, - 255,224,0,7,129,224,0,7,128,96,0,7,128,96,0,7, - 128,32,0,7,128,32,16,7,128,32,16,7,128,32,16,7, - 128,0,16,7,128,0,48,7,128,0,48,7,128,0,48,7, - 128,0,112,7,128,0,112,7,128,0,240,7,128,1,240,255, - 255,255,240,255,255,255,240,14,46,92,19,3,0,224,0,240, - 0,240,0,120,0,60,0,12,0,6,0,3,0,1,0,0, - 0,0,0,255,252,255,252,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,15,128,255,252,14,46,92,19,3,0,0, - 28,0,60,0,60,0,120,0,240,0,192,1,128,3,0,0, - 0,0,0,0,0,255,252,255,252,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,192,255,252,14,45,90,19,3, - 0,3,0,7,128,7,192,14,192,24,96,112,56,192,12,0, - 0,0,0,0,0,255,252,7,192,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,255,252,255,252,15,44,88,20,3, - 0,112,28,248,62,248,62,248,62,112,28,0,0,0,0,0, - 0,0,0,127,254,7,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,7,192,127,254,32,35,140,38,4,0,255, - 255,248,0,15,128,15,0,7,128,3,128,7,128,1,192,7, - 128,0,224,7,128,0,240,7,128,0,120,7,128,0,124,7, - 128,0,60,7,128,0,62,7,128,0,62,7,128,0,30,7, - 128,0,30,7,128,0,31,7,128,0,31,7,128,0,31,255, - 254,0,31,7,128,0,31,7,128,0,31,7,128,0,31,7, - 128,0,31,7,128,0,31,7,128,0,30,7,128,0,62,7, - 128,0,62,7,128,0,60,7,128,0,60,7,128,0,120,7, - 128,0,120,7,128,0,240,7,128,0,224,7,128,1,192,7, - 128,3,128,15,128,30,0,255,255,248,0,33,46,230,38,3, - 255,0,7,1,128,0,0,31,225,128,0,0,31,255,0,0, - 0,16,255,0,0,0,48,62,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,255,192,7,255,128,255,192,7,255,128,7,224,0, - 120,0,7,240,0,48,0,7,240,0,48,0,7,248,0,48, - 0,6,248,0,48,0,6,252,0,48,0,6,126,0,48,0, - 6,62,0,48,0,6,63,0,48,0,6,31,0,48,0,6, - 15,128,48,0,6,15,192,48,0,6,7,192,48,0,6,7, - 224,48,0,6,3,224,48,0,6,1,240,48,0,6,1,248, - 48,0,6,0,248,48,0,6,0,252,48,0,6,0,124,48, - 0,6,0,62,48,0,6,0,63,48,0,6,0,31,48,0, - 6,0,15,176,0,6,0,15,176,0,6,0,7,240,0,6, - 0,7,240,0,6,0,3,240,0,6,0,1,240,0,6,0, - 1,240,0,15,0,0,240,0,31,128,0,240,0,255,240,0, - 112,0,0,0,0,48,0,28,46,184,33,3,1,1,192,0, - 0,1,224,0,0,1,240,0,0,0,112,0,0,0,56,0, - 0,0,28,0,0,0,12,0,0,0,6,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,255,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,30,0,7,128,60,0,3,192,60,0,3,192,124,0,3, - 224,124,0,3,224,120,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,120,0,3,224,124,0,3, - 192,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,7,0,7,0,14,0,3,128,28,0,0,192,48, - 0,0,127,224,0,28,46,184,33,3,1,0,0,56,0,0, - 0,120,0,0,0,248,0,0,0,224,0,0,1,192,0,0, - 3,128,0,0,3,0,0,0,6,0,0,0,0,0,0,0, - 0,0,0,0,31,128,0,0,255,240,0,1,192,56,0,3, - 128,28,0,7,0,14,0,14,0,7,0,30,0,7,128,30, - 0,7,128,60,0,3,192,60,0,3,192,124,0,3,224,124, - 0,3,224,120,0,1,224,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,120, - 0,1,224,120,0,1,224,120,0,3,224,124,0,3,192,60, - 0,3,192,60,0,3,192,30,0,7,128,14,0,7,0,14, - 0,7,0,7,0,14,0,3,128,28,0,0,192,48,0,0, - 127,224,0,28,46,184,33,3,0,0,6,0,0,0,15,0, - 0,0,15,0,0,0,31,128,0,0,57,192,0,0,112,224, - 0,0,192,48,0,3,128,28,0,0,0,0,0,0,0,0, - 0,0,31,128,0,0,255,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,30,0,7, - 128,60,0,3,192,60,0,3,192,124,0,3,224,124,0,3, - 224,120,0,1,224,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,120,0,3,224,124,0,3,192,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,7, - 0,7,0,14,0,3,128,28,0,0,192,48,0,0,127,224, - 0,28,45,180,33,3,0,0,120,12,0,0,255,8,0,1, - 255,248,0,1,143,248,0,1,1,224,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,31,128,0,0, - 255,240,0,1,192,56,0,3,128,28,0,7,0,14,0,14, - 0,7,0,30,0,7,128,30,0,7,128,60,0,3,192,60, - 0,3,192,124,0,3,224,124,0,3,224,120,0,1,224,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,248,0,1,240,248,0,1,240,248, - 0,1,240,248,0,1,240,120,0,1,224,120,0,1,224,120, - 0,3,224,124,0,3,192,60,0,3,192,60,0,3,192,30, - 0,7,128,14,0,7,0,14,0,7,0,7,0,14,0,3, - 128,28,0,0,192,48,0,0,127,224,0,28,45,180,33,3, - 0,0,224,56,0,1,240,124,0,1,240,124,0,1,240,124, - 0,0,224,56,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,31,128,0,0,240,240,0,1,192,56, - 0,3,128,28,0,7,0,14,0,14,0,7,0,30,0,7, - 128,28,0,3,128,60,0,3,192,60,0,3,192,124,0,3, - 224,120,0,1,224,120,0,1,224,248,0,1,224,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,120,0,1,224,120,0,1,224,124,0,3,224,124,0,3, - 224,60,0,3,192,60,0,3,192,30,0,7,128,14,0,7, - 0,14,0,15,0,7,0,14,0,3,128,28,0,0,224,112, - 0,0,127,224,0,30,30,120,46,8,254,192,0,0,12,224, - 0,0,28,112,0,0,56,56,0,0,112,28,0,0,224,14, - 0,1,192,7,0,3,128,3,128,7,0,1,192,14,0,0, - 224,28,0,0,112,56,0,0,56,112,0,0,28,224,0,0, - 15,192,0,0,7,128,0,0,7,128,0,0,15,192,0,0, - 28,224,0,0,56,112,0,0,112,56,0,0,224,28,0,1, - 192,14,0,3,128,7,0,7,0,3,128,14,0,1,192,28, - 0,0,224,56,0,0,112,112,0,0,56,224,0,0,28,192, - 0,0,12,28,36,144,33,3,0,0,31,128,32,0,240,240, - 96,1,192,56,224,3,128,30,192,7,0,15,128,14,0,7, - 128,30,0,7,128,28,0,7,128,60,0,15,192,60,0,31, - 192,124,0,59,224,120,0,49,224,120,0,97,224,248,0,225, - 240,248,1,193,240,248,1,129,240,248,3,1,240,248,7,1, - 240,248,6,1,240,248,12,1,240,248,28,1,240,248,56,1, - 240,248,48,1,240,120,96,1,224,120,224,1,224,121,192,3, - 224,125,128,3,192,63,0,3,192,63,0,3,192,30,0,7, - 128,30,0,7,0,30,0,15,0,63,0,14,0,51,128,28, - 0,97,192,112,0,192,127,224,0,34,46,230,39,3,1,0, - 28,0,0,0,0,28,0,0,0,0,30,0,0,0,0,15, - 0,0,0,0,7,0,0,0,0,1,128,0,0,0,0,192, - 0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0, - 0,255,252,3,255,192,255,252,3,255,192,7,192,0,126,0, - 7,128,0,60,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,3,192,0, - 24,0,3,192,0,48,0,1,192,0,48,0,1,224,0,96, - 0,0,224,0,96,0,0,112,0,192,0,0,60,3,128,0, - 0,15,254,0,0,34,46,230,39,3,1,0,0,7,0,0, - 0,0,15,0,0,0,0,30,0,0,0,0,28,0,0,0, - 0,56,0,0,0,0,112,0,0,0,0,96,0,0,0,0, - 128,0,0,0,0,0,0,0,0,0,0,0,0,255,252,3, - 255,192,255,252,3,255,192,7,192,0,126,0,7,128,0,60, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,3,192,0,24,0,3,192, - 0,48,0,1,192,0,48,0,1,224,0,96,0,0,224,0, - 96,0,0,112,0,192,0,0,60,3,128,0,0,15,254,0, - 0,34,46,230,39,3,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,3,240,0,0,0,3,56,0,0, - 0,6,28,0,0,0,28,6,0,0,0,48,3,128,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,252, - 3,255,192,7,192,0,126,0,7,128,0,60,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,3,192,0,24,0,3,192,0,48,0,3, - 192,0,48,0,1,224,0,96,0,0,240,0,224,0,0,120, - 1,192,0,0,62,7,128,0,0,15,254,0,0,34,45,225, - 39,3,0,0,28,7,0,0,0,62,15,128,0,0,62,15, - 128,0,0,62,15,128,0,0,28,7,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,32,46,184,35,2,0,0,0,3,0,0,0, - 7,128,0,0,15,0,0,0,30,0,0,0,60,0,0,0, - 56,0,0,0,96,0,0,0,192,0,0,0,0,0,0,0, - 0,0,0,0,0,0,255,254,15,255,255,254,15,255,7,224, - 0,240,7,224,0,96,3,224,0,96,3,240,0,64,1,240, - 0,192,0,248,0,128,0,252,1,128,0,124,1,0,0,62, - 3,0,0,62,2,0,0,31,6,0,0,31,12,0,0,15, - 136,0,0,7,152,0,0,7,208,0,0,3,240,0,0,3, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,224,0,0,1, - 224,0,0,1,224,0,0,1,224,0,0,1,240,0,0,127, - 255,192,28,35,140,33,3,0,255,254,0,0,7,192,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,255,240,0,7,192,30,0,7,128,7,128,7,128,7,192, - 7,128,3,224,7,128,3,224,7,128,1,240,7,128,1,240, - 7,128,1,240,7,128,1,240,7,128,1,240,7,128,1,240, - 7,128,3,224,7,128,3,224,7,128,7,192,7,128,7,128, - 7,128,30,0,7,255,248,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,192,0,0, - 255,254,0,0,22,35,105,26,1,0,0,63,128,0,243,224, - 1,192,240,3,128,240,7,128,248,7,0,120,15,0,120,15, - 0,120,15,0,248,15,0,240,15,0,224,15,1,192,15,3, - 0,15,60,0,15,6,0,15,1,128,15,0,192,15,0,224, - 15,0,112,15,0,120,15,0,120,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,60,15,0,60,15,0,60,15,56, - 60,15,120,60,15,120,60,15,112,120,15,96,112,15,48,224, - 255,31,192,21,33,99,24,2,1,56,0,0,60,0,0,30, - 0,0,14,0,0,7,0,0,3,128,0,1,128,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,21,33,99,24, - 2,1,0,7,0,0,15,128,0,15,0,0,30,0,0,60, - 0,0,48,0,0,96,0,0,192,0,0,0,0,0,0,0, - 0,0,0,7,248,0,24,30,0,16,15,0,48,7,0,56, - 7,128,60,7,128,62,7,128,28,7,128,0,7,128,0,31, - 128,3,247,128,31,7,128,60,7,128,120,7,128,248,7,128, - 240,7,128,240,15,136,240,15,136,240,23,136,248,23,152,120, - 39,240,63,195,240,21,33,99,24,2,0,0,192,0,0,224, - 0,1,224,0,1,240,0,3,48,0,6,24,0,12,12,0, - 24,2,0,0,0,0,0,0,0,0,0,0,7,248,0,24, - 30,0,16,15,0,48,7,0,56,7,128,60,7,128,62,7, - 128,28,7,128,0,7,128,0,31,128,3,247,128,31,7,128, - 60,7,128,120,7,128,248,7,128,240,7,128,240,15,136,240, - 15,136,240,23,136,248,23,152,120,39,240,63,195,240,21,32, - 96,24,2,0,15,129,0,31,227,0,31,255,0,16,254,0, - 32,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,7,248,0,24,30,0,16,15,0,48,7,0,56,7, - 128,60,7,128,62,7,128,28,7,128,0,7,128,0,31,128, - 3,247,128,31,7,128,60,7,128,120,7,128,248,7,128,240, - 7,128,240,15,136,240,15,136,240,23,136,248,23,152,120,39, - 240,63,195,240,21,32,96,24,2,0,28,14,0,62,31,0, - 62,31,0,62,31,0,28,14,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,7,248,0,24,30,0,16,15, - 0,48,7,0,56,7,128,60,7,128,62,7,128,28,7,128, - 0,7,128,0,31,128,3,247,128,31,7,128,60,7,128,120, - 7,128,248,7,128,240,7,128,240,15,136,240,15,136,240,23, - 136,248,23,152,120,39,240,63,195,240,21,34,102,24,2,0, - 1,224,0,2,24,0,4,8,0,8,4,0,8,4,0,8, - 4,0,4,12,0,6,24,0,1,240,0,0,0,0,0,0, - 0,0,0,0,7,248,0,24,30,0,16,15,0,48,7,0, - 56,7,128,60,7,128,60,7,128,28,7,128,0,7,128,0, - 31,128,3,247,128,31,7,128,60,7,128,120,7,128,248,7, - 128,240,7,128,240,15,136,240,15,136,240,31,136,248,23,152, - 120,39,240,63,195,240,30,22,88,34,2,1,7,248,63,128, - 24,30,97,224,16,15,224,224,48,7,192,112,56,7,192,120, - 60,7,128,120,62,7,128,120,30,7,128,60,0,7,128,60, - 0,15,128,60,1,247,255,252,15,7,128,0,60,7,128,0, - 120,7,128,0,248,7,128,0,240,7,128,8,240,15,128,8, - 240,11,192,8,240,27,192,16,248,17,224,48,120,32,240,96, - 63,192,127,192,17,32,96,21,2,247,7,252,0,14,6,0, - 28,3,0,56,3,0,56,3,128,120,15,128,120,15,128,240, - 15,128,240,7,0,240,0,0,240,0,0,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,0, - 56,1,0,28,2,0,14,6,0,7,248,0,0,128,0,0, - 128,0,1,128,0,0,240,0,0,56,0,0,28,0,0,28, - 0,0,28,0,12,56,0,3,240,0,18,33,99,22,2,1, - 60,0,0,60,0,0,30,0,0,15,0,0,7,0,0,3, - 128,0,0,192,0,0,64,0,0,0,0,0,0,0,0,0, - 0,7,248,0,14,28,0,28,14,0,56,15,0,56,7,128, - 120,7,128,120,7,128,240,7,192,240,7,192,240,7,192,255, - 255,192,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,120,1,128,56,1,0,28,3,0,14,6,0, - 7,252,0,18,33,99,22,2,1,0,7,0,0,15,0,0, - 15,0,0,30,0,0,60,0,0,48,0,0,96,0,0,192, - 0,0,0,0,0,0,0,0,0,0,7,248,0,14,28,0, - 28,14,0,56,15,0,56,7,128,120,7,128,120,7,128,240, - 7,192,240,7,192,240,7,192,255,255,192,240,0,0,240,0, - 0,240,0,0,240,0,128,120,0,128,120,0,128,120,1,128, - 56,1,0,28,3,0,14,6,0,7,252,0,18,33,99,22, - 2,0,0,192,0,0,224,0,1,224,0,1,240,0,3,184, - 0,7,24,0,4,12,0,24,2,0,0,0,0,0,0,0, - 0,0,0,7,248,0,14,28,0,28,14,0,56,15,0,56, - 7,128,120,7,128,120,7,128,240,7,192,240,7,192,240,7, - 192,255,255,192,240,0,0,240,0,0,240,0,0,240,0,128, - 120,0,128,120,0,128,120,1,128,56,1,0,28,3,0,14, - 6,0,7,252,0,18,32,96,22,2,0,28,7,0,62,15, - 128,62,15,128,62,15,128,28,7,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,7,248,0,14,12,0,28, - 14,0,60,7,0,56,7,128,120,3,128,120,3,128,240,3, - 192,240,3,192,240,3,192,255,255,192,240,0,0,240,0,0, - 240,0,0,240,0,64,120,0,128,120,0,128,120,0,128,56, - 1,128,28,1,0,14,6,0,7,252,0,12,33,66,14,0, - 1,224,0,240,0,240,0,120,0,60,0,12,0,6,0,3, - 0,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,11,33,66,13,2,1,0,224,1,224,1,224,3, - 192,7,128,6,0,12,0,24,0,0,0,0,0,0,0,254, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,255,192,13,33,66,14,0, - 0,7,0,7,0,7,128,15,128,29,192,24,96,48,48,192, - 24,0,0,0,0,0,0,63,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,63,240,13,32,64,15,1,0,112,112,248,248,248,248,248, - 248,112,112,0,0,0,0,0,0,0,0,0,0,63,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,63,240,19,35,105,24,2,0,31, - 0,0,15,131,128,7,198,0,3,252,0,1,240,0,0,240, - 0,1,248,0,7,124,0,12,60,0,24,30,0,0,31,0, - 0,15,0,0,7,128,3,255,128,14,15,192,28,7,192,60, - 3,192,56,3,224,120,3,224,120,1,224,248,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 240,1,224,120,1,192,120,3,192,56,3,192,60,3,128,28, - 7,0,14,14,0,3,252,0,23,32,96,27,2,0,1,224, - 64,3,248,192,7,255,192,6,63,128,4,7,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,31,128,30, - 97,224,30,192,224,30,128,240,31,0,240,31,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,255,199,254,19,33, - 99,24,2,1,28,0,0,30,0,0,30,0,0,15,0,0, - 7,128,0,1,128,0,0,192,0,0,96,0,0,0,0,0, - 0,0,0,0,0,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,19,33,99,24,2,1,0,7,0, - 0,7,128,0,15,0,0,30,0,0,28,0,0,56,0,0, - 96,0,0,64,0,0,0,0,0,0,0,0,0,0,3,252, - 0,14,14,0,28,7,0,60,3,128,56,3,192,120,3,192, - 120,1,224,248,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,120,1,224,120,3, - 192,56,3,192,60,3,128,28,7,0,14,14,0,3,252,0, - 19,33,99,24,2,0,0,96,0,0,224,0,0,240,0,1, - 240,0,1,184,0,3,24,0,6,4,0,8,3,0,0,0, - 0,0,0,0,0,0,0,3,252,0,14,14,0,28,7,0, - 60,3,128,56,3,192,120,3,192,120,1,224,248,1,224,240, - 1,224,240,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,120,1,224,120,3,192,56,3,192,60,3,128, - 28,7,0,14,14,0,3,252,0,19,32,96,24,2,0,7, - 129,0,15,225,0,31,255,0,24,254,0,16,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,3,252,0, - 14,14,0,28,7,0,60,3,128,56,3,192,120,3,192,120, - 1,224,248,1,224,240,1,224,240,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,120,1,224,120,3,192, - 56,3,192,60,3,128,28,7,0,14,14,0,3,252,0,19, - 32,96,24,2,0,14,7,0,31,15,128,31,15,128,31,15, - 128,14,7,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,3,252,0,14,14,0,28,7,0,60,3,128,56, - 3,192,120,3,192,120,1,224,248,1,224,240,1,224,240,1, - 224,240,1,224,240,1,224,240,1,224,240,1,224,240,1,224, - 120,1,224,120,3,192,56,3,192,60,3,128,28,7,0,14, - 14,0,3,252,0,41,31,186,45,2,253,0,0,30,0,0, - 0,0,0,63,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,30,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,255,255,255,128,255,255,255,255,255,128,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,63,0,0,0,0,0,63, - 0,0,0,0,0,63,0,0,0,0,0,63,0,0,0,0, - 0,30,0,0,0,19,22,66,24,2,1,3,252,96,14,14, - 64,28,7,192,60,3,128,56,3,192,120,7,192,120,13,224, - 248,9,224,240,25,224,240,49,224,240,97,224,240,193,224,240, - 129,224,241,129,224,243,1,224,126,1,224,124,3,192,56,3, - 192,60,3,128,60,7,0,110,14,0,195,252,0,23,33,99, - 27,2,1,14,0,0,15,0,0,7,128,0,3,192,0,1, - 192,0,0,224,0,0,48,0,0,16,0,0,0,0,0,0, - 0,0,0,0,254,7,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,1,240,30,1,240,30,1,240,30,2,240,14,6,240, - 15,12,240,3,240,254,23,33,99,27,2,1,0,1,192,0, - 3,192,0,3,192,0,7,128,0,14,0,0,12,0,0,24, - 0,0,48,0,0,0,0,0,0,0,0,0,0,254,7,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,1,240,30,1,240, - 30,1,240,30,2,240,14,6,240,15,12,240,3,240,254,23, - 33,99,27,2,0,0,48,0,0,56,0,0,120,0,0,124, - 0,0,204,0,1,134,0,3,3,0,6,0,128,0,0,0, - 0,0,0,0,0,0,254,7,240,30,0,240,30,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,1,240,30,1,240,30,1,240,30,2,240,14, - 6,240,15,12,240,3,240,254,23,32,96,27,2,0,7,3, - 128,15,135,192,15,135,192,15,135,192,7,3,128,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,7,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,1,240,30,1,240,30, - 1,240,30,2,240,14,6,240,15,12,240,3,240,254,24,45, - 135,26,1,246,0,0,240,0,0,240,0,1,224,0,1,192, - 0,3,128,0,7,0,0,6,0,0,12,0,0,24,0,0, - 0,0,0,0,0,0,0,0,255,225,255,31,0,120,15,0, - 48,15,0,48,7,0,32,7,128,96,7,128,96,3,192,64, - 3,192,192,3,192,192,1,224,128,1,225,128,0,225,128,0, - 241,128,0,241,0,0,115,0,0,123,0,0,122,0,0,62, - 0,0,62,0,0,60,0,0,28,0,0,28,0,0,24,0, - 0,24,0,0,24,0,24,48,0,60,48,0,60,48,0,60, - 96,0,56,96,0,31,192,0,15,0,0,20,46,138,25,2, - 243,30,0,0,126,0,0,254,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,15,192,30,63,224,30,97,240,30,192,240,30,128, - 240,31,128,240,31,0,240,31,0,240,30,0,240,30,0,240, - 30,1,224,30,1,224,30,1,192,30,3,128,30,3,128,30, - 7,0,30,6,0,30,12,0,30,24,0,30,48,0,30,192, - 0,31,128,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,60,0,0,240,0,0,128,0,0,24,43,129,26,1, - 245,1,192,224,3,225,240,3,225,240,3,225,240,1,192,224, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255, - 225,255,31,128,120,15,0,48,15,0,48,7,128,32,7,128, - 96,7,128,96,3,192,64,3,192,64,3,192,192,1,224,128, - 1,224,128,0,225,128,0,241,128,0,241,0,0,115,0,0, - 123,0,0,122,0,0,62,0,0,62,0,0,60,0,0,28, - 0,0,28,0,0,24,0,0,24,0,0,24,0,24,48,0, - 60,48,0,60,48,0,60,96,0,56,96,0,31,192,0,15, - 0,0}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 0, '1' Height: 34 - Calculated Max Values w=41 h=46 x= 6 y=14 dx=45 dy= 0 ascent=36 len=246 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x= 0 y=-10 dx= 0 dy= 0 - Pure Font ascent =34 descent= 0 - X Font ascent =34 descent= 0 - Max Font ascent =36 descent=-10 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35n[1588] U8G_FONT_SECTION("u8g_font_osr35n") = { - 0,128,62,216,241,34,0,0,0,0,42,58,0,36,246,34, - 0,18,20,60,25,4,14,0,224,0,1,224,0,1,224,0, - 1,224,0,224,195,128,240,135,192,248,143,192,60,159,128,3, - 248,0,1,224,0,3,240,0,30,190,0,124,143,128,248,135, - 192,240,195,192,97,193,128,1,224,0,1,224,0,1,224,0, - 0,224,0,41,41,246,45,2,248,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,255,255,255,255,255, - 128,255,255,255,255,255,128,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0, - 0,12,0,0,0,0,0,12,0,0,0,0,0,12,0,0, - 0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,12, - 0,0,0,0,0,12,0,0,0,0,0,12,0,0,0,7, - 15,15,14,4,247,120,252,252,254,126,6,6,6,4,12,8, - 24,48,96,64,12,3,6,18,3,11,255,240,255,240,255,240, - 6,5,5,14,4,1,120,252,252,252,120,16,46,92,22,3, - 246,0,3,0,3,0,3,0,6,0,6,0,6,0,12,0, - 12,0,12,0,24,0,24,0,24,0,48,0,48,0,48,0, - 48,0,96,0,96,0,96,0,192,0,192,0,192,1,128,1, - 128,1,128,3,0,3,0,3,0,6,0,6,0,6,0,12, - 0,12,0,12,0,24,0,24,0,24,0,48,0,48,0,48, - 0,96,0,96,0,96,0,96,0,192,0,192,0,23,34,102, - 28,2,0,0,124,0,1,199,0,7,1,128,6,0,192,14, - 0,224,28,0,112,60,0,120,60,0,120,56,0,56,120,0, - 60,120,0,60,120,0,60,248,0,62,248,0,62,248,0,62, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,120,0,60,120,0,60,120,0,60,120,0, - 60,60,0,120,60,0,120,28,0,112,28,0,112,14,0,224, - 7,1,192,3,131,128,0,254,0,17,34,102,28,6,0,0, - 64,0,0,64,0,0,192,0,0,192,0,1,192,0,7,192, - 0,255,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,255, - 255,128,255,255,128,21,34,102,28,4,0,3,252,0,14,31, - 0,16,7,192,32,3,224,96,1,240,64,1,240,192,0,240, - 192,0,248,224,0,248,252,0,248,254,0,248,126,0,248,126, - 0,240,62,1,240,0,1,224,0,3,192,0,3,128,0,7, - 0,0,14,0,0,28,0,0,112,0,0,224,0,1,192,0, - 3,0,0,6,0,16,12,0,16,24,0,16,16,0,16,48, - 0,48,48,0,112,127,255,240,127,255,240,127,255,240,127,255, - 240,21,34,102,28,4,0,3,248,0,14,31,0,24,7,128, - 48,3,192,112,3,192,120,1,224,124,1,224,126,1,224,126, - 1,224,60,1,224,0,1,224,0,3,192,0,3,192,0,7, - 128,0,14,0,15,248,0,31,143,0,14,3,128,0,3,224, - 0,1,224,0,1,240,0,0,248,0,0,248,0,0,248,60, - 0,248,126,0,248,254,0,248,254,0,248,252,1,240,224,1, - 240,224,3,224,96,3,192,48,15,0,15,254,0,23,34,102, - 28,3,0,0,1,128,0,1,128,0,3,128,0,7,128,0, - 7,128,0,15,128,0,31,128,0,31,128,0,55,128,0,119, - 128,0,231,128,0,199,128,1,199,128,3,135,128,3,7,128, - 6,7,128,14,7,128,12,7,128,24,7,128,56,7,128,48, - 7,128,96,7,128,224,7,128,255,255,254,0,7,128,0,7, - 128,0,7,128,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,3,255,254,3,255,254,21,35,105,28,4,0,48, - 0,64,60,3,192,63,255,128,63,255,0,63,252,0,55,240, - 0,48,0,0,48,0,0,48,0,0,48,0,0,48,0,0, - 48,0,0,48,0,0,51,254,0,60,7,128,56,3,192,48, - 1,224,48,1,240,48,1,240,0,0,240,0,0,248,0,0, - 248,0,0,248,0,0,248,60,0,248,126,0,248,254,0,248, - 254,0,240,252,1,240,248,1,224,240,1,224,112,3,192,112, - 7,128,60,31,0,15,252,0,21,34,102,28,4,0,0,126, - 0,1,193,128,3,128,192,7,0,64,14,0,224,28,1,224, - 28,3,224,56,3,224,56,3,192,120,0,0,120,0,0,120, - 0,0,120,0,0,240,126,0,241,255,128,243,131,192,247,1, - 224,254,1,240,252,0,240,252,0,240,248,0,248,248,0,120, - 248,0,120,248,0,120,120,0,120,120,0,120,120,0,248,120, - 0,240,56,0,240,60,0,224,28,1,224,14,3,192,7,7, - 128,1,254,0,19,34,102,28,5,0,255,255,224,255,255,224, - 255,255,224,255,255,224,224,0,224,192,0,64,128,0,64,128, - 0,192,128,0,128,128,1,128,0,1,128,0,3,0,0,2, - 0,0,6,0,0,12,0,0,24,0,0,24,0,0,48,0, - 0,112,0,0,112,0,0,224,0,0,224,0,1,224,0,1, - 224,0,3,224,0,3,224,0,3,224,0,7,240,0,7,240, - 0,7,240,0,7,240,0,7,240,0,3,240,0,3,224,0, - 23,34,102,28,3,0,1,254,0,7,135,128,30,1,192,56, - 0,224,120,0,112,112,0,112,240,0,56,240,0,56,240,0, - 56,240,0,56,248,0,56,252,0,112,126,0,112,127,192,224, - 63,241,192,31,255,0,7,255,128,7,255,224,12,63,248,56, - 7,252,112,1,252,112,0,126,224,0,62,224,0,62,224,0, - 62,224,0,30,224,0,30,224,0,28,96,0,60,112,0,56, - 48,0,120,24,0,240,14,1,192,3,255,0,21,34,102,28, - 4,0,1,248,0,7,142,0,14,3,0,28,1,128,56,1, - 192,120,1,224,120,0,224,120,0,240,240,0,240,240,0,240, - 240,0,240,240,0,248,240,0,248,248,0,248,120,1,248,120, - 1,248,120,3,248,60,7,120,30,14,120,15,252,120,3,240, - 120,0,0,240,0,0,240,0,0,240,0,0,240,60,0,224, - 124,0,224,124,1,192,124,1,192,120,3,128,112,3,0,56, - 6,0,28,28,0,15,248,0,6,22,22,14,4,1,120,252, - 252,252,120,0,0,0,0,0,0,0,0,0,0,0,0,120, - 252,252,252,120}; -/* - Fontname: -FreeType-Old Standard TT-Medium-R-Normal--49-490-72-72-P-256-ISO10646-1 - Copyright: Copyright (C) 2006-2008 Alexey Kryukov - Capital A Height: 35, '1' Height: 34 - Calculated Max Values w=49 h=46 x= 6 y=26 dx=52 dy= 0 ascent=37 len=252 - Font Bounding box w=128 h=62 x=-40 y=-15 - Calculated Min Values x=-2 y=-11 dx= 0 dy= 0 - Pure Font ascent =35 descent=-10 - X Font ascent =36 descent=-10 - Max Font ascent =37 descent=-11 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_osr35r[10371] U8G_FONT_SECTION("u8g_font_osr35r") = { - 0,128,62,216,241,35,12,236,30,116,32,127,246,37,245,36, - 246,0,0,0,14,0,0,6,34,34,14,4,0,120,252,252, - 252,252,252,252,252,252,120,120,120,120,120,120,48,48,48,48, - 48,48,48,48,48,48,48,0,0,0,120,252,252,252,120,11, - 10,20,19,4,26,224,224,224,224,224,224,224,224,224,224,224, - 224,64,64,64,64,64,64,64,64,26,34,136,34,4,0,0, - 48,24,0,0,48,24,0,0,112,24,0,0,96,24,0,0, - 96,56,0,0,96,56,0,0,96,48,0,0,96,48,0,0, - 96,48,0,0,224,48,0,255,255,255,192,255,255,255,192,0, - 192,96,0,0,192,96,0,0,192,96,0,1,192,96,0,1, - 128,96,0,1,128,224,0,1,128,192,0,1,128,192,0,1, - 128,192,0,3,128,192,0,255,255,255,192,255,255,255,192,3, - 1,128,0,3,1,128,0,3,1,128,0,7,1,128,0,7, - 1,128,0,6,1,128,0,6,3,128,0,6,3,0,0,6, - 3,0,0,6,3,0,0,22,41,123,29,3,252,0,204,0, - 0,204,0,0,204,0,1,254,0,7,207,192,12,204,96,24, - 204,48,48,204,24,32,204,24,96,204,28,96,204,60,96,204, - 124,96,204,124,112,204,120,120,204,120,62,204,0,63,204,0, - 31,252,0,15,252,0,7,255,128,1,255,192,0,255,224,0, - 207,240,0,205,248,0,204,120,48,204,60,120,204,28,248,204, - 28,248,204,12,240,204,12,240,204,8,224,204,24,96,204,24, - 96,204,48,48,204,96,28,205,192,7,255,128,0,204,0,0, - 204,0,0,204,0,0,204,0,33,34,170,43,5,0,15,128, - 0,48,0,24,192,0,96,0,48,96,0,64,0,112,112,0, - 192,0,96,48,1,128,0,224,56,1,128,0,224,56,3,0, - 0,224,56,2,0,0,224,56,6,0,0,224,56,12,0,0, - 224,56,12,0,0,224,56,24,0,0,96,48,48,0,0,96, - 112,48,0,0,48,96,96,0,0,24,192,64,0,0,15,128, - 192,0,0,0,1,128,248,0,0,1,129,140,0,0,3,3, - 6,0,0,2,6,7,0,0,6,6,3,0,0,12,14,3, - 128,0,8,14,3,128,0,24,14,3,128,0,48,14,3,128, - 0,48,14,3,128,0,96,14,3,128,0,64,14,3,128,0, - 192,6,3,0,1,128,6,3,0,1,128,7,7,0,3,0, - 3,14,0,6,0,1,252,0,33,34,170,39,3,0,0,63, - 0,0,0,0,227,128,0,0,1,128,192,0,0,3,128,64, - 0,0,3,0,96,0,0,7,0,96,0,0,7,0,96,0, - 0,7,0,224,0,0,7,0,192,0,0,7,129,192,0,0, - 7,131,128,0,0,3,199,0,0,0,3,238,0,0,0,1, - 248,0,0,0,0,248,7,255,128,1,248,0,252,0,3,252, - 0,112,0,7,62,0,112,0,14,63,0,96,0,28,31,0, - 96,0,60,15,128,192,0,56,7,192,192,0,120,7,193,128, - 0,120,3,225,128,0,240,1,243,0,0,240,1,254,0,0, - 240,0,254,0,0,240,0,124,0,0,248,0,62,0,0,248, - 0,62,1,0,120,0,127,1,0,60,0,207,130,0,30,3, - 135,252,0,15,254,1,248,0,3,10,10,11,4,26,224,224, - 224,224,224,224,64,64,64,64,11,46,92,18,5,246,0,64, - 0,224,1,192,3,128,3,0,6,0,14,0,12,0,28,0, - 24,0,56,0,48,0,48,0,112,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,224,0,96,0,96,0,96,0,112,0, - 48,0,48,0,56,0,24,0,28,0,12,0,14,0,6,0, - 3,0,3,128,1,192,0,224,0,64,11,45,90,18,2,246, - 64,0,96,0,112,0,56,0,28,0,12,0,14,0,6,0, - 3,0,3,0,3,128,1,128,1,192,0,192,0,192,0,192, - 0,224,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,224,0,192,0,192, - 0,192,1,128,1,128,3,128,3,0,7,0,6,0,14,0, - 12,0,24,0,56,0,112,0,224,0,18,20,60,25,4,14, - 0,224,0,1,224,0,1,224,0,1,224,0,224,195,128,240, - 135,192,248,143,192,60,159,128,3,248,0,1,224,0,3,240, - 0,30,190,0,124,143,128,248,135,192,240,195,192,97,193,128, - 1,224,0,1,224,0,1,224,0,0,224,0,41,41,246,45, - 2,248,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,255,255,255,255,255,128,255,255,255,255,255,128, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,0,0,0,12,0, - 0,0,0,0,12,0,0,0,7,15,15,14,4,247,120,252, - 252,254,126,6,6,6,4,12,8,24,48,96,64,12,3,6, - 18,3,11,255,240,255,240,255,240,6,5,5,14,4,1,120, - 252,252,252,120,16,46,92,22,3,246,0,3,0,3,0,3, - 0,6,0,6,0,6,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,128,1,128,1,128,3,0,3,0, - 3,0,6,0,6,0,6,0,12,0,12,0,12,0,24,0, - 24,0,24,0,48,0,48,0,48,0,96,0,96,0,96,0, - 96,0,192,0,192,0,23,34,102,28,2,0,0,124,0,1, - 199,0,7,1,128,6,0,192,14,0,224,28,0,112,60,0, - 120,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 248,0,62,248,0,62,248,0,62,248,0,62,248,0,62,248, - 0,62,248,0,62,248,0,62,248,0,62,248,0,62,120,0, - 60,120,0,60,120,0,60,120,0,60,60,0,120,60,0,120, - 28,0,112,28,0,112,14,0,224,7,1,192,3,131,128,0, - 254,0,17,34,102,28,6,0,0,64,0,0,64,0,0,192, - 0,0,192,0,1,192,0,7,192,0,255,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,255,255,128,255,255,128,21,34, - 102,28,4,0,3,252,0,14,31,0,16,7,192,32,3,224, - 96,1,240,64,1,240,192,0,240,192,0,248,224,0,248,252, - 0,248,254,0,248,126,0,248,126,0,240,62,1,240,0,1, - 224,0,3,192,0,3,128,0,7,0,0,14,0,0,28,0, - 0,112,0,0,224,0,1,192,0,3,0,0,6,0,16,12, - 0,16,24,0,16,16,0,16,48,0,48,48,0,112,127,255, - 240,127,255,240,127,255,240,127,255,240,21,34,102,28,4,0, - 3,248,0,14,31,0,24,7,128,48,3,192,112,3,192,120, - 1,224,124,1,224,126,1,224,126,1,224,60,1,224,0,1, - 224,0,3,192,0,3,192,0,7,128,0,14,0,15,248,0, - 31,143,0,14,3,128,0,3,224,0,1,224,0,1,240,0, - 0,248,0,0,248,0,0,248,60,0,248,126,0,248,254,0, - 248,254,0,248,252,1,240,224,1,240,224,3,224,96,3,192, - 48,15,0,15,254,0,23,34,102,28,3,0,0,1,128,0, - 1,128,0,3,128,0,7,128,0,7,128,0,15,128,0,31, - 128,0,31,128,0,55,128,0,119,128,0,231,128,0,199,128, - 1,199,128,3,135,128,3,7,128,6,7,128,14,7,128,12, - 7,128,24,7,128,56,7,128,48,7,128,96,7,128,224,7, - 128,255,255,254,0,7,128,0,7,128,0,7,128,0,7,128, - 0,7,128,0,7,128,0,7,128,0,7,128,3,255,254,3, - 255,254,21,35,105,28,4,0,48,0,64,60,3,192,63,255, - 128,63,255,0,63,252,0,55,240,0,48,0,0,48,0,0, - 48,0,0,48,0,0,48,0,0,48,0,0,48,0,0,51, - 254,0,60,7,128,56,3,192,48,1,224,48,1,240,48,1, - 240,0,0,240,0,0,248,0,0,248,0,0,248,0,0,248, - 60,0,248,126,0,248,254,0,248,254,0,240,252,1,240,248, - 1,224,240,1,224,112,3,192,112,7,128,60,31,0,15,252, - 0,21,34,102,28,4,0,0,126,0,1,193,128,3,128,192, - 7,0,64,14,0,224,28,1,224,28,3,224,56,3,224,56, - 3,192,120,0,0,120,0,0,120,0,0,120,0,0,240,126, - 0,241,255,128,243,131,192,247,1,224,254,1,240,252,0,240, - 252,0,240,248,0,248,248,0,120,248,0,120,248,0,120,120, - 0,120,120,0,120,120,0,248,120,0,240,56,0,240,60,0, - 224,28,1,224,14,3,192,7,7,128,1,254,0,19,34,102, - 28,5,0,255,255,224,255,255,224,255,255,224,255,255,224,224, - 0,224,192,0,64,128,0,64,128,0,192,128,0,128,128,1, - 128,0,1,128,0,3,0,0,2,0,0,6,0,0,12,0, - 0,24,0,0,24,0,0,48,0,0,112,0,0,112,0,0, - 224,0,0,224,0,1,224,0,1,224,0,3,224,0,3,224, - 0,3,224,0,7,240,0,7,240,0,7,240,0,7,240,0, - 7,240,0,3,240,0,3,224,0,23,34,102,28,3,0,1, - 254,0,7,135,128,30,1,192,56,0,224,120,0,112,112,0, - 112,240,0,56,240,0,56,240,0,56,240,0,56,248,0,56, - 252,0,112,126,0,112,127,192,224,63,241,192,31,255,0,7, - 255,128,7,255,224,12,63,248,56,7,252,112,1,252,112,0, - 126,224,0,62,224,0,62,224,0,62,224,0,30,224,0,30, - 224,0,28,96,0,60,112,0,56,48,0,120,24,0,240,14, - 1,192,3,255,0,21,34,102,28,4,0,1,248,0,7,142, - 0,14,3,0,28,1,128,56,1,192,120,1,224,120,0,224, - 120,0,240,240,0,240,240,0,240,240,0,240,240,0,248,240, - 0,248,248,0,248,120,1,248,120,1,248,120,3,248,60,7, - 120,30,14,120,15,252,120,3,240,120,0,0,240,0,0,240, - 0,0,240,0,0,240,60,0,224,124,0,224,124,1,192,124, - 1,192,120,3,128,112,3,0,56,6,0,28,28,0,15,248, - 0,6,22,22,14,4,1,120,252,252,252,120,0,0,0,0, - 0,0,0,0,0,0,0,0,120,252,252,252,120,7,31,31, - 14,4,248,120,252,252,252,120,0,0,0,0,0,0,0,0, - 0,0,0,120,252,252,254,126,14,6,6,4,12,8,24,48, - 96,64,38,40,200,46,4,249,0,0,0,0,28,0,0,0, - 0,120,0,0,0,1,240,0,0,0,7,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,192,0, - 0,0,15,0,0,0,0,62,0,0,0,0,248,0,0,0, - 1,224,0,0,0,7,128,0,0,0,30,0,0,0,0,120, - 0,0,0,1,224,0,0,0,7,192,0,0,0,31,0,0, - 0,0,60,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,124,0,0,0,0,31,0,0,0,0,7,128,0,0,0, - 1,224,0,0,0,0,120,0,0,0,0,30,0,0,0,0, - 7,128,0,0,0,3,224,0,0,0,0,248,0,0,0,0, - 60,0,0,0,0,15,0,0,0,0,3,192,0,0,0,0, - 240,0,0,0,0,60,0,0,0,0,31,0,0,0,0,7, - 192,0,0,0,1,224,0,0,0,0,120,0,0,0,0,28, - 41,11,66,45,2,7,255,255,255,255,255,128,255,255,255,255, - 255,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255, - 255,128,255,255,255,255,255,128,38,40,200,46,4,249,224,0, - 0,0,0,120,0,0,0,0,62,0,0,0,0,15,128,0, - 0,0,3,192,0,0,0,0,240,0,0,0,0,60,0,0, - 0,0,15,0,0,0,0,3,192,0,0,0,1,240,0,0, - 0,0,124,0,0,0,0,30,0,0,0,0,7,128,0,0, - 0,1,224,0,0,0,0,120,0,0,0,0,30,0,0,0, - 0,15,128,0,0,0,3,224,0,0,0,0,240,0,0,0, - 0,60,0,0,0,0,60,0,0,0,0,248,0,0,0,3, - 224,0,0,0,7,128,0,0,0,30,0,0,0,0,120,0, - 0,0,1,224,0,0,0,7,128,0,0,0,31,0,0,0, - 0,124,0,0,0,0,240,0,0,0,3,192,0,0,0,15, - 0,0,0,0,60,0,0,0,0,240,0,0,0,3,224,0, - 0,0,15,128,0,0,0,30,0,0,0,0,120,0,0,0, - 0,224,0,0,0,0,18,34,102,23,3,0,7,240,0,28, - 60,0,48,15,0,96,7,128,192,7,128,192,3,192,192,3, - 192,248,3,192,252,3,192,124,7,192,56,7,128,0,15,128, - 0,31,0,0,62,0,0,124,0,0,240,0,0,224,0,1, - 192,0,3,0,0,6,0,0,14,8,0,12,8,0,12,8, - 0,12,8,0,6,16,0,3,224,0,0,0,0,0,0,0, - 0,0,0,1,224,0,3,240,0,3,240,0,3,240,0,1, - 224,0,35,36,180,40,2,0,0,3,254,0,0,0,30,7, - 192,0,0,112,0,112,0,1,192,0,24,0,3,128,0,12, - 0,7,0,0,6,0,14,0,0,3,0,28,0,120,1,0, - 24,1,196,225,128,56,7,7,224,128,48,14,3,224,192,112, - 12,3,192,192,96,28,3,192,64,96,56,3,192,96,224,56, - 3,192,96,192,120,3,128,96,192,112,7,128,96,192,112,7, - 128,96,192,240,7,128,96,192,224,7,0,96,192,224,15,0, - 224,192,224,15,0,192,192,224,14,0,192,96,224,30,1,128, - 96,224,62,1,128,96,224,62,3,0,96,96,78,6,0,48, - 49,143,12,0,48,31,7,240,0,24,0,0,0,0,12,0, - 0,0,0,6,0,0,0,0,3,0,0,0,0,1,192,0, - 112,0,0,112,1,192,0,0,31,255,0,0,34,35,175,37, - 2,0,0,0,192,0,0,0,0,192,0,0,0,0,224,0, - 0,0,1,224,0,0,0,1,224,0,0,0,3,240,0,0, - 0,3,240,0,0,0,3,240,0,0,0,6,248,0,0,0, - 6,248,0,0,0,6,248,0,0,0,12,124,0,0,0,12, - 124,0,0,0,12,124,0,0,0,24,62,0,0,0,24,62, - 0,0,0,24,30,0,0,0,48,31,0,0,0,48,31,0, - 0,0,48,15,0,0,0,96,15,128,0,0,96,15,128,0, - 0,96,7,128,0,0,255,255,192,0,0,255,255,192,0,0, - 192,3,192,0,1,128,3,224,0,1,128,3,224,0,3,128, - 1,224,0,3,0,1,240,0,3,0,1,240,0,7,0,0, - 240,0,7,0,0,248,0,31,128,1,252,0,255,248,31,255, - 192,28,35,140,34,3,0,255,255,240,0,7,192,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,1,224,7,128,1,224,7, - 128,1,224,7,128,1,224,7,128,3,192,7,128,3,128,7, - 128,7,0,7,128,30,0,7,255,240,0,7,128,62,0,7, - 128,15,0,7,128,7,128,7,128,3,192,7,128,3,224,7, - 128,1,224,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,3,224,7, - 128,3,224,7,128,7,192,7,128,15,128,7,192,62,0,255, - 255,240,0,26,36,144,32,3,0,0,63,0,128,0,225,224, - 128,3,128,113,128,7,0,63,128,14,0,31,128,30,0,15, - 128,28,0,7,128,60,0,3,128,60,0,3,128,124,0,3, - 128,120,0,1,128,120,0,1,128,120,0,0,128,248,0,0, - 128,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,248,0,0,0,248,0,0,0,248,0,0, - 0,248,0,0,0,120,0,0,192,120,0,0,192,120,0,0, - 192,60,0,0,192,60,0,0,128,60,0,1,128,28,0,1, - 128,14,0,3,0,14,0,3,0,7,0,6,0,3,128,12, - 0,0,224,56,0,0,127,224,0,33,35,175,38,3,0,255, - 255,252,0,0,7,192,15,0,0,7,128,3,192,0,7,128, - 0,224,0,7,128,0,112,0,7,128,0,120,0,7,128,0, - 60,0,7,128,0,62,0,7,128,0,30,0,7,128,0,31, - 0,7,128,0,31,0,7,128,0,15,0,7,128,0,15,0, - 7,128,0,15,128,7,128,0,15,128,7,128,0,15,128,7, - 128,0,15,128,7,128,0,15,128,7,128,0,15,128,7,128, - 0,15,128,7,128,0,15,128,7,128,0,15,128,7,128,0, - 15,0,7,128,0,31,0,7,128,0,31,0,7,128,0,30, - 0,7,128,0,30,0,7,128,0,60,0,7,128,0,60,0, - 7,128,0,120,0,7,128,0,112,0,7,128,0,224,0,7, - 128,3,192,0,7,192,15,0,0,255,255,252,0,0,28,35, - 140,34,3,0,255,255,255,240,7,192,7,240,7,128,1,240, - 7,128,0,240,7,128,0,112,7,128,0,112,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,16,7,128,32,16, - 7,128,32,16,7,128,32,0,7,128,96,0,7,128,96,0, - 7,128,96,0,7,128,224,0,7,255,224,0,7,129,224,0, - 7,128,96,0,7,128,96,0,7,128,96,0,7,128,32,16, - 7,128,32,16,7,128,32,16,7,128,0,16,7,128,0,48, - 7,128,0,48,7,128,0,48,7,128,0,112,7,128,0,112, - 7,128,0,240,7,128,1,240,255,255,255,240,255,255,255,240, - 27,35,140,34,4,0,255,255,255,224,15,128,15,224,7,128, - 3,224,7,128,1,224,7,128,0,224,7,128,0,224,7,128, - 0,96,7,128,0,96,7,128,0,96,7,128,0,32,7,128, - 32,32,7,128,32,32,7,128,32,0,7,128,96,0,7,128, - 96,0,7,128,96,0,7,128,224,0,7,255,224,0,7,129, - 224,0,7,128,96,0,7,128,96,0,7,128,96,0,7,128, - 32,0,7,128,32,0,7,128,32,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,7,128,0,0,7,128, - 0,0,7,128,0,0,7,128,0,0,15,128,0,0,255,254, - 0,0,30,36,144,34,3,0,0,63,128,192,0,224,224,192, - 3,128,56,192,7,0,29,192,14,0,15,192,14,0,7,192, - 28,0,7,192,60,0,3,192,60,0,3,192,124,0,1,192, - 120,0,1,192,120,0,0,192,120,0,0,192,248,0,0,192, - 248,0,0,0,248,0,0,0,248,0,0,0,248,0,0,0, - 248,0,255,252,248,0,255,252,248,0,7,192,248,0,7,192, - 248,0,7,192,248,0,7,192,120,0,7,192,120,0,7,192, - 124,0,7,192,60,0,7,192,60,0,7,192,28,0,15,192, - 30,0,15,192,14,0,28,192,7,0,24,192,3,0,48,192, - 1,192,224,192,0,127,128,192,33,35,175,38,3,0,255,252, - 31,255,128,7,192,0,248,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,255, - 255,240,0,7,128,0,240,0,7,128,0,240,0,7,128,0, - 240,0,7,128,0,240,0,7,128,0,240,0,7,128,0,240, - 0,7,128,0,240,0,7,128,0,240,0,7,128,0,240,0, - 7,128,0,240,0,7,128,0,240,0,7,128,0,240,0,7, - 128,0,240,0,7,128,0,240,0,7,128,0,240,0,7,128, - 0,240,0,7,192,0,248,0,255,252,31,255,128,14,35,70, - 19,3,0,255,252,7,192,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,192,255,252,23,35,105,27,2,0,0, - 127,254,0,7,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,3,192,0,3,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,60,3,192,126,3,192,254,3,192, - 254,3,192,252,3,192,224,3,128,224,7,128,96,7,0,112, - 14,0,56,28,0,15,248,0,32,35,140,37,3,0,255,252, - 63,254,7,192,15,240,7,128,7,192,7,128,3,128,7,128, - 7,0,7,128,6,0,7,128,12,0,7,128,28,0,7,128, - 56,0,7,128,112,0,7,128,224,0,7,129,192,0,7,129, - 128,0,7,131,128,0,7,135,128,0,7,143,192,0,7,155, - 224,0,7,179,224,0,7,225,240,0,7,193,240,0,7,128, - 248,0,7,128,248,0,7,128,124,0,7,128,124,0,7,128, - 62,0,7,128,62,0,7,128,31,0,7,128,31,0,7,128, - 15,128,7,128,15,192,7,128,7,192,7,128,7,224,7,128, - 3,224,7,192,7,248,255,252,127,255,27,35,140,33,3,0, - 255,254,0,0,7,192,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,0,7,128,0,0, - 7,128,0,0,7,128,0,0,7,128,0,32,7,128,0,96, - 7,128,0,96,7,128,0,96,7,128,0,96,7,128,0,224, - 7,128,0,224,7,128,0,224,7,128,1,224,7,128,3,224, - 7,128,7,224,255,255,255,224,255,255,255,224,36,35,175,41, - 3,0,255,224,0,63,240,7,224,0,62,0,7,224,0,126, - 0,7,240,0,94,0,7,240,0,94,0,6,240,0,222,0, - 6,248,0,222,0,6,248,0,158,0,6,120,0,158,0,6, - 120,1,158,0,6,124,1,158,0,6,60,1,30,0,6,60, - 1,30,0,6,62,3,30,0,6,62,3,30,0,6,30,2, - 30,0,6,30,2,30,0,6,31,6,30,0,6,15,4,30, - 0,6,15,4,30,0,6,15,140,30,0,6,7,140,30,0, - 6,7,136,30,0,6,7,200,30,0,6,7,216,30,0,6, - 3,216,30,0,6,3,208,30,0,6,3,240,30,0,6,1, - 240,30,0,6,1,240,30,0,6,1,224,30,0,6,0,224, - 30,0,15,0,224,30,0,31,128,192,62,0,255,240,195,255, - 240,33,36,180,38,3,255,255,192,7,255,128,7,192,0,252, - 0,7,224,0,120,0,7,240,0,48,0,7,240,0,48,0, - 7,248,0,48,0,6,248,0,48,0,6,124,0,48,0,6, - 126,0,48,0,6,62,0,48,0,6,31,0,48,0,6,31, - 0,48,0,6,15,128,48,0,6,15,192,48,0,6,7,192, - 48,0,6,3,224,48,0,6,3,224,48,0,6,1,240,48, - 0,6,1,248,48,0,6,0,248,48,0,6,0,124,48,0, - 6,0,124,48,0,6,0,62,48,0,6,0,63,48,0,6, - 0,31,48,0,6,0,15,176,0,6,0,15,176,0,6,0, - 7,240,0,6,0,7,240,0,6,0,3,240,0,6,0,1, - 240,0,6,0,1,240,0,15,0,0,240,0,31,128,0,112, - 0,255,240,0,112,0,0,0,0,48,0,28,36,144,33,3, - 0,0,31,128,0,0,240,240,0,1,192,56,0,3,128,28, - 0,7,0,14,0,14,0,7,0,30,0,7,128,28,0,3, - 128,60,0,3,192,60,0,3,192,124,0,3,224,120,0,1, - 224,120,0,1,224,248,0,1,224,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,120,0,1, - 224,120,0,1,224,124,0,3,224,124,0,3,224,60,0,3, - 192,60,0,3,192,30,0,7,128,14,0,7,0,14,0,15, - 0,7,0,14,0,3,128,28,0,0,224,112,0,0,127,224, - 0,28,35,140,33,3,0,255,255,240,0,7,192,30,0,7, - 128,7,128,7,128,7,192,7,128,3,224,7,128,3,224,7, - 128,1,240,7,128,1,240,7,128,1,240,7,128,1,240,7, - 128,1,240,7,128,1,240,7,128,3,224,7,128,3,224,7, - 128,7,192,7,128,7,128,7,128,30,0,7,255,248,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,128,0,0,7, - 128,0,0,7,128,0,0,7,128,0,0,7,192,0,0,255, - 254,0,0,28,44,176,33,3,248,0,31,128,0,0,240,240, - 0,1,192,56,0,3,128,28,0,7,0,14,0,14,0,7, - 0,30,0,7,128,28,0,3,128,60,0,3,192,60,0,3, - 192,124,0,3,224,120,0,1,224,120,0,1,224,248,0,1, - 224,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,248,0,1,240,248,0,1,240,248,0,1, - 240,248,0,1,240,120,0,1,224,120,0,1,224,124,0,3, - 224,124,0,3,224,60,15,3,192,60,25,195,192,30,48,199, - 128,14,96,231,128,15,96,111,0,7,96,126,0,3,224,124, - 16,0,240,120,16,0,127,240,16,0,0,112,16,0,0,112, - 16,0,0,120,48,0,0,120,32,0,0,124,96,0,0,63, - 192,0,0,63,192,0,0,15,0,30,35,140,35,3,0,255, - 255,248,0,7,192,62,0,7,128,15,128,7,128,7,192,7, - 128,7,192,7,128,3,224,7,128,3,224,7,128,3,224,7, - 128,3,224,7,128,3,224,7,128,3,192,7,128,7,192,7, - 128,7,128,7,128,15,0,7,128,60,0,7,255,224,0,7, - 128,240,0,7,128,56,0,7,128,28,0,7,128,30,0,7, - 128,30,0,7,128,31,0,7,128,15,0,7,128,15,0,7, - 128,15,0,7,128,15,0,7,128,15,128,7,128,15,132,7, - 128,15,132,7,128,15,132,7,128,15,132,7,128,15,140,7, - 128,7,248,7,192,7,248,255,254,3,240,23,36,108,30,4, - 0,3,240,0,14,28,24,56,7,24,48,3,248,112,1,248, - 96,0,248,224,0,120,224,0,56,224,0,56,224,0,56,224, - 0,24,240,0,24,248,0,8,126,0,8,127,192,0,63,240, - 0,31,252,0,15,255,128,3,255,224,0,255,240,128,63,248, - 128,7,252,128,1,252,192,0,126,192,0,62,192,0,30,224, - 0,14,224,0,14,240,0,14,240,0,14,248,0,12,252,0, - 28,222,0,24,199,0,48,195,128,96,128,255,192,28,35,140, - 35,4,0,255,255,255,240,254,15,131,240,248,15,1,240,240, - 15,0,240,224,15,0,112,192,15,0,112,192,15,0,48,192, - 15,0,48,192,15,0,48,128,15,0,16,128,15,0,16,128, - 15,0,16,128,15,0,16,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,0,0,0,15,0,0,0, - 15,0,0,0,15,0,0,0,15,128,0,3,255,254,0,34, - 35,175,39,3,0,255,252,3,255,192,7,192,0,126,0,7, - 128,0,60,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,7,128,0,24, - 0,7,128,0,24,0,7,128,0,24,0,7,128,0,24,0, - 7,128,0,24,0,7,128,0,24,0,7,128,0,24,0,7, - 128,0,24,0,7,128,0,24,0,7,128,0,24,0,7,128, - 0,24,0,7,128,0,24,0,7,128,0,24,0,7,128,0, - 24,0,7,128,0,24,0,7,128,0,24,0,3,192,0,24, - 0,3,192,0,48,0,3,192,0,48,0,1,224,0,96,0, - 0,224,0,96,0,0,112,0,192,0,0,60,3,128,0,0, - 15,254,0,0,34,36,180,37,2,255,255,255,7,255,192,15, - 240,0,126,0,3,224,0,56,0,3,224,0,56,0,3,240, - 0,48,0,1,240,0,48,0,1,240,0,48,0,0,248,0, - 96,0,0,248,0,96,0,0,248,0,96,0,0,124,0,192, - 0,0,124,0,192,0,0,124,0,192,0,0,62,0,192,0, - 0,62,1,128,0,0,62,1,128,0,0,31,1,128,0,0, - 31,3,0,0,0,31,3,0,0,0,15,131,0,0,0,15, - 134,0,0,0,15,134,0,0,0,7,198,0,0,0,7,204, - 0,0,0,3,204,0,0,0,3,236,0,0,0,3,232,0, - 0,0,1,248,0,0,0,1,248,0,0,0,1,248,0,0, - 0,0,240,0,0,0,0,240,0,0,0,0,240,0,0,0, - 0,96,0,0,0,0,96,0,0,0,0,96,0,0,49,36, - 252,52,2,255,255,254,127,255,15,255,128,15,240,15,248,1, - 248,0,3,224,3,240,0,240,0,3,224,3,224,0,96,0, - 3,224,3,240,0,96,0,1,240,3,240,0,96,0,1,240, - 3,240,0,192,0,1,240,3,240,0,192,0,0,240,7,248, - 0,192,0,0,248,6,248,0,128,0,0,248,6,248,1,128, - 0,0,248,6,124,1,128,0,0,120,14,124,1,128,0,0, - 124,12,124,3,0,0,0,124,12,62,3,0,0,0,60,28, - 62,3,0,0,0,60,24,62,6,0,0,0,60,24,30,6, - 0,0,0,62,24,31,6,0,0,0,30,56,31,12,0,0, - 0,30,48,31,12,0,0,0,30,48,15,140,0,0,0,15, - 48,15,152,0,0,0,15,112,15,152,0,0,0,15,96,7, - 216,0,0,0,15,96,7,208,0,0,0,7,224,7,240,0, - 0,0,7,192,3,240,0,0,0,7,192,3,240,0,0,0, - 3,192,3,224,0,0,0,3,192,3,224,0,0,0,3,128, - 1,224,0,0,0,1,128,1,192,0,0,0,1,128,1,192, - 0,0,0,1,128,0,192,0,0,0,1,0,0,128,0,0, - 33,35,175,36,2,0,127,255,31,255,0,3,240,3,240,0, - 1,240,1,224,0,1,240,1,192,0,0,248,1,128,0,0, - 120,3,0,0,0,124,3,0,0,0,60,6,0,0,0,62, - 14,0,0,0,31,12,0,0,0,31,24,0,0,0,15,152, - 0,0,0,15,176,0,0,0,7,224,0,0,0,7,224,0, - 0,0,3,224,0,0,0,3,224,0,0,0,1,240,0,0, - 0,3,240,0,0,0,3,248,0,0,0,6,248,0,0,0, - 14,124,0,0,0,12,124,0,0,0,24,62,0,0,0,56, - 62,0,0,0,48,31,0,0,0,96,31,0,0,0,224,15, - 128,0,0,192,15,128,0,1,128,7,192,0,3,128,7,192, - 0,3,128,3,224,0,7,128,3,240,0,31,192,3,248,0, - 255,248,63,255,128,32,35,140,35,2,0,255,254,15,255,15, - 224,1,248,7,224,0,240,3,224,0,96,3,240,0,64,1, - 240,0,192,1,248,0,128,0,248,0,128,0,252,1,0,0, - 124,3,0,0,62,2,0,0,62,6,0,0,31,4,0,0, - 31,12,0,0,15,136,0,0,7,216,0,0,7,208,0,0, - 3,240,0,0,3,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,224,0,0,1,224,0,0,1,224,0,0,1,224,0,0, - 1,240,0,0,127,255,192,26,35,140,32,3,0,63,255,255, - 192,63,128,15,128,62,0,31,128,60,0,31,0,56,0,62, - 0,56,0,62,0,48,0,124,0,48,0,252,0,96,0,248, - 0,96,1,240,0,64,3,240,0,64,3,224,0,0,7,192, - 0,0,7,192,0,0,15,128,0,0,31,128,0,0,31,0, - 0,0,62,0,0,0,126,0,0,0,124,0,0,0,252,0, - 0,0,248,0,64,1,240,0,64,3,240,0,64,3,224,0, - 192,7,192,0,192,7,192,0,192,15,128,1,192,31,128,1, - 192,31,0,3,192,62,0,3,192,126,0,7,192,124,0,15, - 128,248,0,63,128,255,255,255,128,10,45,90,19,6,247,255, - 192,254,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240, - 0,240,0,240,0,254,0,255,192,16,46,92,22,3,246,192, - 0,192,0,192,0,96,0,96,0,96,0,48,0,48,0,48, - 0,24,0,24,0,24,0,12,0,12,0,12,0,6,0,6, - 0,6,0,2,0,3,0,3,0,3,0,1,128,1,128,1, - 128,0,192,0,192,0,192,0,96,0,96,0,96,0,48,0, - 48,0,48,0,24,0,24,0,24,0,12,0,12,0,12,0, - 6,0,6,0,6,0,3,0,3,0,3,10,45,90,19,3, - 247,255,192,31,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,31,192,255,192,22,18,54,28,3, - 17,0,16,0,0,48,0,0,56,0,0,120,0,0,108,0, - 0,206,0,1,198,0,1,131,0,3,3,0,7,1,128,6, - 1,192,14,0,192,28,0,96,24,0,112,56,0,48,48,0, - 56,96,0,24,224,0,12,25,2,8,25,0,248,255,255,255, - 128,255,255,255,128,8,9,9,22,4,25,224,240,240,120,60, - 12,6,3,1,21,22,66,24,2,1,7,248,0,24,30,0, - 16,15,0,48,7,0,56,7,128,60,7,128,62,7,128,28, - 7,128,0,7,128,0,31,128,3,247,128,31,7,128,60,7, - 128,120,7,128,248,7,128,240,7,128,240,15,136,240,15,136, - 240,23,136,248,23,152,120,39,240,63,195,240,22,35,105,25, - 1,0,255,0,0,15,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,31,128,15,32,224,15, - 64,240,15,192,112,15,128,120,15,128,120,15,0,120,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,60, - 15,0,60,15,0,60,15,0,120,15,0,120,15,128,120,13, - 128,112,12,192,224,12,96,224,8,63,128,17,22,66,21,2, - 1,7,252,0,14,6,0,28,3,0,56,3,0,56,3,128, - 120,15,128,120,15,128,240,15,128,240,7,0,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,128,120,0, - 128,120,0,128,56,1,0,56,1,0,28,2,0,14,6,0, - 7,248,0,22,35,105,25,2,0,0,63,192,0,3,192,0, - 3,192,0,3,192,0,3,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 15,227,192,28,19,192,60,11,192,56,15,192,120,7,192,120, - 7,192,120,3,192,240,3,192,240,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,120,3,192, - 120,3,192,120,7,192,56,7,192,60,15,192,28,27,192,7, - 243,252,18,22,66,22,2,1,7,248,0,14,28,0,28,14, - 0,56,15,0,56,7,128,120,7,128,120,7,128,240,7,192, - 240,7,192,240,7,192,255,255,192,240,0,0,240,0,0,240, - 0,0,240,0,128,120,0,128,120,0,128,120,1,128,56,1, - 0,28,3,0,14,6,0,7,252,0,16,35,70,16,1,0, - 0,248,3,198,7,3,15,7,14,15,14,15,30,15,30,6, - 30,0,30,0,30,0,30,0,30,0,255,240,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,255,240,23,33,99,27,3,246,7,252,124,30, - 14,206,60,7,142,124,7,158,120,3,222,120,3,192,120,3, - 192,120,3,192,120,3,192,120,3,192,60,7,128,28,7,128, - 14,14,0,3,248,0,28,0,0,96,0,0,192,0,0,192, - 0,0,224,0,0,255,255,128,127,255,224,15,255,240,28,0, - 112,48,0,56,96,0,24,192,0,24,192,0,24,192,0,24, - 192,0,48,96,0,48,120,0,96,30,7,192,3,254,0,24, - 35,105,27,1,0,255,0,0,15,0,0,15,0,0,15,0, - 0,15,0,0,15,0,0,15,0,0,15,0,0,15,0,0, - 15,0,0,15,0,0,15,0,0,15,0,0,15,15,192,15, - 48,240,15,96,112,15,64,120,15,128,120,15,128,120,15,0, - 120,15,0,120,15,0,120,15,0,120,15,0,120,15,0,120, - 15,0,120,15,0,120,15,0,120,15,0,120,15,0,120,15, - 0,120,15,0,120,15,0,120,15,0,120,255,195,255,10,34, - 68,14,2,0,28,0,62,0,62,0,62,0,28,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,254,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,30,0,30,0,30,0,30,0,30,0, - 30,0,30,0,30,0,255,192,13,45,90,16,254,245,0,112, - 0,248,0,248,0,248,0,112,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,15,248,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120, - 0,120,0,120,0,120,0,120,0,120,240,120,240,120,240,112, - 224,240,96,224,115,192,31,0,22,35,105,24,1,0,254,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,15,252,30,3,224,30,1,128,30,3, - 0,30,6,0,30,6,0,30,12,0,30,24,0,30,48,0, - 30,120,0,30,248,0,30,188,0,31,190,0,31,30,0,30, - 15,0,30,15,128,30,7,128,30,3,192,30,3,224,30,1, - 224,30,3,240,255,207,252,11,35,70,13,1,0,254,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,255,224,36,22,110,40,2,1,254,63,129,252,0,30,97, - 195,14,0,30,193,230,15,0,30,128,228,7,128,31,0,248, - 7,128,31,0,248,7,128,30,0,240,7,128,30,0,240,7, - 128,30,0,240,7,128,30,0,240,7,128,30,0,240,7,128, - 30,0,240,7,128,30,0,240,7,128,30,0,240,7,128,30, - 0,240,7,128,30,0,240,7,128,30,0,240,7,128,30,0, - 240,7,128,30,0,240,7,128,30,0,240,7,128,30,0,240, - 7,128,255,199,254,63,240,23,22,66,27,2,1,254,31,128, - 30,97,224,30,192,224,30,128,240,31,0,240,31,0,240,30, - 0,240,30,0,240,30,0,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,255,199,254,19, - 22,66,24,2,1,3,252,0,14,14,0,28,7,0,60,3, - 128,56,3,192,120,3,192,120,1,224,248,1,224,240,1,224, - 240,1,224,240,1,224,240,1,224,240,1,224,240,1,224,240, - 1,224,120,1,224,120,3,192,56,3,192,60,3,128,28,7, - 0,14,14,0,3,252,0,22,33,99,25,1,246,254,63,128, - 30,97,192,30,192,224,31,128,112,31,0,120,31,0,120,30, - 0,120,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,120,30,0,120, - 31,0,120,31,0,112,31,128,224,30,192,192,30,127,128,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,30,0, - 0,30,0,0,30,0,0,30,0,0,30,0,0,255,224,0, - 22,33,99,25,2,246,7,240,64,28,24,192,28,12,192,56, - 12,192,120,7,192,120,7,192,120,3,192,240,3,192,240,3, - 192,240,3,192,240,3,192,240,3,192,240,3,192,240,3,192, - 240,3,192,120,3,192,120,3,192,120,7,192,56,7,192,60, - 15,192,28,27,192,7,243,192,0,3,192,0,3,192,0,3, - 192,0,3,192,0,3,192,0,3,192,0,3,192,0,3,192, - 0,3,192,0,3,192,0,31,252,17,22,66,20,2,1,254, - 31,0,30,35,128,30,67,128,30,207,128,30,143,128,31,143, - 0,31,2,0,31,0,0,31,0,0,30,0,0,30,0,0, - 30,0,0,30,0,0,30,0,0,30,0,0,30,0,0,30, - 0,0,30,0,0,30,0,0,30,0,0,30,0,0,255,192, - 0,17,22,66,22,3,1,31,226,0,112,50,0,96,30,0, - 192,14,0,192,6,0,224,2,0,240,2,0,252,0,0,127, - 0,0,63,192,0,31,248,0,7,254,0,128,255,0,192,31, - 0,192,7,128,224,3,128,224,1,128,240,1,128,240,1,128, - 248,3,0,198,7,0,131,252,0,14,32,64,17,1,0,2, - 0,2,0,2,0,2,0,2,0,6,0,6,0,6,0,14, - 0,30,0,255,248,30,0,30,0,30,0,30,0,30,0,30, - 0,30,0,30,0,30,0,30,0,30,0,30,0,30,0,30, - 0,30,4,30,4,30,4,30,12,15,8,15,248,7,240,23, - 22,66,27,2,0,254,7,240,30,0,240,30,0,240,30,0, - 240,30,0,240,30,0,240,30,0,240,30,0,240,30,0,240, - 30,0,240,30,0,240,30,0,240,30,0,240,30,0,240,30, - 0,240,30,1,240,30,1,240,30,1,240,30,2,240,14,6, - 240,15,12,240,3,240,254,24,23,69,26,1,255,255,225,255, - 31,0,124,15,0,48,15,0,48,15,0,32,7,128,96,7, - 128,96,3,192,64,3,192,192,1,192,192,1,224,128,1,225, - 128,0,241,128,0,241,0,0,113,0,0,123,0,0,58,0, - 0,62,0,0,62,0,0,28,0,0,28,0,0,12,0,0, - 8,0,36,23,115,38,1,255,255,231,255,31,240,31,1,248, - 7,128,31,0,240,3,0,15,0,120,3,0,15,0,120,2, - 0,7,128,120,6,0,7,128,252,6,0,3,128,252,4,0, - 3,192,188,12,0,3,192,158,12,0,1,225,158,8,0,1, - 225,14,24,0,0,225,15,24,0,0,243,15,16,0,0,242, - 7,48,0,0,114,7,176,0,0,126,7,160,0,0,62,3, - 224,0,0,60,3,192,0,0,28,1,192,0,0,28,1,192, - 0,0,24,1,128,0,0,8,0,128,0,22,22,66,26,2, - 0,255,207,248,31,3,192,31,3,128,15,3,0,7,131,0, - 7,198,0,3,196,0,1,236,0,1,248,0,0,240,0,0, - 112,0,0,120,0,0,124,0,0,220,0,1,158,0,1,15, - 0,3,15,0,6,7,128,4,7,192,12,3,192,28,3,224, - 255,15,252,24,33,99,26,1,245,255,225,255,31,0,120,15, - 0,48,15,0,48,7,0,32,7,128,96,7,128,96,3,192, - 64,3,192,192,3,192,192,1,224,128,1,225,128,0,225,128, - 0,241,128,0,241,0,0,115,0,0,123,0,0,122,0,0, - 62,0,0,62,0,0,60,0,0,28,0,0,28,0,0,24, - 0,0,24,0,0,24,0,24,48,0,60,48,0,60,48,0, - 60,96,0,56,96,0,31,192,0,15,0,0,17,22,66,22, - 2,0,255,255,128,248,7,128,224,15,0,224,31,0,192,30, - 0,192,60,0,128,124,0,128,120,0,0,240,0,1,240,0, - 1,224,0,3,192,0,7,192,0,7,128,128,15,0,128,31, - 0,128,30,0,128,60,1,128,124,1,128,120,3,128,240,15, - 128,255,255,128,11,45,90,21,6,247,0,224,1,128,7,0, - 14,0,12,0,28,0,28,0,28,0,28,0,30,0,30,0, - 14,0,14,0,15,0,15,0,7,0,7,0,7,0,7,0, - 6,0,4,0,24,0,224,0,56,0,12,0,6,0,6,0, - 7,0,7,0,7,0,15,0,15,0,15,0,14,0,30,0, - 30,0,28,0,28,0,28,0,28,0,12,0,12,0,6,0, - 3,128,0,224,2,46,46,14,6,246,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,45,90,20,4,247,192,0, - 112,0,28,0,12,0,6,0,7,0,7,0,7,0,7,0, - 15,0,15,0,14,0,30,0,30,0,30,0,28,0,28,0, - 28,0,28,0,12,0,4,0,3,0,0,224,3,0,6,0, - 12,0,28,0,28,0,28,0,28,0,30,0,30,0,30,0, - 14,0,15,0,15,0,7,0,7,0,7,0,7,0,6,0, - 6,0,12,0,56,0,224,0,28,9,36,32,2,8,31,128, - 0,192,127,240,0,96,127,252,0,48,227,255,0,48,192,127, - 224,48,192,31,248,112,192,3,255,224,96,0,255,192,48,0, - 31,128,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01type[1163] U8G_FONT_SECTION("u8g_font_p01type") = { - 0,5,6,0,254,4,1,81,2,129,32,255,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,1,5,5,2,0, - 255,128,0,128,128,128,255,255,255,255,1,5,5,3,1,255, - 128,128,0,128,128,255,255,255,255,5,5,5,6,0,255,40, - 80,160,80,40,3,2,2,4,0,0,224,32,3,1,1,4, - 0,1,224,255,255,255,3,5,5,4,0,255,64,224,64,0, - 224,255,255,255,255,255,1,1,1,2,0,1,128,255,255,255, - 5,5,5,6,0,255,160,80,40,80,160,255,255,255,4,5, - 5,5,0,255,32,0,96,128,112,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 3,3,3,4,0,0,160,64,160,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,5,5,4,0,255,64,0, - 224,0,64,255,255,255,255,255,255,255,255}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 1 dx= 5 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 4 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typen[186] U8G_FONT_SECTION("u8g_font_p01typen") = { - 0,5,6,0,254,5,0,0,0,0,42,58,0,4,255,5, - 0,3,3,3,4,0,0,160,64,160,3,3,3,4,0,0, - 64,224,64,2,2,2,3,0,255,64,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,4,4,4,5,0,255,16, - 32,64,128,3,5,5,4,0,255,96,160,160,160,192,1,5, - 5,2,0,255,128,128,128,128,128,3,5,5,4,0,255,192, - 32,224,128,96,3,5,5,4,0,255,192,32,192,32,192,3, - 5,5,4,0,255,160,160,224,32,32,3,5,5,4,0,255, - 96,128,224,32,192,3,5,5,4,0,255,96,128,224,160,192, - 3,5,5,4,0,255,224,32,32,64,64,3,5,5,4,0, - 255,96,160,224,160,192,3,5,5,4,0,255,96,160,224,32, - 192,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-P01type-Medium-R-Normal--8-80-72-72-P-35-ISO10646-1 - Copyright: Copyright Patrick Lauke 2012 - Capital A Height: 4, '1' Height: 5 - Calculated Max Values w= 5 h= 5 x= 1 y= 2 dx= 6 dy= 0 ascent= 4 len= 5 - Font Bounding box w= 5 h= 6 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 4 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_p01typer[938] U8G_FONT_SECTION("u8g_font_p01typer") = { - 0,5,6,0,254,4,1,81,2,129,32,127,254,4,254,5, - 254,0,0,0,4,0,0,1,5,5,3,1,255,128,128,128, - 0,128,3,2,2,4,0,2,160,160,5,5,5,6,0,255, - 80,248,80,248,80,255,4,4,4,5,0,0,144,32,64,144, - 4,5,5,5,0,255,64,128,80,160,80,1,2,2,2,0, - 2,128,128,2,5,5,3,0,255,64,128,128,128,64,2,5, - 5,3,0,255,128,64,64,64,128,3,3,3,4,0,0,160, - 64,160,3,3,3,4,0,0,64,224,64,2,2,2,3,0, - 255,64,128,3,1,1,4,0,1,224,1,1,1,2,0,0, - 128,4,4,4,5,0,255,16,32,64,128,3,5,5,4,0, - 255,96,160,160,160,192,1,5,5,2,0,255,128,128,128,128, - 128,3,5,5,4,0,255,192,32,224,128,96,3,5,5,4, - 0,255,192,32,192,32,192,3,5,5,4,0,255,160,160,224, - 32,32,3,5,5,4,0,255,96,128,224,32,192,3,5,5, - 4,0,255,96,128,224,160,192,3,5,5,4,0,255,224,32, - 32,64,64,3,5,5,4,0,255,96,160,224,160,192,3,5, - 5,4,0,255,96,160,224,32,192,1,3,3,2,0,0,128, - 0,128,2,4,4,3,0,255,64,0,64,128,3,5,5,4, - 0,255,32,64,128,64,32,3,3,3,4,0,0,224,0,224, - 3,5,5,4,0,255,128,64,32,64,128,4,5,5,5,0, - 255,224,16,96,0,64,4,5,5,5,0,255,112,144,176,128, - 224,4,4,4,5,0,0,112,144,240,144,4,5,5,5,0, - 255,112,144,224,144,224,4,4,4,5,0,0,112,128,128,240, - 4,4,4,5,0,0,224,144,144,240,4,5,5,5,0,255, - 112,128,224,128,112,4,4,4,5,0,0,240,128,224,128,4, - 4,4,5,0,0,112,128,144,224,4,4,4,5,0,0,144, - 144,240,144,1,4,4,2,0,0,128,128,128,128,2,4,4, - 3,0,0,64,64,64,128,4,4,4,5,0,0,144,144,224, - 144,4,4,4,5,0,0,128,128,128,112,4,4,4,5,0, - 0,144,240,144,144,4,4,4,5,0,0,144,208,176,144,4, - 4,4,5,0,0,112,144,144,224,4,4,4,5,0,0,112, - 144,224,128,4,4,4,5,0,0,112,144,160,208,4,4,4, - 5,0,0,112,144,224,144,4,5,5,5,0,255,112,128,240, - 16,224,5,4,4,6,0,0,248,32,32,32,4,4,4,5, - 0,0,144,144,144,224,4,4,4,5,0,0,144,144,144,96, - 5,4,4,6,0,0,168,168,168,216,4,4,4,5,0,0, - 144,144,96,144,4,4,4,5,0,0,144,240,16,224,4,4, - 4,5,0,0,240,32,64,240,2,5,5,3,0,255,192,128, - 128,128,192,4,4,4,5,0,255,128,64,32,16,2,5,5, - 3,0,255,192,64,64,64,192,255,4,1,1,5,0,255,240, - 255,3,3,3,4,0,0,96,160,224,3,4,4,4,0,0, - 128,224,160,192,3,3,3,4,0,0,96,128,224,3,4,4, - 4,0,0,32,96,160,224,3,5,5,4,0,254,96,160,224, - 128,96,3,4,4,4,0,0,96,64,224,64,3,5,5,4, - 0,254,96,160,224,32,192,3,4,4,4,0,0,128,192,160, - 160,1,3,3,2,0,0,128,128,128,2,5,5,3,0,254, - 64,64,64,64,128,3,4,4,4,0,0,128,160,192,160,1, - 4,4,2,0,0,128,128,128,128,5,3,3,6,0,0,80, - 168,168,3,3,3,4,0,0,192,160,160,3,3,3,4,0, - 0,96,160,192,3,5,5,4,0,254,96,160,192,128,128,3, - 5,5,4,0,254,192,160,96,32,32,3,3,3,4,0,0, - 96,128,128,3,5,5,4,0,254,96,128,224,32,192,3,4, - 4,4,0,0,64,224,64,32,3,3,3,4,0,0,160,160, - 96,3,3,3,4,0,0,160,160,64,5,3,3,6,0,0, - 168,168,80,3,3,3,4,0,0,160,64,160,3,5,5,4, - 0,254,160,160,96,32,192,3,3,3,4,0,0,224,64,224, - 3,5,5,4,0,255,96,64,128,64,96,1,5,5,2,0, - 255,128,128,128,128,128,3,5,5,4,0,255,192,64,32,64, - 192,4,2,2,5,0,1,80,160,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micro[1140] U8G_FONT_SECTION("u8g_font_pixelle_micro") = { - 0,6,8,255,254,5,1,97,2,188,32,255,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 6 x= 0 y= 1 dx= 4 dy= 0 ascent= 6 len= 6 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micron[189] U8G_FONT_SECTION("u8g_font_pixelle_micron") = { - 0,6,8,255,254,5,0,0,0,0,42,58,0,6,255,5, - 0,3,4,4,4,0,0,64,224,64,160,3,3,3,4,0, - 0,64,224,64,1,2,2,2,0,255,128,128,3,1,1,4, - 0,1,224,1,1,1,2,0,0,128,3,6,6,4,0,0, - 32,32,64,64,128,128,3,5,5,4,0,0,64,160,224,160, - 64,3,5,5,4,0,0,192,64,64,64,224,3,5,5,4, - 0,0,64,160,32,64,224,3,5,5,4,0,0,192,32,64, - 32,192,3,5,5,4,0,0,160,160,224,32,32,3,5,5, - 4,0,0,224,128,224,32,192,3,5,5,4,0,0,64,160, - 192,160,64,3,5,5,4,0,0,224,32,64,64,128,3,5, - 5,4,0,0,64,160,64,160,64,3,5,5,4,0,0,64, - 160,96,160,64,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Pixelle (Micro)-Medium-R-Normal--8-80-72-72-P-32-ISO10646-1 - Copyright: Copyright rdonaghy 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 4 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 6 h= 8 x=-1 y=-2 - Calculated Min Values x=-1 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 6 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_pixelle_micror[1012] U8G_FONT_SECTION("u8g_font_pixelle_micror") = { - 0,6,8,255,254,5,1,97,2,188,32,127,254,6,254,6, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,0, - 80,248,80,248,80,3,7,7,4,0,255,64,224,128,224,32, - 224,64,4,4,4,5,0,0,144,32,64,144,4,5,5,5, - 0,0,96,64,208,160,208,1,2,2,2,0,3,128,128,2, - 7,7,3,0,255,64,128,128,128,128,128,64,2,7,7,3, - 0,255,128,64,64,64,64,64,128,3,4,4,4,0,0,64, - 224,64,160,3,3,3,4,0,0,64,224,64,1,2,2,2, - 0,255,128,128,3,1,1,4,0,1,224,1,1,1,2,0, - 0,128,3,6,6,4,0,0,32,32,64,64,128,128,3,5, - 5,4,0,0,64,160,224,160,64,3,5,5,4,0,0,192, - 64,64,64,224,3,5,5,4,0,0,64,160,32,64,224,3, - 5,5,4,0,0,192,32,64,32,192,3,5,5,4,0,0, - 160,160,224,32,32,3,5,5,4,0,0,224,128,224,32,192, - 3,5,5,4,0,0,64,160,192,160,64,3,5,5,4,0, - 0,224,32,64,64,128,3,5,5,4,0,0,64,160,64,160, - 64,3,5,5,4,0,0,64,160,96,160,64,1,3,3,2, - 0,0,128,0,128,1,4,4,2,0,255,128,0,128,128,2, - 3,3,3,0,0,64,128,64,3,3,3,4,0,0,224,0, - 224,2,3,3,3,0,0,128,64,128,3,5,5,4,0,0, - 64,160,32,64,64,5,6,6,6,0,0,112,136,168,184,128, - 120,3,5,5,4,0,0,64,160,224,160,160,3,5,5,4, - 0,0,192,160,192,160,192,3,5,5,4,0,0,64,160,128, - 160,64,3,5,5,4,0,0,192,160,160,160,192,3,5,5, - 4,0,0,224,128,192,128,224,3,5,5,4,0,0,224,128, - 192,128,128,3,5,5,4,0,0,64,160,128,160,96,3,5, - 5,4,0,0,160,160,224,160,160,3,5,5,4,0,0,224, - 64,64,64,224,3,5,5,4,0,0,32,32,32,160,64,3, - 5,5,4,0,0,160,160,192,160,160,3,5,5,4,0,0, - 128,128,128,128,224,3,5,5,4,0,0,160,224,224,160,160, - 3,5,5,4,0,0,160,224,224,224,160,3,5,5,4,0, - 0,64,160,160,160,64,3,5,5,4,0,0,192,160,192,128, - 128,3,5,5,4,0,0,64,160,160,224,96,3,5,5,4, - 0,0,192,160,192,160,160,3,5,5,4,0,0,96,128,64, - 32,224,3,5,5,4,0,0,224,64,64,64,64,3,5,5, - 4,0,0,160,160,160,160,64,3,5,5,4,0,0,160,160, - 160,64,64,3,5,5,4,0,0,160,160,224,224,160,3,5, - 5,4,0,0,160,160,64,160,160,3,5,5,4,0,0,160, - 160,64,64,64,3,5,5,4,0,0,224,32,64,128,224,2, - 7,7,3,0,255,192,128,128,128,128,128,192,3,6,6,4, - 0,0,128,128,64,64,32,32,2,7,7,3,0,255,192,64, - 64,64,64,64,192,3,2,2,4,0,3,64,160,3,1,1, - 4,0,0,224,1,2,2,2,0,4,128,128,3,3,3,4, - 0,0,96,160,96,3,5,5,4,0,0,128,128,192,160,192, - 3,3,3,4,0,0,96,128,96,3,5,5,4,0,0,32, - 32,96,160,96,3,3,3,4,0,0,96,224,96,2,5,5, - 3,0,0,64,128,192,128,128,3,5,5,4,0,254,96,160, - 96,160,64,3,5,5,4,0,0,128,128,192,160,160,1,5, - 5,2,0,0,128,0,128,128,128,3,7,7,3,255,254,32, - 0,32,32,32,160,64,3,6,6,4,0,0,128,128,128,160, - 192,160,1,6,6,2,0,0,128,128,128,128,128,128,5,3, - 3,6,0,0,208,168,168,3,3,3,4,0,0,192,160,160, - 3,3,3,4,0,0,64,160,64,3,5,5,4,0,254,192, - 160,192,128,128,3,5,5,4,0,254,96,160,96,32,32,3, - 3,3,4,0,0,192,160,128,3,3,3,4,0,0,96,64, - 192,3,5,5,4,0,0,64,64,224,64,64,3,3,3,4, - 0,0,160,160,64,3,3,3,4,0,0,160,64,64,5,3, - 3,6,0,0,168,168,208,3,3,3,4,0,0,160,64,160, - 3,5,5,4,0,254,160,160,96,160,64,3,3,3,4,0, - 0,224,64,224,3,7,7,4,0,255,32,64,64,128,64,64, - 32,1,7,7,2,0,255,128,128,128,128,128,128,128,3,7, - 7,4,0,255,128,64,64,32,64,64,128,4,2,2,5,0, - 1,80,160,255}; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 8 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10[2560] U8G_FONT_SECTION("u8g_font_profont10") = { - 0,5,9,0,254,6,1,126,2,248,32,255,254,8,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0,0,0,0,5,0,0,0,0,0,5,0,0,2,3, - 3,5,0,255,64,64,128,3,9,9,5,1,254,32,64,64, - 224,64,64,64,64,128,4,3,3,5,0,255,80,80,160,5, - 1,1,5,0,0,168,3,5,5,5,1,1,64,224,64,64, - 64,3,5,5,5,1,1,64,224,64,224,64,3,2,2,5, - 1,5,64,160,5,6,6,5,0,0,120,208,224,112,248,112, - 4,8,8,5,0,0,80,32,112,128,96,16,144,96,2,3, - 3,5,0,0,64,128,64,4,6,6,5,0,0,112,160,176, - 160,160,112,0,0,0,5,0,0,0,0,0,5,0,0,0, - 0,0,5,0,0,0,0,0,5,0,0,2,3,3,5,2, - 3,64,128,128,2,3,3,5,1,3,64,64,128,4,3,3, - 5,0,3,80,160,160,4,3,3,5,0,3,80,80,160,4, - 4,4,5,0,1,96,240,240,96,2,1,1,5,1,2,192, - 5,1,1,5,0,2,248,4,2,2,5,0,5,80,160,5, - 3,3,5,0,3,248,88,88,4,7,7,5,0,0,80,32, - 0,112,224,16,224,2,3,3,5,0,0,128,64,128,4,4, - 4,5,0,0,112,176,160,80,0,0,0,5,0,0,0,0, - 0,5,0,0,4,8,8,5,0,0,80,0,144,144,160,64, - 64,64,0,0,0,5,0,0,1,6,6,5,2,0,128,0, - 128,128,128,128,4,6,6,5,0,255,32,96,176,192,112,64, - 4,6,6,5,0,0,96,128,192,128,144,224,4,4,4,5, - 0,0,144,96,96,144,3,6,6,5,1,0,160,64,224,64, - 224,64,1,8,8,5,2,255,128,128,128,0,0,128,128,128, - 4,8,8,5,0,255,96,144,64,160,80,32,144,96,2,1, - 1,5,1,5,192,4,6,6,5,0,0,192,32,208,208,32, - 192,3,5,5,5,1,2,96,160,96,0,224,5,3,3,5, - 0,0,72,144,72,4,2,2,5,0,1,240,16,3,1,1, - 5,0,2,224,4,5,5,5,0,1,192,32,208,208,176,2, - 1,1,5,1,5,192,3,3,3,5,1,3,64,160,64,3, - 4,4,5,0,0,64,224,64,224,2,3,3,5,1,4,128, - 64,192,2,3,3,5,1,4,192,64,192,2,1,1,5,2, - 5,192,4,5,5,5,0,255,160,160,160,208,128,4,6,6, - 5,0,0,112,176,176,112,48,48,1,1,1,5,2,2,128, - 2,2,2,5,1,254,192,192,2,3,3,5,1,4,192,64, - 64,3,5,5,5,1,2,64,160,64,0,224,5,3,3,5, - 0,0,144,72,144,5,7,7,5,0,0,192,72,80,32,72, - 152,8,5,7,7,5,0,0,192,72,80,32,80,136,24,5, - 7,7,5,0,0,192,72,208,32,72,152,8,4,6,6,5, - 0,0,32,0,32,64,144,96,4,8,8,5,0,0,64,32, - 96,144,144,240,144,144,4,8,8,5,0,0,32,64,96,144, - 144,240,144,144,4,8,8,5,0,0,32,80,0,96,144,240, - 144,144,4,8,8,5,0,0,80,160,0,96,144,240,144,144, - 4,8,8,5,0,0,80,0,96,144,144,240,144,144,4,8, - 8,5,0,0,32,80,32,96,144,240,144,144,4,6,6,5, - 0,0,112,160,240,160,160,176,4,8,8,5,0,254,96,144, - 128,128,144,96,32,64,4,8,8,5,0,0,64,32,240,128, - 224,128,128,240,4,8,8,5,0,0,32,64,240,128,224,128, - 128,240,4,8,8,5,0,0,32,80,240,128,224,128,128,240, - 4,8,8,5,0,0,80,0,240,128,224,128,128,240,3,8, - 8,5,1,0,128,64,224,64,64,64,64,224,3,8,8,5, - 1,0,32,64,224,64,64,64,64,224,3,8,8,5,1,0, - 64,160,0,224,64,64,64,224,3,8,8,5,1,0,160,0, - 224,64,64,64,64,224,4,6,6,5,0,0,96,80,208,80, - 80,96,4,8,8,5,0,0,80,160,144,208,176,144,144,144, - 4,8,8,5,0,0,64,32,96,144,144,144,144,96,4,8, - 8,5,0,0,32,64,96,144,144,144,144,96,4,8,8,5, - 0,0,32,80,0,96,144,144,144,96,4,8,8,5,0,0, - 80,160,0,96,144,144,144,96,4,8,8,5,0,0,80,0, - 96,144,144,144,144,96,3,3,3,5,0,1,160,64,160,4, - 6,6,5,0,0,96,144,176,208,144,96,4,8,8,5,0, - 0,64,32,144,144,144,144,144,96,4,8,8,5,0,0,32, - 64,144,144,144,144,144,96,4,8,8,5,0,0,32,80,0, - 144,144,144,144,96,4,8,8,5,0,0,80,0,144,144,144, - 144,144,96,4,8,8,5,0,0,32,64,0,144,144,160,64, - 64,4,6,6,5,0,0,128,224,144,224,128,128,4,7,7, - 5,0,255,96,144,160,160,144,160,128,4,7,7,5,0,0, - 64,32,0,112,144,176,80,4,7,7,5,0,0,32,64,0, - 112,144,176,80,4,7,7,5,0,0,32,80,0,112,144,176, - 80,4,7,7,5,0,0,80,160,0,112,144,176,80,4,6, - 6,5,0,0,80,0,112,144,176,80,4,7,7,5,0,0, - 32,80,32,112,144,176,80,4,4,4,5,0,0,112,176,160, - 112,4,6,6,5,0,254,96,144,128,112,32,64,4,7,7, - 5,0,0,64,32,0,96,240,128,112,4,7,7,5,0,0, - 32,64,0,96,240,128,112,4,7,7,5,0,0,32,80,0, - 96,240,128,112,4,6,6,5,0,0,80,0,96,240,128,112, - 3,7,7,5,1,0,128,64,0,192,64,64,224,3,7,7, - 5,1,0,64,128,0,192,64,64,224,3,7,7,5,1,0, - 64,160,0,192,64,64,224,3,6,6,5,1,0,160,0,192, - 64,64,224,4,7,7,5,0,0,192,192,32,112,144,144,96, - 4,7,7,5,0,0,80,160,0,160,208,144,144,4,7,7, - 5,0,0,64,32,0,96,144,144,96,4,7,7,5,0,0, - 32,64,0,96,144,144,96,4,7,7,5,0,0,32,80,0, - 96,144,144,96,4,7,7,5,0,0,80,160,0,96,144,144, - 96,4,6,6,5,0,0,80,0,96,144,144,96,3,5,5, - 5,0,0,64,0,224,0,64,4,4,4,5,0,0,96,176, - 208,96,4,7,7,5,0,0,64,32,0,144,144,176,80,4, - 7,7,5,0,0,32,64,0,144,144,176,80,4,7,7,5, - 0,0,32,80,0,144,144,176,80,4,6,6,5,0,0,80, - 0,144,144,176,80,4,9,9,5,0,254,16,32,0,144,144, - 144,112,16,96,4,8,8,5,0,254,128,128,224,144,144,224, - 128,128,4,8,8,5,0,254,80,0,144,144,144,112,16,96 - }; -/* - Fontname: ProFont10 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 6, '1' Height: 6 - Calculated Max Values w= 5 h= 9 x= 2 y= 5 dx= 5 dy= 0 ascent= 7 len= 9 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 6 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont10r[1106] U8G_FONT_SECTION("u8g_font_profont10r") = { - 0,5,9,0,254,6,1,126,2,248,32,127,254,7,254,7, - 254,0,0,0,5,0,0,1,6,6,5,2,0,128,128,128, - 128,0,128,3,2,2,5,1,5,160,160,5,5,5,5,0, - 1,80,248,80,248,80,5,8,8,5,0,255,32,120,160,112, - 40,168,112,32,5,6,6,5,0,0,120,168,176,104,168,144, - 4,6,6,5,0,0,64,160,64,80,160,80,1,2,2,5, - 2,4,128,128,3,8,8,5,1,255,32,64,128,128,128,128, - 64,32,3,8,8,5,0,255,128,64,32,32,32,32,64,128, - 4,5,5,5,0,1,64,144,96,144,32,3,3,3,5,0, - 1,64,224,64,2,3,3,5,0,254,64,64,128,2,1,1, - 5,1,2,192,1,1,1,5,2,0,128,4,8,8,5,0, - 254,16,16,32,32,64,64,128,128,4,6,6,5,0,0,96, - 144,176,208,144,96,3,6,6,5,1,0,64,192,64,64,64, - 224,4,6,6,5,0,0,96,144,16,32,64,240,4,6,6, - 5,0,0,96,144,32,16,144,96,4,6,6,5,0,0,32, - 96,160,240,32,112,4,6,6,5,0,0,240,128,224,16,144, - 96,4,6,6,5,0,0,96,128,224,144,144,96,4,6,6, - 5,0,0,240,16,32,64,64,64,4,6,6,5,0,0,96, - 144,96,144,144,96,4,6,6,5,0,0,96,144,144,112,16, - 96,1,4,4,5,2,0,128,0,0,128,2,6,6,5,0, - 254,64,0,0,64,64,128,3,5,5,5,1,0,32,64,128, - 64,32,4,3,3,5,0,1,240,0,240,3,5,5,5,1, - 0,128,64,32,64,128,4,6,6,5,0,0,96,144,32,64, - 0,64,4,6,6,5,0,0,96,144,176,176,128,112,4,6, - 6,5,0,0,96,144,144,240,144,144,4,6,6,5,0,0, - 224,144,224,144,144,224,4,6,6,5,0,0,96,144,128,128, - 144,96,4,6,6,5,0,0,224,144,144,144,144,224,4,6, - 6,5,0,0,240,128,224,128,128,240,4,6,6,5,0,0, - 240,128,224,128,128,128,4,6,6,5,0,0,96,144,128,176, - 144,96,4,6,6,5,0,0,144,144,240,144,144,144,3,6, - 6,5,1,0,224,64,64,64,64,224,4,6,6,5,0,0, - 16,16,16,16,144,96,4,6,6,5,0,0,144,160,192,192, - 160,144,4,6,6,5,0,0,128,128,128,128,128,240,4,6, - 6,5,0,0,144,240,240,144,144,144,4,6,6,5,0,0, - 144,208,176,144,144,144,4,6,6,5,0,0,96,144,144,144, - 144,96,4,6,6,5,0,0,224,144,144,224,128,128,4,7, - 7,5,0,255,96,144,144,144,176,96,16,4,6,6,5,0, - 0,224,144,144,224,144,144,4,6,6,5,0,0,96,144,96, - 16,144,96,3,6,6,5,1,0,224,64,64,64,64,64,4, - 6,6,5,0,0,144,144,144,144,144,96,4,6,6,5,0, - 0,144,144,144,144,160,64,4,6,6,5,0,0,144,144,144, - 240,240,144,4,6,6,5,0,0,144,144,96,96,144,144,4, - 6,6,5,0,0,144,144,160,64,64,64,4,6,6,5,0, - 0,240,16,32,64,128,240,2,8,8,5,2,255,192,128,128, - 128,128,128,128,192,4,8,8,5,1,254,128,128,64,64,32, - 32,16,16,2,8,8,5,1,255,192,64,64,64,64,64,64, - 192,3,2,2,5,1,4,64,160,5,1,1,5,0,254,248, - 2,2,2,5,1,5,128,64,4,4,4,5,0,0,112,144, - 176,80,4,6,6,5,0,0,128,128,224,144,144,224,4,4, - 4,5,0,0,96,144,128,112,4,6,6,5,0,0,16,16, - 112,144,144,112,4,4,4,5,0,0,96,240,128,112,3,6, - 6,5,1,0,32,64,224,64,64,64,4,6,6,5,0,254, - 112,144,144,112,16,96,4,6,6,5,0,0,128,128,224,144, - 144,144,3,6,6,5,1,0,64,0,192,64,64,224,2,8, - 8,5,1,254,64,0,192,64,64,64,64,128,4,6,6,5, - 0,0,128,128,160,192,160,144,3,6,6,5,1,0,192,64, - 64,64,64,224,5,4,4,5,0,0,240,168,168,168,4,4, - 4,5,0,0,160,208,144,144,4,4,4,5,0,0,96,144, - 144,96,4,6,6,5,0,254,224,144,144,224,128,128,4,6, - 6,5,0,254,112,144,144,112,16,16,4,4,4,5,0,0, - 160,208,128,128,4,4,4,5,0,0,112,224,16,224,3,6, - 6,5,1,0,64,64,224,64,64,32,4,4,4,5,0,0, - 144,144,176,80,4,4,4,5,0,0,144,144,160,64,5,4, - 4,5,0,0,168,168,168,80,4,4,4,5,0,0,144,96, - 96,144,4,6,6,5,0,254,144,144,144,112,16,96,4,4, - 4,5,0,0,240,32,64,240,3,9,9,5,1,254,32,64, - 64,64,128,64,64,64,32,1,8,8,5,2,255,128,128,128, - 128,128,128,128,128,3,9,9,5,1,254,128,64,64,64,32, - 64,64,64,128,4,2,2,5,0,2,80,160,0,0,0,5, - 0,0}; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 3 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11[2768] U8G_FONT_SECTION("u8g_font_profont11") = { - 0,6,10,0,254,7,1,158,3,55,32,255,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0, - 0,0,0,6,0,0,0,0,0,6,0,0,2,3,3,6, - 0,255,64,64,128,5,11,11,6,0,254,24,32,32,32,112, - 32,32,32,32,32,192,4,3,3,6,0,255,80,80,160,5, - 1,1,6,0,0,168,3,5,5,6,1,2,64,224,64,64, - 64,3,5,5,6,1,2,64,224,64,224,64,3,2,2,6, - 1,6,64,160,6,8,8,6,0,0,124,168,176,96,104,212, - 84,40,5,9,9,6,0,0,80,32,112,136,128,112,8,136, - 112,2,4,4,6,0,0,64,128,128,64,5,7,7,6,0, - 0,120,160,160,176,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,4,64,128,128,2,3,3,6,2,4,64, - 64,128,4,3,3,6,1,4,80,160,160,4,3,3,6,1, - 4,80,80,160,5,5,5,6,0,1,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,6,104,176,6,3,3,6,0,4,244,92,92,5,8, - 8,6,0,0,80,32,0,120,128,112,8,240,2,4,4,6, - 0,0,128,64,64,128,5,5,5,6,0,0,80,168,184,160, - 88,0,0,0,6,0,0,0,0,0,6,0,0,5,9,9, - 6,0,0,80,0,136,136,136,80,32,32,32,0,0,0,6, - 0,0,1,7,7,6,3,0,128,0,128,128,128,128,128,5, - 7,7,6,0,255,32,112,168,160,160,120,32,5,8,8,6, - 0,0,96,144,128,224,128,128,136,240,5,5,5,6,0,0, - 136,112,80,112,136,5,7,7,6,0,0,136,80,248,32,248, - 32,32,1,9,9,6,2,255,128,128,128,128,0,128,128,128, - 128,5,10,10,6,0,255,112,136,72,160,144,72,40,144,136, - 112,3,1,1,6,1,6,160,5,7,7,6,0,0,224,16, - 104,136,104,16,224,4,6,6,6,1,3,112,144,144,112,0, - 240,5,4,4,6,0,0,72,144,144,72,5,3,3,6,0, - 1,248,8,8,5,1,1,6,0,3,248,5,6,6,6,0, - 1,224,16,200,168,200,176,3,1,1,6,1,6,224,4,4, - 4,6,1,4,96,144,144,96,5,6,6,6,0,0,32,32, - 248,32,32,248,3,4,4,6,1,5,192,32,64,224,3,5, - 5,6,1,4,192,32,96,32,192,3,2,2,6,2,6,96, - 192,5,7,7,6,0,254,144,144,144,144,232,128,128,5,8, - 8,6,0,0,120,168,168,168,120,40,40,40,2,2,2,6, - 2,2,192,192,3,3,3,6,1,254,224,96,192,3,4,4, - 6,1,5,192,64,64,224,4,6,6,6,1,3,96,144,144, - 96,0,240,5,4,4,6,0,0,144,72,72,144,6,9,9, - 6,0,0,192,64,68,232,16,40,88,184,8,6,9,9,6, - 0,0,192,64,68,232,16,56,68,136,28,6,9,9,6,0, - 0,192,32,100,40,208,40,88,184,8,5,7,7,6,0,0, - 32,0,32,64,128,136,112,5,9,9,6,0,0,64,32,32, - 80,80,136,248,136,136,5,9,9,6,0,0,16,32,32,80, - 80,136,248,136,136,5,9,9,6,0,0,32,80,0,32,80, - 136,248,136,136,5,9,9,6,0,0,104,176,32,80,80,136, - 248,136,136,5,9,9,6,0,0,80,0,32,80,80,136,248, - 136,136,5,9,9,6,0,0,32,80,32,80,136,136,248,136, - 136,5,7,7,6,0,0,120,160,160,240,160,160,184,5,9, - 9,6,0,254,112,136,128,128,128,136,112,32,64,5,9,9, - 6,0,0,64,32,248,128,128,240,128,128,248,5,9,9,6, - 0,0,16,32,248,128,128,240,128,128,248,5,9,9,6,0, - 0,32,80,248,128,128,240,128,128,248,5,9,9,6,0,0, - 80,0,248,128,128,240,128,128,248,5,9,9,6,0,0,64, - 32,248,32,32,32,32,32,248,5,9,9,6,0,0,16,32, - 248,32,32,32,32,32,248,5,9,9,6,0,0,32,80,0, - 248,32,32,32,32,248,5,9,9,6,0,0,80,0,248,32, - 32,32,32,32,248,5,7,7,6,0,0,112,72,72,232,72, - 72,112,5,9,9,6,0,0,104,176,136,200,168,152,136,136, - 136,5,9,9,6,0,0,64,32,112,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,112,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,112,136,136,136,136,112,5,9, - 9,6,0,0,104,176,112,136,136,136,136,136,112,5,9,9, - 6,0,0,80,0,112,136,136,136,136,136,112,5,5,5,6, - 0,1,136,80,32,80,136,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,9,9,6,0,0,64,32,136,136,136,136, - 136,136,112,5,9,9,6,0,0,16,32,136,136,136,136,136, - 136,112,5,9,9,6,0,0,32,80,0,136,136,136,136,136, - 112,5,9,9,6,0,0,80,0,136,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,136,136,136,80,32,32,32,5, - 7,7,6,0,0,128,240,136,136,240,128,128,5,9,9,6, - 0,255,48,72,136,144,144,136,136,176,128,5,8,8,6,0, - 0,32,16,0,120,136,136,152,104,5,8,8,6,0,0,16, - 32,0,120,136,136,152,104,5,8,8,6,0,0,32,80,0, - 120,136,136,152,104,5,8,8,6,0,0,104,176,0,120,136, - 136,152,104,5,7,7,6,0,0,80,0,120,136,136,152,104, - 5,8,8,6,0,0,32,80,32,120,136,136,152,104,5,5, - 5,6,0,0,112,168,184,160,120,5,7,7,6,0,254,112, - 136,128,128,120,32,64,5,8,8,6,0,0,64,32,0,112, - 136,248,128,120,5,8,8,6,0,0,16,32,0,112,136,248, - 128,120,5,8,8,6,0,0,32,80,0,112,136,248,128,120, - 5,7,7,6,0,0,80,0,112,136,248,128,120,3,8,8, - 6,1,0,128,64,0,192,64,64,64,224,3,8,8,6,1, - 0,32,64,0,192,64,64,64,224,3,8,8,6,1,0,64, - 160,0,192,64,64,64,224,3,7,7,6,1,0,160,0,192, - 64,64,64,224,5,8,8,6,0,0,96,96,16,120,136,136, - 136,112,5,8,8,6,0,0,104,176,0,176,200,136,136,136, - 5,8,8,6,0,0,64,32,0,112,136,136,136,112,5,8, - 8,6,0,0,16,32,0,112,136,136,136,112,5,8,8,6, - 0,0,32,80,0,112,136,136,136,112,5,8,8,6,0,0, - 104,176,0,112,136,136,136,112,5,7,7,6,0,0,80,0, - 112,136,136,136,112,5,5,5,6,0,1,32,0,248,0,32, - 5,5,5,6,0,0,112,152,168,200,112,5,8,8,6,0, - 0,64,32,0,136,136,136,152,104,5,8,8,6,0,0,16, - 32,0,136,136,136,152,104,5,8,8,6,0,0,32,80,0, - 136,136,136,152,104,5,7,7,6,0,0,80,0,136,136,136, - 152,104,5,10,10,6,0,254,16,32,0,136,136,136,136,120, - 8,112,5,9,9,6,0,254,128,128,240,136,136,136,240,128, - 128,5,9,9,6,0,254,80,0,136,136,136,136,120,8,112 - }; -/* - Fontname: ProFont11 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 6 h=11 x= 2 y= 6 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=10 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 8 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont11r[1200] U8G_FONT_SECTION("u8g_font_profont11r") = { - 0,6,10,0,254,7,1,158,3,55,32,127,254,9,254,8, - 254,0,0,0,6,0,0,1,7,7,6,2,0,128,128,128, - 128,128,0,128,3,3,3,6,1,5,160,160,160,5,5,5, - 6,0,2,80,248,80,248,80,5,9,9,6,0,255,32,112, - 168,160,112,40,168,112,32,5,7,7,6,0,0,120,168,176, - 80,104,168,144,5,7,7,6,0,0,96,144,160,64,168,144, - 104,1,3,3,6,2,5,128,128,128,3,9,9,6,1,255, - 32,64,128,128,128,128,128,64,32,3,9,9,6,1,255,128, - 64,32,32,32,32,32,64,128,5,5,5,6,0,2,32,168, - 112,168,32,5,5,5,6,0,1,32,32,248,32,32,2,4, - 4,6,1,254,192,192,64,128,3,1,1,6,1,3,224,2, - 2,2,6,2,0,192,192,5,10,10,6,0,254,8,8,16, - 16,32,32,64,64,128,128,5,7,7,6,0,0,112,136,152, - 168,200,136,112,5,7,7,6,0,0,32,224,32,32,32,32, - 248,5,7,7,6,0,0,112,136,8,16,32,64,248,5,7, - 7,6,0,0,112,136,8,48,8,136,112,5,7,7,6,0, - 0,16,48,80,144,248,16,56,5,7,7,6,0,0,248,128, - 240,8,8,136,112,5,7,7,6,0,0,112,128,240,136,136, - 136,112,5,7,7,6,0,0,248,8,8,16,32,32,32,5, - 7,7,6,0,0,112,136,136,112,136,136,112,5,7,7,6, - 0,0,112,136,136,136,120,8,112,2,5,5,6,2,0,192, - 192,0,192,192,2,7,7,6,1,254,192,192,0,192,192,64, - 128,4,7,7,6,1,0,16,32,64,128,64,32,16,5,3, - 3,6,0,2,248,0,248,4,7,7,6,1,0,128,64,32, - 16,32,64,128,5,7,7,6,0,0,112,136,8,16,32,0, - 32,5,7,7,6,0,0,112,136,184,168,184,128,120,5,7, - 7,6,0,0,32,80,80,136,248,136,136,5,7,7,6,0, - 0,240,136,136,240,136,136,240,5,7,7,6,0,0,112,136, - 128,128,128,136,112,5,7,7,6,0,0,240,136,136,136,136, - 136,240,5,7,7,6,0,0,248,128,128,240,128,128,248,5, - 7,7,6,0,0,248,128,128,240,128,128,128,5,7,7,6, - 0,0,112,136,128,152,136,136,112,5,7,7,6,0,0,136, - 136,136,248,136,136,136,5,7,7,6,0,0,248,32,32,32, - 32,32,248,5,7,7,6,0,0,8,8,8,8,136,136,112, - 5,7,7,6,0,0,136,144,160,192,160,144,136,5,7,7, - 6,0,0,128,128,128,128,128,128,248,5,7,7,6,0,0, - 136,216,168,168,136,136,136,5,7,7,6,0,0,136,200,168, - 152,136,136,136,5,7,7,6,0,0,112,136,136,136,136,136, - 112,5,7,7,6,0,0,240,136,136,240,128,128,128,5,8, - 8,6,0,255,112,136,136,136,136,168,112,8,5,7,7,6, - 0,0,240,136,136,240,136,136,136,5,7,7,6,0,0,112, - 136,128,112,8,136,112,5,7,7,6,0,0,248,32,32,32, - 32,32,32,5,7,7,6,0,0,136,136,136,136,136,136,112, - 5,7,7,6,0,0,136,136,136,80,80,32,32,5,7,7, - 6,0,0,136,136,136,168,168,216,136,5,7,7,6,0,0, - 136,136,80,32,80,136,136,5,7,7,6,0,0,136,136,136, - 80,32,32,32,5,7,7,6,0,0,248,8,16,32,64,128, - 248,2,9,9,6,2,255,192,128,128,128,128,128,128,128,192, - 5,10,10,6,1,254,128,128,64,64,32,32,16,16,8,8, - 2,9,9,6,1,255,192,64,64,64,64,64,64,64,192,5, - 3,3,6,0,4,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,6,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,7,7,6,0,0,128,128,240,136,136,136,240,5, - 5,5,6,0,0,112,136,128,128,120,5,7,7,6,0,0, - 8,8,120,136,136,136,120,5,5,5,6,0,0,112,136,248, - 128,120,4,7,7,6,1,0,48,64,224,64,64,64,64,5, - 7,7,6,0,254,120,136,136,136,120,8,112,5,7,7,6, - 0,0,128,128,240,136,136,136,136,3,7,7,6,1,0,64, - 0,192,64,64,64,224,3,9,9,6,0,254,32,0,96,32, - 32,32,32,32,192,5,7,7,6,0,0,128,128,144,160,224, - 144,136,3,7,7,6,1,0,192,64,64,64,64,64,224,5, - 5,5,6,0,0,240,168,168,168,168,5,5,5,6,0,0, - 176,200,136,136,136,5,5,5,6,0,0,112,136,136,136,112, - 5,7,7,6,0,254,240,136,136,136,240,128,128,5,7,7, - 6,0,254,120,136,136,136,120,8,8,5,5,5,6,0,0, - 176,200,128,128,128,5,5,5,6,0,0,120,128,112,8,240, - 4,7,7,6,1,0,64,64,224,64,64,64,48,5,5,5, - 6,0,0,136,136,136,152,104,5,5,5,6,0,0,136,136, - 80,80,32,5,5,5,6,0,0,168,168,168,168,80,5,5, - 5,6,0,0,136,80,32,80,136,5,7,7,6,0,254,136, - 136,136,136,120,8,112,5,5,5,6,0,0,248,16,32,64, - 248,3,11,11,6,1,254,32,64,64,64,64,128,64,64,64, - 64,32,1,9,9,6,2,255,128,128,128,128,128,128,128,128, - 128,3,11,11,6,1,254,128,64,64,64,64,32,64,64,64, - 64,128,5,2,2,6,0,3,104,176,0,0,0,6,0,0 - }; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=12 x= 3 y= 7 dx= 6 dy= 0 ascent=10 len=12 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent =10 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12[2907] U8G_FONT_SECTION("u8g_font_profont12") = { - 0,6,11,0,254,8,1,178,3,103,32,255,254,10,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0,0,0,0,6,0,0, - 0,0,0,6,0,0,2,3,3,6,0,255,64,64,128,5, - 12,12,6,0,254,24,32,32,32,32,112,32,32,32,32,32, - 192,4,3,3,6,0,255,80,80,160,5,1,1,6,0,0, - 168,3,6,6,6,1,2,64,224,64,64,64,64,3,6,6, - 6,1,2,64,224,64,64,224,64,3,2,2,6,1,7,64, - 160,6,9,9,6,0,0,124,164,168,80,32,104,212,84,40, - 5,10,10,6,0,0,80,32,112,136,128,112,8,8,136,112, - 2,4,4,6,0,0,64,128,128,64,5,8,8,6,0,0, - 120,160,160,176,160,160,160,120,0,0,0,6,0,0,0,0, - 0,6,0,0,0,0,0,6,0,0,0,0,0,6,0,0, - 2,3,3,6,2,5,64,128,128,2,3,3,6,2,5,64, - 64,128,4,3,3,6,1,5,80,160,160,4,3,3,6,1, - 5,80,80,160,5,5,5,6,0,2,112,248,248,248,112,3, - 1,1,6,1,3,224,6,1,1,6,0,3,252,5,2,2, - 6,0,7,104,176,6,3,3,6,0,5,244,92,92,5,9, - 9,6,0,0,80,32,0,0,120,128,112,8,240,2,4,4, - 6,0,0,128,64,64,128,5,5,5,6,0,0,80,168,184, - 160,88,0,0,0,6,0,0,0,0,0,6,0,0,5,10, - 10,6,0,0,80,0,0,136,136,136,80,32,32,32,0,0, - 0,6,0,0,1,8,8,6,3,0,128,0,128,128,128,128, - 128,128,5,7,7,6,0,255,32,112,168,160,160,120,32,5, - 9,9,6,0,0,96,144,128,224,128,128,128,136,240,5,5, - 5,6,0,1,136,112,80,112,136,5,8,8,6,0,0,136, - 80,248,32,248,32,32,32,1,10,10,6,2,255,128,128,128, - 128,0,0,128,128,128,128,5,11,11,6,0,255,112,136,72, - 160,144,136,72,40,144,136,112,3,1,1,6,1,7,160,5, - 8,8,6,0,0,224,16,104,136,136,104,16,224,4,7,7, - 6,1,3,112,144,144,112,0,0,240,5,4,4,6,0,0, - 72,144,144,72,5,3,3,6,0,2,248,8,8,5,1,1, - 6,0,3,248,5,7,7,6,0,1,224,16,200,168,168,200, - 176,3,1,1,6,1,7,224,4,4,4,6,1,5,96,144, - 144,96,5,6,6,6,0,1,32,32,248,32,32,248,3,4, - 4,6,1,6,192,32,64,224,3,5,5,6,1,5,192,32, - 96,32,192,4,2,2,6,2,7,112,224,5,7,7,6,0, - 254,144,144,144,144,232,128,128,5,9,9,6,0,0,120,168, - 168,168,120,40,40,40,40,2,2,2,6,2,3,192,192,4, - 3,3,6,1,254,240,112,224,3,4,4,6,1,6,192,64, - 64,224,4,7,7,6,1,3,96,144,144,96,0,0,240,5, - 4,4,6,0,0,144,72,72,144,6,10,10,6,0,0,192, - 64,68,232,16,32,72,152,56,8,6,10,10,6,0,0,192, - 64,68,232,16,32,88,132,8,28,6,10,10,6,0,0,192, - 32,100,40,208,32,72,152,56,8,5,8,8,6,0,0,32, - 0,32,64,128,128,136,112,5,10,10,6,0,0,64,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,16,32,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,0, - 32,80,80,136,248,136,136,5,10,10,6,0,0,104,176,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,80,0,32, - 80,80,136,136,248,136,136,5,10,10,6,0,0,32,80,32, - 80,80,136,136,248,136,136,5,8,8,6,0,0,120,160,160, - 240,160,160,160,184,5,10,10,6,0,254,112,136,128,128,128, - 128,136,112,32,64,5,10,10,6,0,0,64,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,16,32,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,32,80,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,80,0,248,128,128, - 240,128,128,128,248,5,10,10,6,0,0,64,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,16,32,248,32,32, - 32,32,32,32,248,5,10,10,6,0,0,32,80,0,248,32, - 32,32,32,32,248,5,10,10,6,0,0,80,0,248,32,32, - 32,32,32,32,248,6,8,8,6,0,0,120,68,68,228,68, - 68,68,120,5,10,10,6,0,0,104,176,136,200,168,152,136, - 136,136,136,5,10,10,6,0,0,64,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,16,32,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,32,80,0,112,136,136,136, - 136,136,112,5,10,10,6,0,0,104,176,112,136,136,136,136, - 136,136,112,5,10,10,6,0,0,80,0,112,136,136,136,136, - 136,136,112,5,5,5,6,0,2,136,80,32,80,136,5,8, - 8,6,0,0,112,136,152,168,200,136,136,112,5,10,10,6, - 0,0,64,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,32,80,0,136,136,136,136,136,136,112,5,10,10,6, - 0,0,80,0,136,136,136,136,136,136,136,112,5,10,10,6, - 0,0,16,32,136,136,136,136,80,32,32,32,5,8,8,6, - 0,0,128,240,136,136,136,240,128,128,5,10,10,6,0,255, - 48,72,136,144,144,136,136,136,176,128,5,9,9,6,0,0, - 32,16,0,0,120,136,136,152,104,5,9,9,6,0,0,16, - 32,0,0,120,136,136,152,104,5,9,9,6,0,0,32,80, - 0,0,120,136,136,152,104,5,9,9,6,0,0,104,176,0, - 0,120,136,136,152,104,5,8,8,6,0,0,80,0,0,120, - 136,136,152,104,5,9,9,6,0,0,32,80,32,0,120,136, - 136,152,104,5,5,5,6,0,0,112,168,184,160,120,5,7, - 7,6,0,254,112,136,128,128,120,32,64,5,9,9,6,0, - 0,64,32,0,0,112,136,248,128,120,5,9,9,6,0,0, - 16,32,0,0,112,136,248,128,120,5,9,9,6,0,0,32, - 80,0,0,112,136,248,128,120,5,8,8,6,0,0,80,0, - 0,112,136,248,128,120,3,9,9,6,1,0,128,64,0,0, - 192,64,64,64,224,3,9,9,6,1,0,32,64,0,0,192, - 64,64,64,224,3,9,9,6,1,0,64,160,0,0,192,64, - 64,64,224,3,8,8,6,1,0,160,0,0,192,64,64,64, - 224,5,9,9,6,0,0,96,96,16,8,120,136,136,136,112, - 5,9,9,6,0,0,104,176,0,0,176,200,136,136,136,5, - 9,9,6,0,0,64,32,0,0,112,136,136,136,112,5,9, - 9,6,0,0,16,32,0,0,112,136,136,136,112,5,9,9, - 6,0,0,32,80,0,0,112,136,136,136,112,5,9,9,6, - 0,0,104,176,0,0,112,136,136,136,112,5,8,8,6,0, - 0,80,0,0,112,136,136,136,112,5,5,5,6,0,1,32, - 0,248,0,32,5,5,5,6,0,0,112,152,168,200,112,5, - 9,9,6,0,0,64,32,0,0,136,136,136,152,104,5,9, - 9,6,0,0,16,32,0,0,136,136,136,152,104,5,9,9, - 6,0,0,32,80,0,0,136,136,136,152,104,5,8,8,6, - 0,0,80,0,0,136,136,136,152,104,5,11,11,6,0,254, - 16,32,0,0,136,136,136,136,120,8,112,5,10,10,6,0, - 254,128,128,128,240,136,136,136,240,128,128,5,10,10,6,0, - 254,80,0,0,136,136,136,136,120,8,112}; -/* - Fontname: ProFont12 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 8, '1' Height: 8 - Calculated Max Values w= 6 h=11 x= 2 y= 7 dx= 6 dy= 0 ascent= 9 len=11 - Font Bounding box w= 6 h=11 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent=-2 - X Font ascent = 9 descent=-2 - Max Font ascent = 9 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont12r[1258] U8G_FONT_SECTION("u8g_font_profont12r") = { - 0,6,11,0,254,8,1,178,3,103,32,127,254,9,254,9, - 254,0,0,0,6,0,0,1,8,8,6,2,0,128,128,128, - 128,128,128,0,128,3,3,3,6,1,6,160,160,160,5,5, - 5,6,0,3,80,248,80,248,80,5,10,10,6,0,255,32, - 112,168,160,112,40,40,168,112,32,5,8,8,6,0,0,120, - 168,168,80,48,104,168,144,5,8,8,6,0,0,96,144,160, - 64,160,168,144,104,1,3,3,6,2,6,128,128,128,3,10, - 10,6,1,255,32,64,128,128,128,128,128,128,64,32,3,10, - 10,6,1,255,128,64,32,32,32,32,32,32,64,128,5,5, - 5,6,0,3,32,168,112,168,32,5,5,5,6,0,1,32, - 32,248,32,32,2,4,4,6,1,254,192,192,64,128,3,1, - 1,6,1,3,224,2,2,2,6,2,0,192,192,5,10,10, - 6,0,254,8,8,16,16,32,32,64,64,128,128,5,8,8, - 6,0,0,112,136,152,168,200,136,136,112,5,8,8,6,0, - 0,32,224,32,32,32,32,32,248,5,8,8,6,0,0,112, - 136,8,16,32,64,128,248,5,8,8,6,0,0,112,136,8, - 48,8,8,136,112,5,8,8,6,0,0,16,48,80,144,248, - 16,16,56,5,8,8,6,0,0,248,128,128,240,8,8,136, - 112,5,8,8,6,0,0,112,128,128,240,136,136,136,112,5, - 8,8,6,0,0,248,8,8,16,32,32,32,32,5,8,8, - 6,0,0,112,136,136,112,136,136,136,112,5,8,8,6,0, - 0,112,136,136,136,120,8,8,112,2,6,6,6,2,0,192, - 192,0,0,192,192,2,8,8,6,1,254,192,192,0,0,192, - 192,64,128,4,7,7,6,1,1,16,32,64,128,64,32,16, - 5,3,3,6,0,3,248,0,248,4,7,7,6,1,1,128, - 64,32,16,32,64,128,5,8,8,6,0,0,112,136,8,8, - 16,32,0,32,5,8,8,6,0,0,112,136,184,168,184,128, - 128,120,5,8,8,6,0,0,32,80,80,136,136,248,136,136, - 5,8,8,6,0,0,240,136,136,240,136,136,136,240,5,8, - 8,6,0,0,112,136,128,128,128,128,136,112,5,8,8,6, - 0,0,240,136,136,136,136,136,136,240,5,8,8,6,0,0, - 248,128,128,240,128,128,128,248,5,8,8,6,0,0,248,128, - 128,240,128,128,128,128,5,8,8,6,0,0,112,136,128,128, - 152,136,136,112,5,8,8,6,0,0,136,136,136,248,136,136, - 136,136,5,8,8,6,0,0,248,32,32,32,32,32,32,248, - 5,8,8,6,0,0,8,8,8,8,8,136,136,112,5,8, - 8,6,0,0,136,144,160,192,192,160,144,136,5,8,8,6, - 0,0,128,128,128,128,128,128,128,248,5,8,8,6,0,0, - 136,216,168,168,136,136,136,136,5,8,8,6,0,0,136,200, - 168,152,136,136,136,136,5,8,8,6,0,0,112,136,136,136, - 136,136,136,112,5,8,8,6,0,0,240,136,136,240,128,128, - 128,128,5,9,9,6,0,255,112,136,136,136,136,136,168,112, - 8,5,8,8,6,0,0,240,136,136,240,136,136,136,136,5, - 8,8,6,0,0,112,136,128,112,8,8,136,112,5,8,8, - 6,0,0,248,32,32,32,32,32,32,32,5,8,8,6,0, - 0,136,136,136,136,136,136,136,112,5,8,8,6,0,0,136, - 136,136,136,80,80,32,32,5,8,8,6,0,0,136,136,136, - 136,168,168,216,136,5,8,8,6,0,0,136,136,136,80,32, - 80,136,136,5,8,8,6,0,0,136,136,136,136,80,32,32, - 32,5,8,8,6,0,0,248,8,16,32,64,128,128,248,2, - 10,10,6,2,255,192,128,128,128,128,128,128,128,128,192,5, - 10,10,6,1,254,128,128,64,64,32,32,16,16,8,8,2, - 10,10,6,1,255,192,64,64,64,64,64,64,64,64,192,5, - 3,3,6,0,5,32,80,136,6,1,1,6,0,254,252,2, - 2,2,6,1,7,128,64,5,5,5,6,0,0,120,136,136, - 152,104,5,8,8,6,0,0,128,128,128,240,136,136,136,240, - 5,5,5,6,0,0,112,136,128,128,120,5,8,8,6,0, - 0,8,8,8,120,136,136,136,120,5,5,5,6,0,0,112, - 136,248,128,120,4,8,8,6,1,0,48,64,224,64,64,64, - 64,64,5,7,7,6,0,254,120,136,136,136,120,8,112,5, - 8,8,6,0,0,128,128,128,240,136,136,136,136,3,8,8, - 6,1,0,64,0,0,192,64,64,64,224,3,10,10,6,0, - 254,32,0,0,96,32,32,32,32,32,192,5,8,8,6,0, - 0,128,128,128,144,160,224,144,136,3,8,8,6,1,0,192, - 64,64,64,64,64,64,224,5,5,5,6,0,0,240,168,168, - 168,168,5,5,5,6,0,0,176,200,136,136,136,5,5,5, - 6,0,0,112,136,136,136,112,5,7,7,6,0,254,240,136, - 136,136,240,128,128,5,7,7,6,0,254,120,136,136,136,120, - 8,8,5,5,5,6,0,0,176,200,128,128,128,5,5,5, - 6,0,0,120,128,112,8,240,4,8,8,6,1,0,64,64, - 64,224,64,64,64,48,5,5,5,6,0,0,136,136,136,152, - 104,5,5,5,6,0,0,136,136,80,80,32,5,5,5,6, - 0,0,168,168,168,168,80,5,5,5,6,0,0,136,80,32, - 80,136,5,7,7,6,0,254,136,136,136,136,120,8,112,5, - 5,5,6,0,0,248,16,32,64,248,3,11,11,6,1,254, - 32,64,64,64,64,128,64,64,64,64,32,1,10,10,6,2, - 255,128,128,128,128,128,128,128,128,128,128,3,11,11,6,1, - 254,128,64,64,64,64,32,64,64,64,64,128,5,2,2,6, - 0,4,104,176,0,0,0,6,0,0}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 4 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15[3186] U8G_FONT_SECTION("u8g_font_profont15") = { - 0,7,14,0,253,9,1,217,3,175,32,255,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0,0,0,0,7, - 0,0,0,0,0,7,0,0,2,4,4,7,0,255,64,64, - 64,128,7,14,14,7,0,254,6,8,16,16,16,56,16,16, - 16,16,16,16,32,192,5,4,4,7,0,255,72,72,72,144, - 7,1,1,7,0,0,146,3,6,6,7,2,3,64,224,64, - 64,64,64,3,6,6,7,2,3,64,224,64,64,224,64,5, - 3,3,7,1,8,32,80,136,7,10,10,7,0,0,126,164, - 168,176,96,84,170,42,42,20,6,12,12,7,0,0,68,40, - 16,120,132,128,128,120,4,4,132,120,2,5,5,7,0,0, - 64,128,128,128,64,6,9,9,7,0,0,124,144,144,144,152, - 144,144,144,124,0,0,0,7,0,0,0,0,0,7,0,0, - 0,0,0,7,0,0,0,0,0,7,0,0,2,4,4,7, - 3,5,64,128,128,128,2,4,4,7,3,5,64,64,64,128, - 5,4,4,7,1,5,72,144,144,144,5,4,4,7,1,5, - 72,72,72,144,6,6,6,7,0,2,48,120,252,252,120,48, - 4,1,1,7,1,3,240,7,1,1,7,0,3,254,6,2, - 2,7,0,8,100,152,7,4,4,7,0,5,242,94,82,82, - 6,11,11,7,0,0,68,40,16,0,0,124,128,120,4,4, - 248,2,5,5,7,0,0,128,64,64,64,128,6,6,6,7, - 0,0,104,148,156,144,144,108,0,0,0,7,0,0,0,0, - 0,7,0,0,7,12,12,7,0,0,68,0,0,130,130,130, - 68,40,16,16,16,16,0,0,0,7,0,0,1,9,9,7, - 4,0,128,0,128,128,128,128,128,128,128,5,10,10,7,0, - 254,32,32,112,168,160,160,160,120,32,32,6,11,11,7,0, - 0,96,144,128,128,240,128,128,128,132,136,240,7,7,7,7, - 0,0,130,68,56,40,56,68,130,7,10,10,7,0,0,130, - 68,40,254,16,16,254,16,16,16,1,13,13,7,3,254,128, - 128,128,128,128,0,0,0,128,128,128,128,128,6,13,13,7, - 0,255,120,132,132,68,160,144,72,36,20,136,132,132,120,4, - 1,1,7,1,8,144,6,9,9,7,0,0,240,8,116,132, - 132,132,116,8,240,5,8,8,7,1,4,120,136,136,136,120, - 0,0,248,6,5,5,7,0,0,68,136,136,136,68,6,4, - 4,7,0,1,252,4,4,4,5,1,1,7,0,3,248,6, - 8,8,7,0,1,240,8,100,148,148,228,148,136,4,1,1, - 7,1,8,240,5,5,5,7,1,6,112,136,136,136,112,5, - 6,6,7,0,1,32,32,248,32,32,248,4,5,5,7,1, - 7,96,144,32,64,240,4,5,5,7,1,7,96,144,32,144, - 96,3,3,3,7,3,8,96,224,192,6,9,9,7,0,253, - 136,136,136,136,136,244,128,128,128,6,10,10,7,0,0,60, - 84,148,148,84,60,20,20,20,20,2,2,2,7,3,3,192, - 192,2,3,3,7,2,254,192,64,128,3,5,5,7,2,7, - 192,64,64,64,224,5,8,8,7,1,4,112,136,136,136,112, - 0,0,248,6,5,5,7,0,0,136,68,68,68,136,7,12, - 12,7,0,0,96,32,32,34,116,8,16,36,76,148,30,4, - 7,12,12,7,0,0,96,32,32,34,116,8,16,44,82,132, - 8,30,7,12,12,7,0,0,96,144,32,146,100,8,16,36, - 76,148,30,4,6,9,9,7,0,0,16,0,16,32,64,128, - 128,132,120,6,12,12,7,0,0,64,32,16,48,48,72,72, - 132,252,132,132,132,6,12,12,7,0,0,8,16,32,48,48, - 72,72,132,252,132,132,132,6,12,12,7,0,0,16,40,68, - 48,48,72,72,132,252,132,132,132,6,12,12,7,0,0,100, - 152,0,48,48,72,72,132,252,132,132,132,6,12,12,7,0, - 0,72,0,0,48,48,72,72,132,252,132,132,132,6,12,12, - 7,0,0,48,72,72,48,48,72,72,132,252,132,132,132,6, - 9,9,7,0,0,124,144,144,144,248,144,144,144,156,6,11, - 11,7,0,254,120,132,128,128,128,128,128,132,120,16,32,6, - 12,12,7,0,0,64,32,16,252,128,128,128,248,128,128,128, - 252,6,12,12,7,0,0,8,16,32,252,128,128,128,248,128, - 128,128,252,6,12,12,7,0,0,16,40,68,252,128,128,128, - 248,128,128,128,252,6,12,12,7,0,0,72,0,0,252,128, - 128,128,248,128,128,128,252,7,12,12,7,0,0,64,32,16, - 254,16,16,16,16,16,16,16,254,7,12,12,7,0,0,4, - 8,16,254,16,16,16,16,16,16,16,254,7,12,12,7,0, - 0,16,40,68,254,16,16,16,16,16,16,16,254,7,12,12, - 7,0,0,72,0,0,254,16,16,16,16,16,16,16,254,6, - 9,9,7,0,0,120,68,68,68,228,68,68,68,120,6,12, - 12,7,0,0,100,152,0,132,196,164,148,140,132,132,132,132, - 6,12,12,7,0,0,64,32,16,120,132,132,132,132,132,132, - 132,120,6,12,12,7,0,0,8,16,32,120,132,132,132,132, - 132,132,132,120,6,12,12,7,0,0,16,40,68,120,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,100,152,0,120, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,72,0, - 0,120,132,132,132,132,132,132,132,120,5,5,5,7,0,2, - 136,80,32,80,136,6,9,9,7,0,0,120,132,140,148,164, - 196,132,132,120,6,12,12,7,0,0,64,32,16,132,132,132, - 132,132,132,132,132,120,6,12,12,7,0,0,8,16,32,132, - 132,132,132,132,132,132,132,120,6,12,12,7,0,0,16,40, - 68,0,132,132,132,132,132,132,132,120,6,12,12,7,0,0, - 72,0,0,132,132,132,132,132,132,132,132,120,7,12,12,7, - 0,0,4,8,16,130,130,130,68,40,16,16,16,16,6,9, - 9,7,0,0,128,248,132,132,132,248,128,128,128,6,11,11, - 7,0,255,56,68,132,136,144,144,136,132,132,152,128,6,11, - 11,7,0,0,64,32,16,0,0,124,132,132,140,148,100,6, - 11,11,7,0,0,4,8,16,0,0,124,132,132,140,148,100, - 6,11,11,7,0,0,16,40,68,0,0,124,132,132,140,148, - 100,6,10,10,7,0,0,100,152,0,0,124,132,132,140,148, - 100,6,9,9,7,0,0,72,0,0,124,132,132,140,148,100, - 6,10,10,7,0,0,48,72,72,48,124,132,132,140,148,100, - 6,6,6,7,0,0,120,164,188,160,160,124,6,8,8,7, - 0,254,120,132,128,128,128,124,16,32,6,11,11,7,0,0, - 64,32,16,0,0,120,132,252,128,128,124,6,11,11,7,0, - 0,4,8,16,0,0,120,132,252,128,128,124,6,11,11,7, - 0,0,16,40,68,0,0,120,132,252,128,128,124,6,9,9, - 7,0,0,72,0,0,120,132,252,128,128,124,4,11,11,7, - 1,0,128,64,32,0,0,96,32,32,32,32,112,4,11,11, - 7,2,0,16,32,64,0,0,192,64,64,64,64,224,5,11, - 11,7,1,0,32,80,136,0,0,96,32,32,32,32,112,4, - 9,9,7,1,0,144,0,0,96,32,32,32,32,112,6,11, - 11,7,0,0,80,32,80,8,4,124,132,132,132,132,120,6, - 10,10,7,0,0,100,152,0,0,152,164,196,132,132,132,6, - 11,11,7,0,0,64,32,16,0,0,120,132,132,132,132,120, - 6,11,11,7,0,0,4,8,16,0,0,120,132,132,132,132, - 120,6,11,11,7,0,0,16,40,68,0,0,120,132,132,132, - 132,120,6,10,10,7,0,0,100,152,0,0,120,132,132,132, - 132,120,6,9,9,7,0,0,72,0,0,120,132,132,132,132, - 120,5,5,5,7,0,1,32,0,248,0,32,6,6,6,7, - 0,0,120,140,148,164,196,120,6,11,11,7,0,0,64,32, - 16,0,0,132,132,132,140,148,100,6,11,11,7,0,0,4, - 8,16,0,0,132,132,132,140,148,100,6,11,11,7,0,0, - 16,40,68,0,0,132,132,132,140,148,100,6,9,9,7,0, - 0,72,0,0,132,132,132,140,148,100,6,14,14,7,0,253, - 4,8,16,0,0,132,132,132,132,132,124,4,4,120,6,12, - 12,7,0,253,128,128,128,248,132,132,132,132,248,128,128,128, - 6,12,12,7,0,253,72,0,0,132,132,132,132,132,124,4, - 4,120}; -/* - Fontname: ProFont15 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 7 h=15 x= 3 y= 8 dx= 7 dy= 0 ascent=12 len=15 - Font Bounding box w= 7 h=14 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-3 - X Font ascent =11 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont15r[1372] U8G_FONT_SECTION("u8g_font_profont15r") = { - 0,7,14,0,253,9,1,217,3,175,32,127,253,12,253,11, - 253,0,0,0,7,0,0,1,9,9,7,3,0,128,128,128, - 128,128,128,128,0,128,4,4,4,7,1,7,144,144,144,144, - 6,6,6,7,0,3,72,252,72,72,252,72,5,13,13,7, - 0,254,32,32,112,168,160,160,112,40,40,168,112,32,32,7, - 9,9,7,0,0,126,162,164,168,84,42,74,138,132,6,9, - 9,7,0,0,112,136,144,160,64,160,148,136,116,1,4,4, - 7,3,7,128,128,128,128,4,13,13,7,1,254,16,32,64, - 128,128,128,128,128,128,128,64,32,16,4,13,13,7,1,254, - 128,64,32,16,16,16,16,16,16,16,32,64,128,5,6,6, - 7,0,3,32,168,112,112,168,32,5,5,5,7,0,1,32, - 32,248,32,32,3,5,5,7,1,253,96,96,32,64,128,4, - 1,1,7,1,3,240,2,2,2,7,2,0,192,192,6,12, - 12,7,0,254,4,4,8,8,16,16,32,32,64,64,128,128, - 6,9,9,7,0,0,120,132,140,148,164,196,132,132,120,7, - 9,9,7,0,0,16,112,16,16,16,16,16,16,254,6,9, - 9,7,0,0,120,132,4,4,8,16,32,64,252,6,9,9, - 7,0,0,120,132,4,4,56,4,4,132,120,6,9,9,7, - 0,0,8,24,40,72,136,252,8,8,28,6,9,9,7,0, - 0,252,128,128,248,4,4,4,132,120,6,9,9,7,0,0, - 120,128,128,248,132,132,132,132,120,6,9,9,7,0,0,252, - 4,4,8,16,32,32,32,32,6,9,9,7,0,0,120,132, - 132,132,120,132,132,132,120,6,9,9,7,0,0,120,132,132, - 132,132,124,4,4,120,2,7,7,7,2,0,192,192,0,0, - 0,192,192,3,10,10,7,1,253,96,96,0,0,0,96,96, - 32,64,128,5,9,9,7,1,0,8,16,32,64,128,64,32, - 16,8,6,4,4,7,0,3,252,0,0,252,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,6,9,9,7,0, - 0,120,132,4,4,8,16,32,0,32,6,9,9,7,0,0, - 120,132,156,164,164,152,128,128,124,6,9,9,7,0,0,48, - 48,72,72,132,252,132,132,132,6,9,9,7,0,0,248,132, - 132,132,248,132,132,132,248,6,9,9,7,0,0,120,132,128, - 128,128,128,128,132,120,6,9,9,7,0,0,248,132,132,132, - 132,132,132,132,248,6,9,9,7,0,0,252,128,128,128,248, - 128,128,128,252,6,9,9,7,0,0,252,128,128,128,248,128, - 128,128,128,6,9,9,7,0,0,120,132,128,128,140,132,132, - 132,120,6,9,9,7,0,0,132,132,132,132,252,132,132,132, - 132,7,9,9,7,0,0,254,16,16,16,16,16,16,16,254, - 6,9,9,7,0,0,4,4,4,4,4,132,132,132,120,6, - 9,9,7,0,0,132,136,144,160,192,160,144,136,132,6,9, - 9,7,0,0,128,128,128,128,128,128,128,128,252,7,9,9, - 7,0,0,130,198,170,146,146,130,130,130,130,6,9,9,7, - 0,0,132,196,164,148,140,132,132,132,132,6,9,9,7,0, - 0,120,132,132,132,132,132,132,132,120,6,9,9,7,0,0, - 248,132,132,132,248,128,128,128,128,6,10,10,7,0,255,120, - 132,132,132,132,132,164,148,120,4,6,9,9,7,0,0,248, - 132,132,132,248,132,132,132,132,6,9,9,7,0,0,120,132, - 128,128,120,4,4,132,120,7,9,9,7,0,0,254,16,16, - 16,16,16,16,16,16,6,9,9,7,0,0,132,132,132,132, - 132,132,132,132,120,7,9,9,7,0,0,130,130,130,68,68, - 40,40,16,16,7,9,9,7,0,0,130,130,130,130,146,146, - 170,198,130,6,9,9,7,0,0,132,132,132,72,48,48,72, - 132,132,7,9,9,7,0,0,130,130,130,68,40,16,16,16, - 16,6,9,9,7,0,0,252,4,8,16,32,64,128,128,252, - 3,12,12,7,2,255,224,128,128,128,128,128,128,128,128,128, - 128,224,6,12,12,7,1,254,128,128,64,64,32,32,16,16, - 8,8,4,4,3,12,12,7,1,255,224,32,32,32,32,32, - 32,32,32,32,32,224,5,3,3,7,1,6,32,80,136,7, - 1,1,7,0,254,254,3,3,3,7,1,8,128,64,32,6, - 6,6,7,0,0,124,132,132,140,148,100,6,9,9,7,0, - 0,128,128,128,248,132,132,132,132,248,6,6,6,7,0,0, - 120,132,128,128,128,124,6,9,9,7,0,0,4,4,4,124, - 132,132,132,132,124,6,6,6,7,0,0,120,132,252,128,128, - 124,4,9,9,7,1,0,48,64,64,224,64,64,64,64,64, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,120,6, - 9,9,7,0,0,128,128,128,248,132,132,132,132,132,3,9, - 9,7,2,0,64,0,0,192,64,64,64,64,224,3,12,12, - 7,1,253,32,0,0,96,32,32,32,32,32,32,32,192,6, - 9,9,7,0,0,128,128,128,136,144,160,208,136,132,3,9, - 9,7,2,0,192,64,64,64,64,64,64,64,224,7,6,6, - 7,0,0,252,146,146,146,146,146,6,6,6,7,0,0,152, - 164,196,132,132,132,6,6,6,7,0,0,120,132,132,132,132, - 120,6,9,9,7,0,253,248,132,132,132,132,248,128,128,128, - 6,9,9,7,0,253,124,132,132,132,132,124,4,4,4,6, - 6,6,7,0,0,152,164,192,128,128,128,6,6,6,7,0, - 0,124,128,120,4,4,248,4,9,9,7,1,0,64,64,64, - 224,64,64,64,64,48,6,6,6,7,0,0,132,132,132,140, - 148,100,6,6,6,7,0,0,132,132,72,72,48,48,7,6, - 6,7,0,0,146,146,146,146,146,108,6,6,6,7,0,0, - 132,72,48,48,72,132,6,9,9,7,0,253,132,132,132,132, - 132,124,4,4,120,6,6,6,7,0,0,252,8,16,32,64, - 252,4,15,15,7,1,253,48,64,64,64,64,64,64,128,64, - 64,64,64,64,64,48,1,13,13,7,3,254,128,128,128,128, - 128,128,128,128,128,128,128,128,128,4,15,15,7,1,253,192, - 32,32,32,32,32,32,16,32,32,32,32,32,32,192,6,2, - 2,7,0,4,100,152,0,0,0,7,0,0}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 5 y=10 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17[3681] U8G_FONT_SECTION("u8g_font_profont17") = { - 0,14,16,0,253,11,2,35,4,78,32,255,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,4,5,5,14,0,254,48,48,48,96,192,8,17,17, - 14,0,253,7,15,24,24,24,24,60,60,24,24,24,24,24, - 24,24,240,224,7,5,5,14,0,254,54,54,54,108,216,8, - 2,2,14,0,0,219,219,4,9,9,14,2,2,96,96,240, - 240,96,96,96,96,96,4,9,9,14,2,2,96,96,240,240, - 96,240,240,96,96,6,3,3,14,1,10,48,120,204,9,13, - 26,14,0,0,63,128,127,128,217,128,219,0,222,0,124,0, - 56,0,63,0,127,128,214,128,150,128,31,128,15,0,8,14, - 14,14,0,0,102,60,24,60,126,195,192,124,62,7,195,195, - 126,60,4,7,7,14,0,0,48,96,192,192,192,96,48,8, - 11,11,14,0,0,63,127,216,216,220,220,216,216,216,127,63, - 0,0,0,14,0,0,0,0,0,14,0,0,0,0,0,14, - 0,0,0,0,0,14,0,0,4,5,5,14,3,6,48,96, - 192,192,192,4,5,5,14,3,6,48,48,48,96,192,7,5, - 5,14,1,6,54,108,216,216,216,7,5,5,14,1,6,54, - 54,54,108,216,7,7,7,14,0,2,56,124,254,254,254,124, - 56,5,2,2,14,2,5,248,248,9,2,4,14,0,5,255, - 128,255,128,8,3,3,14,0,9,113,219,142,9,5,10,14, - 0,6,252,128,39,128,39,128,36,128,36,128,8,13,13,14, - 0,0,102,60,24,0,0,63,255,192,252,63,3,255,252,4, - 7,7,14,0,0,192,96,48,48,48,96,192,8,8,8,14, - 0,0,36,126,219,223,223,216,127,39,0,0,0,14,0,0, - 0,0,0,14,0,0,8,14,14,14,0,0,102,102,0,195, - 195,195,195,231,126,60,24,24,24,24,0,0,0,14,0,0, - 2,11,11,14,5,0,192,192,0,192,192,192,192,192,192,192, - 192,8,12,12,14,0,254,24,24,60,126,219,219,216,216,127, - 63,24,24,8,12,12,14,0,0,120,252,204,192,240,240,192, - 192,192,199,254,252,8,8,8,14,0,0,129,66,60,36,36, - 60,66,129,8,11,11,14,0,0,195,102,60,255,255,24,255, - 255,24,24,24,2,15,15,14,3,254,192,192,192,192,192,192, - 0,0,0,192,192,192,192,192,192,8,16,16,14,0,254,60, - 126,99,99,51,216,204,198,99,51,27,204,198,198,126,60,4, - 2,2,14,2,9,144,240,8,11,11,14,0,0,120,252,134, - 123,251,195,251,123,134,252,120,6,9,9,14,2,5,60,124, - 204,204,124,60,0,252,252,8,7,7,14,0,0,51,102,204, - 204,204,102,51,8,4,4,14,0,2,255,255,3,3,8,2, - 2,14,0,4,255,255,8,10,10,14,0,1,248,252,6,243, - 251,219,243,251,222,204,5,2,2,14,2,9,248,248,6,6, - 6,14,2,6,48,120,204,204,120,48,8,9,9,14,0,0, - 24,24,24,255,255,24,24,255,255,4,6,6,14,2,8,96, - 144,16,32,64,240,4,6,6,14,2,8,96,144,32,16,144, - 96,4,4,4,14,3,9,48,112,224,192,8,11,11,14,0, - 253,204,204,204,204,204,204,255,243,192,192,192,8,13,13,14, - 0,0,63,127,219,219,219,219,127,63,27,27,27,27,27,3, - 3,3,14,3,4,224,224,224,4,5,5,14,1,253,112,112, - 48,96,192,3,6,6,14,3,8,192,64,64,64,64,224,6, - 9,9,14,2,5,48,120,204,204,120,48,0,252,252,8,7, - 7,14,0,0,204,102,51,51,51,102,204,9,14,28,14,0, - 0,96,0,32,0,32,0,32,128,33,0,114,0,4,0,8, - 0,17,0,35,0,69,0,137,0,15,128,1,0,9,14,28, - 14,0,0,96,0,32,0,32,0,32,128,33,0,114,0,4, - 0,8,0,19,0,36,128,64,128,129,0,2,0,7,128,9, - 14,28,14,0,0,48,0,72,0,16,0,8,128,73,0,50, - 0,4,0,8,0,17,0,35,0,69,0,137,0,15,128,1, - 0,8,11,11,14,0,0,24,24,0,8,24,48,96,195,195, - 126,60,8,14,14,14,0,0,96,48,24,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,6,12,24,24, - 60,60,102,102,195,255,255,195,195,195,8,14,14,14,0,0, - 24,60,102,24,60,60,102,102,195,255,255,195,195,195,8,14, - 14,14,0,0,115,219,142,24,60,60,102,102,195,255,255,195, - 195,195,8,14,14,14,0,0,102,102,0,24,60,60,102,102, - 195,255,255,195,195,195,8,14,14,14,0,0,24,60,36,60, - 24,60,102,102,195,255,255,195,195,195,8,11,11,14,0,0, - 63,127,216,216,252,252,216,216,216,223,223,8,14,14,14,0, - 253,60,126,195,195,192,192,192,195,195,126,60,24,48,96,8, - 14,14,14,0,0,96,48,24,255,255,192,192,252,252,192,192, - 192,255,255,8,14,14,14,0,0,6,12,24,255,255,192,192, - 252,252,192,192,192,255,255,8,14,14,14,0,0,24,60,102, - 255,255,192,192,252,252,192,192,192,255,255,8,14,14,14,0, - 0,102,102,0,255,255,192,192,252,252,192,192,192,255,255,8, - 14,14,14,0,0,96,48,24,255,255,24,24,24,24,24,24, - 24,255,255,8,14,14,14,0,0,6,12,24,255,255,24,24, - 24,24,24,24,24,255,255,8,14,14,14,0,0,24,60,102, - 255,255,24,24,24,24,24,24,24,255,255,8,14,14,14,0, - 0,102,102,0,255,255,24,24,24,24,24,24,24,255,255,8, - 11,11,14,0,0,124,126,99,99,243,243,99,99,99,126,124, - 8,14,14,14,0,0,113,219,142,195,227,243,219,207,199,195, - 195,195,195,195,8,14,14,14,0,0,96,48,24,60,126,195, - 195,195,195,195,195,195,126,60,8,14,14,14,0,0,6,12, - 24,60,126,195,195,195,195,195,195,195,126,60,8,14,14,14, - 0,0,24,60,102,0,60,126,195,195,195,195,195,195,126,60, - 8,14,14,14,0,0,113,219,142,60,126,195,195,195,195,195, - 195,195,126,60,8,14,14,14,0,0,102,102,0,60,126,195, - 195,195,195,195,195,195,126,60,8,7,7,14,0,2,195,102, - 60,24,60,102,195,8,11,11,14,0,0,60,126,195,199,207, - 219,243,227,195,126,60,8,14,14,14,0,0,96,48,24,195, - 195,195,195,195,195,195,195,195,126,60,8,14,14,14,0,0, - 6,12,24,195,195,195,195,195,195,195,195,195,126,60,8,14, - 14,14,0,0,24,60,102,0,195,195,195,195,195,195,195,195, - 126,60,8,14,14,14,0,0,102,102,0,195,195,195,195,195, - 195,195,195,195,126,60,8,14,14,14,0,0,6,12,24,195, - 195,195,195,231,126,60,24,24,24,24,8,11,11,14,0,0, - 192,192,252,254,195,195,254,252,192,192,192,8,15,15,14,0, - 254,28,62,99,195,195,198,204,204,198,195,195,222,220,192,192, - 8,13,13,14,0,0,16,24,12,4,0,63,127,195,195,199, - 207,123,51,8,13,13,14,0,0,4,12,24,16,0,63,127, - 195,195,199,207,123,51,8,12,12,14,0,0,24,60,102,0, - 63,127,195,195,199,207,123,51,8,12,12,14,0,0,113,219, - 142,0,63,127,195,195,199,207,123,51,8,11,11,14,0,0, - 102,102,0,63,127,195,195,199,207,123,51,8,12,12,14,0, - 0,24,36,36,24,63,127,195,195,199,207,123,51,8,8,8, - 14,0,0,60,126,219,223,223,216,127,63,8,11,11,14,0, - 253,60,126,195,195,192,192,127,63,24,48,96,8,13,13,14, - 0,0,32,48,24,8,0,60,126,195,255,255,192,127,63,8, - 13,13,14,0,0,4,12,24,16,0,60,126,195,255,255,192, - 127,63,8,12,12,14,0,0,24,60,102,0,60,126,195,255, - 255,192,127,63,8,11,11,14,0,0,102,102,0,60,126,195, - 255,255,192,127,63,6,13,13,14,1,0,128,192,96,32,0, - 240,240,48,48,48,48,252,252,6,13,13,14,1,0,8,24, - 48,32,0,240,240,48,48,48,48,252,252,6,12,12,14,1, - 0,48,120,204,0,240,240,48,48,48,48,252,252,6,11,11, - 14,1,0,204,204,0,240,240,48,48,48,48,252,252,8,13, - 13,14,0,0,72,48,48,72,4,62,127,195,195,195,195,126, - 60,8,12,12,14,0,0,113,219,142,0,204,222,243,227,195, - 195,195,195,8,13,13,14,0,0,32,48,24,8,0,60,126, - 195,195,195,195,126,60,8,13,13,14,0,0,4,12,24,16, - 0,60,126,195,195,195,195,126,60,8,12,12,14,0,0,24, - 60,102,0,60,126,195,195,195,195,126,60,8,12,12,14,0, - 0,113,219,142,0,60,126,195,195,195,195,126,60,8,11,11, - 14,0,0,102,102,0,60,126,195,195,195,195,126,60,8,8, - 8,14,0,2,24,24,0,255,255,0,24,24,8,8,8,14, - 0,0,60,126,199,207,243,227,126,60,8,13,13,14,0,0, - 32,48,24,8,0,195,195,195,195,199,207,123,51,8,13,13, - 14,0,0,4,12,24,16,0,195,195,195,195,199,207,123,51, - 8,12,12,14,0,0,24,60,102,0,195,195,195,195,199,207, - 123,51,8,11,11,14,0,0,102,102,0,195,195,195,195,199, - 207,123,51,8,16,16,14,0,253,4,12,24,16,0,195,195, - 195,195,195,195,127,63,3,62,60,8,14,14,14,0,253,192, - 192,192,252,254,195,195,195,195,254,252,192,192,192,8,14,14, - 14,0,253,102,102,0,195,195,195,195,195,195,127,63,3,62, - 60}; -/* - Fontname: ProFont17 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w= 9 h=17 x= 3 y= 9 dx=14 dy= 0 ascent=14 len=32 - Font Bounding box w=14 h=16 x= 0 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =11 descent=-3 - X Font ascent =13 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont17r[1590] U8G_FONT_SECTION("u8g_font_profont17r") = { - 0,14,16,0,253,11,2,35,4,78,32,127,253,14,253,13, - 253,0,0,0,14,0,0,2,11,11,14,3,0,192,192,192, - 192,192,192,192,192,0,192,192,5,5,5,14,1,8,216,216, - 216,216,216,7,7,7,14,1,3,108,254,254,108,254,254,108, - 8,15,15,14,0,254,24,24,60,126,219,216,124,62,31,219, - 219,126,60,24,24,8,11,11,14,0,0,63,127,219,222,124, - 60,62,123,219,206,196,8,11,11,14,0,0,48,120,204,204, - 216,112,243,222,204,254,123,2,5,5,14,3,8,192,192,192, - 192,192,6,15,15,14,1,254,12,24,48,96,192,192,192,192, - 192,192,192,96,48,24,12,6,15,15,14,1,254,192,96,48, - 24,12,12,12,12,12,12,12,24,48,96,192,8,8,8,14, - 0,3,24,219,255,60,60,255,219,24,8,8,8,14,0,1, - 24,24,24,255,255,24,24,24,4,6,6,14,1,253,112,112, - 112,48,96,192,5,2,2,14,1,4,248,248,3,3,3,14, - 2,0,224,224,224,9,16,32,14,0,253,1,128,1,128,3, - 0,3,0,6,0,6,0,12,0,12,0,24,0,24,0,48, - 0,48,0,96,0,96,0,192,0,192,0,8,11,11,14,0, - 0,60,126,195,199,207,219,243,227,195,126,60,8,11,11,14, - 0,0,24,120,120,24,24,24,24,24,24,255,255,8,11,11, - 14,0,0,60,126,195,195,6,12,24,48,96,255,255,8,11, - 11,14,0,0,60,126,195,195,30,28,6,195,195,126,60,8, - 11,11,14,0,0,6,14,30,54,102,198,255,255,6,15,15, - 8,11,11,14,0,0,255,255,192,252,254,3,3,3,195,126, - 60,8,11,11,14,0,0,62,126,192,252,254,195,195,195,195, - 126,60,8,11,11,14,0,0,255,255,3,3,6,12,24,24, - 24,24,24,8,11,11,14,0,0,60,126,195,195,126,60,126, - 195,195,126,60,8,11,11,14,0,0,60,126,195,195,195,195, - 127,63,3,126,124,3,8,8,14,2,0,224,224,224,0,0, - 224,224,224,4,11,11,14,1,253,112,112,112,0,0,112,112, - 112,48,96,192,7,11,11,14,1,0,6,12,24,48,96,192, - 96,48,24,12,6,8,5,5,14,0,3,255,255,0,255,255, - 7,11,11,14,1,0,192,96,48,24,12,6,12,24,48,96, - 192,8,11,11,14,0,0,60,126,195,195,6,12,24,16,0, - 24,24,8,11,11,14,0,0,60,126,195,207,223,219,223,206, - 192,127,63,8,11,11,14,0,0,24,60,60,102,102,195,255, - 255,195,195,195,8,11,11,14,0,0,252,254,195,195,254,252, - 198,195,195,254,252,8,11,11,14,0,0,60,126,195,195,192, - 192,192,195,195,126,60,8,11,11,14,0,0,252,254,195,195, - 195,195,195,195,195,254,252,8,11,11,14,0,0,255,255,192, - 192,252,252,192,192,192,255,255,8,11,11,14,0,0,255,255, - 192,192,252,252,192,192,192,192,192,8,11,11,14,0,0,60, - 126,195,195,192,207,207,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,255,255,195,195,195,195,195,8,11,11,14,0, - 0,255,255,24,24,24,24,24,24,24,255,255,8,11,11,14, - 0,0,3,3,3,3,3,3,195,195,195,126,60,8,11,11, - 14,0,0,195,198,204,216,240,224,240,216,204,198,195,8,11, - 11,14,0,0,192,192,192,192,192,192,192,192,192,255,255,8, - 11,11,14,0,0,195,231,255,255,219,219,219,195,195,195,195, - 8,11,11,14,0,0,195,227,243,219,207,199,195,195,195,195, - 195,8,11,11,14,0,0,60,126,195,195,195,195,195,195,195, - 126,60,8,11,11,14,0,0,252,254,195,195,254,252,192,192, - 192,192,192,8,13,13,14,0,254,60,126,195,195,195,195,195, - 219,207,126,62,6,3,8,11,11,14,0,0,252,254,195,195, - 254,252,198,195,195,195,195,8,11,11,14,0,0,60,126,195, - 192,124,62,7,195,195,126,60,8,11,11,14,0,0,255,255, - 24,24,24,24,24,24,24,24,24,8,11,11,14,0,0,195, - 195,195,195,195,195,195,195,195,126,60,8,11,11,14,0,0, - 195,195,195,195,195,102,102,60,60,24,24,8,11,11,14,0, - 0,195,195,195,195,219,219,219,255,255,231,195,8,11,11,14, - 0,0,195,195,195,102,60,24,60,102,195,195,195,8,11,11, - 14,0,0,195,195,195,195,231,126,60,24,24,24,24,8,11, - 11,14,0,0,255,255,3,6,12,24,48,96,192,255,255,4, - 15,15,14,3,254,240,240,192,192,192,192,192,192,192,192,192, - 192,192,240,240,9,16,32,14,0,253,192,0,192,0,96,0, - 96,0,48,0,48,0,24,0,24,0,12,0,12,0,6,0, - 6,0,3,0,3,0,1,128,1,128,4,15,15,14,1,254, - 240,240,48,48,48,48,48,48,48,48,48,48,48,240,240,7, - 5,5,14,1,6,16,56,108,198,130,9,2,4,14,0,253, - 255,128,255,128,3,4,4,14,1,9,128,192,96,32,8,8, - 8,14,0,0,63,127,195,195,199,207,123,51,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,254,252,8,8,8, - 14,0,0,60,126,195,195,192,192,127,63,8,11,11,14,0, - 0,3,3,3,63,127,195,195,195,195,127,63,8,8,8,14, - 0,0,60,126,195,255,255,192,127,63,6,11,11,14,2,0, - 28,60,96,240,240,96,96,96,96,96,96,8,11,11,14,0, - 253,63,127,195,195,195,195,127,63,3,62,60,8,11,11,14, - 0,0,192,192,192,252,254,195,195,195,195,195,195,6,11,11, - 14,1,0,48,48,0,240,240,48,48,48,48,252,252,5,14, - 14,14,0,253,24,24,0,120,120,24,24,24,24,24,24,24, - 240,224,8,11,11,14,0,0,192,192,192,198,204,216,240,248, - 204,198,195,6,11,11,14,1,0,240,240,48,48,48,48,48, - 48,48,252,252,8,8,8,14,0,0,252,254,219,219,219,219, - 219,219,8,8,8,14,0,0,204,222,243,227,195,195,195,195, - 8,8,8,14,0,0,60,126,195,195,195,195,126,60,8,11, - 11,14,0,253,252,254,195,195,195,195,254,252,192,192,192,8, - 11,11,14,0,253,63,127,195,195,195,195,127,63,3,3,3, - 8,8,8,14,0,0,204,222,243,227,192,192,192,192,8,8, - 8,14,0,0,63,255,192,252,63,3,255,252,6,11,11,14, - 2,0,96,96,96,240,240,96,96,96,96,60,28,8,8,8, - 14,0,0,195,195,195,195,199,207,123,51,8,8,8,14,0, - 0,195,195,195,102,102,60,60,24,8,8,8,14,0,0,219, - 219,219,219,219,219,255,102,8,8,8,14,0,0,195,102,60, - 24,24,60,102,195,8,11,11,14,0,253,195,195,195,195,195, - 195,127,63,3,62,60,7,8,8,14,0,0,254,254,12,24, - 48,96,254,254,5,17,17,14,1,253,24,56,48,48,48,48, - 48,96,192,96,48,48,48,48,48,56,24,2,15,15,14,3, - 254,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,17,17,14,2,253,192,224,96,96,96,96,96,48,24,48, - 96,96,96,96,96,224,192,8,3,3,14,0,5,113,219,142, - 0,0,0,14,0,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 6 y=12 dx=12 dy= 0 ascent=18 len=44 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22[6454] U8G_FONT_SECTION("u8g_font_profont22") = { - 0,12,21,0,252,14,3,117,7,113,32,255,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0,0, - 0,0,12,0,0,0,0,0,12,0,0,4,7,7,12,0, - 253,48,48,48,48,112,224,64,10,22,44,12,0,252,3,192, - 7,192,14,0,12,0,12,0,12,0,12,0,12,0,63,0, - 63,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,28,0,248,0,240,0,8,7,7,12,0,253, - 51,51,51,51,119,238,68,10,2,4,12,0,0,204,192,204, - 192,6,10,10,12,2,4,48,48,252,252,48,48,48,48,48, - 48,6,10,10,12,2,4,48,48,252,252,48,48,252,252,48, - 48,6,4,4,12,2,12,48,120,252,204,12,16,32,12,0, - 0,63,240,127,240,204,224,205,192,207,128,207,0,126,0,60, - 0,60,192,127,224,243,48,243,48,179,48,51,48,31,224,12, - 192,10,18,36,12,0,0,51,0,63,0,30,0,12,0,63, - 0,127,128,225,192,192,192,192,0,224,0,127,0,63,128,1, - 192,0,192,192,192,225,192,127,128,63,0,4,10,10,12,0, - 255,48,112,96,224,192,192,224,96,112,48,10,14,28,12,0, - 0,63,192,127,192,236,0,204,0,204,0,204,0,207,0,207, - 0,204,0,204,0,204,0,236,0,127,192,63,192,0,0,0, - 12,0,0,0,0,0,12,0,0,0,0,0,12,0,0,0, - 0,0,12,0,0,4,7,7,12,4,8,32,112,224,192,192, - 192,192,4,7,7,12,4,7,48,48,48,48,112,224,64,8, - 7,7,12,2,8,34,119,238,204,204,204,204,8,7,7,12, - 2,7,51,51,51,51,119,238,68,10,10,20,12,0,2,30, - 0,127,128,127,128,255,192,255,192,255,192,255,192,127,128,127, - 128,30,0,6,2,2,12,2,6,252,252,12,2,4,12,0, - 6,255,240,255,240,10,4,8,12,0,12,48,192,124,192,207, - 128,195,0,12,6,12,12,0,8,255,48,255,240,51,240,51, - 240,51,48,51,48,10,16,32,12,0,0,51,0,63,0,30, - 0,12,0,0,0,0,0,63,192,127,192,192,0,192,0,127, - 0,63,128,0,192,0,192,255,128,255,0,4,10,10,12,0, - 255,192,224,96,112,48,48,112,96,224,192,10,10,20,12,0, - 0,51,0,127,128,204,192,204,192,207,192,207,192,204,0,204, - 0,127,192,51,192,0,0,0,12,0,0,0,0,0,12,0, - 0,10,18,36,12,0,0,51,0,51,0,0,0,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,0,0,0,12,0, - 0,2,14,14,12,6,0,192,192,0,0,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,254,12,0,12,0,63, - 0,127,128,237,192,204,192,204,0,204,0,204,0,236,0,127, - 192,63,192,12,0,12,0,10,16,32,12,0,0,60,0,126, - 0,231,0,195,0,192,0,192,0,252,0,252,0,192,0,192, - 0,192,0,192,0,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,64,128,225,192,127,128,63,0,51,0,51,0,63, - 0,127,128,225,192,64,128,10,14,28,12,0,0,192,192,225, - 192,115,128,63,0,255,192,255,192,12,0,12,0,255,192,255, - 192,12,0,12,0,12,0,12,0,2,18,18,12,4,254,192, - 192,192,192,192,192,192,192,0,0,192,192,192,192,192,192,192, - 192,10,20,40,12,0,254,31,0,127,128,97,192,224,192,112, - 192,56,192,220,0,206,0,199,0,227,128,113,192,56,192,28, - 192,14,192,199,0,195,128,193,192,225,128,127,128,62,0,6, - 2,2,12,2,12,204,204,10,14,28,12,0,0,120,0,254, - 0,135,0,1,128,61,128,124,192,192,192,192,192,124,192,61, - 128,1,128,135,0,254,0,120,0,8,12,12,12,2,6,63, - 127,227,195,195,227,127,63,0,0,255,255,10,10,20,12,0, - 255,48,192,113,192,97,128,227,128,195,0,195,0,227,128,97, - 128,113,192,48,192,10,6,12,12,0,2,255,192,255,192,0, - 192,0,192,0,192,0,192,10,2,4,12,0,6,255,192,255, - 192,10,12,24,12,0,2,120,0,254,0,135,0,1,128,241, - 128,248,192,204,192,204,192,248,192,249,192,223,128,207,0,6, - 2,2,12,2,12,252,252,8,8,8,12,2,8,60,126,231, - 195,195,231,126,60,10,12,24,12,0,0,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,255, - 192,255,192,5,7,7,12,3,11,112,136,8,16,32,64,248, - 5,7,7,12,3,11,112,136,8,48,8,136,112,4,4,4, - 12,4,12,48,112,224,192,10,14,28,12,0,252,195,0,195, - 0,195,0,195,0,195,0,195,0,195,0,199,128,255,192,252, - 192,192,0,192,0,192,0,192,0,10,16,32,12,0,0,31, - 192,127,192,124,192,236,192,204,192,204,192,236,192,124,192,127, - 192,31,192,12,192,12,192,12,192,12,192,12,192,12,192,4, - 4,4,12,4,4,96,240,240,96,4,6,6,12,2,252,240, - 240,48,112,224,64,5,7,7,12,3,11,32,224,32,32,32, - 32,248,8,12,12,12,2,6,60,126,231,195,195,231,126,60, - 0,0,255,255,10,10,20,12,0,255,195,0,227,128,97,128, - 113,192,48,192,48,192,113,192,97,128,227,128,195,0,12,18, - 36,12,0,0,16,0,112,0,16,0,16,0,16,16,16,32, - 124,64,0,128,1,0,2,0,4,0,8,64,16,192,33,64, - 66,64,131,224,0,64,0,224,12,18,36,12,0,0,16,0, - 112,0,16,0,16,0,16,16,16,32,124,64,0,128,1,0, - 2,0,4,0,9,192,18,32,32,32,64,64,128,128,1,0, - 3,224,12,18,36,12,0,0,56,0,68,0,4,0,24,0, - 4,16,68,32,56,64,0,128,1,0,2,0,4,0,8,64, - 16,192,33,64,66,64,131,224,0,64,0,224,10,14,28,12, - 0,0,12,0,12,0,0,0,0,0,12,0,28,0,56,0, - 112,0,224,0,192,0,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,12,0,30,0, - 30,0,51,0,51,0,97,128,97,128,192,192,255,192,255,192, - 192,192,192,192,192,192,192,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,12,0,30,0,30,0,51,0,51,0, - 97,128,97,128,192,192,255,192,255,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 12,0,30,0,30,0,51,0,51,0,97,128,97,128,192,192, - 255,192,255,192,192,192,192,192,192,192,192,192,10,18,36,12, - 0,0,48,192,124,192,207,128,195,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,255,192,255,192,192,192, - 192,192,192,192,192,192,10,18,36,12,0,0,51,0,51,0, - 0,0,0,0,12,0,30,0,30,0,51,0,51,0,97,128, - 97,128,192,192,255,192,255,192,192,192,192,192,192,192,192,192, - 10,18,36,12,0,0,12,0,30,0,51,0,51,0,30,0, - 30,0,30,0,51,0,51,0,97,128,97,128,192,192,255,192, - 255,192,192,192,192,192,192,192,192,192,10,14,28,12,0,0, - 63,192,127,192,236,0,204,0,204,0,204,0,255,0,255,0, - 204,0,204,0,204,0,204,0,207,192,207,192,10,18,36,12, - 0,252,63,0,127,128,225,192,192,192,192,0,192,0,192,0, - 192,0,192,0,192,0,192,192,225,192,127,128,63,0,12,0, - 28,0,56,0,16,0,10,18,36,12,0,0,48,0,56,0, - 28,0,12,0,255,192,255,192,192,0,192,0,192,0,192,0, - 255,0,255,0,192,0,192,0,192,0,192,0,255,192,255,192, - 10,18,36,12,0,0,3,0,7,0,14,0,12,0,255,192, - 255,192,192,0,192,0,192,0,192,0,255,0,255,0,192,0, - 192,0,192,0,192,0,255,192,255,192,10,18,36,12,0,0, - 12,0,30,0,63,0,51,0,255,192,255,192,192,0,192,0, - 192,0,192,0,255,0,255,0,192,0,192,0,192,0,192,0, - 255,192,255,192,10,18,36,12,0,0,51,0,51,0,0,0, - 0,0,255,192,255,192,192,0,192,0,192,0,192,0,255,0, - 255,0,192,0,192,0,192,0,192,0,255,192,255,192,10,18, - 36,12,0,0,48,0,56,0,28,0,12,0,255,192,255,192, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,255,192,255,192,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,255,192,255,192,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,18,36,12,0,0,12,0,30,0,63,0,51,0, - 255,192,255,192,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,255,192,255,192,10,18,36,12, - 0,0,51,0,51,0,0,0,0,0,255,192,255,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,255,192,255,192,10,14,28,12,0,0,63,0,63,128, - 49,192,48,192,48,192,48,192,252,192,252,192,48,192,48,192, - 48,192,49,192,63,128,63,0,10,18,36,12,0,0,48,192, - 124,192,207,128,199,0,192,192,224,192,240,192,248,192,220,192, - 206,192,199,192,195,192,193,192,192,192,192,192,192,192,192,192, - 192,192,10,18,36,12,0,0,48,0,56,0,28,0,12,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,18,36,12, - 0,0,3,0,7,0,14,0,12,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 225,192,127,128,63,0,10,18,36,12,0,0,12,0,30,0, - 63,0,51,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,192,124,192,207,128,199,0,63,0, - 127,128,225,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,10,20,12,0,2,64,128,225,192,115,128, - 63,0,30,0,30,0,63,0,115,128,225,192,64,128,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,18,36,12,0,0,48,0,56,0,28,0,12,0,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,18,36,12,0,0, - 3,0,7,0,14,0,12,0,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,18,36,12,0,0,12,0,30,0,63,0, - 51,0,0,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,18, - 36,12,0,0,51,0,51,0,0,0,0,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,18,36,12,0,0,3,0, - 7,0,14,0,12,0,192,192,192,192,192,192,192,192,192,192, - 225,192,115,128,63,0,30,0,12,0,12,0,12,0,12,0, - 12,0,10,14,28,12,0,0,192,0,192,0,255,0,255,128, - 193,192,192,192,192,192,193,192,255,128,255,0,192,0,192,0, - 192,0,192,0,10,18,36,12,0,254,15,0,31,128,57,192, - 112,192,224,192,193,192,195,128,195,0,195,0,195,128,193,192, - 192,192,192,192,193,192,207,128,207,0,192,0,192,0,10,16, - 32,12,0,0,12,0,14,0,7,0,3,0,0,0,0,0, - 63,192,127,192,224,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,16,32,12,0,0,3,0,7,0,14,0, - 12,0,0,0,0,0,63,192,127,192,224,192,192,192,192,192, - 193,192,195,192,231,192,126,192,60,192,10,16,32,12,0,0, - 12,0,30,0,63,0,51,0,0,0,0,0,63,192,127,192, - 224,192,192,192,192,192,193,192,195,192,231,192,126,192,60,192, - 10,16,32,12,0,0,48,192,124,192,207,128,199,0,0,0, - 0,0,63,192,127,192,224,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,14,28,12,0,0,51,0,51,0, - 0,0,0,0,63,192,127,192,224,192,192,192,192,192,193,192, - 195,192,231,192,126,192,60,192,10,16,32,12,0,0,12,0, - 30,0,51,0,51,0,30,0,12,0,63,192,127,192,224,192, - 192,192,192,192,193,192,195,192,231,192,126,192,60,192,10,10, - 20,12,0,0,63,0,127,128,237,192,204,192,207,192,207,192, - 204,0,236,0,127,192,63,192,10,14,28,12,0,252,63,0, - 127,128,225,192,192,192,192,0,192,0,192,0,224,0,127,192, - 63,192,12,0,28,0,56,0,16,0,10,16,32,12,0,0, - 48,0,56,0,28,0,12,0,0,0,0,0,63,0,127,128, - 225,192,192,192,255,192,255,192,192,0,224,0,127,192,63,192, - 10,16,32,12,0,0,3,0,7,0,14,0,12,0,0,0, - 0,0,63,0,127,128,225,192,192,192,255,192,255,192,192,0, - 224,0,127,192,63,192,10,16,32,12,0,0,12,0,30,0, - 63,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 255,192,255,192,192,0,224,0,127,192,63,192,10,14,28,12, - 0,0,51,0,51,0,0,0,0,0,63,0,127,128,225,192, - 192,192,255,192,255,192,192,0,224,0,127,192,63,192,6,16, - 16,12,2,0,192,224,112,48,0,0,240,240,48,48,48,48, - 48,48,252,252,6,16,16,12,2,0,12,28,56,48,0,0, - 240,240,48,48,48,48,48,48,252,252,6,16,16,12,2,0, - 48,120,252,204,0,0,240,240,48,48,48,48,48,48,252,252, - 6,14,14,12,2,0,204,204,0,0,240,240,48,48,48,48, - 48,48,252,252,10,17,34,12,0,0,36,0,126,0,60,0, - 60,0,126,0,39,0,3,128,63,192,127,192,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,16,32,12, - 0,0,48,192,124,192,207,128,199,0,0,0,0,0,207,0, - 223,128,249,192,240,192,224,192,192,192,192,192,192,192,192,192, - 192,192,10,16,32,12,0,0,48,0,56,0,28,0,12,0, - 0,0,0,0,63,0,127,128,225,192,192,192,192,192,192,192, - 192,192,225,192,127,128,63,0,10,16,32,12,0,0,3,0, - 7,0,14,0,12,0,0,0,0,0,63,0,127,128,225,192, - 192,192,192,192,192,192,192,192,225,192,127,128,63,0,10,16, - 32,12,0,0,12,0,30,0,63,0,51,0,0,0,0,0, - 63,0,127,128,225,192,192,192,192,192,192,192,192,192,225,192, - 127,128,63,0,10,16,32,12,0,0,48,192,124,192,207,128, - 199,0,0,0,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 51,0,51,0,0,0,0,0,63,0,127,128,225,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,10,20,12, - 0,2,12,0,12,0,0,0,0,0,255,192,255,192,0,0, - 0,0,12,0,12,0,10,10,20,12,0,0,63,0,127,128, - 227,192,199,192,206,192,220,192,248,192,241,192,127,128,63,0, - 10,16,32,12,0,0,48,0,56,0,28,0,12,0,0,0, - 0,0,192,192,192,192,192,192,192,192,192,192,193,192,195,192, - 231,192,126,192,60,192,10,16,32,12,0,0,3,0,7,0, - 14,0,12,0,0,0,0,0,192,192,192,192,192,192,192,192, - 192,192,193,192,195,192,231,192,126,192,60,192,10,16,32,12, - 0,0,12,0,30,0,63,0,51,0,0,0,0,0,192,192, - 192,192,192,192,192,192,192,192,193,192,195,192,231,192,126,192, - 60,192,10,14,28,12,0,0,51,0,51,0,0,0,0,0, - 192,192,192,192,192,192,192,192,192,192,193,192,195,192,231,192, - 126,192,60,192,10,20,40,12,0,252,3,0,7,0,14,0, - 12,0,0,0,0,0,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,10,18,36,12,0,252,192,0,192,0,192,0,192,0, - 255,0,255,128,193,192,192,192,192,192,192,192,192,192,193,192, - 255,128,255,0,192,0,192,0,192,0,192,0,10,18,36,12, - 0,252,51,0,51,0,0,0,0,0,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,224,192,127,192,63,192,0,192, - 1,192,63,128,63,0}; -/* - Fontname: ProFont22 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 14, '1' Height: 14 - Calculated Max Values w=12 h=22 x= 4 y=12 dx=12 dy= 0 ascent=18 len=40 - Font Bounding box w=12 h=21 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent =14 descent=-4 - X Font ascent =16 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont22r[2719] U8G_FONT_SECTION("u8g_font_profont22r") = { - 0,12,21,0,252,14,3,117,7,113,32,127,252,18,252,16, - 252,0,0,0,12,0,0,2,14,14,12,4,0,192,192,192, - 192,192,192,192,192,192,192,0,0,192,192,6,6,6,12,2, - 10,204,204,204,204,204,204,10,10,20,12,0,4,51,0,51, - 0,255,192,255,192,51,0,51,0,255,192,255,192,51,0,51, - 0,10,18,36,12,0,254,12,0,12,0,63,0,127,128,237, - 192,204,192,204,0,236,0,127,0,63,128,13,192,12,192,204, - 192,237,192,127,128,63,0,12,0,12,0,10,14,28,12,0, - 0,63,192,127,192,204,192,205,192,207,128,207,0,127,0,63, - 128,60,192,124,192,236,192,204,192,199,128,195,0,10,14,28, - 12,0,0,62,0,127,0,227,0,199,0,206,0,252,0,120, - 0,120,0,252,192,207,192,199,128,231,128,127,192,60,192,2, - 6,6,12,4,10,192,192,192,192,192,192,6,18,18,12,2, - 254,12,28,56,112,224,192,192,192,192,192,192,192,192,224,112, - 56,28,12,6,18,18,12,2,254,192,224,112,56,28,12,12, - 12,12,12,12,12,12,28,56,112,224,192,10,10,20,12,0, - 4,12,0,12,0,204,192,255,192,63,0,63,0,255,192,204, - 192,12,0,12,0,10,10,20,12,0,2,12,0,12,0,12, - 0,12,0,255,192,255,192,12,0,12,0,12,0,12,0,5, - 9,9,12,2,252,48,120,120,56,24,56,112,224,64,6,2, - 2,12,2,6,252,252,4,4,4,12,3,1,96,240,240,96, - 11,20,40,12,0,252,0,96,0,96,0,192,0,192,1,128, - 1,128,3,0,3,0,6,0,6,0,12,0,12,0,24,0, - 24,0,48,0,48,0,96,0,96,0,192,0,192,0,10,14, - 28,12,0,0,63,0,127,128,225,192,193,192,195,192,199,192, - 206,192,220,192,248,192,240,192,224,192,225,192,127,128,63,0, - 10,14,28,12,0,0,12,0,12,0,124,0,124,0,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,255,192, - 255,192,10,14,28,12,0,0,63,0,127,128,225,192,192,192, - 0,192,1,192,3,128,7,0,14,0,28,0,56,0,112,0, - 255,192,255,192,10,14,28,12,0,0,63,0,127,128,225,192, - 192,192,0,192,1,128,15,0,15,128,1,192,0,192,192,192, - 225,192,127,128,63,0,10,14,28,12,0,0,3,0,7,0, - 15,0,31,0,59,0,115,0,227,0,195,0,255,192,255,192, - 3,0,3,0,15,192,15,192,10,14,28,12,0,0,255,192, - 255,192,192,0,192,0,255,0,255,128,1,192,0,192,0,192, - 0,192,192,192,225,192,127,128,63,0,10,14,28,12,0,0, - 63,0,127,0,224,0,192,0,255,0,255,128,193,192,192,192, - 192,192,192,192,192,192,225,192,127,128,63,0,10,14,28,12, - 0,0,255,192,255,192,0,192,0,192,0,192,1,192,3,128, - 7,0,14,0,12,0,12,0,12,0,12,0,12,0,10,14, - 28,12,0,0,63,0,127,128,225,192,192,192,192,192,97,128, - 63,0,127,128,225,192,192,192,192,192,225,192,127,128,63,0, - 10,14,28,12,0,0,63,0,127,128,225,192,192,192,192,192, - 192,192,192,192,224,192,127,192,63,192,0,192,1,192,63,128, - 63,0,4,10,10,12,3,1,96,240,240,96,0,0,96,240, - 240,96,5,15,15,12,2,252,48,120,120,48,0,0,48,120, - 120,56,24,56,112,224,64,8,14,14,12,2,0,3,7,14, - 28,56,112,224,224,112,56,28,14,7,3,10,6,12,12,0, - 4,255,192,255,192,0,0,0,0,255,192,255,192,8,14,14, - 12,2,0,192,224,112,56,28,14,7,7,14,28,56,112,224, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,0, - 192,1,192,3,128,7,0,14,0,12,0,0,0,0,0,12, - 0,12,0,10,14,28,12,0,0,63,0,127,128,225,192,192, - 192,199,192,207,192,204,192,204,192,207,192,199,128,192,0,224, - 0,127,192,63,192,10,14,28,12,0,0,12,0,30,0,30, - 0,51,0,51,0,97,128,97,128,192,192,255,192,255,192,192, - 192,192,192,192,192,192,192,10,14,28,12,0,0,255,0,255, - 128,193,192,192,192,192,192,193,128,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,10,14,28,12,0,0,63, - 0,127,128,225,192,192,192,192,0,192,0,192,0,192,0,192, - 0,192,0,192,192,225,192,127,128,63,0,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,14,28, - 12,0,0,255,192,255,192,192,0,192,0,192,0,192,0,255, - 0,255,0,192,0,192,0,192,0,192,0,255,192,255,192,10, - 14,28,12,0,0,255,192,255,192,192,0,192,0,192,0,192, - 0,255,0,255,0,192,0,192,0,192,0,192,0,192,0,192, - 0,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 0,192,0,195,192,195,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,255,192,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,10,14,28,12,0,0,255,192,255,192,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,255,192,255,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,192,192,192, - 192,192,192,225,192,127,128,63,0,10,14,28,12,0,0,193, - 192,195,128,199,0,206,0,220,0,248,0,240,0,248,0,220, - 0,206,0,199,0,195,128,193,192,192,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,255,192,255,192,10,14,28, - 12,0,0,192,192,225,192,243,192,255,192,222,192,204,192,204, - 192,204,192,192,192,192,192,192,192,192,192,192,192,192,192,10, - 14,28,12,0,0,192,192,224,192,240,192,248,192,220,192,206, - 192,199,192,195,192,193,192,192,192,192,192,192,192,192,192,192, - 192,10,14,28,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,255,0,255,128,193,192,192, - 192,192,192,193,192,255,128,255,0,192,0,192,0,192,0,192, - 0,192,0,192,0,10,16,32,12,0,254,63,0,127,128,225, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,204, - 192,239,192,127,128,63,128,1,192,0,192,10,14,28,12,0, - 0,255,0,255,128,193,192,192,192,192,192,193,128,255,0,255, - 128,193,192,192,192,192,192,192,192,192,192,192,192,10,14,28, - 12,0,0,63,0,127,128,225,192,192,192,192,0,224,0,127, - 0,63,128,1,192,0,192,192,192,225,192,127,128,63,0,10, - 14,28,12,0,0,255,192,255,192,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,10,14,28,12,0,0,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,225,192,127, - 128,63,0,10,14,28,12,0,0,192,192,192,192,192,192,192, - 192,192,192,192,192,97,128,97,128,51,0,51,0,30,0,30, - 0,12,0,12,0,10,14,28,12,0,0,192,192,192,192,192, - 192,192,192,192,192,192,192,204,192,204,192,204,192,222,192,255, - 192,243,192,225,192,192,192,10,14,28,12,0,0,192,192,192, - 192,192,192,225,192,115,128,63,0,30,0,30,0,63,0,115, - 128,225,192,192,192,192,192,192,192,10,14,28,12,0,0,192, - 192,192,192,192,192,192,192,192,192,225,192,115,128,63,0,30, - 0,12,0,12,0,12,0,12,0,12,0,10,14,28,12,0, - 0,255,192,255,192,0,192,1,192,3,128,7,0,14,0,28, - 0,56,0,112,0,224,0,192,0,255,192,255,192,4,18,18, - 12,4,254,240,240,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,240,240,11,20,40,12,1,252,192,0,192,0,96, - 0,96,0,48,0,48,0,24,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,1,128,1,128,0,192,0,192,0, - 96,0,96,4,18,18,12,2,254,240,240,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,240,240,10,6,12,12,0, - 8,12,0,30,0,63,0,115,128,225,192,64,128,12,2,4, - 12,0,252,255,240,255,240,4,4,4,12,2,12,192,224,112, - 48,10,10,20,12,0,0,63,192,127,192,224,192,192,192,192, - 192,193,192,195,192,231,192,126,192,60,192,10,14,28,12,0, - 0,192,0,192,0,192,0,192,0,255,0,255,128,193,192,192, - 192,192,192,192,192,192,192,193,192,255,128,255,0,10,10,20, - 12,0,0,63,0,127,128,225,192,192,192,192,0,192,0,192, - 0,224,0,127,192,63,192,10,14,28,12,0,0,0,192,0, - 192,0,192,0,192,63,192,127,192,224,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,10,10,20,12,0,0,63, - 0,127,128,225,192,192,192,255,192,255,192,192,0,224,0,127, - 192,63,192,8,14,14,12,2,0,15,31,56,48,252,252,48, - 48,48,48,48,48,48,48,10,14,28,12,0,252,63,192,127, - 192,224,192,192,192,192,192,192,192,192,192,224,192,127,192,63, - 192,0,192,1,192,63,128,63,0,10,14,28,12,0,0,192, - 0,192,0,192,0,192,0,255,0,255,128,193,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,6,14,14,12,2, - 0,48,48,0,0,240,240,48,48,48,48,48,48,252,252,6, - 18,18,12,0,252,12,12,0,0,60,60,12,12,12,12,12, - 12,12,12,12,28,248,240,10,14,28,12,0,0,192,0,192, - 0,192,0,192,0,195,128,199,0,206,0,220,0,252,0,254, - 0,231,0,195,128,193,192,192,192,6,14,14,12,2,0,240, - 240,48,48,48,48,48,48,48,48,48,48,252,252,10,10,20, - 12,0,0,255,0,255,128,205,192,204,192,204,192,204,192,204, - 192,204,192,204,192,204,192,10,10,20,12,0,0,207,0,223, - 128,249,192,240,192,224,192,192,192,192,192,192,192,192,192,192, - 192,10,10,20,12,0,0,63,0,127,128,225,192,192,192,192, - 192,192,192,192,192,225,192,127,128,63,0,10,14,28,12,0, - 252,255,0,255,128,193,192,192,192,192,192,192,192,192,192,193, - 192,255,128,255,0,192,0,192,0,192,0,192,0,10,14,28, - 12,0,252,63,192,127,192,224,192,192,192,192,192,192,192,192, - 192,224,192,127,192,63,192,0,192,0,192,0,192,0,192,10, - 10,20,12,0,0,207,0,223,128,249,192,240,192,224,0,192, - 0,192,0,192,0,192,0,192,0,10,10,20,12,0,0,63, - 192,127,192,192,0,192,0,127,0,63,128,0,192,0,192,255, - 128,255,0,8,14,14,12,2,0,48,48,48,48,252,252,48, - 48,48,48,48,56,31,15,10,10,20,12,0,0,192,192,192, - 192,192,192,192,192,192,192,193,192,195,192,231,192,126,192,60, - 192,10,10,20,12,0,0,192,192,192,192,192,192,97,128,97, - 128,51,128,51,0,30,0,30,0,12,0,10,10,20,12,0, - 0,204,192,204,192,204,192,204,192,204,192,204,192,204,192,204, - 192,127,128,51,0,10,10,20,12,0,0,192,192,225,192,115, - 128,63,0,30,0,30,0,63,0,115,128,225,192,192,192,10, - 14,28,12,0,252,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,224,192,127,192,63,192,0,192,1,192,63,128,63, - 0,10,10,20,12,0,0,255,192,255,192,3,128,7,0,14, - 0,28,0,56,0,112,0,255,192,255,192,6,22,22,12,2, - 252,12,28,56,48,48,48,48,48,48,112,224,224,112,48,48, - 48,48,48,48,56,28,12,2,18,18,12,4,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,6, - 22,22,12,2,252,192,224,112,48,48,48,48,48,48,56,28, - 28,56,48,48,48,48,48,48,112,224,192,10,4,8,12,0, - 6,48,192,124,192,207,128,195,0,0,0,0,12,0,0}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 8 y=16 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29[8666] U8G_FONT_SECTION("u8g_font_profont29") = { - 0,16,28,0,251,19,4,198,9,234,32,255,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0,0,0,0,16,0,0,0,0,0, - 16,0,0,5,8,8,16,0,253,56,56,56,56,56,120,240, - 96,13,29,58,16,0,251,0,120,1,248,3,248,3,128,7, - 0,7,0,7,0,7,0,7,0,7,0,31,192,31,192,31, - 192,7,0,7,0,7,0,7,0,7,0,7,0,7,0,7, - 0,7,0,7,0,7,0,7,0,14,0,254,0,252,0,240, - 0,11,8,16,16,0,253,56,224,56,224,56,224,56,224,56, - 224,121,224,243,192,97,128,13,3,6,16,0,0,231,56,231, - 56,231,56,9,14,28,16,2,5,28,0,28,0,28,0,255, - 128,255,128,255,128,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,9,14,28,16,2,5,28,0,28,0,28, - 0,255,128,255,128,255,128,28,0,28,0,255,128,255,128,255, - 128,28,0,28,0,28,0,10,6,12,16,2,16,12,0,30, - 0,63,0,127,128,243,192,97,128,15,22,44,16,0,0,31, - 254,63,254,127,254,119,30,227,60,227,120,227,240,247,224,127, - 192,127,128,63,0,15,56,63,252,127,252,253,238,248,198,216, - 198,152,198,29,238,15,252,15,252,7,56,14,24,48,16,0, - 0,24,192,61,224,31,192,15,128,7,0,15,192,63,240,127, - 248,112,56,224,28,224,28,224,0,112,0,127,192,63,240,15, - 248,0,56,0,28,224,28,224,28,112,56,127,248,63,240,15, - 192,5,13,13,16,0,255,48,56,112,112,224,224,224,224,224, - 112,112,56,48,14,19,38,16,0,0,15,252,63,252,127,252, - 119,0,231,0,231,0,231,0,231,0,231,224,231,224,231,224, - 231,0,231,0,231,0,231,0,119,0,127,252,63,252,15,252, - 0,0,0,16,0,0,0,0,0,16,0,0,0,0,0,16, - 0,0,0,0,0,16,0,0,5,8,8,16,5,11,48,120, - 240,224,224,224,224,224,5,8,8,16,6,11,56,56,56,56, - 56,120,240,96,11,8,16,16,2,11,48,192,121,224,243,192, - 227,128,227,128,227,128,227,128,227,128,11,8,16,16,3,11, - 56,224,56,224,56,224,56,224,56,224,121,224,243,192,97,128, - 13,13,26,16,0,3,15,128,63,224,127,240,127,240,255,248, - 255,248,255,248,255,248,255,248,127,240,127,240,63,224,15,128, - 8,3,3,16,3,8,255,255,255,16,3,6,16,0,8,255, - 255,255,255,255,255,13,5,10,16,0,16,60,56,127,56,255, - 248,231,240,225,224,15,8,16,16,0,11,255,206,255,254,255, - 254,57,254,57,254,57,206,57,206,57,206,14,22,44,16,0, - 0,24,96,60,240,31,224,15,192,7,128,3,0,0,0,0, - 0,15,252,63,252,127,252,240,0,224,0,255,192,127,240,31, - 248,0,60,0,28,0,60,255,248,255,240,255,192,5,13,13, - 16,0,255,96,224,112,112,56,56,56,56,56,120,112,224,96, - 14,14,28,16,0,0,60,240,127,248,127,248,231,28,231,28, - 231,28,231,252,231,252,231,252,231,0,231,0,127,252,127,252, - 60,252,0,0,0,16,0,0,0,0,0,16,0,0,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,224,56, - 224,56,224,56,224,56,224,56,224,56,224,56,240,120,120,240, - 61,224,31,192,15,128,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,0,0,0,16,0,0,3,19,19,16,8,0, - 224,224,224,0,0,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,13,20,40,16,0,253,7,0,7,0,7,0,15, - 128,63,224,127,240,119,112,231,56,231,56,231,0,231,0,231, - 0,231,0,119,0,127,248,63,248,15,248,7,0,7,0,7, - 0,13,22,44,16,0,0,14,0,63,128,127,128,113,192,224, - 224,224,224,224,0,224,0,255,0,255,0,255,0,224,0,224, - 0,224,0,224,0,224,0,224,56,224,56,224,112,255,240,255, - 224,255,128,13,13,26,16,0,0,64,16,224,56,112,112,63, - 224,31,192,29,192,24,192,29,192,31,192,63,224,112,112,224, - 56,64,16,15,19,38,16,0,0,96,12,240,30,120,60,60, - 120,30,240,127,252,127,252,127,252,3,128,3,128,3,128,127, - 252,127,252,127,252,3,128,3,128,3,128,3,128,3,128,3, - 25,25,16,5,253,224,224,224,224,224,224,224,224,224,224,224, - 0,0,0,224,224,224,224,224,224,224,224,224,224,224,14,27, - 54,16,0,253,15,192,63,240,63,248,112,56,112,28,120,28, - 60,28,30,28,239,0,231,128,227,192,225,224,240,240,120,120, - 60,60,30,28,15,28,7,156,3,220,225,224,224,240,224,120, - 224,56,112,56,127,240,63,240,15,128,8,3,3,16,3,16, - 231,231,231,14,19,38,16,0,0,28,0,255,128,255,224,193, - 240,0,112,31,56,127,56,127,24,224,28,224,28,224,28,127, - 24,127,56,31,56,0,112,193,240,255,224,255,128,28,0,12, - 16,32,16,2,8,15,240,63,240,127,240,112,112,224,112,224, - 112,224,112,112,112,127,240,63,240,15,240,0,0,0,0,255, - 240,255,240,255,240,13,13,26,16,0,255,48,48,56,56,112, - 112,112,112,224,224,224,224,224,224,224,224,224,224,112,112,112, - 112,56,56,48,48,14,8,16,16,0,3,255,252,255,252,255, - 252,0,28,0,28,0,28,0,28,0,28,13,3,6,16,0, - 8,255,248,255,248,255,248,14,17,34,16,0,2,28,0,255, - 128,255,224,193,240,0,112,248,56,254,56,254,24,231,28,231, - 28,231,28,254,24,254,56,254,56,239,240,231,240,227,192,8, - 3,3,16,3,16,255,255,255,12,12,24,16,2,10,15,0, - 63,192,127,224,112,224,224,112,224,112,224,112,224,112,112,224, - 127,224,63,192,15,0,13,16,32,16,0,0,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,255,248,255,248,255,248,6,9,9,16, - 4,15,120,132,4,4,8,16,32,64,252,6,9,9,16,4, - 15,120,132,4,8,48,8,4,132,120,7,6,6,16,5,16, - 12,30,60,120,240,96,14,18,36,16,0,251,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,225,240, - 255,252,255,188,254,12,224,0,224,0,224,0,224,0,224,0, - 14,22,44,16,0,0,7,252,31,252,63,252,127,28,119,28, - 231,28,231,28,231,28,231,28,119,28,127,28,63,252,31,252, - 7,252,7,28,7,28,7,28,7,28,7,28,7,28,7,28, - 7,28,5,5,5,16,5,6,112,248,248,248,112,6,8,8, - 16,3,251,252,252,252,60,124,248,240,96,7,9,9,16,4, - 15,16,112,16,16,16,16,16,16,254,11,16,32,16,3,8, - 14,0,63,128,127,192,113,192,224,224,224,224,224,224,113,192, - 127,192,63,128,14,0,0,0,0,0,255,224,255,224,255,224, - 13,13,26,16,0,255,96,96,224,224,112,112,112,112,56,56, - 56,56,56,56,56,56,56,56,112,112,112,112,224,224,96,96, - 15,24,48,16,0,0,8,0,56,0,8,0,8,0,8,0, - 8,0,8,2,8,4,127,8,0,16,0,32,0,64,0,128, - 1,0,2,0,4,8,8,24,16,40,32,72,64,136,128,254, - 0,8,0,8,0,62,15,24,48,16,0,0,8,0,56,0, - 8,0,8,0,8,0,8,0,8,2,8,4,127,8,0,16, - 0,32,0,64,0,128,1,0,2,0,4,120,8,132,16,4, - 32,4,64,8,128,16,0,32,0,64,0,252,15,24,48,16, - 0,0,30,0,33,0,1,0,2,0,12,0,2,0,1,2, - 33,4,30,8,0,16,0,32,0,64,0,128,1,0,2,0, - 4,8,8,24,16,40,32,72,64,136,128,254,0,8,0,8, - 0,62,14,19,38,16,0,0,3,128,3,128,3,128,0,0, - 0,0,3,128,7,128,15,0,30,0,60,0,120,0,240,0, - 224,0,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,24,0,60,0,30,0,15,0,7,128,7,128, - 7,128,15,192,15,192,28,224,28,224,56,112,56,112,112,56, - 112,56,224,28,255,252,255,252,255,252,224,28,224,28,224,28, - 224,28,224,28,14,24,48,16,0,0,0,96,0,240,1,224, - 3,192,7,128,7,128,7,128,15,192,15,192,28,224,28,224, - 56,112,56,112,112,56,112,56,224,28,255,252,255,252,255,252, - 224,28,224,28,224,28,224,28,224,28,14,24,48,16,0,0, - 3,0,7,128,15,192,31,224,28,224,11,64,7,128,15,192, - 15,192,28,224,28,224,56,112,56,112,112,56,112,56,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 7,128,7,128,15,192,15,192,28,224,28,224,56,112,56,112, - 112,56,112,56,224,28,255,252,255,252,255,252,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,7,128,7,128,15,192,15,192,28,224, - 28,224,56,112,56,112,112,56,112,56,224,28,255,252,255,252, - 255,252,224,28,224,28,224,28,224,28,224,28,14,24,48,16, - 0,0,7,128,15,192,28,224,24,96,28,224,15,192,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,15,252,63,252,127,252,119,0, - 231,0,231,0,231,0,231,0,255,224,255,224,255,224,231,0, - 231,0,231,0,231,0,231,0,231,252,231,252,231,252,14,24, - 48,16,0,251,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,7,0,15,0,30,0, - 60,0,24,0,14,24,48,16,0,0,24,0,60,0,30,0, - 15,0,7,128,255,252,255,252,255,252,224,0,224,0,224,0, - 224,0,224,0,255,224,255,224,255,224,224,0,224,0,224,0, - 224,0,224,0,255,252,255,252,255,252,14,24,48,16,0,0, - 0,96,0,240,1,224,3,192,7,128,255,252,255,252,255,252, - 224,0,224,0,224,0,224,0,224,0,255,224,255,224,255,224, - 224,0,224,0,224,0,224,0,224,0,255,252,255,252,255,252, - 14,24,48,16,0,0,3,0,7,128,15,192,31,224,28,224, - 255,252,255,252,255,252,224,0,224,0,224,0,224,0,224,0, - 255,224,255,224,255,224,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,14,24,48,16,0,0,56,112,56,112, - 56,112,0,0,0,0,255,252,255,252,255,252,224,0,224,0, - 224,0,224,0,224,0,255,224,255,224,255,224,224,0,224,0, - 224,0,224,0,224,0,255,252,255,252,255,252,13,24,48,16, - 0,0,24,0,60,0,30,0,15,0,7,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,13,24,48,16,0,0,0,192,1,224,3,192,7,128, - 7,0,255,248,255,248,255,248,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,255,248,255,248,255,248,13,24,48,16,0,0,2,0, - 7,0,15,128,31,192,56,224,255,248,255,248,255,248,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,255,248,255,248,255,248,13,24, - 48,16,0,0,56,224,56,224,56,224,0,0,0,0,255,248, - 255,248,255,248,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,255,248, - 255,248,255,248,14,19,38,16,0,0,31,192,31,240,31,248, - 28,56,28,28,28,28,28,28,28,28,255,156,255,156,255,156, - 28,28,28,28,28,28,28,28,28,56,31,248,31,240,31,192, - 14,24,48,16,0,0,60,56,127,56,255,248,231,240,225,224, - 224,28,240,28,248,28,252,28,254,28,239,28,231,156,227,220, - 225,252,224,252,224,124,224,60,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,14,24,48,16,0,0,12,0,30,0, - 15,0,7,128,3,128,15,192,63,240,127,248,112,56,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,0,192,1,224,3,192,7,128,7,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,3,0,7,128,15,192,31,224, - 60,240,24,96,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,24,48,16,0,0,60,56, - 127,56,255,248,231,240,225,224,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,24, - 48,16,0,0,56,112,56,112,56,112,0,0,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,13,26,16,0,3,96,24,240,60,120,120, - 60,240,31,224,15,192,7,128,15,192,31,224,60,240,120,120, - 240,60,96,24,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,60,224,124,224,252,225,252,227,220,231,156,239,28, - 254,28,252,28,248,28,240,28,112,56,127,248,63,240,15,192, - 14,24,48,16,0,0,24,0,60,0,30,0,15,0,7,128, - 227,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,24,48,16,0,0,0,96,0,240, - 1,224,3,192,7,128,227,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,24,48,16, - 0,0,3,0,7,128,15,192,31,224,60,240,24,96,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,24,48,16,0,0,56,112,56,112,56,112,0,0, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,13,24,48,16,0,0,0,96, - 0,240,1,224,3,192,7,128,227,56,224,56,224,56,224,56, - 224,56,224,56,224,56,240,120,120,240,61,224,31,192,15,128, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,14,19, - 38,16,0,0,224,0,224,0,224,0,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,56,255,248,255,240,255,192, - 224,0,224,0,224,0,224,0,224,0,13,25,50,16,0,253, - 3,192,7,224,15,240,30,120,60,56,120,56,240,56,224,56, - 224,112,224,224,224,224,224,224,224,224,224,112,224,56,224,56, - 224,56,224,56,224,120,227,240,227,224,227,192,224,0,224,0, - 224,0,14,22,44,16,0,0,6,0,15,0,7,128,3,192, - 1,224,0,192,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,21,42,16,0,0,60,56, - 127,56,255,248,231,240,225,224,0,0,0,0,15,252,63,252, - 127,252,112,28,224,28,224,28,224,28,224,28,224,60,224,124, - 113,252,127,220,63,156,14,28,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,21,42,16,0,0,7,192,15,224,12,96, - 12,96,12,96,15,224,7,192,15,252,63,252,127,252,112,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,14,28,16,0,0,15,192,63,240,127,248, - 119,120,231,60,231,28,231,252,231,252,231,252,231,0,119,0, - 127,252,63,252,15,252,14,19,38,16,0,251,15,192,63,240, - 127,248,112,56,224,28,224,28,224,0,224,0,224,0,224,0, - 112,0,127,252,63,252,15,252,7,0,15,0,30,0,60,0, - 24,0,14,22,44,16,0,0,24,0,60,0,30,0,15,0, - 7,128,3,0,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,14,22,44,16,0,0,0,96,0,240,1,224, - 3,192,7,128,3,0,0,0,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,255,252,255,252,255,252,224,0,112,0, - 127,252,63,252,15,252,14,22,44,16,0,0,3,0,7,128, - 15,192,31,224,60,240,24,96,0,0,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,14,19,38,16,0,0,56,112, - 56,112,56,112,0,0,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,255,252,255,252,255,252,224,0,112,0,127,252, - 63,252,15,252,9,22,44,16,2,0,96,0,240,0,120,0, - 60,0,30,0,12,0,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,9,22,44,16,2,0,3,0,7,128, - 15,0,30,0,60,0,24,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,10,22,44,16,2,0,12,0, - 30,0,63,0,127,128,243,192,97,128,0,0,0,0,252,0, - 252,0,252,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,255,128,255,128,255,128,9,19,38,16,2,0, - 227,128,227,128,227,128,0,0,0,0,252,0,252,0,252,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,14,23,46,16,0,0,49,128,123,192, - 63,128,31,0,31,0,63,128,123,192,49,224,0,240,15,248, - 63,252,127,252,112,60,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,21,42,16,0,0, - 60,56,127,56,255,248,231,240,225,224,0,0,0,0,225,192, - 231,240,239,248,254,56,248,28,240,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,14,22,44,16,0,0, - 24,0,60,0,30,0,15,0,7,128,3,0,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,14,22,44,16, - 0,0,0,96,0,240,1,224,3,192,7,128,3,0,0,0, - 0,0,15,192,63,240,127,248,112,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,22, - 44,16,0,0,3,0,7,128,15,192,31,224,60,240,24,96, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,21,42,16,0,0,60,56,127,56,255,248,231,240,225,224, - 0,0,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,112,56,127,248,63,240,15,192, - 14,19,38,16,0,0,56,112,56,112,56,112,0,0,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,224,28, - 224,28,224,28,112,56,127,248,63,240,15,192,13,14,28,16, - 0,2,7,0,7,0,7,0,0,0,0,0,255,248,255,248, - 255,248,0,0,0,0,0,0,7,0,7,0,7,0,14,14, - 28,16,0,0,15,192,63,240,127,248,112,120,224,252,225,220, - 227,156,231,28,238,28,252,28,120,56,127,248,63,240,15,192, - 14,22,44,16,0,0,24,0,60,0,30,0,15,0,7,128, - 3,0,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,22,44,16,0,0,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,60,224,124,113,252,127,220, - 63,156,14,28,14,22,44,16,0,0,3,0,7,128,15,192, - 31,224,60,240,24,96,0,0,0,0,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,60,224,124,113,252, - 127,220,63,156,14,28,14,19,38,16,0,0,56,112,56,112, - 56,112,0,0,0,0,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,60,224,124,113,252,127,220,63,156, - 14,28,14,27,54,16,0,251,0,96,0,240,1,224,3,192, - 7,128,3,0,0,0,0,0,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,28,127,252, - 63,252,15,252,0,28,0,56,31,248,31,240,31,192,14,24, - 48,16,0,251,224,0,224,0,224,0,224,0,224,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,28,224,28, - 224,28,224,56,255,248,255,240,255,192,224,0,224,0,224,0, - 224,0,224,0,14,24,48,16,0,251,56,112,56,112,56,112, - 0,0,0,0,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,112,28,127,252,63,252,31,252, - 0,28,0,56,31,248,31,240,31,224}; -/* - Fontname: ProFont29 - Copyright: ProFont Distribution 2.2 � Generated by Fontographer 4.1.5 - Capital A Height: 19, '1' Height: 19 - Calculated Max Values w=16 h=29 x= 5 y=15 dx=16 dy= 0 ascent=24 len=58 - Font Bounding box w=16 h=28 x= 0 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =19 descent=-5 - X Font ascent =22 descent=-5 - Max Font ascent =24 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_profont29r[3719] U8G_FONT_SECTION("u8g_font_profont29r") = { - 0,16,28,0,251,19,4,198,9,234,32,127,251,24,251,22, - 251,0,0,0,16,0,0,3,19,19,16,5,0,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,0,0,224,224,224, - 9,9,18,16,2,13,227,128,227,128,227,128,227,128,227,128, - 227,128,227,128,227,128,227,128,15,15,30,16,0,5,28,112, - 28,112,28,112,255,254,255,254,255,254,28,112,28,112,28,112, - 255,254,255,254,255,254,28,112,28,112,28,112,13,25,50,16, - 0,253,7,0,7,0,7,0,15,128,63,224,127,240,119,112, - 231,56,231,56,231,0,119,0,127,128,63,224,15,240,7,112, - 7,56,231,56,231,56,119,112,127,240,63,224,15,128,7,0, - 7,0,7,0,14,19,38,16,0,0,31,252,63,252,127,252, - 102,28,231,60,231,120,231,240,103,224,127,224,63,192,31,240, - 31,48,63,56,127,56,247,56,227,48,227,240,225,224,224,192, - 14,19,38,16,0,0,15,0,63,192,127,224,112,224,225,224, - 227,192,231,128,127,0,126,0,60,0,126,8,127,28,231,188, - 227,248,225,240,113,240,127,248,63,188,14,24,3,9,9,16, - 5,13,224,224,224,224,224,224,224,224,224,9,25,50,16,3, - 253,3,0,7,128,15,0,30,0,60,0,120,0,240,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,240,0,120,0,60,0,30,0,15,0,7, - 128,3,0,9,25,50,16,2,253,96,0,240,0,120,0,60, - 0,30,0,15,0,7,128,3,128,3,128,3,128,3,128,3, - 128,3,128,3,128,3,128,3,128,3,128,3,128,7,128,15, - 0,30,0,60,0,120,0,240,0,96,0,13,13,26,16,0, - 5,7,0,7,0,103,48,247,248,127,240,31,192,31,192,127, - 240,255,248,103,48,7,0,7,0,7,0,13,13,26,16,0, - 3,7,0,7,0,7,0,7,0,7,0,255,248,255,248,255, - 248,7,0,7,0,7,0,7,0,7,0,6,11,11,16,3, - 251,56,124,124,124,60,28,28,60,120,240,96,8,3,3,16, - 3,8,255,255,255,5,5,5,16,4,1,112,248,248,248,112, - 15,26,52,16,0,251,0,14,0,14,0,28,0,28,0,56, - 0,56,0,112,0,112,0,224,0,224,1,192,1,192,3,128, - 3,128,7,0,7,0,14,0,14,0,28,0,28,0,56,0, - 56,0,112,0,112,0,224,0,224,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,60,224,124,224,252,225,252, - 227,220,231,156,239,28,254,28,252,28,248,28,240,28,112,56, - 127,248,63,240,15,192,13,19,38,16,0,0,7,0,7,0, - 15,0,127,0,127,0,127,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,0,28,0,56,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,127,252,255,252,255,252,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,120,3,240,3,224,3,240,0,120,0,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 0,224,1,224,3,224,7,224,15,224,30,224,60,224,120,224, - 240,224,224,224,255,252,255,252,255,252,0,224,0,224,0,224, - 7,252,7,252,7,252,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,255,192,255,240,255,248,0,56,0,28, - 0,28,0,28,0,28,224,28,224,28,112,56,127,248,63,240, - 15,192,14,19,38,16,0,0,15,224,63,224,127,224,112,0, - 224,0,255,192,255,240,255,248,224,56,224,28,224,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,14,19, - 38,16,0,0,255,252,255,252,255,252,0,28,0,28,0,28, - 0,60,0,120,0,240,1,224,3,192,7,128,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,224,28,224,28,120,120, - 63,240,31,224,63,240,120,120,224,28,224,28,224,28,112,56, - 127,248,63,240,15,192,14,19,38,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 112,28,127,252,63,252,15,252,0,28,0,56,31,248,31,240, - 31,192,5,13,13,16,4,1,112,248,248,248,112,0,0,0, - 112,248,248,248,112,6,19,19,16,3,251,56,124,124,124,56, - 0,0,0,56,124,124,124,60,28,28,60,120,240,96,12,19, - 38,16,2,0,0,96,0,240,1,224,3,192,7,128,15,0, - 30,0,60,0,120,0,240,0,120,0,60,0,30,0,15,0, - 7,128,3,192,1,224,0,240,0,96,14,9,18,16,0,5, - 255,252,255,252,255,252,0,0,0,0,0,0,255,252,255,252, - 255,252,12,19,38,16,2,0,96,0,240,0,120,0,60,0, - 30,0,15,0,7,128,3,192,1,224,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,96,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 0,28,0,60,0,120,0,240,1,224,3,192,7,128,7,0, - 0,0,0,0,7,0,7,0,7,0,14,19,38,16,0,0, - 15,192,63,240,127,248,112,56,224,28,225,252,227,252,231,252, - 231,28,231,28,231,28,231,252,227,248,225,240,224,0,112,0, - 127,252,63,252,15,252,14,19,38,16,0,0,7,128,7,128, - 15,192,15,192,28,224,28,224,56,112,56,112,112,56,112,56, - 224,28,255,252,255,252,255,252,224,28,224,28,224,28,224,28, - 224,28,14,19,38,16,0,0,255,192,255,240,255,248,224,56, - 224,28,224,28,224,28,224,120,255,240,255,224,255,240,224,120, - 224,28,224,28,224,28,224,56,255,248,255,240,255,192,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,14,19,38,16,0,0,255,252,255,252, - 255,252,224,0,224,0,224,0,224,0,224,0,255,224,255,224, - 255,224,224,0,224,0,224,0,224,0,224,0,255,252,255,252, - 255,252,14,19,38,16,0,0,255,252,255,252,255,252,224,0, - 224,0,224,0,224,0,224,0,255,224,255,224,255,224,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,0,224,0,224,252,224,252,224,252,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 255,252,255,252,255,252,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,13,19,38,16,0,0,255,248,255,248, - 255,248,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,255,248,255,248, - 255,248,14,19,38,16,0,0,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,224,28, - 224,28,224,28,224,28,112,56,127,248,63,240,15,192,13,19, - 38,16,0,0,224,56,224,120,224,240,225,224,227,192,231,128, - 239,0,254,0,252,0,248,0,252,0,254,0,239,0,231,128, - 227,192,225,224,224,240,224,120,224,56,14,19,38,16,0,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,224,0, - 255,252,255,252,255,252,15,19,38,16,0,0,224,14,240,30, - 248,62,252,126,254,254,239,238,231,206,227,142,227,142,227,142, - 227,142,224,14,224,14,224,14,224,14,224,14,224,14,224,14, - 224,14,14,19,38,16,0,0,224,28,240,28,248,28,252,28, - 254,28,239,28,231,156,227,220,225,252,224,252,224,124,224,60, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,14,19, - 38,16,0,0,15,192,63,240,127,248,112,56,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,112,56,127,248,63,240,15,192,14,19,38,16,0,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 224,0,224,0,224,0,14,22,44,16,0,253,15,192,63,240, - 127,248,112,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,230,28,239,28,119,248,127,248,63,240, - 15,240,0,120,0,60,0,24,14,19,38,16,0,0,255,192, - 255,240,255,248,224,56,224,28,224,28,224,28,224,120,255,240, - 255,224,255,240,224,120,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,14,19,38,16,0,0,15,192,63,240,127,248, - 112,56,224,28,224,28,224,0,112,0,127,192,63,240,15,248, - 0,56,0,28,224,28,224,28,112,56,127,248,63,240,15,192, - 13,19,38,16,0,0,255,248,255,248,255,248,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,7,0,7,0,14,19,38,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 112,56,127,248,63,240,15,192,14,19,38,16,0,0,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,112,56, - 56,112,56,112,28,224,28,224,15,192,15,192,7,128,7,128, - 3,0,3,0,15,19,38,16,0,0,224,14,224,14,224,14, - 224,14,224,14,224,14,224,14,224,14,227,142,227,142,227,142, - 227,142,231,206,239,254,254,254,252,126,248,62,240,30,224,14, - 14,19,38,16,0,0,224,28,224,28,224,28,224,28,240,60, - 120,120,60,240,31,224,15,192,7,128,15,192,31,224,60,240, - 120,120,240,60,224,28,224,28,224,28,224,28,13,19,38,16, - 0,0,224,56,224,56,224,56,224,56,224,56,224,56,224,56, - 240,120,120,240,61,224,31,192,15,128,7,0,7,0,7,0, - 7,0,7,0,7,0,7,0,14,19,38,16,0,0,255,252, - 255,252,255,252,0,28,0,60,0,120,0,240,1,224,3,192, - 7,128,15,0,30,0,60,0,120,0,240,0,224,0,255,252, - 255,252,255,252,6,25,25,16,5,253,252,252,252,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 252,252,252,15,26,52,16,1,251,224,0,224,0,112,0,112, - 0,56,0,56,0,28,0,28,0,14,0,14,0,7,0,7, - 0,3,128,3,128,1,192,1,192,0,224,0,224,0,112,0, - 112,0,56,0,56,0,28,0,28,0,14,0,14,6,25,25, - 16,2,253,252,252,252,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,28,252,252,252,14,8,16,16, - 0,11,3,0,7,128,15,192,31,224,60,240,120,120,240,60, - 96,24,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,16,2,15,96,240,120,60,30,12,14,14,28,16,0,0, - 15,252,63,252,127,252,112,28,224,28,224,28,224,28,224,28, - 224,60,224,124,113,252,127,220,63,156,14,28,14,19,38,16, - 0,0,224,0,224,0,224,0,224,0,224,0,255,192,255,240, - 255,248,224,56,224,28,224,28,224,28,224,28,224,28,224,28, - 224,56,255,248,255,240,255,192,14,14,28,16,0,0,15,192, - 63,240,127,248,112,56,224,28,224,28,224,0,224,0,224,0, - 224,0,112,0,127,252,63,252,15,252,14,19,38,16,0,0, - 0,28,0,28,0,28,0,28,0,28,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,14,14,28,16,0,0,15,192,63,240, - 127,248,112,56,224,28,224,28,255,252,255,252,255,252,224,0, - 112,0,127,252,63,252,15,252,11,19,38,16,2,0,1,224, - 7,224,15,224,14,0,28,0,255,128,255,128,255,128,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,19,38,16,0,251,15,252,63,252,127,252, - 112,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 14,19,38,16,0,0,224,0,224,0,224,0,224,0,224,0, - 255,192,255,240,255,248,224,56,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,9,19,38,16, - 2,0,28,0,28,0,28,0,0,0,0,0,252,0,252,0, - 252,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,255,128,255,128,255,128,8,24,24,16,0,251,7,7, - 7,0,0,63,63,63,7,7,7,7,7,7,7,7,7,7, - 7,7,14,254,252,240,14,19,38,16,0,0,224,0,224,0, - 224,0,224,0,224,0,224,120,224,240,225,224,227,192,231,128, - 239,0,255,0,255,128,251,192,241,224,224,240,224,120,224,60, - 224,28,9,19,38,16,2,0,252,0,252,0,252,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,255,128,255,128,255,128,15,14, - 28,16,0,0,255,224,255,248,255,252,227,156,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,227,142,227,142,227,142, - 14,14,28,16,0,0,225,192,231,240,239,248,254,56,248,28, - 240,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,14,14,28,16,0,0,15,192,63,240,127,248,112,56, - 224,28,224,28,224,28,224,28,224,28,224,28,112,56,127,248, - 63,240,15,192,14,19,38,16,0,251,255,192,255,240,255,248, - 224,56,224,28,224,28,224,28,224,28,224,28,224,28,224,56, - 255,248,255,240,255,192,224,0,224,0,224,0,224,0,224,0, - 14,19,38,16,0,251,15,252,63,252,127,252,112,28,224,28, - 224,28,224,28,224,28,224,28,224,28,112,28,127,252,63,252, - 15,252,0,28,0,28,0,28,0,28,0,28,14,14,28,16, - 0,0,225,192,231,240,239,248,254,56,248,28,240,28,224,0, - 224,0,224,0,224,0,224,0,224,0,224,0,224,0,14,14, - 28,16,0,0,15,252,63,252,127,252,240,0,224,0,255,192, - 127,240,31,248,0,60,0,28,0,60,255,248,255,240,255,192, - 11,19,38,16,2,0,28,0,28,0,28,0,28,0,28,0, - 255,128,255,128,255,128,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,14,0,15,224,7,224,1,224,14,14,28,16, - 0,0,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,60,224,124,113,252,127,220,63,156,14,28,14,14, - 28,16,0,0,224,28,224,28,224,28,224,28,224,28,112,56, - 112,56,56,112,56,112,28,224,28,224,15,192,15,192,7,128, - 15,14,28,16,0,0,227,142,227,142,227,142,227,142,227,142, - 227,142,227,142,227,142,227,142,227,142,247,222,127,252,126,252, - 28,112,14,14,28,16,0,0,224,28,224,28,240,60,120,120, - 60,240,31,224,15,192,15,192,31,224,60,240,120,120,240,60, - 224,28,224,28,14,19,38,16,0,251,224,28,224,28,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,112,28, - 127,252,63,252,15,252,0,28,0,56,31,248,31,240,31,192, - 13,14,28,16,0,0,255,248,255,248,255,248,0,240,1,224, - 3,192,7,128,15,0,30,0,60,0,120,0,255,248,255,248, - 255,248,9,29,58,16,3,251,3,128,15,128,15,128,30,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 60,0,248,0,224,0,248,0,60,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,30,0,15,128,15,128, - 3,128,3,25,25,16,5,253,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,9,29,58,16,2,251,224,0,248,0,248,0,60,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,30, - 0,15,128,3,128,15,128,30,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,60,0,248,0,248,0,224, - 0,13,5,10,16,0,8,60,56,127,56,255,248,231,240,225, - 224,0,0,0,16,0,0}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 7 h= 8 x= 0 y= 6 dx= 8 dy= 0 ascent=10 len= 8 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niro[1376] U8G_FONT_SECTION("u8g_font_robot_de_niro") = { - 0,10,10,255,0,6,1,97,2,193,32,255,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,4,7,7,5,0,2,96,144,64,224,64,128, - 240,255,255,255,4,7,7,5,0,2,96,128,96,144,96,16, - 96,255,7,8,8,8,0,2,124,130,154,170,162,154,130,124, - 255,255,255,255,7,8,8,8,0,2,124,130,186,170,178,170, - 130,124,255,255,255,255,255,255,255,6,5,5,7,0,3,108, - 232,104,40,40,255,255,255,255,255,255,255,255,255,255,255,255, - 255,4,8,8,4,255,2,80,0,48,80,112,80,80,128,255, - 255,3,7,7,4,0,1,96,128,128,160,96,64,32,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,3,7,7,4, - 0,3,160,0,96,160,160,160,64,4,4,4,5,0,4,144, - 96,96,144,255,255,255,255,4,7,7,5,0,3,80,0,160, - 160,160,160,80,255,255,4,7,7,4,255,1,32,80,96,80, - 96,64,128,255,255,255,255,4,6,6,5,0,3,80,0,96, - 160,160,80,255,255,255,4,6,6,5,0,3,96,0,96,160, - 208,96,4,6,6,5,0,3,96,0,96,160,208,96,4,7, - 7,5,0,3,64,160,0,96,160,208,96,255,255,255,255,255, - 255,255,255,255,255,255,3,6,6,4,0,3,160,0,96,160, - 160,192,5,5,5,6,0,3,32,0,248,0,32,255,255,255, - 255,4,6,6,5,0,3,80,0,160,160,160,80,255,255,255 - }; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 4 h= 5 x= 0 y= 6 dx= 5 dy= 0 ascent= 9 len= 5 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 9 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niron[187] U8G_FONT_SECTION("u8g_font_robot_de_niron") = { - 0,10,10,255,0,5,0,0,0,0,42,58,0,9,0,5, - 0,3,3,3,4,0,6,160,64,160,3,3,3,4,0,4, - 64,224,64,2,2,2,3,0,2,64,128,3,1,1,4,0, - 5,224,1,1,1,2,0,3,128,3,5,5,4,0,3,32, - 32,64,128,128,3,5,5,4,0,3,64,160,160,160,64,3, - 5,5,4,0,3,192,64,64,64,224,3,5,5,4,0,3, - 192,32,96,128,224,3,5,5,4,0,3,192,32,224,32,224, - 3,5,5,4,0,3,160,160,224,32,32,3,5,5,4,0, - 3,96,128,224,32,224,3,5,5,4,0,3,96,128,224,160, - 64,4,5,5,5,0,3,224,32,112,32,32,3,5,5,4, - 0,3,96,160,224,160,192,3,5,5,4,0,3,96,160,224, - 32,192,1,3,3,2,0,4,128,0,128}; -/* - Fontname: -FreeType-Robot de Niro-Medium-R-Normal--16-160-72-72-P-39-ISO10646-1 - Copyright: Copyright BMoser 2008 - Capital A Height: 6, '1' Height: 5 - Calculated Max Values w= 6 h= 7 x= 0 y= 6 dx= 7 dy= 0 ascent=10 len= 7 - Font Bounding box w=10 h=10 x=-1 y= 0 - Calculated Min Values x=-1 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 1 - X Font ascent = 9 descent= 0 - Max Font ascent =10 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_robot_de_niror[1041] U8G_FONT_SECTION("u8g_font_robot_de_niror") = { - 0,10,10,255,0,6,1,97,2,193,32,127,1,10,0,9, - 0,0,0,0,2,0,0,2,5,5,3,0,3,192,128,128, - 0,128,3,2,2,4,0,6,160,160,5,5,5,6,0,3, - 80,248,80,248,80,4,7,7,5,0,2,96,224,16,96,128, - 112,96,5,5,5,6,0,3,192,208,32,88,24,4,5,5, - 5,0,3,96,160,80,160,80,1,2,2,2,0,6,128,128, - 2,7,7,3,0,2,64,128,128,128,128,128,64,2,7,7, - 3,0,2,128,64,64,64,64,64,128,3,3,3,4,0,6, - 160,64,160,3,3,3,4,0,4,64,224,64,2,2,2,3, - 0,2,64,128,3,1,1,4,0,5,224,1,1,1,2,0, - 3,128,3,5,5,4,0,3,32,32,64,128,128,3,5,5, - 4,0,3,64,160,160,160,64,3,5,5,4,0,3,192,64, - 64,64,224,3,5,5,4,0,3,192,32,96,128,224,3,5, - 5,4,0,3,192,32,224,32,224,3,5,5,4,0,3,160, - 160,224,32,32,3,5,5,4,0,3,96,128,224,32,224,3, - 5,5,4,0,3,96,128,224,160,64,4,5,5,5,0,3, - 224,32,112,32,32,3,5,5,4,0,3,96,160,224,160,192, - 3,5,5,4,0,3,96,160,224,32,192,1,3,3,2,0, - 4,128,0,128,2,4,4,3,0,3,64,0,64,128,2,3, - 3,3,0,4,64,128,64,3,3,3,4,0,4,224,0,224, - 2,3,3,3,0,4,128,64,128,3,5,5,4,0,3,224, - 32,64,0,64,5,7,7,6,0,2,120,136,184,168,184,128, - 120,4,6,6,4,255,2,48,80,112,80,80,128,4,5,5, - 5,0,3,224,80,96,80,224,3,5,5,4,0,3,96,128, - 128,160,64,4,5,5,5,0,3,224,80,80,80,32,3,5, - 5,4,0,3,96,128,192,128,224,4,6,6,5,0,2,176, - 64,96,64,64,128,4,5,5,5,0,3,96,128,176,160,96, - 4,6,6,4,255,2,80,80,112,80,80,128,1,5,5,2, - 0,3,128,128,128,128,128,3,5,5,4,0,3,64,32,32, - 32,192,5,5,5,6,0,3,208,80,96,80,72,4,5,5, - 5,0,3,192,64,64,64,176,6,5,5,6,255,3,168,84, - 84,84,68,4,5,5,5,0,3,224,80,80,80,80,3,5, - 5,4,0,3,96,160,160,160,64,4,5,5,5,0,3,176, - 80,96,64,64,4,5,5,5,0,3,64,160,160,160,112,5, - 5,5,5,255,3,176,80,96,80,72,3,5,5,4,0,3, - 96,128,224,32,192,3,5,5,4,0,3,224,64,64,64,64, - 4,5,5,5,0,3,160,160,160,160,80,3,5,5,4,0, - 3,160,160,160,160,64,6,5,5,7,0,3,172,168,168,168, - 88,4,5,5,5,0,3,160,160,64,160,176,4,7,7,4, - 255,1,208,80,80,48,16,16,32,3,5,5,4,0,3,224, - 32,64,128,224,2,7,7,3,0,2,192,128,128,128,128,128, - 192,3,5,5,4,0,3,128,128,64,32,32,2,7,7,3, - 0,2,192,64,64,64,64,64,192,3,3,3,4,0,5,64, - 160,160,4,1,1,5,0,3,240,2,2,2,3,0,6,128, - 64,4,4,4,5,0,3,96,160,160,80,4,5,5,5,0, - 3,64,96,80,80,160,3,4,4,4,0,3,96,128,160,64, - 4,6,6,5,0,3,16,32,96,160,160,208,4,4,4,5, - 0,3,96,160,208,96,4,7,7,4,255,1,48,64,96,64, - 64,64,128,4,6,6,5,0,1,80,160,160,96,32,192,3, - 7,7,4,0,3,64,128,128,192,160,160,160,1,5,5,2, - 0,3,128,0,128,128,128,3,7,7,3,255,1,32,0,32, - 32,32,32,192,4,7,7,5,0,2,128,128,160,224,160,144, - 16,4,6,6,5,0,3,32,80,96,64,64,176,6,4,4, - 7,0,3,88,168,168,164,3,4,4,4,0,3,64,160,160, - 160,3,4,4,4,0,3,96,160,160,192,4,6,6,5,0, - 1,176,80,80,96,64,128,4,6,6,5,0,1,80,160,160, - 96,32,32,4,4,4,5,0,3,160,80,64,64,3,4,4, - 4,0,3,64,160,32,192,2,6,6,3,0,3,128,128,192, - 128,128,64,4,4,4,5,0,3,160,160,160,80,3,4,4, - 4,0,3,160,160,160,64,6,4,4,7,0,3,172,168,168, - 80,3,4,4,4,0,3,160,160,64,160,3,5,5,4,0, - 2,160,160,64,32,192,4,5,5,5,0,2,224,32,64,144, - 96,3,7,7,4,0,2,96,64,64,128,64,64,96,1,7, - 7,2,0,2,128,128,128,128,128,128,128,3,7,7,4,0, - 2,192,64,64,32,64,64,192,4,2,2,5,0,5,80,160, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=15 x= 3 y= 9 dx=11 dy= 0 ascent=11 len=15 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =11 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08[2612] U8G_FONT_SECTION("u8g_font_symb08") = { - 0,11,15,255,252,7,1,152,3,60,32,255,254,11,252,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,6,7,7,7, - 0,0,140,212,112,32,32,32,112,3,3,3,3,0,5,32, - 64,128,5,7,7,6,0,0,8,48,192,48,8,0,248,4, - 7,7,3,255,0,16,16,32,32,64,64,128,7,3,3,7, - 0,1,108,146,108,5,9,9,5,0,254,24,32,112,32,32, - 32,32,32,192,5,5,5,7,1,0,112,112,248,248,32,5, - 5,5,7,1,0,32,112,248,112,32,5,5,5,7,1,0, - 216,248,248,112,32,5,5,5,7,1,0,32,112,248,248,32, - 10,5,10,10,0,0,33,0,64,128,255,192,64,128,33,0, - 10,5,10,10,0,0,32,0,64,0,255,192,64,0,32,0, - 5,14,14,6,0,252,32,112,168,32,32,32,32,32,32,32, - 32,32,32,32,10,5,10,10,0,0,1,0,0,128,255,192, - 0,128,1,0,5,13,13,6,0,254,32,32,32,32,32,32, - 32,32,32,32,168,112,32,3,4,4,4,0,3,64,160,160, - 64,5,7,7,6,0,0,32,32,248,32,32,0,248,5,3, - 3,4,0,5,40,80,160,5,7,7,6,0,0,128,96,24, - 96,128,0,248,5,5,5,6,0,0,136,80,32,80,136,6, - 3,3,7,0,1,108,144,108,4,8,8,5,0,0,96,144, - 16,16,112,144,144,96,4,3,3,5,0,1,96,240,96,5, - 5,5,6,0,0,32,0,248,0,32,5,5,5,6,0,0, - 16,248,32,248,64,5,5,5,6,0,1,248,0,248,0,248, - 5,5,5,6,0,0,104,176,0,104,176,7,1,1,9,1, - 0,146,1,15,15,6,2,252,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,10,1,2,10,0,2,255,192,6, - 6,6,7,0,0,4,4,4,68,252,64,7,7,7,8,0, - 0,204,102,52,92,76,38,98,6,9,9,7,0,255,124,132, - 200,24,12,4,68,232,48,8,8,8,8,0,0,108,146,146, - 92,20,18,82,163,7,8,8,9,1,254,16,36,74,82,106, - 108,160,96,7,7,7,8,0,0,56,68,170,146,170,68,56, - 7,7,7,8,0,0,56,68,146,186,146,68,56,7,9,9, - 8,0,255,2,60,76,138,146,162,100,120,128,7,5,5,8, - 0,0,56,68,130,130,130,7,5,5,8,0,0,130,130,130, - 68,56,7,5,5,7,0,0,248,4,2,4,248,7,7,7, - 7,0,254,248,4,2,4,248,0,254,7,7,7,7,0,255, - 4,62,72,136,80,62,32,7,5,5,7,0,0,62,64,128, - 64,62,7,7,7,7,0,254,62,64,128,64,62,0,254,5, - 5,5,7,1,0,120,128,248,128,120,5,7,7,7,1,255, - 16,120,144,248,160,120,64,7,7,7,8,0,0,2,4,8, - 16,32,64,254,6,7,7,7,0,0,252,132,132,72,72,48, - 48,7,8,8,8,0,255,56,68,250,170,178,174,68,56,7, - 8,8,8,0,255,56,68,154,170,162,154,68,56,10,5,10, - 10,0,2,253,0,170,128,42,128,42,128,122,192,8,9,9, - 9,0,255,255,66,66,66,66,66,66,66,231,6,10,10,6, - 0,0,4,4,8,8,72,208,80,80,32,32,1,1,1,3, - 1,2,128,6,3,3,7,0,0,252,4,4,5,5,5,6, - 0,0,32,80,80,136,136,5,5,5,6,0,0,136,136,80, - 80,32,10,5,10,11,0,0,33,0,127,128,128,64,127,128, - 33,0,9,5,10,10,0,0,32,0,127,128,128,0,127,128, - 32,0,5,10,10,6,0,0,32,112,216,80,80,80,80,80, - 80,80,9,5,10,10,0,0,2,0,255,0,0,128,255,0, - 2,0,5,10,10,6,0,0,80,80,80,80,80,80,80,216, - 80,32,7,7,7,7,0,0,16,40,68,198,68,40,16,3, - 9,9,3,0,254,32,32,64,64,128,64,64,32,32,7,8, - 8,8,0,255,56,68,186,170,178,170,68,56,7,8,8,8, - 0,255,56,68,154,162,162,154,68,56,8,5,5,9,0,2, - 250,85,85,85,85,6,9,9,7,0,255,252,132,64,32,16, - 32,64,132,252,3,14,14,4,1,252,32,64,64,128,128,128, - 128,128,128,128,128,128,128,128,1,15,15,4,1,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,3,15,15, - 4,1,252,128,128,128,128,128,128,128,128,128,128,128,128,64, - 64,32,3,14,14,4,1,252,224,128,128,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,4,1,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,3,13,13,4,1, - 254,128,128,128,128,128,128,128,128,128,128,128,128,224,3,14, - 14,5,2,252,96,128,128,128,128,128,128,128,128,128,128,128, - 128,128,3,15,15,5,0,252,32,32,32,32,32,64,128,64, - 32,32,32,32,32,32,32,3,13,13,5,2,254,128,128,128, - 128,128,128,128,128,128,128,128,128,96,1,15,15,5,2,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,255, - 3,9,9,3,0,254,128,128,64,64,32,64,64,128,128,3, - 12,12,3,0,254,32,64,64,64,64,64,64,64,64,64,64, - 128,4,14,14,7,3,252,48,80,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,7,0,252,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,13,13,7,0,254, - 16,16,16,16,16,16,16,16,16,16,16,160,192,3,14,14, - 4,0,252,128,64,64,32,32,32,32,32,32,32,32,32,32, - 32,1,15,15,4,2,252,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,3,15,15,4,0,252,32,32,32,32, - 32,32,32,32,32,32,32,32,64,64,128,3,14,14,4,0, - 252,224,32,32,32,32,32,32,32,32,32,32,32,32,32,1, - 15,15,4,2,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,13,13,4,0,254,32,32,32,32,32,32, - 32,32,32,32,32,32,224,3,14,14,5,0,252,192,32,32, - 32,32,32,32,32,32,32,32,32,32,32,3,15,15,5,2, - 252,128,128,128,128,128,64,32,64,128,128,128,128,128,128,128, - 3,13,13,5,0,254,32,32,32,32,32,32,32,32,32,32, - 32,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--11-80-100-100-P-61-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w= 9 h=10 x= 1 y= 9 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=11 h=15 x=-1 y=-4 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb08r[1211] U8G_FONT_SECTION("u8g_font_symb08r") = { - 0,11,15,255,252,7,1,152,3,60,32,127,254,10,253,7, - 254,0,0,0,3,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,7,7,7,7,0,0,130,68,124,40,40,16, - 16,5,7,7,5,0,0,80,80,248,80,248,80,80,5,7, - 7,6,0,0,248,8,8,120,8,8,248,7,7,7,8,0, - 0,100,188,168,86,42,42,68,6,7,7,7,0,0,32,80, - 80,108,152,152,108,4,5,5,5,0,0,224,16,112,16,224, - 3,9,9,4,0,254,32,64,64,128,128,128,64,64,32,3, - 9,9,4,1,254,128,64,64,32,32,32,64,64,128,3,3, - 3,5,1,2,160,64,160,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,2,0,254,64,64,128,5,1,1,6,0, - 2,248,1,1,1,2,1,0,128,3,7,7,3,0,0,32, - 32,64,64,64,128,128,4,7,7,5,0,0,96,144,144,144, - 144,144,96,3,7,7,5,1,0,64,192,64,64,64,64,224, - 4,7,7,5,0,0,96,144,16,32,32,64,240,4,7,7, - 5,0,0,96,144,16,96,16,16,224,5,7,7,5,0,0, - 16,48,80,144,248,16,16,4,7,7,5,0,0,112,64,224, - 16,16,16,224,4,7,7,5,0,0,112,128,224,144,144,144, - 96,4,7,7,5,0,0,240,144,32,32,64,64,64,4,7, - 7,5,0,0,96,144,144,96,144,144,96,4,7,7,5,0, - 0,96,144,144,144,112,32,192,1,5,5,2,1,0,128,0, - 0,0,128,2,7,7,2,0,254,64,0,0,0,64,64,128, - 6,5,5,7,0,0,12,48,192,48,12,5,3,3,6,0, - 1,248,0,248,6,5,5,6,0,0,192,48,12,48,192,3, - 7,7,5,1,0,64,160,32,64,64,0,64,5,6,6,6, - 0,0,104,176,0,248,0,248,7,7,7,8,0,0,16,56, - 40,40,124,68,238,5,7,7,6,0,0,240,72,72,112,72, - 72,240,7,7,7,8,0,0,238,68,40,16,40,68,238,6, - 7,7,7,0,0,48,48,88,72,140,132,252,5,7,7,6, - 0,0,248,72,64,112,64,72,248,7,7,7,8,0,0,56, - 16,124,146,124,16,56,5,7,7,6,0,0,248,72,64,64, - 64,64,224,7,7,7,8,0,0,238,68,68,124,68,68,238, - 3,7,7,3,0,0,224,64,64,64,64,64,224,6,7,7, - 7,0,0,16,40,152,76,72,72,48,6,7,7,7,0,0, - 236,72,80,96,80,72,236,7,7,7,7,0,0,16,16,40, - 40,68,68,238,9,7,14,10,0,0,227,128,99,0,85,0, - 85,0,93,0,73,0,235,128,7,7,7,8,0,0,238,100, - 84,84,76,76,228,6,7,7,7,0,0,120,204,132,132,132, - 204,120,7,7,7,8,0,0,254,68,68,68,68,68,238,6, - 7,7,7,0,0,120,204,132,180,132,204,120,5,7,7,6, - 0,0,240,72,72,112,64,64,224,5,7,7,6,0,0,248, - 136,64,32,64,136,248,5,7,7,6,0,0,248,168,32,32, - 32,32,112,7,7,7,8,0,0,238,68,40,56,16,16,56, - 4,7,7,5,0,254,112,128,128,128,96,16,96,8,7,7, - 9,0,0,60,102,66,66,102,165,231,6,7,7,7,0,0, - 120,72,0,48,0,132,252,9,7,14,9,0,0,221,128,73, - 0,73,0,62,0,8,0,8,0,28,0,5,7,7,6,0, - 0,248,136,16,32,64,136,248,2,9,9,3,0,254,192,128, - 128,128,128,128,128,128,192,5,5,5,7,1,0,32,0,0, - 0,136,2,9,9,3,1,254,192,64,64,64,64,64,64,64, - 192,5,7,7,7,1,0,32,32,32,32,32,32,248,5,1, - 1,5,0,254,248,6,1,1,5,0,9,252,6,5,5,7, - 0,0,104,168,144,148,104,4,10,10,5,0,254,96,144,144, - 160,144,144,208,160,128,128,5,7,7,6,0,254,200,80,80, - 32,80,80,152,4,8,8,5,0,0,96,144,64,96,144,144, - 144,96,4,5,5,5,0,0,96,144,192,144,96,5,9,9, - 6,0,254,32,32,112,168,168,168,112,32,32,5,7,7,6, - 0,254,200,168,40,48,16,32,32,5,7,7,6,0,254,80, - 232,72,72,72,8,8,3,5,5,4,0,0,192,64,64,64, - 96,5,7,7,6,0,254,48,168,168,168,112,32,32,5,5, - 5,6,0,0,72,216,96,80,72,6,8,8,6,0,0,192, - 160,32,32,80,80,148,136,5,7,7,6,0,254,144,144,144, - 144,232,128,192,5,5,5,6,0,0,136,136,80,80,32,4, - 5,5,5,0,0,96,144,144,144,96,5,5,5,6,0,0, - 248,80,80,88,208,4,7,7,5,0,0,96,144,144,240,144, - 144,96,4,8,8,5,0,253,96,144,144,144,224,128,128,128, - 5,5,5,6,0,0,120,144,144,144,96,4,5,5,5,0, - 0,240,64,64,80,96,5,5,5,6,0,0,80,200,72,72, - 48,7,6,6,8,0,0,254,68,130,146,146,108,7,5,5, - 8,0,0,68,130,146,146,108,4,10,10,5,0,254,128,176, - 64,112,128,128,128,96,16,112,7,7,7,7,0,254,146,84, - 84,84,56,16,16,4,10,10,5,0,254,128,176,96,128,128, - 128,128,96,16,112,3,9,9,5,1,254,32,64,64,64,128, - 64,64,64,32,1,9,9,2,0,254,128,128,128,128,128,128, - 128,128,128,3,9,9,5,1,254,128,64,64,64,32,64,64, - 64,128,5,2,2,6,0,2,104,176,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=15 x= 7 y=11 dx=15 dy= 0 ascent=12 len=24 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10[3433] U8G_FONT_SECTION("u8g_font_symb10") = { - 0,16,15,255,253,10,2,6,4,121,32,255,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,8,10,10,9,0,0,198,105,43,16,16,16,16,16, - 16,56,4,3,3,4,0,7,48,96,128,7,9,9,8,0, - 0,2,12,48,192,48,12,2,0,254,5,10,10,4,255,0, - 8,8,16,16,32,32,64,64,128,128,9,4,8,10,0,2, - 119,0,152,128,140,128,119,0,7,13,13,7,0,253,6,10, - 8,8,60,16,16,16,32,32,32,160,192,9,7,14,11,1, - 0,28,0,28,0,28,0,235,128,255,128,235,128,8,0,7, - 7,7,11,2,0,16,56,124,254,124,56,16,7,7,7,11, - 2,0,108,254,254,254,124,56,16,9,7,14,11,1,0,8, - 0,28,0,62,0,127,0,255,128,107,0,8,0,13,7,14, - 15,1,0,16,64,32,32,64,16,255,248,64,16,32,32,16, - 64,14,7,14,14,0,0,16,0,32,0,64,0,255,252,64, - 0,32,0,16,0,7,15,15,9,1,253,16,56,84,146,16, - 16,16,16,16,16,16,16,16,16,16,14,7,14,14,0,0, - 0,32,0,16,0,8,255,252,0,8,0,16,0,32,7,15, - 15,9,1,253,16,16,16,16,16,16,16,16,16,16,16,146, - 84,56,16,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,7,3,3,6, - 0,7,54,108,144,7,9,9,8,0,0,128,96,24,6,24, - 96,128,0,254,7,7,7,8,0,0,130,68,40,16,40,68, - 130,8,4,4,10,0,2,119,136,136,119,6,11,11,7,0, - 0,112,136,4,4,4,116,204,132,132,200,112,5,5,5,7, - 1,1,112,248,248,248,112,7,7,7,8,0,0,16,16,0, - 254,0,16,16,7,7,7,8,0,0,4,8,254,16,254,32, - 64,7,5,5,8,0,1,254,0,254,0,254,7,5,5,8, - 0,2,114,156,0,114,156,11,2,4,15,2,0,132,32,132, - 32,1,15,15,9,4,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,15,1,2,15,0,3,255,254,8,9, - 9,10,0,0,1,1,1,1,1,1,65,255,64,8,10,10, - 12,2,0,136,206,102,36,116,156,140,70,99,225,8,12,12, - 10,1,255,63,97,66,70,36,6,3,1,97,241,26,12,10, - 11,22,12,1,0,115,0,157,128,137,128,139,0,206,0,106, - 0,41,0,9,0,9,0,105,0,176,192,9,12,24,12,1, - 253,16,0,35,0,69,128,72,128,144,128,212,128,105,0,107, - 0,182,0,144,0,144,0,96,0,9,9,18,11,1,0,28, - 0,99,0,99,0,148,128,136,128,148,128,99,0,99,0,28, - 0,9,9,18,11,1,0,28,0,99,0,73,0,136,128,190, - 128,136,128,73,0,99,0,28,0,11,11,22,12,0,0,31, - 32,96,192,64,192,129,32,130,32,132,32,136,32,144,32,96, - 64,96,192,159,0,10,7,14,10,0,0,30,0,97,128,64, - 128,128,64,128,64,128,64,128,64,10,7,14,10,0,0,128, - 64,128,64,128,64,128,64,64,128,97,128,30,0,9,7,14, - 10,0,0,254,0,1,0,0,128,0,128,0,128,1,0,254, - 0,9,9,18,10,1,254,254,0,1,0,0,128,0,128,0, - 128,1,0,254,0,0,0,255,128,9,9,18,10,0,255,1, - 0,63,128,66,0,130,0,132,0,132,0,72,0,63,128,16, - 0,9,7,14,10,1,0,63,128,64,0,128,0,128,0,128, - 0,64,0,63,128,9,9,18,10,0,254,63,128,64,0,128, - 0,128,0,128,0,64,0,63,128,0,0,255,128,7,7,7, - 10,1,0,62,64,128,254,128,64,62,7,9,9,10,0,255, - 4,62,72,144,254,144,96,62,64,11,10,20,11,0,0,0, - 64,0,128,1,0,2,0,4,0,8,0,16,0,32,0,64, - 0,255,224,9,11,22,10,0,0,255,128,128,128,65,0,65, - 0,34,0,34,0,34,0,20,0,20,0,8,0,8,0,10, - 10,20,12,1,0,30,0,33,0,124,128,146,64,146,64,156, - 64,146,64,121,128,33,0,30,0,10,10,20,12,1,0,30, - 0,33,0,78,128,146,64,144,64,144,64,146,64,76,128,33, - 0,30,0,11,6,12,11,0,4,250,128,170,128,38,192,37, - 64,37,64,118,224,10,12,24,12,1,255,255,192,64,128,64, - 128,64,128,64,128,64,128,64,128,64,128,64,128,64,128,64, - 128,225,192,8,12,12,8,0,0,1,1,1,2,2,98,164, - 36,20,20,8,8,1,2,2,4,1,3,128,128,9,5,10, - 10,0,0,255,128,0,128,0,128,0,128,0,128,8,7,7, - 9,0,0,24,24,36,36,66,66,129,8,7,7,9,0,0, - 129,66,66,36,36,24,24,13,7,14,15,1,0,16,64,32, - 32,127,240,192,24,127,240,32,32,16,64,13,7,14,14,0, - 0,16,0,32,0,127,248,192,0,127,248,32,0,16,0,7, - 12,12,9,1,0,16,56,108,170,40,40,40,40,40,40,40, - 40,13,7,14,14,1,0,0,64,0,32,255,240,0,24,255, - 240,0,32,0,64,7,12,12,9,1,0,40,40,40,40,40, - 40,40,40,170,108,56,16,7,11,11,7,0,0,16,40,40, - 68,68,130,68,68,40,40,16,4,15,15,5,0,253,16,32, - 32,64,64,64,128,128,128,64,64,64,32,32,16,10,10,20, - 12,1,0,30,0,33,0,92,128,146,64,146,64,156,64,146, - 64,82,128,33,0,30,0,10,10,20,12,1,0,30,0,33, - 0,76,128,146,64,144,64,144,64,146,64,76,128,33,0,30, - 0,10,6,12,11,0,4,250,128,34,128,38,192,37,64,37, - 64,36,64,9,12,24,10,0,255,255,0,129,0,64,0,32, - 0,16,0,8,0,8,0,16,0,32,0,64,0,128,128,255, - 128,4,15,15,6,1,253,16,32,64,64,128,128,128,128,128, - 128,128,128,128,128,128,1,15,15,6,1,253,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,4,15,15,6,1, - 253,128,128,128,128,128,128,128,128,128,128,128,64,64,32,16, - 4,15,15,6,1,253,240,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,1,15,15,6,1,253,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,4,15,15,6,1,253, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,240,4, - 15,15,7,3,253,48,64,128,128,128,128,128,128,128,128,128, - 128,128,128,128,3,15,15,7,1,253,32,32,32,32,32,32, - 64,128,64,32,32,32,32,32,32,4,15,15,7,3,253,128, - 128,128,128,128,128,128,128,128,128,128,128,128,64,48,1,15, - 15,7,3,253,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,255,4,15,15,5,1,253,128,64,64,32,32,32, - 16,16,16,32,32,32,64,64,128,5,13,13,4,0,255,24, - 40,32,32,32,32,32,32,32,32,32,160,192,5,15,15,10, - 5,253,56,88,64,128,128,128,128,128,128,128,128,128,128,128, - 128,1,15,15,10,5,253,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,5,15,15,10,1,253,8,8,8,8, - 8,8,8,8,8,8,8,8,16,208,224,4,15,15,6,1, - 253,128,64,32,32,16,16,16,16,16,16,16,16,16,16,16, - 1,15,15,6,4,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,4,15,15,6,1,253,16,16,16,16,16, - 16,16,16,16,16,16,32,32,64,128,4,15,15,6,1,253, - 240,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1, - 15,15,6,4,253,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,4,15,15,6,1,253,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,240,4,15,15,7,0,253,192, - 32,16,16,16,16,16,16,16,16,16,16,16,16,16,3,15, - 15,7,3,253,128,128,128,128,128,128,64,32,64,128,128,128, - 128,128,128,4,15,15,7,0,253,16,16,16,16,16,16,16, - 16,16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--14-100-100-100-P-85-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=11 h=15 x= 7 y=11 dx=13 dy= 0 ascent=12 len=20 - Font Bounding box w=16 h=15 x=-1 y=-3 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =12 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb10r[1633] U8G_FONT_SECTION("u8g_font_symb10r") = { - 0,16,15,255,253,10,2,6,4,121,32,127,253,12,253,10, - 253,0,0,0,4,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,9,10,20,9,0,0,128,128,65, - 0,65,0,62,0,34,0,34,0,20,0,20,0,8,0,8, - 0,7,10,10,7,0,0,20,20,20,126,40,40,252,80,80, - 80,6,10,10,8,1,0,252,4,4,4,252,4,4,4,4, - 252,9,10,20,12,1,0,121,128,151,0,146,0,148,0,108, - 0,27,0,20,128,36,128,68,128,195,0,9,10,20,11,1, - 0,48,0,72,0,72,0,112,0,39,0,114,0,202,0,132, - 0,206,128,123,0,5,7,7,6,0,0,224,16,8,120,8, - 16,224,3,13,13,5,1,253,32,64,64,128,128,128,128,128, - 128,128,64,64,32,3,13,13,5,1,253,128,64,64,32,32, - 32,32,32,32,32,64,64,128,5,6,6,7,1,2,32,168, - 112,112,168,32,7,7,7,8,0,0,16,16,16,254,16,16, - 16,2,4,4,3,0,254,64,64,64,128,7,1,1,8,0, - 3,254,1,2,2,3,1,0,128,128,4,10,10,4,0,0, - 16,16,32,32,32,64,64,64,128,128,6,10,10,7,0,0, - 120,204,132,132,132,132,132,132,204,120,5,10,10,7,1,0, - 32,224,32,32,32,32,32,32,32,248,6,10,10,7,0,0, - 112,216,136,8,24,16,32,64,196,252,6,10,10,7,0,0, - 120,204,132,12,56,12,4,4,204,120,6,10,10,7,0,0, - 8,24,24,40,104,72,136,252,8,8,5,10,10,7,1,0, - 120,64,128,224,48,24,8,8,144,224,6,10,10,7,0,0, - 28,48,64,64,248,140,132,132,204,120,6,10,10,7,0,0, - 252,132,8,8,16,16,32,32,64,64,5,10,10,7,1,0, - 112,216,136,216,112,136,136,136,216,112,6,10,10,7,0,0, - 120,204,132,132,204,120,24,16,96,192,1,7,7,4,2,0, - 128,128,0,0,0,128,128,2,9,9,4,1,254,64,64,0, - 0,0,64,64,64,128,7,7,7,8,1,0,2,12,48,192, - 48,12,2,7,3,3,8,0,2,254,0,254,7,7,7,8, - 0,0,128,96,24,6,24,96,128,5,10,10,6,1,0,112, - 136,136,8,16,32,32,0,32,32,7,7,7,8,0,0,114, - 156,0,254,0,0,254,9,10,20,11,1,0,8,0,28,0, - 20,0,20,0,34,0,34,0,62,0,99,0,65,0,227,128, - 7,10,10,9,1,0,252,70,66,70,124,70,66,66,70,252, - 9,10,20,11,1,0,227,128,65,0,34,0,20,0,8,0, - 20,0,34,0,34,0,65,0,227,128,7,10,10,9,1,0, - 16,16,40,40,40,68,68,68,130,254,7,10,10,9,1,0, - 254,66,64,68,124,68,64,66,66,254,9,10,20,11,1,0, - 28,0,8,0,127,0,201,128,136,128,136,128,201,128,127,0, - 8,0,28,0,7,10,10,9,1,0,254,66,64,64,64,64, - 64,64,64,224,9,10,20,11,1,0,227,128,65,0,65,0, - 65,0,127,0,65,0,65,0,65,0,65,0,227,128,3,10, - 10,5,1,0,224,64,64,64,64,64,64,64,64,224,8,10, - 10,9,0,0,12,10,10,102,163,34,34,34,54,28,8,10, - 10,10,1,0,238,68,72,80,112,80,72,68,70,231,9,10, - 20,10,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 34,0,65,0,65,0,227,128,11,10,20,13,1,0,224,224, - 96,192,81,64,81,64,91,64,74,64,74,64,78,64,68,64, - 228,224,9,10,20,11,1,0,227,128,97,0,81,0,89,0, - 73,0,77,0,69,0,69,0,67,0,227,0,8,10,10,10, - 1,0,60,102,66,129,129,129,129,66,102,60,9,10,20,11, - 1,0,255,128,65,0,65,0,65,0,65,0,65,0,65,0, - 65,0,65,0,227,128,8,10,10,10,1,0,60,102,66,165, - 189,165,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,10,10,9,1,0,254,194,96,48, - 24,16,32,64,193,255,7,10,10,9,1,0,254,146,146,16, - 16,16,16,16,16,56,9,10,20,9,0,0,227,128,65,0, - 34,0,34,0,20,0,8,0,8,0,8,0,8,0,28,0, - 6,10,10,7,1,253,56,192,128,128,128,96,56,4,36,56, - 10,10,20,11,0,0,12,0,51,0,33,0,64,128,64,128, - 64,128,33,0,51,0,146,64,243,192,9,10,20,9,0,0, - 127,0,65,0,0,0,34,0,62,0,34,0,0,0,0,0, - 128,128,255,128,11,10,20,11,0,0,206,96,100,192,36,128, - 36,128,31,0,4,0,4,0,4,0,4,0,14,0,7,10, - 10,9,1,0,254,134,4,8,16,16,32,64,194,254,3,13, - 13,5,1,253,224,128,128,128,128,128,128,128,128,128,128,128, - 224,8,7,7,10,1,0,24,24,0,0,0,195,195,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,9,10,20,10,0,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,8,0,255,128,7,1,1,7,0, - 253,254,8,1,1,7,7,11,255,8,7,7,9,1,0,118, - 212,136,136,136,213,102,6,14,14,8,1,253,120,204,132,140, - 152,140,132,132,132,204,184,128,128,128,8,10,10,8,0,253, - 195,166,36,60,24,56,40,100,69,195,5,11,11,7,1,0, - 112,152,128,64,112,152,136,136,136,216,112,5,7,7,6,1, - 0,120,200,128,96,128,200,112,7,13,13,9,1,253,16,16, - 16,56,84,146,146,146,84,56,16,16,16,6,10,10,6,0, - 253,196,164,36,40,40,24,24,16,48,48,7,10,10,8,0, - 253,108,178,34,34,34,34,34,2,2,2,5,7,7,5,0, - 0,96,160,32,32,32,40,48,7,10,10,9,1,253,24,84, - 210,146,146,84,56,16,16,16,7,7,7,8,0,0,70,202, - 80,112,88,76,70,8,10,10,8,0,0,96,80,16,16,40, - 40,72,68,133,131,8,9,9,8,0,254,68,68,68,68,68, - 77,123,64,192,7,7,7,8,0,0,198,66,34,34,20,20, - 8,6,7,7,8,1,0,120,204,132,132,132,204,120,8,7, - 7,8,0,0,126,164,36,36,36,37,102,5,10,10,7,1, - 0,112,216,136,136,248,136,136,136,216,112,6,10,10,8,1, - 253,120,204,132,132,132,204,184,128,128,128,7,7,7,8,1, - 0,126,200,132,132,132,204,120,5,7,7,6,0,0,120,160, - 32,32,32,40,48,7,7,7,8,0,0,100,162,34,34,34, - 38,28,10,8,16,11,0,0,127,192,160,128,68,64,68,64, - 68,64,68,64,100,192,59,128,9,7,14,11,1,0,99,0, - 136,128,136,128,136,128,136,128,201,128,119,0,6,15,15,7, - 1,253,32,64,56,32,64,120,32,64,128,128,192,120,4,36, - 56,9,10,20,9,0,253,136,128,73,0,73,0,73,0,107, - 0,62,0,28,0,8,0,8,0,8,0,6,14,14,7,1, - 253,32,68,60,16,32,64,64,128,128,192,120,4,36,56,5, - 13,13,7,1,253,24,32,32,32,32,64,128,64,32,32,32, - 32,24,1,13,13,3,1,253,128,128,128,128,128,128,128,128, - 128,128,128,128,128,5,13,13,7,1,253,192,32,32,32,32, - 16,8,16,32,32,32,32,192,6,2,2,8,1,3,100,152, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=16 h=17 x= 7 y=12 dx=17 dy= 0 ascent=13 len=30 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-3 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12[4136] U8G_FONT_SECTION("u8g_font_symb12") = { - 0,20,17,253,252,11,2,70,5,85,32,255,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,10,11,22,10,255,0,225,128,18,192,10,192,12,0, - 12,0,12,0,12,0,12,0,12,0,12,0,30,0,3,4, - 4,4,1,8,96,96,192,128,8,11,11,9,0,0,1,6, - 24,96,128,96,24,6,1,0,255,8,11,11,3,253,0,1, - 2,2,4,8,16,16,32,64,64,128,11,5,10,12,0,2, - 113,192,138,32,132,32,138,32,113,192,7,15,15,8,0,253, - 6,10,8,8,8,126,16,16,16,16,32,32,32,160,192,9, - 10,20,12,1,255,28,0,62,0,62,0,28,0,107,0,255, - 128,255,128,107,0,8,0,28,0,7,9,9,12,2,0,16, - 56,124,124,254,124,124,56,16,8,9,9,12,2,0,102,255, - 255,255,126,60,60,24,24,9,10,20,12,2,255,8,0,28, - 0,28,0,62,0,127,0,127,0,255,128,107,0,8,0,28, - 0,15,9,18,17,0,0,8,32,16,16,32,8,64,4,255, - 254,64,4,32,8,16,16,8,32,16,9,18,16,0,0,8, - 0,16,0,32,0,64,0,255,255,64,0,32,0,16,0,8, - 0,9,15,30,10,0,254,8,0,28,0,42,0,73,0,136, - 128,8,0,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,15,9,18,16,0,0,0,32,0,16,0, - 8,0,4,255,254,0,4,0,8,0,16,0,32,9,15,30, - 10,0,254,8,0,8,0,8,0,8,0,8,0,8,0,8, - 0,8,0,8,0,8,0,136,128,73,0,42,0,28,0,8, - 0,5,5,5,6,0,6,112,136,136,136,112,9,11,22,9, - 0,0,8,0,8,0,8,0,8,0,255,128,8,0,8,0, - 8,0,8,0,0,0,255,128,6,4,4,7,1,8,108,108, - 216,144,8,11,11,9,0,0,128,96,24,6,1,6,24,96, - 128,0,255,9,9,18,9,0,0,128,128,65,0,34,0,20, - 0,8,0,20,0,34,0,65,0,128,128,10,5,10,11,0, - 2,113,192,138,0,132,0,138,0,113,192,7,14,14,8,0, - 255,120,196,4,2,2,2,58,102,194,194,130,196,68,56,6, - 6,6,8,1,2,120,252,252,252,252,120,8,7,7,9,0, - 1,24,24,0,255,0,24,24,9,10,20,9,0,255,2,0, - 2,0,4,0,255,128,8,0,8,0,255,128,16,0,32,0, - 32,0,8,7,7,9,0,1,255,0,0,255,0,0,255,8, - 5,5,9,0,2,113,142,0,113,142,13,3,6,16,1,0, - 66,16,231,56,66,16,1,17,17,10,4,252,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,16,1,2, - 16,0,4,255,255,9,11,22,10,0,255,0,128,0,128,0, - 128,0,128,0,128,0,128,32,128,96,128,255,128,96,0,32, - 0,9,11,22,13,2,0,68,0,231,0,103,0,50,0,26, - 0,60,0,108,0,102,0,99,0,51,128,113,0,9,14,28, - 11,0,255,30,0,63,128,67,128,65,0,66,0,34,0,19, - 0,1,0,1,128,0,128,0,128,112,128,191,0,28,0,12, - 13,26,13,0,0,113,128,138,192,140,96,196,64,100,128,37, - 0,7,128,5,128,12,192,12,192,8,208,104,96,48,64,12, - 13,26,16,2,252,12,0,17,224,34,48,36,16,72,48,114, - 32,102,96,100,192,115,0,144,0,144,0,144,0,96,0,11, - 11,22,12,1,0,14,0,49,128,64,64,81,64,138,32,132, - 32,138,32,81,64,64,64,49,128,14,0,11,11,22,12,1, - 0,14,0,49,128,68,64,68,64,132,32,191,160,132,32,68, - 64,68,64,49,128,14,0,12,12,24,13,1,0,15,16,48, - 224,64,96,64,160,129,16,130,16,132,16,136,16,80,32,96, - 32,112,192,159,0,11,9,18,12,1,0,14,0,49,128,64, - 64,64,64,128,32,128,32,128,32,128,32,128,32,11,9,18, - 12,1,0,128,32,128,32,128,32,128,32,128,32,64,64,64, - 64,49,128,14,0,10,8,16,11,0,0,255,0,0,128,0, - 64,0,64,0,64,0,64,0,128,255,0,10,10,20,11,0, - 253,255,0,0,128,0,64,0,64,0,64,0,64,0,128,255, - 0,0,0,255,192,11,10,20,11,0,255,0,128,63,224,65, - 0,129,0,130,0,130,0,132,0,68,0,63,224,8,0,10, - 8,16,11,0,0,63,192,64,0,128,0,128,0,128,0,128, - 0,64,0,63,192,10,10,20,11,0,254,63,192,64,0,128, - 0,128,0,128,0,128,0,64,0,63,192,0,0,255,192,7, - 7,7,11,0,0,62,64,128,254,128,64,62,7,9,9,11, - 0,255,4,62,72,136,254,144,80,62,32,11,11,22,12,1, - 0,0,32,0,64,0,128,1,0,2,0,4,0,8,0,16, - 0,32,0,64,0,255,192,10,11,22,11,1,1,255,192,192, - 128,96,128,97,0,49,0,50,0,50,0,28,0,28,0,8, - 0,8,0,11,11,22,13,1,0,14,0,49,128,94,64,73, - 64,137,32,142,32,138,32,73,64,93,192,49,128,14,0,11, - 11,22,13,1,0,14,0,49,128,70,64,73,64,145,32,144, - 32,144,32,73,64,70,64,49,128,14,0,13,6,12,14,0, - 5,255,24,171,16,34,176,34,176,34,80,119,88,12,15,30, - 13,1,254,255,240,96,96,96,96,96,96,96,96,96,96,96, - 96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,240, - 240,7,16,16,9,1,253,2,2,2,2,2,4,68,196,36, - 36,20,20,20,8,8,8,2,2,2,4,1,3,192,192,11, - 5,10,12,0,0,255,224,0,32,0,32,0,32,0,32,9, - 8,16,10,0,0,8,0,8,0,20,0,34,0,34,0,65, - 0,128,128,128,128,9,8,16,10,0,0,128,128,128,128,65, - 0,34,0,34,0,20,0,8,0,8,0,16,9,18,17,0, - 0,8,16,16,8,63,252,64,2,128,1,64,2,63,252,16, - 8,8,16,15,9,18,16,0,0,8,0,16,0,63,254,64, - 0,128,0,64,0,63,254,16,0,8,0,9,15,30,10,0, - 254,8,0,20,0,34,0,99,0,162,128,34,0,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,15, - 9,18,16,0,0,0,32,0,16,255,248,0,4,0,2,0, - 4,255,248,0,16,0,32,9,15,30,10,0,254,34,0,34, - 0,34,0,34,0,34,0,34,0,34,0,34,0,34,0,34, - 0,162,128,99,0,34,0,20,0,8,0,7,12,12,8,0, - 0,16,40,40,68,68,130,130,68,68,40,40,16,4,15,15, - 5,0,254,16,16,32,32,64,64,128,128,128,64,64,32,32, - 16,16,11,11,22,13,1,0,14,0,49,128,94,64,81,64, - 145,32,158,32,145,32,81,64,81,64,49,128,14,0,11,11, - 22,13,1,0,14,0,49,128,70,64,73,64,144,32,144,32, - 144,32,73,64,70,64,49,128,14,0,11,6,12,13,0,5, - 252,32,38,96,38,96,37,160,37,160,36,32,11,15,30,11, - 0,254,255,192,112,64,56,64,24,0,12,0,14,0,7,0, - 3,0,2,0,4,0,8,0,16,32,32,64,127,192,255,128, - 6,17,17,6,1,252,4,8,16,32,32,64,64,64,64,128, - 128,128,128,128,128,128,128,1,17,17,6,1,252,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,6,17, - 17,6,1,252,128,128,128,128,128,128,128,128,64,64,64,64, - 32,32,16,8,4,5,17,17,6,0,252,248,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,1,17,17,6, - 0,252,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,5,17,17,6,0,252,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,248,4,17,17,8,3,252, - 48,64,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,4,17,17,8,0,252,16,16,16,16,16,16,16,32,192, - 32,16,16,16,16,16,16,16,4,17,17,8,3,252,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,64,48,1, - 17,17,8,3,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,255,4,15,15,5,0,254,128,128,64, - 64,32,32,16,16,16,32,32,64,64,128,128,5,17,17,5, - 0,252,24,40,32,32,32,32,32,32,32,32,32,32,32,32, - 32,160,192,6,17,17,11,5,252,24,44,72,64,128,128,128, - 128,128,128,128,128,128,128,128,128,128,1,17,17,11,5,252, - 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,6,17,17,11,0,252,4,4,4,4,4,4,4,4,4, - 4,4,4,4,8,72,208,96,6,17,17,7,1,252,128,64, - 32,16,16,8,8,8,8,4,4,4,4,4,4,4,4,1, - 17,17,6,5,252,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,128,128,6,17,17,6,0,252,4,4,4,4, - 4,4,4,4,8,8,8,8,16,16,32,64,128,5,17,17, - 6,1,252,248,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,1,17,17,6,5,252,128,128,128,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,5,17,17,6,1, - 252,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,248,4,17,17,8,0,252,192,32,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,4,17,17,8,3,252,128, - 128,128,128,128,128,128,64,48,64,128,128,128,128,128,128,128, - 4,17,17,8,0,252,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,32,192,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--17-120-100-100-P-95-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 12 - Calculated Max Values w=13 h=17 x= 7 y=12 dx=14 dy= 0 ascent=13 len=26 - Font Bounding box w=20 h=17 x=-3 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =12 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb12r[1985] U8G_FONT_SECTION("u8g_font_symb12r") = { - 0,20,17,253,252,11,2,70,5,85,32,127,252,13,252,12, - 252,0,0,0,4,0,1,3,11,11,5,1,0,64,224,224, - 224,64,64,64,0,64,224,64,11,12,24,11,0,0,128,32, - 128,32,64,64,64,64,63,128,32,128,17,0,17,0,10,0, - 10,0,4,0,4,0,8,11,11,8,0,0,18,18,18,127, - 36,36,36,254,72,72,72,7,12,12,9,0,0,254,2,2, - 2,2,126,2,2,2,2,2,254,11,12,24,13,1,255,48, - 64,111,128,201,0,201,0,154,0,148,192,101,160,11,32,11, - 32,18,96,34,64,33,128,12,11,22,13,0,0,14,0,25, - 0,17,0,26,0,12,240,56,64,76,128,198,128,131,0,197, - 144,120,224,5,8,8,7,1,0,224,16,24,120,24,24,16, - 224,4,14,14,5,0,254,16,32,64,64,128,128,128,128,128, - 128,64,64,32,16,4,14,14,5,0,254,128,64,32,32,16, - 16,16,16,16,16,32,32,64,128,5,5,5,8,1,3,32, - 168,112,168,32,9,9,18,9,0,0,8,0,8,0,8,0, - 8,0,255,128,8,0,8,0,8,0,8,0,3,5,5,4, - 1,254,64,224,96,64,128,9,1,2,9,0,4,255,128,3, - 3,3,4,1,0,64,224,64,5,11,11,5,255,0,8,8, - 16,16,32,32,32,64,64,128,128,7,12,12,8,0,0,56, - 108,68,198,130,130,130,130,198,68,108,56,5,12,12,8,1, - 0,32,96,160,32,32,32,32,32,32,32,32,248,7,12,12, - 8,0,0,56,76,134,2,2,4,4,8,16,34,126,252,6, - 12,12,8,1,0,56,76,132,4,8,56,12,4,4,4,200, - 112,7,12,12,8,0,0,4,4,12,20,20,36,68,68,254, - 4,4,4,7,12,12,8,0,0,62,60,64,64,240,248,12, - 4,4,4,200,240,6,12,12,8,1,0,12,48,96,64,248, - 204,132,132,132,132,76,56,6,12,12,8,1,0,252,252,136, - 8,8,16,16,16,16,32,32,32,6,12,12,8,1,0,48, - 72,132,196,104,48,88,140,132,132,72,48,6,12,12,8,1, - 0,112,200,132,132,132,132,204,124,8,24,48,192,3,8,8, - 4,1,0,64,224,64,0,0,64,224,64,3,10,10,4,1, - 254,64,224,64,0,0,64,224,96,64,128,8,9,9,9,0, - 0,1,6,24,96,128,96,24,6,1,9,4,8,9,0,2, - 255,128,0,0,0,0,255,128,8,9,9,9,0,0,128,96, - 24,6,1,6,24,96,128,6,11,11,7,0,0,120,156,140, - 12,24,16,32,0,32,112,32,8,8,8,9,0,0,113,142, - 0,0,255,0,0,255,11,11,22,12,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,63,128,65,192,64,192, - 225,224,9,11,22,11,1,0,254,0,99,0,97,128,97,128, - 99,0,126,0,99,0,97,128,97,128,99,0,254,0,10,11, - 22,12,0,0,241,192,96,128,49,0,26,0,26,0,12,0, - 22,0,19,0,35,0,65,128,227,192,10,11,22,10,0,0, - 4,0,4,0,14,0,14,0,19,0,19,0,35,0,33,128, - 65,128,64,192,255,192,8,11,11,10,1,0,255,97,96,96, - 98,126,98,96,96,97,255,12,11,22,12,0,0,15,0,6, - 0,63,192,102,96,198,48,198,48,198,48,102,96,63,192,6, - 0,15,0,9,11,22,10,1,0,255,128,97,128,96,0,96, - 0,96,0,96,0,96,0,96,0,96,0,96,0,240,0,11, - 11,22,12,0,0,241,224,96,192,96,192,96,192,96,192,127, - 192,96,192,96,192,96,192,96,192,241,224,4,11,11,6,1, - 0,240,96,96,96,96,96,96,96,96,96,240,9,12,24,10, - 0,0,12,0,18,0,17,0,9,0,69,0,163,0,33,128, - 33,0,33,0,33,0,34,0,28,0,10,11,22,12,1,0, - 243,192,97,0,98,0,100,0,104,0,120,0,108,0,102,0, - 99,0,97,128,243,192,11,11,22,11,0,0,4,0,4,0, - 14,0,14,0,19,0,19,0,33,128,33,128,64,192,64,192, - 225,224,13,11,22,14,1,0,224,56,96,112,112,112,112,176, - 88,176,89,48,77,48,78,48,70,48,68,48,224,120,10,11, - 22,11,1,0,225,192,112,128,112,128,88,128,92,128,78,128, - 70,128,67,128,67,128,65,128,224,128,11,11,22,12,0,0, - 31,0,113,192,96,192,192,96,192,96,192,96,192,96,192,96, - 96,192,113,192,31,0,11,11,22,12,1,0,255,224,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,11,22,12,0,0,31,0,113,192,96,192,192,96, - 209,96,223,96,209,96,192,96,96,192,113,192,31,0,8,11, - 11,9,1,0,252,102,99,99,102,124,96,96,96,96,240,9, - 11,22,10,0,0,255,128,96,128,48,0,24,0,12,0,12, - 0,8,0,16,128,32,128,127,128,255,128,10,11,22,10,0, - 0,255,192,140,64,140,64,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,30,0,10,11,22,11,1,0,241,192,96, - 128,49,0,49,0,26,0,12,0,12,0,12,0,12,0,12, - 0,30,0,7,12,12,8,0,252,60,76,128,128,128,128,124, - 62,2,2,60,56,12,12,24,12,0,0,31,128,112,224,96, - 96,192,48,192,48,192,48,192,48,96,96,48,192,137,16,249, - 240,249,240,9,11,22,11,0,0,255,128,255,128,128,128,0, - 0,34,0,62,0,34,0,0,0,128,128,255,128,255,128,12, - 11,22,13,0,0,207,48,102,96,102,96,102,96,102,96,63, - 192,6,0,6,0,6,0,6,0,15,0,8,11,11,10,1, - 0,255,131,134,12,12,24,48,48,97,193,255,3,14,14,6, - 1,254,224,128,128,128,128,128,128,128,128,128,128,128,128,224, - 9,8,16,14,2,0,8,0,28,0,8,0,0,0,0,0, - 65,0,227,128,65,0,3,14,14,5,0,254,224,32,32,32, - 32,32,32,32,32,32,32,32,32,224,9,11,22,11,1,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 8,0,8,0,255,128,8,1,1,8,0,253,255,10,1,2, - 8,7,12,255,192,10,9,18,11,0,0,57,128,101,128,195, - 0,195,0,195,0,194,0,198,64,101,64,56,128,8,17,17, - 9,0,252,60,70,66,66,70,92,70,67,67,65,65,99,94, - 64,64,64,192,8,12,12,9,0,253,99,162,150,20,28,24, - 24,56,40,105,69,198,7,12,12,8,0,0,120,140,64,48, - 24,44,70,194,130,194,68,56,7,9,9,7,0,0,56,68, - 192,192,120,192,192,66,60,7,14,14,9,1,253,16,16,56, - 84,214,146,146,146,214,84,56,16,16,16,8,13,13,7,255, - 252,97,161,146,18,20,20,8,8,16,16,48,48,48,9,12, - 24,10,0,253,110,0,177,0,33,0,33,0,33,0,33,0, - 33,0,33,0,33,0,1,0,1,0,1,128,6,9,9,5, - 255,0,32,96,160,32,32,32,32,52,24,9,12,24,10,0, - 253,39,0,73,128,201,128,136,128,136,128,136,128,201,128,73, - 0,62,0,8,0,8,0,8,0,8,9,9,9,0,0,70, - 206,80,80,120,76,76,70,79,9,13,26,9,0,0,96,0, - 208,0,144,0,16,0,8,0,24,0,24,0,56,0,40,0, - 36,0,100,128,68,128,195,0,8,13,13,9,1,252,132,132, - 132,132,132,132,132,205,182,128,128,128,128,9,9,18,8,255, - 0,225,128,33,128,49,0,51,0,18,0,26,0,12,0,12, - 0,8,0,7,9,9,9,1,0,56,68,198,130,130,130,198, - 68,56,8,9,9,9,0,0,127,255,164,36,36,36,37,103, - 102,7,12,12,9,1,0,56,108,68,198,130,254,130,130,198, - 68,108,56,7,13,13,9,1,252,56,76,134,134,130,130,198, - 196,184,128,128,128,128,9,9,18,10,1,0,31,128,116,0, - 194,0,195,0,129,0,193,0,65,0,99,0,30,0,7,9, - 9,7,0,0,60,124,144,16,16,16,18,30,12,8,9,9, - 9,1,0,68,226,161,33,33,33,33,50,28,10,10,20,11, - 0,0,127,192,155,0,32,128,100,192,68,64,68,64,68,64, - 68,64,100,192,59,128,9,9,18,11,1,0,54,0,65,0, - 201,128,136,128,136,128,136,128,136,128,201,128,119,0,7,17, - 17,8,0,252,64,88,48,64,92,60,64,128,128,128,128,124, - 62,2,2,60,56,11,13,26,11,0,252,196,96,100,192,36, - 128,36,128,36,128,36,128,36,128,53,128,31,0,4,0,4, - 0,4,0,4,0,7,17,17,8,1,252,32,76,60,32,64, - 64,128,128,128,128,128,124,62,2,2,60,56,5,14,14,8, - 1,254,24,32,32,32,32,32,192,32,32,32,32,32,32,24, - 1,14,14,3,1,253,128,128,128,128,128,128,128,128,128,128, - 128,128,128,128,5,14,14,8,1,254,192,32,32,32,32,32, - 24,32,32,32,32,32,32,192,8,2,2,9,0,3,113,142, - 255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=19 h=19 x= 9 y=13 dx=19 dy= 0 ascent=14 len=34 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14[4665] U8G_FONT_SECTION("u8g_font_symb14") = { - 0,20,19,255,251,13,2,127,6,16,32,255,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,11,13,26,12,0,0,225,192,115,32, - 58,96,28,96,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,30,0,4,5,5,5,1,9,48,112,96,192, - 128,9,12,24,10,0,0,3,128,15,0,60,0,240,0,192, - 0,240,0,60,0,15,0,3,128,0,0,255,128,255,128,8, - 13,13,5,255,0,3,6,6,12,12,24,24,48,48,96,96, - 192,192,12,5,10,13,0,3,121,224,207,48,134,16,207,48, - 121,224,9,17,34,9,0,252,3,128,5,128,12,0,12,0, - 12,0,127,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,208,0,224,0,10,9,18,14,2,0, - 12,0,30,0,30,0,30,0,109,128,255,192,255,192,109,128, - 12,0,9,9,18,13,2,0,8,0,28,0,62,0,127,0, - 255,128,127,0,62,0,28,0,8,0,9,9,18,13,2,0, - 99,0,247,128,255,128,255,128,127,0,127,0,62,0,28,0, - 8,0,10,9,18,14,2,0,12,0,30,0,63,0,127,128, - 255,192,255,192,109,128,12,0,12,0,17,8,24,19,1,1, - 24,12,0,48,6,0,96,3,0,255,255,128,255,255,128,96, - 3,0,48,6,0,24,12,0,18,8,24,18,0,1,24,0, - 0,48,0,0,96,0,0,255,255,192,255,255,192,96,0,0, - 48,0,0,24,0,0,8,19,19,10,1,251,24,60,126,219, - 153,24,24,24,24,24,24,24,24,24,24,24,24,24,24,18, - 8,24,18,0,1,0,6,0,0,3,0,0,1,128,255,255, - 192,255,255,192,0,1,128,0,3,0,0,6,0,8,19,19, - 10,1,251,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,153,219,126,60,24,5,6,6,7,1,7,112,248,216,216, - 248,112,8,11,11,10,1,0,24,24,24,255,255,24,24,24, - 0,255,255,8,5,5,8,0,9,51,119,102,204,136,9,12, - 24,10,0,0,224,0,120,0,30,0,7,128,1,128,7,128, - 30,0,120,0,224,0,0,0,255,128,255,128,10,9,18,10, - 0,0,225,192,115,128,51,0,30,0,12,0,30,0,51,0, - 115,128,225,192,11,5,10,12,0,3,121,224,207,0,134,0, - 207,0,121,224,7,14,14,9,1,0,120,204,134,6,6,6, - 62,102,198,198,198,196,236,120,5,6,6,9,2,2,112,248, - 248,248,248,112,8,8,8,10,1,1,24,24,0,255,255,0, - 24,24,8,9,9,10,1,0,12,12,255,255,24,255,255,48, - 48,8,8,8,10,1,1,255,255,0,255,255,0,255,255,8, - 7,7,10,1,2,115,255,206,0,115,255,206,14,2,4,18, - 2,0,195,12,195,12,2,19,19,10,4,251,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,19, - 2,6,19,0,4,255,255,224,255,255,224,9,12,24,12,1, - 0,1,128,1,128,1,128,1,128,1,128,1,128,33,128,97, - 128,255,128,255,128,96,0,32,0,11,13,26,13,1,0,194, - 0,227,192,113,224,56,224,57,128,125,0,207,0,199,0,227, - 0,115,128,49,192,112,192,240,64,10,15,30,13,1,255,31, - 192,63,192,96,128,65,0,66,0,34,0,19,0,3,128,1, - 192,0,192,0,192,112,192,248,128,31,0,14,0,13,14,28, - 15,1,0,121,192,254,224,142,112,134,48,198,96,118,128,54, - 64,38,96,6,96,6,96,6,96,6,96,108,120,184,48,12, - 15,30,14,1,252,12,0,24,0,49,224,103,48,204,48,216, - 48,214,48,246,96,100,224,119,192,179,128,152,0,152,0,216, - 0,112,0,12,13,26,14,1,0,31,128,57,192,96,96,217, - 176,221,176,143,16,134,16,143,16,219,176,217,176,96,96,57, - 192,31,128,12,13,26,14,1,0,31,128,57,192,102,96,198, - 48,198,48,191,208,191,208,134,16,198,48,198,48,96,96,57, - 192,31,128,12,13,26,14,1,0,31,176,57,240,96,96,192, - 240,193,176,131,16,134,16,140,16,216,48,240,48,96,96,249, - 192,223,128,12,9,18,14,1,0,31,128,57,192,96,96,224, - 112,192,48,192,48,192,48,192,48,192,48,12,9,18,14,1, - 0,192,48,192,48,192,48,192,48,192,48,224,112,96,96,57, - 192,31,128,12,9,18,13,1,0,255,128,255,224,0,96,0, - 48,0,48,0,48,0,96,255,224,255,128,12,12,24,13,0, - 253,255,128,255,224,0,96,0,48,0,48,0,48,0,96,255, - 224,255,128,0,0,255,240,255,240,12,13,26,13,0,254,0, - 96,0,192,31,240,127,240,97,128,195,0,195,0,198,0,102, - 0,127,240,31,240,24,0,48,0,12,9,18,13,0,0,31, - 240,127,240,96,0,192,0,192,0,192,0,96,0,127,240,31, - 240,12,12,24,13,0,253,31,240,127,240,96,0,192,0,192, - 0,192,0,96,0,127,240,31,240,0,0,255,240,255,240,9, - 9,18,12,1,0,31,128,127,128,224,0,192,0,255,128,192, - 0,224,0,127,128,31,128,10,11,22,12,1,255,0,128,31, - 192,127,192,226,0,196,0,255,128,200,0,240,0,127,192,63, - 192,64,0,13,13,26,14,0,0,0,24,0,48,0,96,0, - 192,1,128,3,0,6,0,12,0,24,0,48,0,96,0,192, - 0,255,248,11,13,26,13,1,0,255,224,224,32,96,96,96, - 64,112,192,48,128,48,128,57,128,25,0,27,0,14,0,14, - 0,4,0,13,13,26,15,1,0,31,192,56,224,96,48,223, - 24,205,152,205,152,205,152,207,24,205,152,220,216,96,48,56, - 224,31,192,13,13,26,15,1,0,31,192,56,224,96,48,199, - 152,205,152,204,152,204,24,204,24,204,152,199,24,96,48,56, - 224,31,192,14,8,16,16,1,5,251,28,171,24,35,24,34, - 168,34,168,34,168,34,72,119,92,14,16,32,15,0,254,255, - 252,120,120,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,48,120,120,252,252,9, - 14,28,10,0,0,0,128,0,128,0,128,0,128,48,128,113, - 0,217,0,25,0,25,0,13,0,14,0,6,0,6,0,6, - 0,2,2,2,4,1,4,192,192,11,6,12,13,1,0,255, - 224,255,224,0,96,0,96,0,96,0,96,10,9,18,11,0, - 0,12,0,12,0,30,0,51,0,51,0,97,128,97,128,192, - 192,192,192,10,9,18,11,0,0,192,192,192,192,97,128,97, - 128,51,0,51,0,30,0,12,0,12,0,18,9,27,18,0, - 0,8,4,0,24,6,0,63,255,0,127,255,128,224,1,192, - 127,255,128,63,255,0,24,6,0,8,4,0,16,9,18,18, - 1,0,8,0,24,0,63,255,127,255,224,0,127,255,63,255, - 24,0,8,0,9,17,34,11,1,253,8,0,28,0,54,0, - 119,0,247,128,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,16,9,18,18, - 1,0,0,16,0,24,255,252,255,254,0,7,255,254,255,252, - 0,24,0,16,9,17,34,11,1,253,54,0,54,0,54,0, - 54,0,54,0,54,0,54,0,54,0,54,0,54,0,54,0, - 54,0,247,128,119,0,54,0,28,0,8,0,9,14,28,9, - 0,0,28,0,28,0,54,0,54,0,99,0,99,0,193,128, - 193,128,99,0,99,0,54,0,54,0,28,0,28,0,5,17, - 17,6,0,253,24,24,48,48,96,96,192,192,128,192,192,96, - 96,48,48,24,24,13,13,26,15,1,0,31,192,56,224,96, - 48,207,24,205,152,205,152,207,24,205,152,205,152,205,152,96, - 48,56,224,31,192,13,13,26,15,1,0,31,192,56,224,96, - 48,199,24,204,152,204,24,204,24,204,24,204,152,199,24,96, - 48,56,224,31,192,13,8,16,15,1,5,251,24,35,24,35, - 24,34,168,34,168,34,168,34,72,34,72,12,16,32,13,0, - 254,255,224,224,96,112,32,56,0,28,0,14,0,7,0,3, - 0,6,0,12,0,24,0,48,0,96,16,192,48,255,240,255, - 240,6,19,19,7,1,251,4,12,24,24,48,48,96,96,96, - 96,192,192,192,192,192,192,192,192,192,2,19,19,7,1,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,6,19,19,7,1,251,192,192,192,192,192,192,192, - 192,192,224,96,96,96,48,48,24,24,12,4,5,19,19,7, - 1,251,248,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,7,1,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,19, - 19,7,1,251,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,5,19,19,9,4,251,56,96,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 5,19,19,9,1,251,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,5,19,19,9,4,251,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 96,56,2,19,19,9,4,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,255,5,17,17,6, - 0,253,192,192,96,96,48,48,24,24,8,24,24,48,48,96, - 96,192,192,6,19,19,6,0,251,28,28,48,48,48,48,48, - 48,48,48,48,48,48,48,48,48,48,224,224,7,19,19,13, - 5,251,28,126,102,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,2,19,19,13,5,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,7,19, - 19,13,0,251,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,204,252,112,6,19,19,7,0,251,128,192,96, - 96,48,48,24,24,24,24,12,12,12,12,12,12,12,12,12, - 2,19,19,7,4,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,6,19,19,7,0,251,12, - 12,12,12,12,12,12,12,12,24,24,24,24,48,48,96,96, - 192,128,5,19,19,7,1,251,248,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,2,19,19,7,4, - 251,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,5,19,19,7,1,251,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,5,19,19, - 9,1,251,224,48,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,5,19,19,9,4,251,192,192,192,192, - 192,192,64,96,48,24,48,96,64,192,192,192,192,192,192,5, - 19,19,9,1,251,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,48,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--20-140-100-100-P-107-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=14 h=19 x= 9 y=13 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=20 h=19 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb14r[2261] U8G_FONT_SECTION("u8g_font_symb14r") = { - 0,20,19,255,251,13,2,127,6,16,32,127,252,14,251,13, - 252,0,0,0,5,0,1,2,13,13,6,2,0,192,192,192, - 192,192,192,192,64,64,0,0,192,192,13,13,26,13,0,0, - 192,24,192,24,96,48,96,48,63,224,48,96,24,192,24,192, - 8,128,13,128,5,0,7,0,2,0,10,13,26,9,255,0, - 9,0,9,0,9,0,9,0,127,192,18,0,18,0,18,0, - 255,128,36,0,36,0,36,0,36,0,8,13,13,10,1,0, - 255,3,3,3,3,3,127,3,3,3,3,3,255,13,13,26, - 15,1,0,56,96,103,224,196,192,197,128,233,128,115,0,6, - 0,6,112,12,200,25,136,25,136,49,208,48,224,12,13,26, - 13,1,0,28,0,54,0,34,0,38,0,60,0,57,224,124, - 192,238,128,199,128,195,0,195,144,103,240,60,224,6,9,9, - 8,1,0,240,56,28,12,124,12,28,56,240,4,17,17,6, - 1,252,16,48,96,96,192,192,192,192,192,192,192,192,192,96, - 96,48,16,4,17,17,6,1,252,128,192,96,96,48,48,48, - 48,48,48,48,48,48,96,96,192,128,7,7,7,9,1,3, - 16,214,124,56,124,214,16,8,8,8,10,1,1,24,24,24, - 255,255,24,24,24,3,5,5,5,1,253,96,96,32,96,192, - 7,2,2,9,1,4,254,254,2,2,2,4,1,0,192,192, - 5,13,13,5,0,0,24,24,24,48,48,48,96,96,96,96, - 192,192,192,8,13,13,9,0,0,60,102,102,195,195,195,195, - 195,195,195,102,102,60,6,13,13,9,1,0,48,240,176,48, - 48,48,48,48,48,48,48,120,252,7,13,13,9,1,0,60, - 126,206,134,6,6,12,28,24,48,98,254,254,7,13,13,9, - 1,0,124,206,134,6,12,56,60,14,6,6,6,204,248,8, - 13,13,9,0,0,6,14,14,30,54,54,102,198,198,255,6, - 6,6,7,13,13,9,1,0,126,124,192,192,240,60,12,14, - 6,6,12,220,240,8,13,13,9,0,0,14,56,48,96,96, - 252,198,195,195,195,195,102,60,8,13,13,9,0,0,127,255, - 134,6,12,12,12,24,24,24,48,48,48,8,13,13,9,0, - 0,60,102,102,102,116,60,126,102,195,195,195,102,60,8,13, - 13,9,0,0,60,110,199,195,195,195,227,127,58,6,12,56, - 224,2,9,9,5,2,0,192,192,0,0,0,0,0,192,192, - 3,12,12,5,1,253,96,96,0,0,0,0,0,96,96,32, - 96,192,9,9,18,10,0,0,3,128,15,0,60,0,240,0, - 192,0,240,0,60,0,15,0,3,128,8,5,5,10,1,2, - 255,255,0,255,255,9,9,18,10,0,0,224,0,120,0,30, - 0,7,128,1,128,7,128,30,0,120,0,224,0,6,13,13, - 8,1,0,120,220,204,204,12,12,24,48,48,48,0,48,48, - 8,9,9,10,1,0,115,255,206,0,255,255,0,255,255,12, - 13,26,14,1,0,4,0,14,0,14,0,11,0,27,0,19, - 0,17,128,49,128,63,192,32,192,96,192,96,224,241,240,9, - 13,26,11,1,0,252,0,102,0,99,0,99,0,99,0,102, - 0,126,0,99,0,97,128,97,128,97,128,99,128,255,0,12, - 13,26,14,1,0,240,112,112,96,56,192,24,192,29,128,15, - 0,6,0,15,0,27,128,49,128,49,192,96,224,224,240,11, - 13,26,11,0,0,4,0,6,0,14,0,11,0,19,0,19, - 0,17,128,33,128,33,192,64,192,64,192,128,96,255,224,9, - 13,26,11,1,0,255,128,97,128,96,128,96,0,96,0,97, - 0,127,0,97,0,96,0,96,0,96,128,97,128,255,128,12, - 13,26,14,1,0,15,0,6,0,31,128,102,96,198,48,198, - 48,198,48,198,48,198,48,102,96,31,128,6,0,15,0,10, - 13,26,11,0,0,255,192,112,192,48,64,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,11, - 13,26,13,1,0,241,224,96,192,96,192,96,192,96,192,96, - 192,127,192,96,192,96,192,96,192,96,192,96,192,241,224,4, - 13,13,6,1,0,240,96,96,96,96,96,96,96,96,96,96, - 96,240,11,13,26,12,1,0,6,0,11,0,9,128,5,128, - 99,128,241,128,177,192,49,160,49,128,49,128,49,128,59,0, - 30,0,11,13,26,14,1,0,243,192,97,128,99,0,102,0, - 108,0,120,0,120,0,108,0,102,0,99,0,99,128,97,192, - 241,224,12,13,26,13,0,0,6,0,6,0,15,0,11,0, - 11,0,25,128,17,128,17,128,48,192,32,192,32,96,96,96, - 240,240,14,13,26,16,1,0,224,28,112,56,112,56,88,120, - 88,88,88,216,76,152,76,152,77,152,71,24,71,24,67,24, - 226,60,11,13,26,13,1,0,224,224,112,64,112,64,88,64, - 76,64,76,64,70,64,67,64,67,192,65,192,64,192,64,192, - 224,64,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,192,96,192,96,192,96,192,96,224,224,96,192,49,128, - 14,0,11,13,26,13,1,0,255,224,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 241,224,11,13,26,13,1,0,14,0,49,128,96,192,224,224, - 192,96,209,96,223,96,209,96,192,96,224,224,96,192,49,128, - 14,0,8,13,13,10,1,0,254,103,99,99,99,103,126,96, - 96,96,96,96,240,10,13,26,11,0,0,255,128,193,128,96, - 128,48,0,24,0,12,0,12,0,8,0,16,0,32,64,64, - 192,255,128,255,128,10,13,26,12,1,0,255,192,204,192,140, - 64,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,30,0,12,13,26,13,0,0,248,240,112,96,48, - 192,24,192,29,128,15,0,15,0,6,0,6,0,6,0,6, - 0,6,0,15,0,6,13,13,8,1,252,60,124,192,128,128, - 128,192,120,60,4,4,60,56,13,13,26,14,0,0,7,0, - 24,192,48,96,112,112,96,48,96,48,96,48,96,48,48,96, - 56,224,136,136,248,248,248,248,10,13,26,12,1,0,127,128, - 127,128,64,128,0,0,33,0,63,0,63,0,33,0,0,0, - 128,64,128,64,255,192,255,192,14,13,26,15,0,0,199,140, - 99,24,99,24,99,24,99,24,51,48,31,224,3,0,3,0, - 3,0,3,0,3,0,7,128,9,13,26,11,1,0,255,128, - 195,128,131,0,7,0,6,0,14,0,28,0,24,0,56,0, - 112,0,96,128,225,128,255,128,4,17,17,6,1,252,240,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,240,10, - 9,18,14,2,0,12,0,12,0,0,0,0,0,0,0,0, - 0,0,0,192,192,192,192,4,17,17,6,1,252,240,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,10,13, - 26,12,1,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,0,12,0,255,192,255,192,9,2, - 4,9,0,252,255,128,255,128,10,1,2,9,9,13,255,192, - 11,9,18,12,1,0,60,192,101,128,195,0,195,0,195,0, - 195,0,195,0,101,32,56,192,8,18,18,10,1,252,60,70, - 198,198,198,204,198,195,195,195,195,195,230,220,192,192,192,192, - 10,13,26,10,0,252,96,192,241,192,145,128,19,0,23,0, - 14,0,12,0,28,0,26,0,50,0,98,64,227,192,193,128, - 7,14,14,9,1,0,56,76,64,96,48,56,108,198,198,198, - 198,198,108,56,6,9,9,8,1,0,120,236,204,192,112,192, - 192,228,120,9,16,32,11,1,252,8,0,8,0,8,0,62, - 0,107,0,201,128,201,128,201,128,201,128,201,128,107,0,62, - 0,8,0,8,0,8,0,8,0,8,13,13,8,0,252,195, - 227,163,38,38,22,20,28,12,24,24,24,24,9,13,26,11, - 1,252,103,0,233,128,177,128,49,128,49,128,49,128,49,128, - 49,128,49,128,1,128,1,128,1,128,1,128,5,9,9,6, - 1,0,96,224,96,96,96,96,96,104,112,9,13,26,11,1, - 252,102,0,207,0,201,128,201,128,201,128,201,128,73,0,107, - 0,62,0,8,0,8,0,8,0,8,0,9,9,18,10,0, - 0,99,128,229,128,104,0,112,0,120,0,108,0,102,0,99, - 0,97,128,10,14,28,10,0,0,48,0,120,0,72,0,8, - 0,8,0,8,0,24,0,28,0,52,0,52,0,102,0,98, - 64,195,192,193,128,9,13,26,11,2,252,66,0,198,0,198, - 0,198,0,198,0,198,0,198,128,251,128,123,0,64,0,192, - 0,192,0,192,0,8,9,9,10,1,0,195,195,97,98,50, - 52,28,24,8,8,9,9,10,1,0,60,102,195,195,195,195, - 195,102,60,9,9,18,10,0,0,127,128,255,128,146,0,18, - 0,18,0,18,0,50,128,115,128,99,0,8,13,13,10,1, - 0,60,102,195,195,195,195,255,195,195,195,195,102,60,8,13, - 13,10,1,252,60,70,195,195,195,195,195,230,220,192,192,192, - 192,10,9,18,11,1,0,31,192,127,192,102,0,195,0,195, - 0,195,0,195,0,102,0,60,0,7,9,9,8,0,0,126, - 254,144,16,16,16,18,30,28,9,9,18,11,1,0,99,0, - 241,128,177,128,49,128,49,128,49,128,49,128,59,0,30,0, - 11,11,22,12,0,0,63,224,127,224,153,128,48,192,32,64, - 102,96,102,96,102,96,102,96,54,192,57,192,10,9,18,12, - 1,0,51,0,97,128,64,128,204,192,204,192,204,192,204,192, - 109,128,115,128,7,19,19,9,1,251,96,142,252,32,64,64, - 124,120,192,128,128,128,192,252,126,2,2,30,28,13,13,26, - 13,0,252,226,56,114,112,50,96,50,96,50,96,50,96,26, - 192,26,192,15,128,2,0,2,0,2,0,2,0,7,19,19, - 9,1,251,96,134,158,120,96,64,128,128,128,128,128,128,192, - 252,126,2,2,30,28,7,17,17,9,1,252,14,24,48,48, - 48,48,48,96,192,96,48,48,48,48,48,24,14,2,17,17, - 4,1,252,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,7,17,17,9,1,252,224,48,24,24,24,24, - 24,12,6,12,24,24,24,24,24,48,224,8,3,3,10,1, - 4,115,255,206,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=25 h=24 x=13 y=18 dx=26 dy= 0 ascent=19 len=63 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18[6604] U8G_FONT_SECTION("u8g_font_symb18") = { - 0,27,24,255,251,17,3,215,8,151,32,255,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,13,17,34,15,1,0,224,112, - 112,216,57,184,27,48,14,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,31,128, - 5,6,6,6,1,12,24,56,112,96,192,128,12,15,30,14, - 0,0,0,112,1,224,7,128,30,0,120,0,224,0,224,0, - 120,0,30,0,3,192,0,240,0,48,0,0,255,240,255,240, - 8,17,17,4,255,0,3,3,6,6,12,12,24,24,24,48, - 48,96,96,96,192,192,192,15,7,14,17,1,4,56,56,124, - 124,198,198,195,134,199,198,124,124,56,56,13,22,44,13,0, - 251,0,240,1,152,1,152,3,0,3,0,3,0,31,192,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,204,0,204,0,120,0,14,13,26, - 18,2,0,7,128,15,192,15,192,15,192,15,192,119,184,251, - 124,255,252,255,252,251,124,115,56,3,0,7,128,10,13,26, - 18,4,0,12,0,30,0,63,0,63,0,127,128,127,128,255, - 192,127,128,127,128,63,0,30,0,30,0,12,0,12,13,26, - 18,3,0,112,224,249,240,255,240,255,240,255,240,255,240,127, - 224,127,224,63,192,31,128,31,128,15,0,6,0,12,13,26, - 18,3,0,6,0,15,0,31,128,31,128,63,192,127,224,127, - 224,255,240,255,240,246,240,102,96,6,0,6,0,24,12,36, - 26,1,1,6,0,96,12,0,48,24,0,24,48,0,12,96, - 0,6,255,255,255,255,255,255,96,0,6,48,0,12,24,0, - 24,12,0,48,6,0,96,25,12,48,25,0,1,6,0,0, - 0,12,0,0,0,24,0,0,0,48,0,0,0,96,0,0, - 0,255,255,255,128,255,255,255,128,96,0,0,0,48,0,0, - 0,24,0,0,0,12,0,0,0,6,0,0,0,12,24,48, - 14,1,251,6,0,15,0,31,128,54,192,102,96,198,48,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,25,12,48,25,0,1,0,0,48,0,0,0,24, - 0,0,0,12,0,0,0,6,0,0,0,3,0,255,255,255, - 128,255,255,255,128,0,0,3,0,0,0,6,0,0,0,12, - 0,0,0,24,0,0,0,48,0,12,24,48,14,1,251,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,198,48,102,96,54,192,31,128,15,0,6,0,7, - 7,7,9,1,10,56,108,198,198,198,108,56,10,14,28,12, - 1,0,12,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,12,0,0,0,0,0,255,192,255,192,9,6, - 12,10,1,12,25,128,59,128,119,0,102,0,204,0,136,0, - 12,15,30,14,0,0,224,0,120,0,30,0,7,128,1,224, - 0,112,0,112,1,224,7,128,62,0,240,0,192,0,0,0, - 255,240,255,240,11,10,20,13,1,2,192,96,96,192,49,128, - 27,0,14,0,14,0,27,0,49,128,96,192,192,96,14,7, - 14,16,1,4,56,56,124,124,198,192,195,128,199,192,124,124, - 56,56,10,19,38,12,1,0,62,0,99,0,193,128,1,128, - 0,192,0,192,0,192,0,192,30,192,115,192,97,192,192,192, - 192,192,193,128,193,128,193,128,227,0,119,0,62,0,8,8, - 8,12,2,3,60,126,255,255,255,255,126,60,10,8,16,12, - 1,3,12,0,12,0,0,0,255,192,255,192,0,0,12,0, - 12,0,10,13,26,14,2,0,1,128,1,128,3,0,3,0, - 255,192,255,192,12,0,255,192,255,192,48,0,48,0,96,0, - 96,0,11,8,16,13,1,3,255,224,255,224,0,0,255,224, - 255,224,0,0,255,224,255,224,11,8,16,13,1,3,56,32, - 124,96,199,192,131,128,56,32,124,96,199,192,131,128,18,2, - 6,24,3,0,192,192,192,192,192,192,2,24,24,14,6,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,25,2,8,25,0,6,255,255, - 255,128,255,255,255,128,14,16,32,16,1,0,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 32,12,96,12,255,252,255,252,96,0,32,0,12,16,32,14, - 1,0,129,128,195,0,227,240,113,240,56,96,28,192,60,128, - 110,128,199,128,195,128,227,128,241,192,112,224,48,112,112,48, - 224,16,14,19,38,16,1,255,15,128,63,252,112,248,96,48, - 64,96,64,192,96,192,48,224,28,112,0,56,0,56,0,28, - 0,28,0,12,48,12,120,12,222,24,15,240,3,192,17,18, - 54,19,1,0,30,24,0,63,60,0,99,206,0,193,135,0, - 129,131,0,193,134,0,225,140,0,113,184,0,57,176,0,25, - 152,0,17,152,0,1,152,0,1,156,0,1,140,0,1,140, - 0,25,134,128,63,7,128,78,7,0,15,20,40,19,2,251, - 6,0,12,0,24,60,48,254,49,134,99,6,102,6,108,6, - 104,12,121,156,115,152,114,48,122,112,91,224,221,128,140,0, - 140,0,140,0,216,0,112,0,16,17,34,18,1,0,7,224, - 30,120,56,28,96,6,104,22,204,51,198,99,195,195,193,131, - 195,195,198,99,204,51,104,22,96,6,56,28,30,120,7,224, - 16,17,34,18,1,0,7,224,30,120,56,28,97,134,97,134, - 193,131,193,131,207,243,207,243,193,131,193,131,193,131,97,134, - 96,6,56,28,30,120,7,224,18,17,51,20,1,0,3,240, - 192,15,253,128,28,15,0,48,7,0,48,15,0,96,25,128, - 96,49,128,96,97,128,96,193,128,97,129,128,99,1,128,102, - 1,128,60,3,0,56,3,0,60,14,0,111,252,0,195,240, - 0,16,13,26,18,1,0,7,224,31,248,56,28,96,6,96, - 6,192,3,192,3,192,3,192,3,192,3,192,3,192,3,192, - 3,16,13,26,18,1,0,192,3,192,3,192,3,192,3,192, - 3,192,3,192,3,192,3,96,6,96,6,56,28,31,248,7, - 224,15,12,24,17,1,0,255,224,255,248,0,28,0,12,0, - 6,0,6,0,6,0,6,0,12,0,28,255,248,255,224,15, - 15,30,17,1,253,255,224,255,248,0,28,0,12,0,6,0, - 6,0,6,0,6,0,12,0,28,255,248,255,224,0,0,255, - 254,255,254,15,16,32,17,1,254,0,12,0,12,15,254,63, - 254,112,48,96,48,192,96,192,96,192,192,192,192,97,128,113, - 128,63,254,15,254,6,0,6,0,15,12,24,17,1,0,15, - 254,63,254,112,0,96,0,192,0,192,0,192,0,192,0,96, - 0,112,0,63,254,15,254,15,15,30,17,1,253,15,254,63, - 254,112,0,96,0,192,0,192,0,192,0,192,0,96,0,112, - 0,63,254,15,254,0,0,255,254,255,254,12,13,26,16,2, - 0,31,240,127,240,96,0,192,0,192,0,192,0,255,240,192, - 0,192,0,192,0,96,0,127,240,31,240,12,15,30,16,2, - 255,0,192,31,240,127,240,97,128,193,128,195,0,195,0,255, - 240,198,0,198,0,204,0,108,0,127,240,31,240,24,0,17, - 16,48,19,1,0,0,1,128,0,3,0,0,6,0,0,12, - 0,0,24,0,0,48,0,0,96,0,0,192,0,1,128,0, - 3,0,0,6,0,0,12,0,0,24,0,0,48,0,0,127, - 255,128,255,255,128,16,18,36,18,1,0,255,255,192,3,192, - 2,96,6,96,4,48,12,48,8,48,24,24,16,24,48,12, - 32,12,32,6,96,6,64,3,192,3,192,1,128,1,128,16, - 17,34,18,1,0,7,224,30,120,56,28,96,6,111,230,198, - 115,198,51,198,115,199,227,198,195,198,99,198,51,111,62,96, - 6,56,28,30,120,7,224,16,17,34,18,1,0,7,224,30, - 120,56,28,96,6,99,230,198,99,204,35,204,3,204,3,204, - 3,204,3,206,51,103,230,99,198,56,28,30,120,7,224,20, - 10,30,22,1,7,255,96,112,153,96,96,24,112,224,24,112, - 224,24,89,96,24,89,96,24,78,96,24,78,96,24,70,96, - 60,230,240,17,21,63,19,1,253,255,255,128,48,6,0,48, - 6,0,48,6,0,48,6,0,48,6,0,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 48,6,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,252,31,128,14,19,38,14,0,0,0,12, - 0,12,0,8,0,8,0,24,48,24,112,16,216,16,24,16, - 12,48,12,48,6,32,6,32,3,32,3,96,1,192,1,192, - 0,192,0,192,2,2,2,6,2,6,192,192,15,8,16,17, - 1,0,255,254,255,254,0,6,0,6,0,6,0,6,0,6, - 0,6,13,12,24,15,1,0,7,0,7,0,13,128,13,128, - 24,192,24,192,48,96,48,96,96,48,96,48,192,24,192,24, - 13,12,24,15,1,0,192,24,192,24,96,48,96,48,48,96, - 48,96,24,192,24,192,13,128,13,128,7,0,7,0,23,12, - 36,25,1,0,6,0,192,12,0,96,24,0,48,63,255,248, - 127,255,252,224,0,14,224,0,14,127,255,252,63,255,248,24, - 0,48,12,0,96,6,0,192,23,12,36,25,1,0,6,0, - 0,12,0,0,24,0,0,63,255,254,127,255,254,224,0,0, - 224,0,0,127,255,254,63,255,254,24,0,0,12,0,0,6, - 0,0,12,19,38,14,1,0,6,0,15,0,31,128,57,192, - 121,224,217,176,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,23,12, - 36,25,1,0,0,0,192,0,0,96,0,0,48,255,255,248, - 255,255,252,0,0,14,0,0,14,255,255,252,255,255,248,0, - 0,48,0,0,96,0,0,192,12,19,38,14,1,0,25,128, - 25,128,25,128,25,128,25,128,25,128,25,128,25,128,25,128, - 25,128,25,128,25,128,25,128,217,176,121,224,57,192,31,128, - 15,0,6,0,10,18,36,12,1,0,12,0,30,0,30,0, - 51,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 97,128,97,128,51,0,51,0,30,0,30,0,12,0,7,22, - 22,8,0,251,6,6,12,12,24,24,48,48,96,96,192,192, - 96,96,48,48,24,24,12,12,6,6,16,17,34,18,1,0, - 7,224,30,120,56,28,96,6,103,230,198,51,198,51,198,51, - 199,227,198,99,198,51,198,51,102,50,96,6,56,28,30,120, - 7,224,16,17,34,18,1,0,7,224,30,120,56,28,96,6, - 99,198,198,99,204,35,204,3,200,3,200,3,204,3,204,35, - 102,102,99,198,56,28,30,120,7,224,18,10,30,20,1,7, - 254,192,192,24,192,192,24,225,192,24,225,192,24,243,192,24, - 210,192,24,222,192,24,204,192,24,204,192,24,204,192,14,20, - 40,18,2,254,255,248,224,24,112,8,56,0,28,0,14,0, - 7,0,3,128,1,192,0,192,1,128,3,0,6,0,12,0, - 24,0,48,0,96,4,192,12,255,252,255,252,9,24,48,10, - 1,251,1,128,3,0,6,0,12,0,24,0,24,0,48,0, - 48,0,96,0,96,0,96,0,96,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,2,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 9,24,48,10,1,251,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,0,96,0,96,0,48,0,48,0,24,0,24,0,12,0, - 6,0,3,0,1,128,7,24,24,10,1,251,254,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,2,24,24,10,1,251,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,7,24,24,10,1,251,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,254, - 7,24,24,12,5,251,30,48,96,96,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,5,24, - 24,12,2,251,24,24,24,24,24,24,24,24,16,48,96,192, - 96,48,16,24,24,24,24,24,24,24,24,24,7,24,24,12, - 5,251,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,96,96,48,30,2,24,24,12,5,251, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,255,7,22,22,8,1,251,192, - 192,96,96,48,48,24,24,12,12,6,6,12,12,24,24,48, - 48,96,96,192,192,8,24,24,8,0,251,7,15,27,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 216,240,224,8,24,24,17,8,251,14,27,51,32,96,64,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,2,24,24,17,8,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,8, - 24,24,17,2,251,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,2,6,204,216,112,9,24,48, - 10,0,251,192,0,96,0,48,0,24,0,12,0,12,0,6, - 0,6,0,3,0,3,0,3,0,3,0,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,2,24,24,10,7,251,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,9,24,48,10,0,251,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,3, - 0,3,0,3,0,3,0,6,0,6,0,12,0,12,0,24, - 0,48,0,96,0,192,0,7,24,24,10,2,251,254,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,2,24,24,10,7,251,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,7,24,24,10,2,251,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 254,7,24,24,12,0,251,240,24,12,12,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5, - 24,24,12,5,251,192,192,192,192,192,192,192,192,64,96,48, - 24,48,96,64,192,192,192,192,192,192,192,192,192,7,24,24, - 12,0,251,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,12,12,24,240,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--25-180-100-100-P-142-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=20 h=24 x=13 y=18 dx=22 dy= 0 ascent=19 len=51 - Font Bounding box w=27 h=24 x=-1 y=-5 - Calculated Min Values x= 0 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =19 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb18r[3303] U8G_FONT_SECTION("u8g_font_symb18r") = { - 0,27,24,255,251,17,3,215,8,151,32,127,251,19,251,17, - 251,0,0,0,6,0,1,3,17,17,7,2,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,15,17, - 34,17,1,0,192,6,192,6,96,12,96,12,63,248,63,248, - 48,24,24,48,24,48,12,96,12,96,12,96,6,192,6,192, - 3,128,3,128,3,128,11,17,34,13,1,0,8,128,8,128, - 8,128,8,128,8,128,127,224,127,224,17,0,17,0,17,0, - 255,192,255,192,34,0,34,0,34,0,34,0,34,0,11,17, - 34,13,1,0,255,224,255,224,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,0,96,0,96,0,96,0,96,0,96, - 0,96,255,224,255,224,18,17,51,20,1,0,31,6,0,57, - 254,0,113,12,0,99,24,0,227,24,0,198,48,0,206,96, - 0,220,96,0,120,199,128,1,142,192,1,156,192,3,56,192, - 6,48,192,6,49,128,12,51,128,24,55,0,24,30,0,15, - 17,34,17,1,0,7,128,12,192,24,64,24,64,24,192,29, - 128,15,62,30,28,62,24,103,48,195,160,193,224,192,192,193, - 224,227,114,126,62,60,28,8,13,13,11,2,0,248,62,14, - 7,3,3,127,3,3,7,14,62,248,6,22,22,8,1,251, - 12,24,48,32,96,96,64,192,192,192,192,192,192,192,192,64, - 96,96,32,48,24,12,6,22,22,8,1,251,192,96,48,16, - 24,24,8,12,12,12,12,12,12,12,12,8,24,24,16,48, - 96,192,8,10,10,12,2,7,24,24,195,231,24,24,231,195, - 24,24,10,10,20,12,1,2,12,0,12,0,12,0,12,0, - 255,192,255,192,12,0,12,0,12,0,12,0,3,6,6,6, - 1,252,96,96,32,96,192,128,11,2,4,13,1,6,255,224, - 255,224,2,2,2,6,2,0,192,192,7,17,17,7,0,0, - 6,6,6,12,12,12,24,24,48,48,48,96,96,96,192,192, - 192,10,17,34,12,1,0,30,0,51,0,97,128,97,128,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,97,128,97,128,51,0,30,0,6,17,17,12,3,0,48, - 112,240,48,48,48,48,48,48,48,48,48,48,48,48,48,252, - 10,17,34,12,1,0,28,0,127,0,103,0,131,128,129,128, - 1,128,1,128,3,128,3,0,7,0,12,0,12,0,24,0, - 48,0,96,64,255,192,255,128,9,17,34,12,1,0,28,0, - 126,0,71,0,131,0,131,0,6,0,12,0,30,0,7,0, - 3,0,1,128,1,128,1,128,3,0,199,0,254,0,120,0, - 10,17,34,12,1,0,3,0,7,0,7,0,15,0,11,0, - 27,0,19,0,51,0,35,0,99,0,67,0,255,192,255,192, - 3,0,3,0,3,0,3,0,10,17,34,12,1,0,31,192, - 63,128,96,0,96,0,192,0,240,0,252,0,30,0,7,0, - 3,128,1,128,1,128,1,128,1,128,195,0,254,0,124,0, - 10,17,34,12,1,0,3,192,14,0,56,0,112,0,96,0, - 224,0,207,0,243,128,225,128,192,192,192,192,192,192,192,192, - 224,192,97,192,115,128,31,0,10,17,34,12,1,0,127,192, - 255,192,192,192,129,128,1,128,3,0,3,0,3,0,6,0, - 6,0,6,0,12,0,12,0,12,0,24,0,24,0,24,0, - 10,17,34,12,1,0,30,0,51,0,97,128,97,128,97,128, - 51,0,30,0,30,0,55,0,115,128,225,192,192,192,192,192, - 192,192,225,192,115,128,30,0,10,17,34,12,1,0,30,0, - 115,128,97,128,192,192,192,192,192,192,192,192,192,192,97,192, - 115,192,30,192,1,128,3,128,7,0,14,0,60,0,240,0, - 2,11,11,6,2,0,192,192,0,0,0,0,0,0,0,192, - 192,3,15,15,6,1,252,96,96,0,0,0,0,0,0,0, - 96,96,32,96,192,128,12,12,24,13,0,1,0,112,1,224, - 7,128,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,112,10,5,10,12,1,4,255,192,255,192,0,0, - 255,192,255,192,12,12,24,13,0,1,224,0,120,0,30,0, - 7,128,1,224,0,112,0,112,1,224,7,128,30,0,120,0, - 224,0,8,17,17,11,2,0,124,198,131,195,199,6,14,12, - 28,24,24,16,16,0,0,48,48,11,12,24,13,1,1,56, - 32,124,96,199,192,131,128,0,0,0,0,255,224,255,224,0, - 0,0,0,255,224,255,224,17,17,51,18,0,0,0,128,0, - 1,192,0,1,192,0,1,64,0,3,96,0,2,96,0,2, - 48,0,6,48,0,4,48,0,12,24,0,8,24,0,15,252, - 0,24,12,0,16,12,0,48,6,0,48,6,0,248,15,128, - 13,17,34,15,1,0,255,192,48,224,48,112,48,48,48,48, - 48,48,48,48,48,96,63,192,48,112,48,56,48,24,48,24, - 48,24,48,56,48,112,255,192,16,17,34,18,1,0,248,31, - 112,14,56,12,28,24,12,48,14,96,7,192,3,128,3,128, - 7,192,6,96,12,112,24,48,24,24,48,28,112,14,248,31, - 15,17,34,15,0,0,3,0,3,0,3,128,5,128,4,192, - 12,192,8,96,8,96,24,48,16,48,48,24,32,24,32,12, - 96,12,64,6,192,6,255,254,13,17,34,15,1,0,255,240, - 48,48,48,16,48,0,48,0,48,0,48,32,48,32,63,224, - 48,32,48,32,48,0,48,0,48,0,48,8,48,24,255,248, - 16,17,34,19,1,0,7,224,1,128,1,128,15,240,57,156, - 97,134,225,135,193,131,193,131,193,131,225,135,97,134,57,156, - 15,240,1,128,1,128,7,224,13,17,34,15,1,0,255,248, - 48,24,48,8,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,0, - 16,17,34,18,1,0,252,63,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,63,252,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,6,17,17,8,1,0,252,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,48,252,14, - 17,34,16,1,0,3,192,6,224,4,96,6,96,3,48,113, - 176,248,240,152,60,24,48,24,48,48,48,48,48,48,48,48, - 96,56,96,28,192,15,128,15,17,34,17,1,0,252,124,48, - 48,48,96,48,192,49,128,51,0,54,0,62,0,63,0,51, - 128,49,128,49,192,48,224,48,112,48,56,48,28,252,62,15, - 17,34,17,1,0,3,0,3,0,3,128,5,128,4,192,4, - 192,12,192,8,96,8,96,24,96,16,48,16,48,48,48,32, - 24,32,24,96,28,248,62,20,17,51,22,1,0,240,1,240, - 56,1,192,56,3,192,60,2,192,44,2,192,46,6,192,38, - 4,192,39,12,192,35,8,192,35,136,192,33,152,192,33,208, - 192,32,208,192,32,240,192,32,96,192,32,96,192,248,67,240, - 16,17,34,18,1,0,240,31,56,4,56,4,44,4,46,4, - 38,4,35,4,35,4,33,132,33,196,32,196,32,100,32,100, - 32,52,32,60,32,28,248,12,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,96,6,112,14,56,28,28,56,7,224, - 16,17,34,18,1,0,255,255,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,48,12,48,12,48,12,48,12,48,12, - 48,12,48,12,48,12,252,63,16,17,34,18,1,0,7,224, - 30,120,56,28,112,14,96,6,200,19,200,19,207,243,207,243, - 200,19,200,19,192,3,96,6,112,14,56,28,28,56,7,224, - 12,17,34,14,1,0,255,128,48,224,48,96,48,48,48,48, - 48,48,48,96,48,224,63,128,48,0,48,0,48,0,48,0, - 48,0,48,0,48,0,252,0,12,17,34,14,1,0,255,240, - 224,16,112,16,56,0,28,0,14,0,7,0,3,128,3,0, - 6,0,12,0,24,0,48,0,96,16,192,16,255,240,255,240, - 14,17,34,16,1,0,255,252,195,12,131,4,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,0,3,0,15,192,16,17,34,16,0,0,248,31, - 112,14,48,12,24,24,28,16,12,48,14,96,6,96,3,192, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 9,18,36,11,1,251,31,128,63,128,96,0,96,0,192,0, - 192,0,192,0,192,0,192,0,192,0,96,0,127,0,31,128, - 0,128,0,128,1,128,15,0,14,0,16,17,34,18,1,0, - 7,224,30,120,56,28,112,14,96,6,192,3,192,3,192,3, - 192,3,192,3,96,6,48,12,24,24,140,49,196,35,252,63, - 252,63,14,17,34,16,1,0,127,248,127,248,64,8,64,8, - 0,0,16,32,16,32,31,224,31,224,16,32,16,32,0,0, - 0,0,128,4,128,4,255,252,255,252,18,17,51,20,1,0, - 227,241,192,112,195,128,48,195,0,48,195,0,56,199,0,56, - 199,0,24,198,0,28,206,0,7,248,0,0,192,0,0,192, - 0,0,192,0,0,192,0,0,192,0,0,192,0,0,192,0, - 3,240,0,12,17,34,15,1,0,255,240,192,112,128,96,0, - 224,1,192,1,128,3,128,7,0,6,0,14,0,28,0,56, - 0,56,0,112,0,96,16,224,48,255,240,5,22,22,8,2, - 251,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,248,12,10,20,18,3,0,6,0,6, - 0,0,0,0,0,0,0,0,0,0,0,0,0,192,48,192, - 48,5,22,22,8,1,251,248,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,24,24,24,24,24,248,14,17,34, - 16,1,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,255,252,255,252,13,2,4,13,0,251,255,248,255,248,13, - 1,2,13,13,18,255,248,14,13,26,16,1,0,31,24,113, - 184,96,176,224,240,192,96,192,96,192,96,192,96,192,96,224, - 224,96,228,113,252,31,56,10,24,48,12,1,251,62,0,103, - 0,195,128,193,128,193,128,195,128,195,0,206,0,207,0,195, - 128,193,128,193,192,192,192,192,192,192,192,193,192,225,128,243, - 128,223,0,192,0,192,0,192,0,192,0,192,0,12,18,36, - 14,1,251,112,96,248,96,216,192,136,192,9,128,9,128,11, - 0,7,0,6,0,6,0,14,0,14,0,25,0,25,0,49, - 16,49,176,97,240,96,224,10,18,36,12,1,0,31,0,51, - 128,33,128,48,0,56,0,28,0,14,0,63,0,115,128,97, - 128,192,192,192,192,192,192,192,192,192,192,97,128,115,128,30, - 0,9,13,26,11,1,0,62,0,115,0,227,0,195,0,224, - 0,96,0,60,0,96,0,224,0,192,0,224,128,113,128,63, - 0,12,22,44,14,1,251,6,0,6,0,6,0,6,0,31, - 128,54,192,102,96,230,112,198,48,198,48,198,48,198,48,198, - 48,230,112,102,96,54,192,31,128,6,0,6,0,6,0,6, - 0,6,0,11,18,36,11,0,251,112,96,248,96,152,96,152, - 192,24,192,12,192,13,128,13,128,5,128,7,0,7,0,3, - 0,6,0,6,0,6,0,6,0,6,0,6,0,12,18,36, - 15,1,251,113,192,251,224,158,48,28,48,24,48,24,48,24, - 48,24,48,24,48,24,48,24,48,24,48,24,48,0,48,0, - 48,0,48,0,48,0,48,7,13,13,8,1,0,48,112,240, - 48,48,48,48,48,48,48,50,62,28,12,18,36,14,1,251, - 51,128,115,192,102,96,198,112,198,48,198,48,198,48,198,48, - 198,48,230,112,102,96,54,192,31,128,6,0,6,0,6,0, - 6,0,6,0,12,13,26,14,1,0,48,112,112,240,241,176, - 51,0,54,0,60,0,60,0,62,0,55,0,51,128,49,192, - 48,224,49,240,12,19,38,14,1,0,112,0,248,0,136,0, - 8,0,8,0,12,0,12,0,12,0,28,0,30,0,26,0, - 50,0,50,0,51,0,97,0,97,0,97,144,193,240,192,224, - 13,18,36,14,1,251,96,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,200,63,248,111,48, - 96,0,96,0,96,0,96,0,192,0,11,13,26,13,1,0, - 192,224,192,224,192,96,96,64,96,192,96,128,49,128,49,0, - 51,0,26,0,26,0,14,0,12,0,11,13,26,13,1,0, - 31,0,113,192,96,192,224,224,192,96,192,96,192,96,192,96, - 192,96,224,224,96,192,113,192,31,0,13,13,26,14,0,0, - 127,248,255,248,152,192,24,192,24,192,24,192,24,192,24,192, - 24,192,24,192,24,200,56,248,48,240,10,17,34,12,1,0, - 30,0,51,0,97,128,97,128,192,192,192,192,192,192,192,192, - 255,192,192,192,192,192,192,192,192,192,97,128,97,128,51,0, - 30,0,10,18,36,12,1,251,62,0,99,128,193,128,193,192, - 192,192,192,192,192,192,192,192,192,192,193,192,193,128,227,128, - 222,0,192,0,192,0,192,0,192,0,192,0,14,13,26,15, - 1,0,31,252,113,252,96,192,224,224,192,96,192,96,192,96, - 192,96,192,96,224,224,96,192,113,192,31,0,10,13,26,11, - 0,0,63,192,127,192,204,0,140,0,12,0,12,0,12,0, - 12,0,12,0,12,0,12,128,15,128,7,0,13,13,26,14, - 0,0,48,224,120,48,216,24,152,24,24,24,24,24,24,24, - 24,24,24,24,24,48,12,48,14,224,7,192,16,14,28,18, - 1,0,127,255,255,255,152,24,48,12,49,140,97,134,97,134, - 97,134,97,134,97,134,97,134,49,140,59,220,30,120,14,13, - 26,16,1,0,24,96,48,48,96,24,99,24,195,12,195,12, - 195,12,195,12,195,12,195,12,99,24,119,184,60,240,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,48,0,32,0, - 55,128,31,128,48,0,96,0,192,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,16,18,36,18,1,251,193,131,113,142,49,140, - 57,156,57,156,57,156,57,156,57,156,57,156,25,152,25,152, - 13,176,7,224,1,128,1,128,1,128,1,128,1,128,10,24, - 48,12,1,251,48,0,99,128,103,128,63,0,24,0,48,0, - 32,0,96,0,64,0,192,0,128,0,128,0,128,0,128,0, - 192,0,240,0,124,0,63,128,15,192,0,192,0,64,0,192, - 15,128,15,0,8,22,22,10,1,251,7,12,24,24,24,24, - 24,16,48,32,192,32,48,16,24,24,24,24,24,24,12,7, - 2,22,22,4,1,251,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,8,22,22,10, - 1,251,224,48,24,24,24,24,24,8,12,4,3,4,12,8, - 24,24,24,24,24,24,48,224,11,4,8,13,1,5,56,32, - 124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=34 x=15 y=26 dx=34 dy= 0 ascent=27 len=108 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-5 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24[10727] U8G_FONT_SECTION("u8g_font_symb24") = { - 0,40,34,251,249,23,5,133,13,247,32,255,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,20,23,69,20,0,0,240,1, - 192,124,7,224,15,12,112,7,12,240,3,152,224,1,208,224, - 1,208,0,1,240,0,1,240,0,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,1,240,0, - 7,252,0,6,9,9,8,1,16,24,60,60,120,112,96,224, - 192,128,16,21,42,18,1,0,0,7,0,31,0,124,1,240, - 7,192,30,0,120,0,224,0,224,0,120,0,30,0,7,128, - 1,224,0,120,0,30,0,7,0,1,0,0,0,0,255,255, - 255,255,15,23,46,6,251,0,0,2,0,6,0,12,0,12, - 0,24,0,48,0,48,0,96,0,192,0,192,1,128,3,0, - 3,0,6,0,12,0,12,0,24,0,48,0,48,0,96,0, - 192,0,192,0,128,0,21,10,30,23,1,4,28,3,192,127, - 15,224,99,158,48,193,248,24,192,240,24,192,240,24,192,248, - 24,99,156,48,127,15,240,28,3,192,16,29,58,16,0,250, - 0,30,0,51,0,103,0,98,0,224,0,224,0,192,0,192, - 0,192,15,252,1,192,1,192,1,192,1,192,1,128,1,128, - 1,128,3,128,3,128,3,128,3,0,3,0,3,0,3,0, - 2,0,102,0,230,0,236,0,120,0,18,18,54,24,3,0, - 1,224,0,3,240,0,7,248,0,7,248,0,7,248,0,7, - 248,0,3,240,0,1,224,0,124,207,128,255,255,192,255,255, - 192,255,255,192,255,255,192,255,255,192,252,207,192,120,199,128, - 0,192,0,1,224,0,14,18,36,24,5,0,3,0,7,128, - 7,192,15,192,31,224,63,240,127,248,127,248,255,252,255,252, - 127,248,127,248,63,240,31,224,15,192,7,192,7,128,3,0, - 16,18,36,24,4,0,124,62,254,127,254,127,255,255,255,255, - 255,255,255,255,127,254,127,254,63,252,63,252,31,248,15,240, - 15,240,7,224,3,192,1,128,1,128,16,18,36,24,4,0, - 1,128,1,192,3,192,7,224,7,240,15,240,31,248,63,252, - 63,252,127,254,255,255,255,255,255,255,253,191,249,159,249,159, - 113,142,3,192,32,16,64,34,1,0,1,128,1,128,3,0, - 0,192,7,0,0,224,14,0,0,112,28,0,0,56,56,0, - 0,28,112,0,0,14,255,255,255,255,255,255,255,255,112,0, - 0,14,56,0,0,28,28,0,0,56,14,0,0,112,7,0, - 0,224,3,0,0,192,1,128,1,128,29,16,64,32,1,0, - 1,128,0,0,3,0,0,0,6,0,0,0,14,0,0,0, - 28,0,0,0,56,0,0,0,112,0,0,0,255,255,255,248, - 255,255,255,248,112,0,0,0,56,0,0,0,28,0,0,0, - 14,0,0,0,6,0,0,0,3,0,0,0,1,128,0,0, - 16,27,54,20,2,0,1,128,3,192,7,224,15,240,29,184, - 57,156,113,142,225,135,193,131,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,29,16,64,32, - 2,0,0,0,12,0,0,0,14,0,0,0,7,0,0,0, - 3,128,0,0,1,192,0,0,0,224,0,0,0,112,255,255, - 255,248,255,255,255,248,0,0,0,112,0,0,0,224,0,0, - 1,192,0,0,3,128,0,0,7,0,0,0,14,0,0,0, - 12,0,16,27,54,20,2,0,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,193,131,225,135, - 113,142,57,156,29,184,15,240,7,224,3,192,1,128,9,10, - 20,13,2,13,28,0,99,0,65,0,128,128,128,128,128,128, - 128,128,65,0,99,0,28,0,16,22,44,18,1,0,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,0,0,255,255,255,255,12,9,18,13,1,15, - 28,112,28,112,60,240,56,224,113,192,113,192,227,128,195,0, - 130,0,16,21,42,18,1,0,224,0,248,0,62,0,15,128, - 1,224,0,120,0,30,0,7,0,7,0,30,0,120,1,224, - 7,128,30,0,120,0,224,0,128,0,0,0,0,0,255,255, - 255,255,16,16,32,18,1,1,192,3,224,7,112,14,56,28, - 28,56,14,112,7,224,3,192,3,192,7,224,14,112,28,56, - 56,28,112,14,224,7,192,3,19,10,30,23,1,4,28,3, - 192,63,15,224,99,156,0,193,248,0,192,240,0,192,240,0, - 193,248,0,99,156,0,127,15,224,28,3,192,14,27,54,16, - 1,0,30,0,63,128,32,224,0,112,0,48,0,24,0,24, - 0,24,0,28,0,28,0,28,15,28,31,252,56,124,120,60, - 112,60,240,56,224,56,224,56,224,56,224,112,224,112,96,96, - 112,224,57,192,31,128,15,0,11,12,24,15,2,4,14,0, - 63,128,127,192,127,192,255,224,255,224,255,224,255,224,127,192, - 127,192,63,128,14,0,16,13,26,18,1,2,1,128,3,192, - 3,192,1,128,0,0,255,255,255,255,0,0,0,0,1,128, - 3,192,3,192,1,128,17,19,57,18,1,255,0,12,0,0, - 24,0,0,24,0,0,48,0,0,48,0,255,255,128,255,255, - 128,0,192,0,0,192,0,1,128,0,1,128,0,3,0,0, - 255,255,128,255,255,128,6,0,0,12,0,0,12,0,0,24, - 0,0,24,0,0,17,12,36,18,0,3,255,255,128,255,255, - 128,0,0,0,0,0,0,0,0,0,255,255,128,255,255,128, - 0,0,0,0,0,0,0,0,0,255,255,128,255,255,128,16, - 9,18,18,1,4,28,0,127,135,225,254,64,56,0,0,28, - 0,127,135,225,254,192,56,26,4,16,33,3,0,96,12,1, - 128,240,30,3,192,240,30,3,192,96,12,1,128,2,34,34, - 20,9,249,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,32,2,8,32,0,7,255,255,255,255,255, - 255,255,255,18,21,63,21,1,0,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,0,192,0,0,192,0,0,192,0,0,192, - 0,0,192,0,0,192,16,0,192,112,0,192,255,255,192,255, - 255,192,112,0,0,16,0,0,16,22,44,27,5,0,0,32, - 96,96,240,126,240,127,248,127,124,63,60,15,62,12,31,24, - 31,152,55,240,115,240,97,240,225,240,240,248,240,124,120,62, - 124,30,124,31,60,15,124,7,252,6,18,27,81,22,1,254, - 7,240,0,31,254,0,63,255,128,56,63,128,96,7,0,96, - 7,0,64,6,0,64,12,0,64,12,0,96,28,0,48,28, - 0,28,14,0,14,14,0,0,15,0,0,7,0,0,7,128, - 0,3,128,0,3,192,0,1,192,0,1,192,0,1,192,60, - 1,128,255,1,128,159,195,0,7,254,0,3,248,0,0,240, - 0,23,24,72,26,1,0,15,128,192,63,225,240,97,247,248, - 192,252,124,128,120,62,128,120,28,128,56,56,192,56,112,224, - 56,192,120,57,192,62,59,192,14,57,224,6,56,224,6,56, - 224,0,56,240,0,56,240,0,56,112,0,112,112,0,112,112, - 0,96,120,30,192,122,63,128,62,47,128,60,6,0,16,23, - 26,78,32,5,249,0,192,0,1,192,0,3,0,112,6,3, - 252,6,14,30,12,24,30,28,48,14,24,96,14,56,192,30, - 57,128,30,59,0,30,62,0,28,62,48,60,60,120,56,30, - 112,120,62,64,240,47,65,224,111,99,192,71,63,0,199,0, - 0,135,0,0,131,0,0,131,0,0,199,0,0,102,0,0, - 60,0,0,22,23,69,25,1,0,0,252,0,3,255,0,15, - 3,192,28,0,224,56,0,112,50,1,48,103,3,152,99,135, - 24,193,134,8,192,204,12,192,120,12,192,48,12,192,120,12, - 192,204,12,193,134,12,99,135,24,103,3,152,50,1,48,56, - 0,112,28,0,224,15,3,192,3,255,0,0,252,0,22,23, - 69,25,1,0,0,252,0,3,255,0,15,3,192,28,48,224, - 24,48,96,48,48,48,96,48,24,96,48,24,96,48,24,192, - 48,12,192,48,12,223,255,236,223,255,236,192,48,12,192,48, - 12,96,48,24,96,48,24,48,48,48,56,48,112,28,48,224, - 15,3,192,3,255,0,0,252,0,24,24,72,27,1,0,0, - 126,2,3,255,198,7,129,238,14,0,124,24,0,56,48,0, - 124,112,0,238,96,1,198,96,3,134,192,7,3,192,14,3, - 192,28,3,192,56,3,192,112,3,192,224,3,97,192,6,99, - 128,6,119,0,14,62,0,12,28,0,24,62,0,112,119,129, - 224,227,255,192,192,126,0,22,17,51,25,1,0,0,252,0, - 3,255,0,15,3,192,28,0,224,56,0,112,48,0,48,96, - 0,24,96,0,24,192,0,12,192,0,12,192,0,12,192,0, - 12,192,0,12,192,0,12,192,0,12,192,0,12,192,0,12, - 22,17,51,25,1,0,192,0,12,192,0,12,192,0,12,192, - 0,12,192,0,12,192,0,12,192,0,12,192,0,12,192,0, - 12,96,0,24,96,0,24,48,0,48,56,0,112,28,0,224, - 15,3,192,3,255,0,0,252,0,21,16,48,23,1,0,255, - 255,0,255,255,192,0,1,224,0,0,112,0,0,48,0,0, - 56,0,0,24,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,48,0,0,112,0,0,224,255,255,192,255,255,0,21, - 20,60,23,1,252,255,255,0,255,255,192,0,0,224,0,0, - 112,0,0,48,0,0,24,0,0,24,0,0,24,0,0,24, - 0,0,24,0,0,24,0,0,48,0,0,112,0,0,224,255, - 255,192,255,255,0,0,0,0,0,0,0,255,255,240,255,255, - 240,21,20,60,23,1,254,0,0,96,0,0,192,7,255,248, - 15,255,248,56,1,128,112,3,0,96,3,0,224,6,0,192, - 6,0,192,12,0,192,12,0,192,24,0,224,24,0,96,48, - 0,112,48,0,60,96,0,31,255,248,7,255,248,0,192,0, - 1,128,0,21,16,48,23,1,0,7,255,248,31,255,248,56, - 0,0,112,0,0,96,0,0,192,0,0,192,0,0,192,0, - 0,192,0,0,192,0,0,224,0,0,96,0,0,112,0,0, - 60,0,0,31,255,248,7,255,248,21,20,60,23,1,252,7, - 255,248,31,255,248,56,0,0,112,0,0,96,0,0,192,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 96,0,0,112,0,0,56,0,0,31,255,248,7,255,248,0, - 0,0,0,0,0,127,255,248,127,255,248,15,16,32,23,1, - 0,7,254,31,254,56,0,112,0,96,0,192,0,192,0,255, - 254,255,254,192,0,192,0,96,0,112,0,56,0,31,254,7, - 254,15,20,40,23,1,254,0,24,0,24,7,254,31,254,56, - 96,112,96,96,192,64,192,193,128,255,254,255,254,195,0,70, - 0,110,0,124,0,60,0,31,254,55,254,48,0,32,0,22, - 22,66,25,1,0,0,0,12,0,0,28,0,0,56,0,0, - 112,0,0,224,0,1,192,0,3,128,0,7,0,0,14,0, - 0,28,0,0,56,0,0,112,0,0,96,0,0,192,0,1, - 128,0,3,0,0,7,0,0,14,0,0,28,0,0,56,0, - 0,127,255,248,255,255,248,20,24,72,23,1,0,255,255,240, - 127,255,240,120,0,48,120,0,32,60,0,96,60,0,64,28, - 0,192,30,0,192,30,1,128,15,1,128,15,1,0,7,3, - 0,7,130,0,7,134,0,3,196,0,3,204,0,3,204,0, - 1,248,0,1,248,0,0,240,0,0,240,0,0,224,0,0, - 96,0,0,64,0,21,22,66,25,2,0,1,252,0,7,7, - 0,12,1,192,24,0,192,51,248,96,97,142,48,65,134,16, - 193,134,24,193,134,24,129,140,8,129,248,8,129,184,8,129, - 152,8,193,156,24,193,142,24,65,135,16,103,195,176,48,0, - 96,24,0,192,28,1,192,7,7,0,1,252,0,21,23,69, - 25,2,0,1,252,0,7,207,0,14,1,128,24,0,192,48, - 0,96,48,0,48,96,125,48,65,199,16,195,3,24,195,1, - 24,134,0,8,134,0,8,134,0,8,134,0,8,134,0,8, - 199,0,24,67,3,24,97,199,16,32,252,48,48,0,96,28, - 0,192,7,135,128,1,254,0,27,13,52,29,1,10,255,220, - 1,224,204,206,3,128,140,78,3,128,12,15,7,128,12,11, - 5,128,12,11,141,128,12,9,141,128,12,9,201,128,12,8, - 217,128,12,8,241,128,12,8,113,128,12,8,97,128,62,30, - 39,224,25,27,108,27,1,0,255,255,255,128,63,255,254,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,30,0,60,0, - 30,0,60,0,30,0,60,0,30,0,60,0,63,0,126,0, - 255,193,255,128,17,27,81,18,0,0,0,0,128,0,0,128, - 0,0,128,0,0,128,0,1,128,0,1,0,0,1,0,0, - 3,0,0,2,0,8,2,0,56,2,0,236,6,0,12,4, - 0,6,4,0,6,4,0,3,4,0,3,12,0,1,140,0, - 1,136,0,0,200,0,0,200,0,0,104,0,0,120,0,0, - 56,0,0,48,0,0,16,0,0,16,0,3,3,3,8,2, - 7,224,224,224,21,10,30,23,1,0,255,255,248,255,255,248, - 0,0,24,0,0,24,0,0,24,0,0,24,0,0,24,0, - 0,24,0,0,24,0,0,24,16,15,30,20,2,0,1,128, - 1,128,3,192,3,192,6,96,14,112,12,48,28,56,24,24, - 48,12,48,12,96,6,224,7,192,3,128,1,16,15,30,20, - 2,0,128,1,192,3,224,7,96,6,48,12,48,12,24,24, - 28,56,12,48,6,96,6,96,3,192,3,192,1,128,1,128, - 32,18,72,34,1,0,0,128,1,0,1,128,1,128,3,0, - 0,192,6,0,0,96,15,255,255,240,31,255,255,248,56,0, - 0,28,112,0,0,14,224,0,0,7,224,0,0,7,112,0, - 0,14,56,0,0,28,31,255,255,248,15,255,255,240,6,0, - 0,96,3,0,0,192,1,128,1,128,0,128,1,0,29,17, - 68,32,1,0,0,128,0,0,1,128,0,0,3,0,0,0, - 6,0,0,0,15,255,255,248,31,255,255,248,56,0,0,0, - 112,0,0,0,224,0,0,0,112,0,0,0,56,0,0,0, - 31,255,255,248,15,255,255,248,6,0,0,0,3,0,0,0, - 1,128,0,0,0,128,0,0,17,27,81,20,1,0,0,128, - 0,1,192,0,3,224,0,7,112,0,14,56,0,28,28,0, - 60,30,0,124,31,0,236,27,128,12,24,0,12,24,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,29, - 17,68,32,2,0,0,0,8,0,0,0,12,0,0,0,6, - 0,0,0,3,0,255,255,255,128,255,255,255,192,0,0,0, - 224,0,0,0,112,0,0,0,56,0,0,0,112,0,0,0, - 224,255,255,255,192,255,255,255,128,0,0,3,0,0,0,6, - 0,0,0,12,0,0,0,8,0,17,27,81,20,1,0,12, - 24,0,12,24,0,12,24,0,12,24,0,12,24,0,12,24, - 0,12,24,0,12,24,0,12,24,0,12,24,0,12,24,0, - 12,24,0,12,24,0,12,24,0,12,24,0,12,24,0,12, - 24,0,12,24,0,236,27,128,124,31,0,60,30,0,28,28, - 0,14,56,0,7,112,0,3,224,0,1,192,0,0,128,0, - 14,25,50,16,1,0,3,0,7,128,7,128,12,192,12,192, - 24,96,24,96,48,48,48,48,96,24,96,24,192,12,192,12, - 224,28,96,24,96,24,48,48,48,48,24,96,24,96,12,192, - 12,192,7,128,7,128,3,0,9,30,60,11,1,250,1,128, - 3,0,3,0,6,0,6,0,14,0,12,0,28,0,24,0, - 56,0,48,0,48,0,96,0,96,0,192,0,192,0,96,0, - 96,0,48,0,48,0,56,0,24,0,28,0,12,0,14,0, - 6,0,6,0,3,0,3,0,1,128,21,22,66,26,2,0, - 1,252,0,7,15,0,12,1,128,24,0,192,48,0,96,99, - 254,48,67,6,16,195,3,24,195,3,24,195,3,24,131,6, - 8,131,252,8,131,6,8,195,3,24,195,3,24,67,3,16, - 99,3,48,32,0,32,48,0,96,28,1,192,7,15,0,3, - 252,0,21,23,69,26,2,0,1,252,0,7,223,0,14,3, - 128,24,0,192,48,0,96,32,0,32,96,252,48,65,206,16, - 195,6,24,195,3,24,194,0,8,134,0,8,134,0,8,134, - 0,8,134,3,24,195,3,24,67,6,24,97,206,48,32,248, - 48,48,0,96,28,0,192,15,135,128,3,254,0,22,13,39, - 25,1,10,255,56,28,24,56,28,24,56,28,24,60,60,24, - 60,60,24,52,44,24,54,108,24,54,108,24,50,76,24,51, - 204,24,51,204,24,49,140,24,49,140,21,28,84,23,1,255, - 255,255,224,120,3,224,124,0,96,60,0,96,30,0,32,15, - 0,0,15,128,0,7,128,0,3,192,0,3,224,0,1,240, - 0,0,240,0,0,120,0,0,120,0,0,56,0,0,48,0, - 0,96,0,0,192,0,1,128,0,3,128,0,3,0,0,6, - 0,8,12,0,24,24,0,24,48,0,48,127,255,240,127,255, - 240,255,255,240,13,34,68,13,1,249,0,24,0,120,0,224, - 1,192,3,128,3,0,6,0,12,0,12,0,24,0,24,0, - 56,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0, - 96,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,2,34, - 34,13,1,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,13,34,68,13,1,249,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,0,96,0,96,0, - 96,0,48,0,48,0,48,0,56,0,24,0,24,0,12,0, - 12,0,6,0,3,0,3,128,1,192,0,224,0,120,0,24, - 11,34,68,13,0,249,255,224,255,224,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,2,34,34,13,0,249, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,11,34,68,13,0,249,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,255,224,255,224,8,34,34,16, - 6,249,7,31,56,112,96,96,224,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,9,34,68,16,255,249,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 3,0,3,0,6,0,12,0,56,0,224,0,120,0,12,0, - 6,0,3,0,3,0,1,128,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,8,34, - 34,16,6,249,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 96,96,112,56,31,7,2,34,34,16,6,249,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,255,9, - 30,60,11,1,250,192,0,96,0,96,0,48,0,48,0,56, - 0,24,0,28,0,12,0,14,0,6,0,6,0,3,0,3, - 0,1,128,1,128,3,0,3,0,6,0,6,0,14,0,12, - 0,28,0,24,0,56,0,48,0,48,0,96,0,96,0,192, - 0,9,33,66,9,0,250,3,0,7,128,7,128,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,12,0,12,0,12,0,12,0,12,0,12,0,12, - 0,12,0,248,0,248,0,112,0,12,34,68,23,10,249,1, - 224,3,240,6,112,12,240,8,96,24,0,24,0,48,0,48, - 0,48,0,112,0,96,0,96,0,96,0,96,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,224,0,224,0,224,0,224,0,224,0,224,0,224, - 0,224,0,3,34,34,22,10,249,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,12,34,68,22,1, - 249,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,0,112,0,96,0,96,0,96,0,96,0, - 224,0,192,0,192,0,192,1,128,1,128,97,0,243,0,230, - 0,252,0,120,0,13,34,68,13,0,249,192,0,240,0,56, - 0,24,0,12,0,6,0,3,0,1,0,1,128,0,192,0, - 192,0,192,0,96,0,96,0,96,0,48,0,48,0,48,0, - 48,0,48,0,16,0,16,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,2, - 34,34,13,11,249,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,13,34,68,13,0,249,0,24,0, - 24,0,24,0,24,0,24,0,24,0,24,0,24,0,24,0, - 24,0,24,0,24,0,16,0,16,0,48,0,48,0,48,0, - 48,0,48,0,96,0,96,0,96,0,192,0,192,0,192,1, - 128,1,0,3,0,6,0,12,0,28,0,56,0,240,0,192, - 0,11,34,68,13,1,249,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,2,34,34,13,10, - 249,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,11,34,68,13,1,249,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,255,224,255,224,8,34,34, - 16,0,249,224,120,28,14,6,6,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,9,34,68,16,6,249,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192, - 0,96,0,96,0,48,0,24,0,14,0,3,128,14,0,24, - 0,48,0,96,0,96,0,192,0,192,0,192,0,192,0,192, - 0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,8, - 33,33,16,0,250,3,3,3,3,3,3,3,3,3,3,3, - 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 6,6,14,28,120,224,255}; -/* - Fontname: -Adobe-Symbol-Medium-R-Normal--34-240-100-100-P-191-Adobe-FontSpecific - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=27 h=33 x=15 y=26 dx=29 dy= 0 ascent=27 len=92 - Font Bounding box w=40 h=34 x=-5 y=-7 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =27 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_symb24r[5335] U8G_FONT_SECTION("u8g_font_symb24r") = { - 0,40,34,251,249,23,5,133,13,247,32,127,249,27,249,23, - 249,0,0,0,8,0,1,4,23,23,11,4,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,0,0,0, - 96,240,240,96,20,24,72,23,1,0,192,0,48,192,0,48, - 192,0,96,96,0,96,96,0,96,48,0,192,48,0,192,63, - 255,192,31,255,128,24,1,128,12,3,0,12,3,0,12,3, - 0,6,6,0,6,6,0,3,12,0,3,12,0,3,12,0, - 1,152,0,1,152,0,0,240,0,0,240,0,0,240,0,0, - 96,0,14,23,46,16,1,0,6,48,6,48,6,48,6,48, - 12,96,12,96,12,96,127,252,127,252,12,96,12,96,12,96, - 24,192,24,192,24,192,255,248,255,248,24,192,24,192,49,128, - 49,128,49,128,49,128,15,24,48,18,0,0,255,254,255,254, - 0,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,63,254,63,254,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,6,255,254,255,254,23,23,69,27, - 2,255,7,192,96,30,225,192,60,63,192,56,33,128,112,33, - 128,112,35,0,240,98,0,224,70,0,224,204,0,224,204,0, - 97,152,0,119,16,124,62,48,238,0,97,198,0,99,130,0, - 199,2,0,135,2,1,142,6,3,14,4,3,14,12,6,14, - 24,14,7,48,12,3,224,23,22,66,25,1,0,0,248,0, - 3,140,0,3,6,0,7,6,0,7,6,0,7,6,0,7, - 12,0,7,152,0,3,241,252,3,192,112,7,192,96,29,224, - 96,56,240,192,112,240,128,96,121,128,224,63,0,224,30,0, - 224,31,0,240,31,130,248,55,238,127,227,252,31,128,248,12, - 17,34,14,1,0,126,0,127,128,7,192,1,224,0,224,0, - 240,0,112,0,112,63,240,63,240,0,112,0,112,0,224,1, - 224,3,192,255,0,124,0,8,29,29,11,2,250,3,7,6, - 12,24,48,48,112,112,96,96,224,224,224,224,224,224,224,96, - 96,112,112,48,48,24,12,6,7,3,8,29,29,11,1,250, - 192,224,96,48,24,12,12,14,14,6,6,7,7,7,7,7, - 7,7,6,6,14,14,12,12,24,48,96,224,192,11,14,28, - 16,2,4,4,0,14,0,14,0,196,96,228,224,127,192,31, - 0,31,0,127,192,228,224,196,96,14,0,14,0,4,0,16, - 18,36,18,1,0,1,128,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,1,128,4,9,9,8,2,251,96, - 240,240,240,16,48,96,224,192,17,2,6,18,0,8,255,255, - 128,255,255,128,4,4,4,8,2,0,96,240,240,96,7,22, - 22,9,1,0,2,2,6,6,4,12,12,8,24,24,16,48, - 48,32,32,96,64,64,192,192,128,128,14,23,46,16,1,0, - 15,192,28,224,56,112,48,48,112,56,112,56,96,24,224,28, - 224,28,224,28,224,28,224,28,224,28,224,28,224,28,224,28, - 96,24,112,56,112,56,48,48,56,112,28,224,15,192,9,23, - 46,16,4,0,4,0,28,0,252,0,220,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,62,0, - 255,128,14,23,46,16,1,0,15,128,31,192,63,224,97,240, - 192,240,192,112,128,112,0,112,0,112,0,96,0,96,0,192, - 0,192,1,128,3,0,3,0,6,0,12,0,24,0,48,12, - 112,24,127,248,255,240,13,23,46,16,1,0,15,128,63,224, - 113,224,64,224,192,96,128,96,0,96,0,192,0,192,1,128, - 7,192,15,224,1,240,0,112,0,120,0,56,0,56,0,56, - 0,48,0,48,96,96,121,192,127,128,15,23,46,16,0,0, - 0,48,0,112,0,112,0,240,1,240,1,240,3,112,6,112, - 6,112,12,112,24,112,24,112,48,112,32,112,96,112,192,112, - 255,254,255,254,0,112,0,112,0,112,0,112,0,112,13,23, - 46,16,1,0,15,248,15,240,31,240,16,0,48,0,32,0, - 126,0,127,128,127,192,15,224,3,224,0,240,0,112,0,112, - 0,112,0,48,0,48,0,48,0,112,0,96,224,192,251,128, - 254,0,14,23,46,16,1,0,0,56,1,224,3,128,7,0, - 14,0,28,0,56,0,56,0,112,0,119,192,255,240,240,120, - 224,56,224,60,224,28,224,28,224,28,224,28,112,28,112,56, - 56,56,28,112,15,192,13,23,46,16,1,0,127,248,127,248, - 127,248,192,24,128,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,192,1,192,1,128,1,128,1,128,3,0, - 3,0,3,0,6,0,6,0,6,0,12,23,46,16,2,0, - 31,128,113,192,96,224,224,96,192,96,224,96,224,224,112,192, - 121,192,63,0,31,0,31,128,63,192,115,192,96,224,224,240, - 192,112,192,112,224,112,224,112,96,96,121,192,31,128,14,23, - 46,16,1,0,15,128,56,224,48,112,96,56,224,56,224,56, - 224,60,224,28,224,28,224,28,240,28,112,28,120,124,63,252, - 15,56,0,56,0,112,0,240,0,224,1,192,7,128,30,0, - 112,0,4,15,15,9,2,0,96,240,240,96,0,0,0,0, - 0,0,0,96,240,240,96,4,20,20,9,3,251,96,240,240, - 96,0,0,0,0,0,0,0,96,240,240,240,16,48,96,224, - 192,16,16,32,18,1,1,0,7,0,31,0,124,1,240,7, - 128,30,0,120,0,224,0,224,0,120,0,30,0,7,128,1, - 240,0,124,0,31,0,7,17,8,24,18,0,5,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,16,16,32,18,1,1,224,0,248,0,62, - 0,15,128,1,224,0,120,0,30,0,7,0,7,0,30,0, - 120,1,224,15,128,62,0,248,0,224,0,11,23,46,14,2, - 0,63,0,99,128,193,192,192,224,192,224,224,224,192,224,1, - 224,1,192,1,128,3,128,3,0,6,0,6,0,4,0,4, - 0,4,0,0,0,0,0,12,0,30,0,30,0,12,0,17, - 16,48,18,0,0,30,1,0,63,195,128,96,255,0,64,28, - 0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,128, - 255,255,128,0,0,0,0,0,0,0,0,0,0,0,0,255, - 255,128,255,255,128,21,23,69,23,0,0,0,32,0,0,112, - 0,0,112,0,0,112,0,0,248,0,0,248,0,0,188,0, - 1,188,0,1,156,0,3,30,0,3,14,0,2,15,0,6, - 15,0,6,7,0,12,7,128,15,255,128,8,3,128,24,3, - 192,24,1,192,48,1,224,48,1,224,112,1,240,252,7,248, - 18,23,69,22,1,0,255,224,0,63,254,0,28,31,0,28, - 7,0,28,7,128,28,7,128,28,7,128,28,7,128,28,7, - 0,28,15,0,28,62,0,31,248,0,28,31,0,28,7,128, - 28,3,128,28,3,192,28,3,192,28,3,192,28,3,192,28, - 7,128,28,15,128,63,255,0,255,248,0,22,23,69,23,0, - 0,255,195,252,63,0,224,31,0,192,15,1,192,7,129,128, - 7,195,0,3,198,0,1,230,0,1,236,0,0,248,0,0, - 120,0,0,120,0,0,124,0,0,222,0,1,158,0,1,143, - 0,3,15,128,6,7,128,14,3,192,12,3,224,24,1,224, - 56,1,240,254,7,252,19,22,66,20,0,0,0,96,0,0, - 96,0,0,240,0,0,240,0,0,240,0,1,248,0,1,56, - 0,3,60,0,2,60,0,6,28,0,4,30,0,12,14,0, - 12,15,0,8,15,0,24,7,0,16,7,128,48,3,128,32, - 3,192,96,3,192,64,1,192,255,255,224,255,255,224,18,23, - 69,20,1,0,255,255,128,63,255,128,28,3,128,28,1,128, - 28,1,128,28,0,0,28,0,0,28,2,0,28,2,0,28, - 2,0,28,14,0,31,254,0,28,6,0,28,2,0,28,2, - 0,28,0,0,28,0,0,28,0,64,28,0,64,28,0,192, - 28,1,192,63,255,128,255,255,128,23,23,69,25,1,0,1, - 255,0,0,124,0,0,56,0,0,56,0,7,255,192,31,57, - 240,60,56,120,120,56,60,120,56,60,240,56,30,240,56,30, - 240,56,30,240,56,30,240,56,30,120,56,28,120,56,60,60, - 56,120,31,57,240,7,255,192,0,56,0,0,56,0,0,124, - 0,1,255,0,18,23,69,20,1,0,255,255,128,63,255,192, - 60,1,192,28,0,192,28,0,64,28,0,64,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,62,0,0,255,128,0,22, - 23,69,24,1,0,255,135,252,62,1,240,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 28,0,224,28,0,224,31,255,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,62,1,240,255,135,252,9,23,46,11,1,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,20,23, - 69,20,0,0,0,120,0,0,220,0,0,134,0,0,135,0, - 0,131,0,0,195,128,0,67,128,28,99,128,62,57,128,126, - 29,128,199,7,128,199,1,224,6,1,176,14,1,128,14,1, - 128,14,1,128,14,3,128,14,3,0,14,3,0,14,7,0, - 7,6,0,3,156,0,1,248,0,22,23,69,23,1,0,255, - 143,240,62,3,192,28,3,128,28,3,0,28,6,0,28,12, - 0,28,24,0,28,48,0,28,96,0,29,192,0,31,224,0, - 31,224,0,30,240,0,28,120,0,28,124,0,28,62,0,28, - 31,0,28,15,128,28,7,128,28,3,192,28,1,224,62,1, - 240,255,143,252,21,22,66,22,0,0,0,32,0,0,48,0, - 0,112,0,0,112,0,0,248,0,0,248,0,0,188,0,1, - 188,0,1,156,0,1,30,0,3,14,0,3,15,0,2,15, - 0,6,7,0,6,7,128,12,3,128,12,3,192,8,3,192, - 24,1,192,24,1,224,56,1,240,254,7,248,27,23,92,29, - 1,0,254,0,15,224,30,0,15,128,31,0,15,0,31,0, - 31,0,31,0,31,0,31,128,55,0,27,128,55,0,27,192, - 39,0,27,192,103,0,25,224,103,0,25,224,199,0,24,224, - 199,0,24,240,135,0,24,113,135,0,24,121,135,0,24,123, - 7,0,24,63,7,0,24,63,7,0,24,30,7,0,24,30, - 7,0,24,12,7,0,56,12,15,128,255,12,63,224,22,23, - 69,23,1,0,252,3,252,62,0,96,30,0,96,31,0,96, - 31,128,96,31,192,96,27,192,96,25,224,96,25,240,96,24, - 240,96,24,120,96,24,60,96,24,60,96,24,30,96,24,15, - 96,24,15,224,24,7,224,24,3,224,24,1,224,24,1,224, - 24,0,224,56,0,96,255,0,32,22,23,69,23,1,0,1, - 254,0,7,135,128,14,1,192,28,0,224,60,0,240,120,0, - 112,120,0,120,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,120, - 0,120,56,0,112,60,0,240,28,0,224,14,1,192,7,207, - 128,1,254,0,23,23,69,25,1,0,255,255,254,63,255,248, - 28,0,112,28,0,112,28,0,112,28,0,112,28,0,112,28, - 0,112,28,0,112,28,0,112,28,0,112,28,0,112,28,0, - 112,28,0,112,28,0,112,28,0,112,28,0,112,28,0,112, - 28,0,112,28,0,112,28,0,112,62,0,248,255,131,254,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,60,0,240,56,0,112,120,0,120,112,0,56,112,0,56, - 242,1,60,243,3,60,243,255,60,243,255,60,243,3,60,242, - 1,60,112,0,56,112,0,56,120,0,120,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,240,0,63,254,0,28,15,0,28,7,128,28,7,128,28, - 3,128,28,3,128,28,3,128,28,3,128,28,7,128,28,7, - 0,30,62,0,31,252,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,18,23,69,19,1,0,255,255,0,255,255, - 0,120,3,0,60,1,0,62,1,128,30,0,0,15,0,0, - 7,128,0,7,192,0,3,192,0,1,224,0,0,192,0,1, - 192,0,1,128,0,3,0,0,6,0,0,12,0,64,28,0, - 192,24,0,128,48,1,128,127,255,128,255,255,128,255,255,128, - 19,23,69,20,1,0,255,255,224,248,227,224,192,224,224,192, - 224,96,128,224,32,128,224,32,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,0,224,0,0,224,0,0,224,0,0, - 224,0,0,224,0,1,240,0,7,252,0,23,23,69,23,0, - 0,255,193,254,62,0,112,31,0,96,15,0,224,15,128,192, - 7,129,128,3,193,128,3,227,0,1,227,0,0,246,0,0, - 252,0,0,124,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,124,0,1,255,0,13,24,48,14,1,249,3,224,15,240, - 31,240,48,0,96,0,64,0,192,0,192,0,128,0,128,0, - 128,0,192,0,192,0,240,0,127,240,63,240,31,248,0,24, - 0,8,0,8,0,24,7,240,7,240,7,192,23,23,69,25, - 1,0,0,254,0,3,131,128,14,0,224,30,0,240,28,0, - 112,60,0,120,56,0,56,120,0,60,120,0,60,120,0,60, - 120,0,60,120,0,60,120,0,60,56,0,56,60,0,120,28, - 0,112,14,0,224,7,1,192,129,131,2,192,130,6,255,199, - 254,255,199,254,255,199,254,19,23,69,21,1,0,127,255,192, - 127,255,192,127,255,192,96,0,192,64,0,64,0,0,0,0, - 0,0,0,0,0,8,2,0,12,6,0,15,254,0,15,254, - 0,15,254,0,8,2,0,8,2,0,0,0,0,0,0,0, - 192,0,96,192,0,96,64,0,64,127,255,192,127,255,192,127, - 255,192,25,23,92,26,0,0,224,255,131,128,112,62,7,0, - 56,28,14,0,56,28,14,0,60,28,30,0,60,28,30,0, - 60,28,30,0,60,28,30,0,60,28,30,0,28,28,28,0, - 30,28,60,0,15,156,248,0,3,255,224,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,28,0,0, - 0,28,0,0,0,28,0,0,0,28,0,0,0,62,0,0, - 0,255,128,0,19,23,69,20,1,0,127,255,192,120,3,192, - 96,7,128,96,15,0,64,15,0,64,30,0,0,62,0,0, - 60,0,0,120,0,0,248,0,0,240,0,1,224,0,1,224, - 0,3,192,0,7,192,0,7,128,0,15,0,0,31,0,32, - 30,0,32,62,0,96,60,0,224,120,3,192,255,255,192,7, - 28,28,11,3,251,254,224,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,224, - 254,17,16,48,28,5,0,1,224,0,1,224,0,1,224,0, - 1,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,240,7,128,240,7, - 128,240,7,128,240,7,128,7,28,28,11,1,251,254,14,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,14,254,20,23,69,21,1,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,0,96, - 0,0,96,0,0,96,0,0,96,0,0,96,0,0,96,0, - 0,96,0,0,96,0,0,96,0,0,96,0,0,96,0,0, - 96,0,0,96,0,0,96,0,0,96,0,0,96,0,255,255, - 240,255,255,240,16,2,4,16,0,249,255,255,255,255,20,1, - 3,17,15,26,255,255,240,19,17,51,20,1,0,15,193,128, - 28,225,128,56,51,128,112,19,128,112,23,0,240,31,0,224, - 15,0,224,14,0,224,14,0,224,14,0,224,28,0,240,30, - 0,240,30,32,112,58,32,120,115,224,60,225,192,15,193,192, - 14,32,64,18,2,249,15,128,25,224,48,224,112,112,96,112, - 96,112,96,112,96,112,96,112,96,96,103,192,103,224,96,112, - 96,56,96,56,96,60,96,28,96,28,96,28,96,28,96,28, - 96,56,120,120,111,240,99,192,96,0,96,0,96,0,96,0, - 224,0,224,0,224,0,17,25,75,18,0,249,24,0,0,60, - 14,0,126,14,0,70,30,0,194,28,0,195,60,0,3,56, - 0,1,112,0,1,112,0,1,224,0,1,224,0,1,192,0, - 3,192,0,3,128,0,7,192,0,7,192,0,15,64,0,14, - 64,0,30,96,0,28,97,128,60,97,128,56,51,0,120,63, - 0,112,62,0,112,30,0,14,25,50,16,1,0,15,128,31, - 224,48,240,32,120,48,48,56,0,28,0,14,0,7,128,3, - 192,7,240,28,240,56,120,112,56,240,60,224,28,224,28,224, - 28,224,28,240,28,240,56,112,56,120,112,31,224,7,128,12, - 18,36,14,1,255,31,128,57,224,112,224,224,224,224,64,224, - 0,112,0,120,0,31,128,120,0,240,0,224,0,224,0,224, - 16,240,48,120,48,63,224,15,128,15,30,60,17,1,249,1, - 0,1,0,1,0,1,0,1,0,1,0,15,192,29,112,57, - 56,113,28,113,28,225,30,225,14,225,14,225,14,225,14,225, - 14,241,14,113,12,113,28,57,24,29,112,7,224,1,0,1, - 0,1,0,1,0,1,0,1,0,1,0,15,24,48,13,254, - 249,56,14,124,14,124,14,198,28,134,28,130,28,3,56,3, - 56,1,48,1,48,1,96,1,224,1,192,0,192,0,192,1, - 128,1,192,1,192,3,192,3,192,3,192,3,192,3,128,1, - 128,17,24,72,20,0,249,24,56,0,124,254,0,223,222,0, - 207,15,0,143,7,0,14,7,0,14,7,0,14,7,0,14, - 7,0,14,7,0,14,7,0,14,7,0,14,7,0,14,7, - 0,14,7,0,14,7,0,14,7,0,0,7,0,0,7,0, - 0,7,0,0,7,0,0,7,0,0,3,0,0,3,128,10, - 17,34,11,0,0,4,0,124,0,252,0,60,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 64,28,192,15,192,15,0,18,24,72,20,1,249,6,60,0, - 30,126,0,56,255,0,112,199,128,112,195,128,240,195,192,224, - 193,192,224,193,192,224,193,192,224,193,192,240,193,192,240,193, - 128,112,195,128,120,195,0,56,199,0,30,220,0,7,248,0, - 0,192,0,0,192,0,0,192,0,0,192,0,0,192,0,0, - 192,0,0,192,0,17,17,51,18,1,0,8,7,0,248,31, - 128,248,63,128,56,99,0,24,192,0,25,128,0,27,0,0, - 31,128,0,31,128,0,27,192,0,25,224,0,24,240,0,24, - 240,0,24,120,0,24,60,0,24,62,0,24,127,128,17,25, - 75,18,1,0,56,0,0,124,0,0,126,0,0,198,0,0, - 195,0,0,131,0,0,1,0,0,1,0,0,1,128,0,3, - 128,0,3,128,0,7,128,0,7,192,0,15,192,0,14,192, - 0,30,64,0,28,96,0,28,96,0,56,96,0,56,96,128, - 112,48,128,112,57,128,224,63,0,224,31,0,224,14,0,17, - 24,72,19,1,249,112,56,0,112,56,0,112,56,0,112,56, - 0,112,56,0,112,56,0,112,56,0,112,56,0,112,56,0, - 112,56,0,112,56,0,112,56,0,112,120,0,120,120,128,127, - 253,128,127,159,128,110,30,0,96,0,0,96,0,0,96,0, - 0,224,0,0,224,0,0,224,0,0,96,0,0,16,17,34, - 17,255,0,24,6,248,7,60,7,28,7,28,7,30,6,14, - 6,14,12,7,12,7,24,7,152,3,176,3,160,1,224,1, - 192,1,192,0,128,15,17,34,18,1,0,7,192,28,112,48, - 56,112,60,112,28,224,30,224,14,224,14,224,14,224,14,224, - 14,240,14,112,28,120,28,56,56,30,112,15,224,17,17,51, - 18,0,0,15,255,128,63,255,128,63,255,128,102,56,0,198, - 56,0,6,48,0,6,48,0,6,48,0,6,48,0,6,48, - 0,4,48,0,12,48,0,12,48,128,28,57,128,60,63,0, - 60,31,0,56,30,0,14,23,46,17,1,0,7,128,28,224, - 24,112,48,48,112,56,112,56,240,60,224,28,224,28,224,28, - 224,28,255,252,255,252,224,28,224,28,224,28,224,28,112,56, - 112,56,112,56,56,112,28,224,15,192,14,25,50,18,2,249, - 7,192,31,224,48,240,96,120,96,120,224,60,224,60,224,28, - 224,28,224,28,224,28,224,24,224,24,224,56,240,112,248,224, - 239,192,231,0,224,0,224,0,224,0,224,0,224,0,224,0, - 224,0,18,18,54,20,1,0,3,255,192,15,255,192,63,255, - 192,124,48,0,120,24,0,240,28,0,240,14,0,224,15,0, - 224,7,0,224,7,0,240,7,0,112,7,0,112,15,0,56, - 14,0,60,30,0,30,56,0,7,240,0,1,192,0,14,17, - 34,14,0,0,15,252,63,252,63,252,99,128,195,128,195,128, - 3,0,3,0,3,0,3,0,3,0,3,8,3,136,3,152, - 3,248,1,240,1,224,17,18,54,19,0,0,0,16,0,60, - 24,0,124,28,0,252,6,0,206,7,0,142,3,0,14,3, - 0,14,3,128,14,3,128,14,3,128,14,3,128,14,3,128, - 14,3,0,14,7,0,7,7,0,7,14,0,3,156,0,1, - 248,0,21,19,57,23,0,0,31,255,248,63,255,248,127,255, - 248,231,131,128,222,0,192,60,0,224,56,56,112,120,56,112, - 120,56,56,120,56,56,112,56,56,112,56,56,112,56,56,112, - 16,56,120,16,56,120,56,112,56,40,112,28,236,224,15,135, - 192,20,17,51,22,1,0,15,14,0,28,7,128,56,1,192, - 112,97,224,112,224,224,224,224,240,224,224,240,224,224,112,224, - 224,112,224,224,112,224,224,112,224,64,112,224,224,240,112,224, - 224,113,177,224,63,31,192,30,15,0,14,33,66,16,1,249, - 48,0,96,192,99,224,103,192,63,128,24,0,48,0,32,0, - 32,0,48,0,49,240,31,240,31,224,48,0,96,0,64,0, - 192,0,128,0,128,0,128,0,192,0,192,0,248,0,127,240, - 63,252,31,252,0,12,0,4,0,4,0,12,3,248,3,248, - 1,224,22,24,72,22,0,249,240,48,60,120,48,120,60,48, - 240,28,48,224,28,48,224,28,48,224,28,48,224,28,48,224, - 30,48,224,30,49,224,30,49,224,14,49,192,14,49,192,6, - 49,192,7,51,128,3,183,0,1,254,0,0,48,0,0,48, - 0,0,48,0,0,48,0,0,48,0,0,48,0,0,48,0, - 13,32,64,16,2,249,24,0,56,112,48,240,51,224,63,192, - 14,0,12,0,24,0,16,0,48,0,32,0,96,0,64,0, - 64,0,192,0,192,0,192,0,192,0,192,0,224,0,96,0, - 127,192,63,240,31,248,15,248,0,24,0,8,0,8,0,24, - 3,248,7,240,3,224,11,29,58,16,2,250,7,224,14,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,28,0,28,0,112,0,192,0,112,0,28,0,28,0, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,14,0,7,224,2,28,28,7,2,250,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,11,29,58,16,2,250,252,0, - 14,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,7,0,7,0,1,192,0,96,1,192,7,0, - 7,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,14,0,252,0,15,4,8,18,1,7,24,0, - 127,134,227,254,192,56,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=11 x= 1 y= 6 dx=11 dy= 0 ascent=10 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08[2551] U8G_FONT_SECTION("u8g_font_timB08") = { - 0,13,18,254,251,7,1,164,3,77,32,255,253,10,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,0,0,0,2,0,1,2,7,7,4,1, - 253,192,192,0,192,192,192,192,5,7,7,6,0,255,16,120, - 208,208,224,120,32,5,7,7,6,0,0,56,104,96,248,96, - 232,216,5,5,5,6,0,1,136,112,80,112,136,5,7,7, - 6,0,0,216,216,112,32,112,32,112,1,7,7,3,1,0, - 128,128,128,0,128,128,128,4,9,9,5,0,254,96,176,192, - 160,208,112,48,208,96,3,1,1,4,0,5,160,7,7,7, - 9,1,0,56,68,154,162,154,68,56,3,6,6,4,0,1, - 192,32,224,160,0,224,5,5,5,6,0,0,40,80,160,80, - 40,5,3,3,7,1,1,248,8,8,3,1,1,3,0,2, - 224,7,7,7,9,1,0,56,68,186,178,170,68,56,3,1, - 1,4,0,5,224,4,3,3,4,0,4,96,144,96,5,7, - 7,6,0,0,32,32,248,32,32,0,248,3,4,4,3,0, - 3,96,160,64,224,3,4,4,3,0,3,224,64,32,192,2, - 2,2,4,1,5,64,128,5,8,8,5,0,253,216,208,208, - 208,240,128,192,192,6,10,10,6,0,253,124,232,232,232,104, - 40,40,40,40,40,1,2,2,3,1,2,128,128,2,3,3, - 3,1,253,128,64,192,3,4,4,3,0,3,64,192,64,224, - 3,6,6,4,0,1,64,160,160,64,0,224,5,5,5,6, - 0,0,160,80,40,80,160,7,7,7,7,0,0,68,200,72, - 244,44,62,68,7,7,7,7,0,0,68,200,72,246,42,36, - 78,7,7,7,7,0,0,228,72,40,212,44,62,68,4,7, - 7,6,1,253,96,96,0,64,208,208,96,8,10,10,7,255, - 0,32,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,8,16,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,16,40,0,16,24,56,44,124,78,239,8,10,10,7,255, - 0,52,88,0,16,24,56,44,124,78,239,8,9,9,7,255, - 0,36,0,16,24,56,44,124,78,239,8,10,10,7,255,0, - 24,36,24,16,24,56,44,124,78,239,9,7,14,9,255,0, - 63,128,28,128,44,0,47,0,124,0,76,128,239,128,6,10, - 10,7,0,253,124,204,192,192,192,236,120,32,16,48,6,10, - 10,7,0,0,32,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,8,16,0,252,100,96,120,96,100,252,6,10, - 10,7,0,0,48,72,0,252,100,96,120,96,100,252,6,9, - 9,7,0,0,40,0,252,100,96,120,96,100,252,4,10,10, - 5,0,0,64,32,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,32,64,0,240,96,96,96,96,96,240,4,10,10, - 5,0,0,96,144,0,240,96,96,96,96,96,240,4,9,9, - 5,0,0,144,0,240,96,96,96,96,96,240,7,7,7,8, - 0,0,252,102,102,246,102,102,252,7,10,10,8,0,0,52, - 88,0,238,100,116,92,92,76,228,6,10,10,7,0,0,32, - 16,0,120,204,204,204,204,204,120,6,10,10,7,0,0,16, - 32,0,120,204,204,204,204,204,120,6,10,10,7,0,0,48, - 72,0,120,204,204,204,204,204,120,6,10,10,7,0,0,52, - 88,0,120,204,204,204,204,204,120,6,9,9,7,0,0,72, - 0,120,204,204,204,204,204,120,6,5,5,6,0,0,204,120, - 48,120,204,6,9,9,8,1,255,4,120,204,220,236,236,204, - 120,128,7,10,10,7,0,0,32,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,8,16,0,246,100,100,100,100, - 100,56,7,10,10,7,0,0,24,36,0,246,100,100,100,100, - 100,56,7,9,9,7,0,0,36,0,246,100,100,100,100,100, - 56,8,10,10,8,0,0,4,8,0,247,98,52,56,24,24, - 60,6,7,7,6,0,0,224,120,108,108,120,96,240,5,7, - 7,6,0,0,112,200,200,208,200,200,216,5,8,8,5,0, - 0,64,32,0,96,176,112,176,248,5,8,8,5,0,0,16, - 32,0,96,176,112,176,248,5,8,8,5,0,0,32,80,0, - 96,176,112,176,248,5,8,8,5,0,0,104,176,0,96,176, - 112,176,248,5,7,7,5,0,0,80,0,96,176,112,176,248, - 5,8,8,5,0,0,32,80,32,96,176,112,176,248,7,5, - 5,8,0,0,110,186,126,184,238,4,8,8,5,0,253,112, - 208,192,208,112,64,32,96,4,8,8,5,0,0,64,32,0, - 112,208,240,192,112,4,8,8,5,0,0,16,32,0,112,208, - 240,192,112,5,8,8,5,0,0,32,80,136,112,208,240,192, - 112,4,7,7,5,0,0,80,0,112,208,240,192,112,2,8, - 8,3,0,0,128,64,0,192,192,192,192,192,2,8,8,3, - 0,0,64,128,0,192,192,192,192,192,3,8,8,3,0,0, - 64,160,0,192,192,192,192,192,3,7,7,3,0,0,160,0, - 192,192,192,192,192,5,9,9,6,0,0,128,112,96,176,24, - 120,216,216,112,6,8,8,6,0,0,104,176,0,176,216,216, - 216,220,5,8,8,6,0,0,64,32,0,112,216,216,216,112, - 5,8,8,6,0,0,16,32,0,112,216,216,216,112,5,8, - 8,6,0,0,32,80,0,112,216,216,216,112,5,8,8,6, - 0,0,104,176,0,112,216,216,216,112,5,7,7,6,0,0, - 80,0,112,216,216,216,112,5,5,5,6,0,0,32,0,248, - 0,32,5,7,7,6,0,255,16,112,216,216,216,112,64,5, - 8,8,5,0,0,64,32,0,216,208,208,208,112,5,8,8, - 5,0,0,16,32,0,216,208,208,208,112,5,8,8,5,0, - 0,32,80,0,216,208,208,208,112,5,7,7,5,0,0,80, - 0,216,208,208,208,112,5,11,11,5,0,253,16,32,0,216, - 216,112,112,32,32,192,192,5,10,10,5,255,253,224,96,112, - 104,104,104,112,96,96,224,5,10,10,5,0,253,80,0,216, - 216,112,112,32,32,192,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--11-80-100-100-P-57-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=10 h=10 x= 1 y= 6 dx=11 dy= 0 ascent= 8 len=18 - Font Bounding box w=13 h=18 x=-2 y=-5 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-3 - X Font ascent = 7 descent=-3 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB08r[1221] U8G_FONT_SECTION("u8g_font_timB08r") = { - 0,13,18,254,251,7,1,164,3,77,32,127,253,8,253,7, - 253,0,0,0,2,0,1,2,7,7,4,1,0,192,192,192, - 192,0,192,192,3,3,3,5,1,4,160,160,160,5,7,7, - 6,0,0,80,80,248,80,248,80,80,5,9,9,5,0,255, - 32,112,184,224,96,48,184,112,32,7,7,7,9,1,0,118, - 220,232,16,46,90,156,7,7,7,9,1,0,48,104,104,118, - 220,204,118,1,3,3,3,1,4,128,128,128,3,10,10,3, - 255,253,32,96,64,192,192,192,192,64,96,32,3,10,10,4, - 0,253,128,192,64,96,96,96,96,64,192,128,5,5,5,6, - 0,2,32,248,112,248,32,5,5,5,6,0,0,32,32,248, - 32,32,2,3,3,4,1,255,192,192,64,3,1,1,3,0, - 2,224,2,2,2,3,0,0,192,192,3,7,7,3,0,0, - 32,32,96,64,192,128,128,4,7,7,5,0,0,96,208,208, - 208,208,208,96,4,7,7,5,0,0,96,224,96,96,96,96, - 240,4,7,7,5,0,0,96,240,48,32,64,240,240,4,7, - 7,5,0,0,96,176,48,96,48,176,224,5,7,7,5,0, - 0,16,48,80,144,248,48,48,4,7,7,5,0,0,224,224, - 128,224,48,176,224,4,7,7,5,0,0,48,96,192,240,208, - 208,96,5,7,7,5,0,0,120,240,144,48,32,96,96,4, - 7,7,5,0,0,96,208,208,96,176,176,96,4,7,7,5, - 0,0,96,176,176,176,112,48,224,2,5,5,4,1,0,192, - 192,0,192,192,2,6,6,4,1,255,192,192,0,192,192,64, - 5,5,5,6,0,0,24,112,192,112,24,5,3,3,6,0, - 1,248,0,248,5,5,5,6,0,0,192,112,24,112,192,4, - 7,7,6,1,0,96,176,176,32,0,96,96,10,9,18,11, - 0,254,31,0,48,128,109,64,218,64,210,64,210,128,205,0, - 96,0,62,0,8,7,7,7,255,0,16,24,56,44,124,78, - 239,6,7,7,7,0,0,248,108,108,120,108,108,248,6,7, - 7,7,0,0,124,204,192,192,192,236,120,7,7,7,8,0, - 0,252,102,102,102,102,102,252,6,7,7,7,0,0,252,100, - 96,120,96,100,252,6,7,7,7,0,0,252,100,104,120,104, - 96,240,6,7,7,7,0,0,124,204,192,220,204,204,120,8, - 7,7,9,0,0,231,102,102,126,102,102,231,4,7,7,5, - 0,0,240,96,96,96,96,96,240,5,8,8,5,0,255,120, - 48,48,48,48,48,176,224,7,7,7,8,0,0,238,100,104, - 120,108,110,230,6,7,7,7,0,0,240,96,96,96,100,108, - 252,9,7,14,10,0,0,243,128,119,0,91,0,91,0,91, - 0,75,0,227,128,7,7,7,8,0,0,238,100,116,92,92, - 76,228,6,7,7,7,0,0,120,204,204,204,204,204,120,6, - 7,7,6,0,0,248,108,108,120,96,96,240,6,9,9,7, - 0,254,120,204,204,204,204,204,120,48,28,7,7,7,7,0, - 0,248,108,108,120,104,108,238,5,7,7,6,0,0,120,200, - 224,112,56,152,240,6,7,7,7,0,0,252,180,48,48,48, - 48,120,7,7,7,7,0,0,246,100,100,100,100,100,56,8, - 7,7,8,0,0,243,98,116,52,56,24,16,10,7,14,10, - 0,0,238,192,108,128,109,128,109,0,55,0,54,0,18,0, - 7,7,7,7,0,0,230,100,56,56,44,76,222,8,7,7, - 8,0,0,247,98,52,56,24,24,60,6,7,7,7,0,0, - 252,204,152,48,100,204,252,3,10,10,4,0,253,224,192,192, - 192,192,192,192,192,192,224,3,7,7,3,0,0,128,128,192, - 64,96,32,32,3,10,10,4,0,253,224,96,96,96,96,96, - 96,96,96,224,5,4,4,6,0,3,32,112,216,136,5,1, - 1,5,0,253,248,2,2,2,4,0,6,128,64,5,5,5, - 5,0,0,96,176,112,176,248,5,7,7,5,255,0,224,96, - 112,104,104,104,112,4,5,5,5,0,0,112,208,192,208,112, - 6,7,7,6,0,0,56,24,120,216,216,216,108,4,5,5, - 5,0,0,112,208,240,192,112,4,7,7,3,255,0,48,96, - 240,96,96,96,240,5,8,8,5,0,253,120,208,208,112,192, - 240,144,240,6,7,7,5,255,0,224,96,120,104,104,104,108, - 2,7,7,3,0,0,192,0,192,192,192,192,192,3,10,10, - 4,0,253,96,0,96,96,96,96,96,96,96,192,6,7,7, - 5,255,0,224,96,108,104,112,104,236,3,7,7,3,255,0, - 224,96,96,96,96,96,96,8,5,5,8,0,0,172,254,214, - 214,215,6,5,5,6,0,0,176,216,216,216,220,5,5,5, - 6,0,0,112,216,216,216,112,5,8,8,5,255,253,240,104, - 104,104,112,96,96,224,5,8,8,5,0,253,112,208,208,208, - 112,48,48,56,4,5,5,4,0,0,208,240,192,192,192,3, - 5,5,4,0,0,96,192,224,96,224,4,7,7,4,255,0, - 32,96,240,96,96,96,48,5,5,5,5,0,0,216,208,208, - 208,112,5,5,5,5,0,0,216,208,112,96,32,7,5,5, - 6,255,0,214,212,92,120,40,4,5,5,5,0,0,208,240, - 96,240,176,5,8,8,5,0,253,216,216,112,112,32,32,192, - 192,4,5,5,5,0,0,240,176,96,208,240,4,10,10,4, - 255,253,48,96,96,96,192,192,96,96,96,48,1,10,10,3, - 1,253,128,128,128,128,128,128,128,128,128,128,4,10,10,4, - 0,253,192,96,96,96,48,48,96,96,96,192,5,2,2,6, - 0,2,104,176,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=14 x= 1 y= 8 dx=14 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10[3539] U8G_FONT_SECTION("u8g_font_timB10") = { - 0,17,24,254,250,10,2,6,4,148,32,255,253,14,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 0,0,0,3,0,1,2,10,10,4,1,253,192,192,0,192, - 192,192,192,192,192,192,6,11,11,7,0,254,8,8,120,212, - 208,208,240,228,120,32,32,7,10,10,8,0,0,60,118,102, - 96,48,248,48,48,246,222,7,6,6,8,0,2,56,238,68, - 68,238,56,8,10,10,8,0,0,247,98,118,52,60,24,60, - 24,24,60,1,12,12,3,1,254,128,128,128,128,128,0,0, - 128,128,128,128,128,5,12,12,7,1,254,112,216,200,96,240, - 152,200,120,48,152,216,112,3,2,2,5,1,8,160,160,10, - 10,20,12,1,0,30,0,97,128,78,128,146,64,144,64,144, - 64,146,64,76,128,97,128,30,0,4,7,7,5,0,3,96, - 16,112,144,112,0,240,7,5,5,9,1,1,54,108,216,108, - 54,7,4,4,9,1,1,254,2,2,2,3,1,1,4,0, - 3,224,10,10,20,12,1,0,30,0,97,128,92,128,146,64, - 146,64,156,64,148,64,82,128,97,128,30,0,4,1,1,5, - 0,8,240,4,4,4,6,1,6,96,144,144,96,7,9,9, - 8,0,0,16,16,16,254,16,16,16,0,254,4,6,6,4, - 0,4,96,176,48,96,192,240,4,6,6,4,0,4,96,176, - 96,48,176,96,3,3,3,5,1,8,32,96,128,8,10,10, - 7,255,253,238,102,102,102,102,102,123,64,96,96,7,13,13, - 8,0,253,126,244,244,244,244,116,20,20,20,20,20,20,20, - 2,2,2,4,0,4,192,192,3,3,3,5,1,253,64,32, - 224,4,6,6,4,0,4,32,224,96,96,96,240,4,7,7, - 5,0,3,96,144,144,144,96,0,240,7,5,5,9,1,1, - 216,108,54,108,216,10,10,20,10,0,0,33,0,226,0,98, - 0,100,0,100,128,249,128,11,128,22,128,23,192,33,128,10, - 10,20,10,0,0,33,0,226,0,98,0,100,0,101,128,250, - 192,8,192,17,128,19,0,35,192,10,10,20,10,0,0,97, - 0,178,0,98,0,52,0,180,128,105,128,11,128,22,128,23, - 192,33,128,5,10,10,7,1,253,48,48,0,48,48,96,192, - 216,216,112,10,14,28,10,0,0,16,0,24,0,4,0,0, - 0,12,0,12,0,30,0,22,0,51,0,35,0,63,0,97, - 128,65,128,227,192,10,14,28,10,0,0,2,0,6,0,8, - 0,0,0,12,0,12,0,30,0,22,0,51,0,35,0,63, - 0,97,128,65,128,227,192,10,14,28,10,0,0,8,0,28, - 0,34,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,26, - 0,44,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,13,26,10,0,0,18, - 0,18,0,0,0,12,0,12,0,30,0,22,0,51,0,35, - 0,63,0,97,128,65,128,227,192,10,14,28,10,0,0,12, - 0,18,0,12,0,0,0,12,0,12,0,30,0,22,0,51, - 0,35,0,63,0,97,128,65,128,227,192,13,10,20,14,0, - 0,31,248,15,24,11,8,27,32,19,224,63,32,35,40,99, - 8,67,24,231,248,8,13,13,10,1,253,61,99,193,193,192, - 192,192,193,99,62,16,8,56,8,14,14,9,0,0,32,48, - 8,0,255,99,97,100,124,100,101,97,99,255,8,14,14,9, - 0,0,4,12,16,0,255,99,97,100,124,100,101,97,99,255, - 8,14,14,9,0,0,8,28,34,0,255,99,97,100,124,100, - 101,97,99,255,8,13,13,9,0,0,36,36,0,255,99,97, - 100,124,100,101,97,99,255,4,14,14,5,0,0,128,192,32, - 0,240,96,96,96,96,96,96,96,96,240,4,14,14,5,0, - 0,16,48,64,0,240,96,96,96,96,96,96,96,96,240,5, - 14,14,5,0,0,32,112,136,0,240,96,96,96,96,96,96, - 96,96,240,4,13,13,5,0,0,144,144,0,240,96,96,96, - 96,96,96,96,96,240,9,10,20,11,1,0,254,0,99,0, - 97,128,97,128,241,128,97,128,97,128,97,128,99,0,254,0, - 10,13,26,10,0,0,26,0,44,0,0,0,225,192,112,128, - 112,128,88,128,76,128,76,128,70,128,67,128,67,128,225,128, - 9,14,28,11,1,0,16,0,24,0,4,0,0,0,62,0, - 99,0,193,128,193,128,193,128,193,128,193,128,193,128,99,0, - 62,0,9,14,28,11,1,0,4,0,12,0,16,0,0,0, - 62,0,99,0,193,128,193,128,193,128,193,128,193,128,193,128, - 99,0,62,0,9,14,28,11,1,0,8,0,28,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,26,0,44,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,9,13,26,11,1,0,34,0,34,0, - 0,0,62,0,99,0,193,128,193,128,193,128,193,128,193,128, - 193,128,99,0,62,0,8,7,7,8,0,0,195,102,60,24, - 60,102,195,9,12,24,11,1,255,0,128,61,0,99,0,195, - 128,197,128,201,128,201,128,209,128,225,128,99,0,94,0,128, - 0,9,14,28,10,0,0,16,0,24,0,4,0,0,0,243, - 128,97,0,97,0,97,0,97,0,97,0,97,0,97,0,115, - 0,62,0,9,14,28,10,0,0,4,0,12,0,16,0,0, - 0,243,128,97,0,97,0,97,0,97,0,97,0,97,0,97, - 0,115,0,62,0,9,14,28,10,0,0,8,0,28,0,34, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,9,13,26,10,0,0,18,0,18, - 0,0,0,243,128,97,0,97,0,97,0,97,0,97,0,97, - 0,97,0,115,0,62,0,10,14,28,10,0,0,1,0,3, - 0,4,0,0,0,249,192,112,128,49,0,57,0,26,0,30, - 0,12,0,12,0,12,0,30,0,8,10,10,9,0,0,240, - 96,126,103,99,99,99,126,96,240,7,10,10,8,0,0,56, - 108,100,108,120,108,102,102,102,236,7,11,11,7,0,0,32, - 48,8,0,120,204,12,124,204,204,118,7,11,11,7,0,0, - 8,24,32,0,120,204,12,124,204,204,118,7,11,11,7,0, - 0,16,56,68,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,52,88,0,120,204,12,124,204,204,118,7,10,10,7, - 0,0,40,40,0,120,204,12,124,204,204,118,7,11,11,7, - 0,0,48,72,48,0,120,204,12,124,204,204,118,10,7,14, - 11,0,0,123,128,204,192,204,192,63,192,204,0,204,192,119, - 128,6,10,10,7,0,253,56,76,204,192,192,228,120,32,16, - 112,6,11,11,7,0,0,64,96,16,0,56,76,204,252,192, - 228,120,6,11,11,7,0,0,8,24,32,0,56,76,204,252, - 192,228,120,6,11,11,7,0,0,16,56,68,0,56,76,204, - 252,192,228,120,6,10,10,7,0,0,80,80,0,56,76,204, - 252,192,228,120,4,11,11,4,0,0,128,192,32,0,224,96, - 96,96,96,96,240,4,11,11,4,0,0,32,96,128,0,224, - 96,96,96,96,96,240,5,11,11,4,0,0,32,112,136,0, - 224,96,96,96,96,96,240,4,10,10,4,0,0,160,160,0, - 224,96,96,96,96,96,240,6,10,10,7,0,0,204,112,152, - 120,204,204,204,204,204,120,8,10,10,8,0,0,52,88,0, - 236,118,102,102,102,102,231,6,11,11,7,0,0,32,48,8, - 0,120,204,204,204,204,204,120,6,11,11,7,0,0,8,24, - 32,0,120,204,204,204,204,204,120,6,11,11,7,0,0,32, - 112,136,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 104,176,0,120,204,204,204,204,204,120,6,10,10,7,0,0, - 80,80,0,120,204,204,204,204,204,120,6,7,7,8,0,0, - 48,48,0,252,0,48,48,6,9,9,7,0,255,4,120,204, - 220,236,236,204,120,128,8,11,11,7,255,0,32,48,8,0, - 238,102,102,102,102,102,59,8,11,11,7,255,0,4,12,16, - 0,238,102,102,102,102,102,59,8,11,11,7,255,0,16,56, - 68,0,238,102,102,102,102,102,59,8,10,10,7,255,0,40, - 40,0,238,102,102,102,102,102,59,8,14,14,7,255,253,2, - 6,8,0,247,98,50,52,28,28,8,8,56,48,7,13,13, - 8,0,253,224,96,96,108,118,102,102,102,102,124,96,96,240, - 8,13,13,7,255,253,34,34,0,247,98,50,52,28,28,8, - 8,56,48}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--14-100-100-100-P-76-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=15 h=13 x= 1 y= 8 dx=14 dy= 0 ascent=11 len=26 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB10r[1632] U8G_FONT_SECTION("u8g_font_timB10r") = { - 0,17,24,254,250,10,2,6,4,148,32,127,253,11,253,10, - 253,0,0,0,3,0,1,2,10,10,4,1,0,192,192,192, - 192,192,192,192,0,192,192,5,4,4,7,1,6,216,216,216, - 72,7,10,10,7,255,0,20,20,20,126,40,40,252,80,80, - 80,6,12,12,7,0,255,16,120,212,212,240,120,60,28,148, - 212,120,16,13,10,20,14,0,0,56,192,103,192,197,128,201, - 0,115,0,6,112,4,200,13,136,25,144,24,224,10,10,20, - 12,1,0,60,0,102,0,102,0,60,0,57,192,108,128,205, - 128,199,0,239,128,123,0,2,4,4,4,1,6,192,192,192, - 64,3,13,13,5,1,253,32,96,64,192,192,192,192,192,192, - 192,64,96,32,3,13,13,5,0,253,128,192,64,96,96,96, - 96,96,96,96,64,192,128,5,6,6,7,1,4,32,168,112, - 112,168,32,7,7,7,8,0,0,16,16,16,254,16,16,16, - 2,4,4,3,0,254,192,192,64,128,3,1,1,4,0,3, - 224,2,2,2,3,0,0,192,192,4,10,10,4,0,0,16, - 16,48,32,96,64,64,192,128,128,6,10,10,7,0,0,120, - 72,204,204,204,204,204,204,72,120,6,10,10,7,0,0,48, - 240,48,48,48,48,48,48,48,252,6,10,10,7,0,0,56, - 124,140,12,12,24,48,64,252,252,6,10,10,7,0,0,56, - 124,140,12,56,28,12,196,236,120,6,10,10,7,0,0,24, - 56,56,88,152,152,252,252,24,24,6,10,10,7,0,0,124, - 124,64,120,124,12,4,196,204,120,6,10,10,7,0,0,28, - 48,96,224,248,204,204,204,204,120,6,10,10,7,0,0,252, - 252,140,8,24,16,16,32,32,96,6,10,10,7,0,0,120, - 204,204,236,120,120,204,204,204,120,6,10,10,7,0,0,120, - 204,204,204,204,124,24,56,112,192,2,7,7,4,1,0,192, - 192,0,0,0,192,192,2,9,9,4,1,254,192,192,0,0, - 0,192,192,64,128,7,7,7,8,0,0,6,28,112,192,112, - 28,6,7,3,3,8,0,2,254,0,254,7,7,7,8,0, - 0,192,112,28,6,28,112,192,5,10,10,7,1,0,112,216, - 216,24,48,96,96,0,96,96,11,12,24,14,1,254,15,128, - 56,192,96,96,69,32,143,32,155,32,155,32,159,96,141,192, - 64,0,96,0,31,128,10,10,20,10,0,0,12,0,12,0, - 30,0,22,0,51,0,35,0,63,0,97,128,65,128,227,192, - 8,10,10,9,0,0,254,99,99,99,126,99,99,99,99,254, - 8,10,10,10,1,0,61,99,193,193,192,192,192,193,99,62, - 9,10,20,10,0,0,254,0,99,0,97,128,97,128,97,128, - 97,128,97,128,97,128,99,0,254,0,8,10,10,9,0,0, - 255,99,97,100,124,100,96,97,99,255,8,10,10,8,0,0, - 255,99,97,100,124,100,100,96,96,240,9,10,20,11,1,0, - 61,0,99,0,193,0,193,0,192,0,199,128,195,0,195,0, - 99,0,62,0,10,10,20,11,0,0,243,192,97,128,97,128, - 97,128,127,128,97,128,97,128,97,128,97,128,243,192,4,10, - 10,5,0,0,240,96,96,96,96,96,96,96,96,240,6,11, - 11,7,0,255,60,24,24,24,24,24,24,24,216,216,112,10, - 10,20,11,1,0,247,192,99,0,98,0,100,0,120,0,124, - 0,110,0,103,0,99,128,247,192,8,10,10,9,0,0,240, - 96,96,96,96,96,97,97,99,255,12,10,20,13,0,0,240, - 240,112,224,112,224,89,96,89,96,90,96,78,96,78,96,68, - 96,228,240,10,10,20,10,0,0,225,192,112,128,112,128,88, - 128,76,128,76,128,70,128,67,128,67,128,225,128,9,10,20, - 11,1,0,62,0,99,0,193,128,193,128,193,128,193,128,193, - 128,193,128,99,0,62,0,8,10,10,9,0,0,254,103,99, - 99,99,126,96,96,96,240,9,13,26,11,1,253,62,0,99, - 0,193,128,193,128,193,128,193,128,193,128,193,128,99,0,62, - 0,28,0,14,0,3,128,10,10,20,10,0,0,254,0,103, - 0,99,0,99,0,102,0,124,0,110,0,103,0,99,128,241, - 192,7,10,10,8,0,0,122,198,194,224,120,28,14,134,198, - 252,8,10,10,9,0,0,255,219,153,24,24,24,24,24,24, - 60,9,10,20,10,0,0,243,128,97,0,97,0,97,0,97, - 0,97,0,97,0,97,0,115,0,62,0,10,10,20,10,0, - 0,241,192,96,128,97,128,49,0,51,0,50,0,26,0,30, - 0,12,0,12,0,15,10,20,14,255,0,247,158,99,12,99, - 8,49,136,49,144,51,144,26,208,28,224,12,96,12,96,11, - 10,20,10,0,0,241,192,112,128,57,0,30,0,12,0,14, - 0,23,0,35,128,65,192,227,224,10,10,20,10,0,0,249, - 192,112,128,49,0,57,0,26,0,30,0,12,0,12,0,12, - 0,30,0,8,10,10,9,0,0,255,199,134,140,24,24,49, - 97,227,255,4,13,13,5,0,253,240,192,192,192,192,192,192, - 192,192,192,192,192,240,4,10,10,4,0,0,128,128,192,64, - 96,32,32,48,16,16,4,13,13,5,0,253,240,48,48,48, - 48,48,48,48,48,48,48,48,240,5,5,5,8,1,5,32, - 112,80,216,136,7,1,1,7,0,253,254,3,3,3,5,1, - 8,128,192,32,7,7,7,7,0,0,120,204,12,124,204,204, - 118,7,10,10,8,0,0,224,96,96,124,102,102,102,102,102, - 92,5,7,7,6,0,0,48,88,200,192,192,232,112,7,10, - 10,7,0,0,28,12,12,124,204,204,204,204,204,118,6,7, - 7,6,0,0,56,76,204,252,192,228,120,5,10,10,5,0, - 0,56,104,96,240,96,96,96,96,96,240,7,10,10,7,0, - 253,126,204,204,204,120,64,124,254,130,124,8,10,10,8,0, - 0,224,96,96,108,118,102,102,102,102,231,4,10,10,4,0, - 0,96,96,0,224,96,96,96,96,96,240,4,13,13,4,255, - 253,48,48,0,112,48,48,48,48,48,48,48,176,224,8,10, - 10,8,0,0,224,96,96,110,100,104,120,108,102,231,4,10, - 10,4,0,0,224,96,96,96,96,96,96,96,96,240,12,7, - 14,12,0,0,236,192,119,96,102,96,102,96,102,96,102,96, - 247,112,8,7,7,8,0,0,236,118,102,102,102,102,231,6, - 7,7,7,0,0,120,204,204,204,204,204,120,7,10,10,8, - 0,253,236,118,102,102,102,102,124,96,96,240,7,10,10,7, - 0,253,108,220,204,204,204,204,124,12,12,30,6,7,7,6, - 0,0,220,108,96,96,96,96,240,5,7,7,6,0,0,120, - 200,224,112,56,152,240,5,9,9,5,0,0,32,96,240,96, - 96,96,104,112,48,8,7,7,7,255,0,238,102,102,102,102, - 102,59,8,7,7,7,255,0,247,98,98,52,52,24,24,10, - 7,14,10,0,0,238,192,100,128,118,128,55,0,59,0,59, - 0,18,0,7,7,7,7,0,0,238,108,56,56,56,108,238, - 8,10,10,7,255,253,247,98,50,52,28,28,8,8,56,48, - 6,7,7,6,0,0,252,156,24,48,100,228,252,5,13,13, - 7,1,253,24,48,48,48,48,96,192,96,48,48,48,48,24, - 1,12,12,3,1,254,128,128,128,128,128,128,128,128,128,128, - 128,128,5,13,13,7,0,253,192,96,96,96,96,48,24,48, - 96,96,96,96,192,7,4,4,8,0,3,96,242,158,12,255 - }; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=16 x= 2 y= 9 dx=17 dy= 0 ascent=16 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =16 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12[3887] U8G_FONT_SECTION("u8g_font_timB12") = { - 0,19,27,254,249,11,2,42,5,41,32,255,252,16,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,0,0,0,5,0,1, - 2,12,12,6,2,252,192,192,0,0,64,64,64,192,192,192, - 192,192,6,12,12,8,1,254,4,4,56,76,204,208,208,224, - 100,56,64,64,8,11,11,8,0,0,28,38,38,48,48,124, - 48,16,113,158,110,6,7,7,8,1,1,180,120,204,132,204, - 120,180,8,11,11,8,0,0,227,98,50,52,28,126,24,126, - 24,24,126,1,15,15,4,1,253,128,128,128,128,128,128,0, - 0,0,128,128,128,128,128,128,6,15,15,8,1,252,56,76, - 76,96,48,120,156,204,228,120,56,24,200,200,112,5,2,2, - 6,0,9,216,216,12,11,22,12,255,0,15,0,48,192,71, - 32,72,160,152,16,152,16,152,16,72,160,71,32,48,192,15, - 0,5,7,7,5,0,4,96,144,112,176,216,0,248,7,7, - 7,8,0,0,18,54,108,216,108,54,18,7,6,6,9,1, - 1,254,254,2,2,2,2,4,2,2,5,0,3,240,240,12, - 11,22,12,0,0,15,0,48,192,78,32,73,32,137,16,142, - 16,138,16,73,32,93,32,48,192,15,0,5,1,1,6,0, - 9,248,4,5,5,7,1,6,96,144,144,144,96,7,9,9, - 9,1,0,16,16,254,254,16,16,0,254,254,4,7,7,5, - 0,4,96,240,176,32,64,240,240,4,7,7,5,0,4,96, - 176,48,96,48,176,96,3,3,3,6,1,9,96,64,128,8, - 11,11,9,0,253,238,102,102,102,102,102,111,118,64,96,96, - 7,15,15,9,1,252,62,116,244,244,244,244,116,52,20,20, - 20,20,20,20,20,2,2,2,4,1,4,192,192,5,4,4, - 6,0,252,32,48,136,112,4,7,7,5,1,4,96,224,96, - 96,96,96,240,4,7,7,6,1,4,96,144,144,144,96,0, - 240,7,7,7,8,0,0,144,216,108,54,108,216,144,11,11, - 22,12,0,0,96,128,225,0,97,0,98,0,100,64,100,192, - 249,192,10,192,19,224,32,192,32,192,10,11,22,12,0,0, - 97,0,225,0,98,0,98,0,100,0,107,128,254,192,16,128, - 17,0,35,192,39,192,11,11,22,12,0,0,96,128,177,0, - 49,0,98,0,52,64,180,192,105,192,10,192,19,224,32,192, - 32,192,6,11,11,8,1,253,24,24,0,16,32,64,192,192, - 204,204,112,11,15,30,12,0,0,48,0,24,0,4,0,0, - 0,4,0,14,0,14,0,27,0,19,0,51,0,33,128,127, - 128,64,192,192,192,225,224,11,15,30,12,0,0,1,128,3, - 0,4,0,0,0,4,0,14,0,14,0,27,0,19,0,51, - 0,33,128,127,128,64,192,192,192,225,224,11,15,30,12,0, - 0,4,0,14,0,17,0,0,0,4,0,14,0,14,0,27, - 0,19,0,51,0,33,128,127,128,64,192,192,192,225,224,11, - 14,28,12,0,0,29,0,46,0,0,0,4,0,14,0,14, - 0,27,0,19,0,51,0,33,128,127,128,64,192,192,192,225, - 224,11,14,28,12,0,0,27,0,27,0,0,0,4,0,14, - 0,14,0,27,0,19,0,51,0,33,128,127,128,64,192,192, - 192,225,224,11,16,32,12,0,0,6,0,9,0,9,0,6, - 0,0,0,4,0,14,0,14,0,27,0,19,0,51,0,33, - 128,127,128,64,192,192,192,225,224,14,11,22,16,1,0,15, - 248,7,24,11,8,11,0,19,32,31,224,35,32,35,0,67, - 4,67,12,231,252,9,15,30,11,1,252,30,128,99,128,65, - 128,192,128,192,0,192,0,192,0,192,0,96,128,115,0,62, - 0,8,0,12,0,34,0,28,0,8,15,15,10,1,0,96, - 48,8,0,255,99,97,96,98,126,98,96,97,99,255,8,15, - 15,10,1,0,6,12,16,0,255,99,97,96,98,126,98,96, - 97,99,255,8,15,15,10,1,0,8,28,34,0,255,99,97, - 96,98,126,98,96,97,99,255,8,14,14,10,1,0,102,102, - 0,255,99,97,96,98,126,98,96,97,99,255,5,15,15,6, - 0,0,192,96,16,0,120,48,48,48,48,48,48,48,48,48, - 120,4,15,15,6,1,0,48,96,128,0,240,96,96,96,96, - 96,96,96,96,96,240,5,15,15,6,0,0,32,112,136,0, - 120,48,48,48,48,48,48,48,48,48,120,6,14,14,6,0, - 0,204,204,0,120,48,48,48,48,48,48,48,48,48,120,9, - 11,22,11,1,0,252,0,102,0,99,0,97,128,97,128,249, - 128,97,128,97,128,99,0,102,0,252,0,10,14,28,12,1, - 0,29,0,46,0,0,0,241,192,112,128,88,128,88,128,76, - 128,70,128,71,128,67,128,65,128,65,128,224,128,10,15,30, - 12,1,0,48,0,24,0,4,0,0,0,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,30, - 0,10,15,30,12,1,0,3,0,6,0,8,0,0,0,30, - 0,97,128,64,128,192,192,192,192,192,192,192,192,192,192,64, - 128,97,128,30,0,10,15,30,12,1,0,4,0,14,0,17, - 0,0,0,30,0,97,128,64,128,192,192,192,192,192,192,192, - 192,192,192,64,128,97,128,30,0,10,14,28,12,1,0,29, - 0,46,0,0,0,30,0,97,128,64,128,192,192,192,192,192, - 192,192,192,192,192,64,128,97,128,30,0,10,14,28,12,1, - 0,51,0,51,0,0,0,30,0,97,128,64,128,192,192,192, - 192,192,192,192,192,192,192,64,128,97,128,30,0,7,8,8, - 9,1,0,130,198,108,56,56,108,198,130,10,13,26,13,1, - 255,0,64,30,128,97,128,65,128,194,192,194,192,196,192,200, - 192,200,192,80,128,97,128,62,0,64,0,10,15,30,12,1, - 0,48,0,24,0,4,0,0,0,241,192,96,128,96,128,96, - 128,96,128,96,128,96,128,96,128,96,128,33,0,30,0,10, - 15,30,12,1,0,3,0,6,0,8,0,0,0,241,192,96, - 128,96,128,96,128,96,128,96,128,96,128,96,128,96,128,33, - 0,30,0,10,15,30,12,1,0,4,0,14,0,17,0,0, - 0,241,192,96,128,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,33,0,30,0,10,14,28,12,1,0,51,0,51, - 0,0,0,241,192,96,128,96,128,96,128,96,128,96,128,96, - 128,96,128,96,128,33,0,30,0,11,15,30,12,0,0,1, - 128,3,0,4,0,0,0,248,224,112,64,56,128,24,128,29, - 0,15,0,6,0,6,0,6,0,6,0,15,0,8,11,11, - 10,1,0,240,96,126,103,99,99,103,126,96,96,240,8,11, - 11,9,0,0,24,38,102,102,108,98,99,99,99,98,236,8, - 12,12,8,0,0,48,16,8,0,56,204,204,28,108,204,205, - 118,8,12,12,8,0,0,24,16,32,0,56,204,204,28,108, - 204,205,118,8,12,12,8,0,0,16,56,68,0,56,204,204, - 28,108,204,205,118,8,11,11,8,0,0,52,88,0,56,204, - 204,28,108,204,205,118,8,11,11,8,0,0,108,108,0,56, - 204,204,28,108,204,205,118,8,13,13,8,0,0,16,40,40, - 16,0,56,204,204,28,108,204,205,118,10,8,16,12,1,0, - 51,128,206,192,204,192,31,192,108,0,204,0,214,64,99,128, - 6,12,12,7,0,252,56,108,204,192,192,192,100,56,32,48, - 136,112,6,12,12,7,0,0,48,16,8,0,56,108,204,252, - 192,192,100,56,6,12,12,7,0,0,24,16,32,0,56,108, - 204,252,192,192,100,56,6,12,12,7,0,0,16,56,68,0, - 56,108,204,252,192,192,100,56,6,11,11,7,0,0,108,108, - 0,56,108,204,252,192,192,100,56,4,12,12,5,0,0,192, - 64,32,0,224,96,96,96,96,96,96,240,4,12,12,5,0, - 0,48,32,64,0,224,96,96,96,96,96,96,240,5,12,12, - 5,255,0,32,112,136,0,112,48,48,48,48,48,48,120,5, - 11,11,5,255,0,216,216,0,112,48,48,48,48,48,48,120, - 7,11,11,8,0,0,108,48,216,60,108,198,198,198,198,108, - 56,8,11,11,9,0,0,52,88,0,236,126,102,102,102,102, - 102,247,7,12,12,8,0,0,48,16,8,0,56,108,198,198, - 198,198,108,56,7,12,12,8,0,0,24,16,32,0,56,108, - 198,198,198,198,108,56,7,12,12,8,0,0,16,56,68,0, - 56,108,198,198,198,198,108,56,7,11,11,8,0,0,52,88, - 0,56,108,198,198,198,198,108,56,7,11,11,8,0,0,108, - 108,0,56,108,198,198,198,198,108,56,8,8,8,9,0,0, - 24,24,0,255,255,0,24,24,7,10,10,8,0,255,2,60, - 108,206,214,214,230,108,120,128,8,12,12,9,0,0,48,16, - 8,0,238,102,102,102,102,102,111,54,8,12,12,9,0,0, - 12,8,16,0,238,102,102,102,102,102,111,54,8,12,12,9, - 0,0,16,56,68,0,238,102,102,102,102,102,111,54,8,11, - 11,9,0,0,108,108,0,238,102,102,102,102,102,111,54,8, - 16,16,8,0,252,12,8,16,0,247,98,98,52,52,28,24, - 24,16,16,224,192,8,15,15,9,0,252,224,96,96,108,118, - 99,99,99,99,114,108,96,96,96,240,8,15,15,8,0,252, - 108,108,0,247,98,98,52,52,28,24,24,16,16,224,192}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--17-120-100-100-P-88-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=17 h=15 x= 2 y= 9 dx=17 dy= 0 ascent=12 len=33 - Font Bounding box w=19 h=27 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB12r[1834] U8G_FONT_SECTION("u8g_font_timB12r") = { - 0,19,27,254,249,11,2,42,5,41,32,127,252,12,252,11, - 252,0,0,0,5,0,1,2,11,11,6,2,0,192,192,192, - 192,192,128,128,0,0,192,192,5,5,5,9,1,6,216,216, - 216,144,144,8,11,11,8,0,0,18,18,18,127,36,36,36, - 254,72,72,72,7,13,13,8,0,255,16,122,150,210,240,120, - 60,30,22,146,210,188,16,12,12,24,16,2,0,48,128,111, - 0,201,0,201,0,202,0,210,96,100,208,9,144,9,144,17, - 144,17,160,32,192,10,11,22,14,2,0,28,0,38,0,38, - 0,52,0,57,192,120,128,156,128,141,0,198,64,231,192,123, - 128,2,5,5,5,2,6,192,192,192,128,128,4,14,14,6, - 1,253,16,32,96,64,192,192,192,192,192,192,64,96,32,16, - 4,14,14,6,0,253,128,64,96,32,48,48,48,48,48,48, - 32,96,64,128,5,7,7,8,1,4,32,168,248,112,248,168, - 32,7,8,8,9,1,0,16,16,16,254,254,16,16,16,2, - 5,5,4,1,253,192,192,64,64,128,4,2,2,5,0,3, - 240,240,2,2,2,4,1,0,192,192,4,11,11,5,0,0, - 16,48,32,32,96,64,64,64,192,128,128,6,11,11,8,1, - 0,48,72,204,204,204,204,204,204,204,72,48,6,11,11,8, - 1,0,16,240,48,48,48,48,48,48,48,48,252,7,11,11, - 8,0,0,56,124,156,12,12,8,24,16,34,124,252,7,11, - 11,8,0,0,56,124,140,8,16,60,14,6,198,204,120,7, - 11,11,8,0,0,4,12,28,44,44,76,140,254,254,12,12, - 8,11,11,8,0,0,31,62,32,56,124,14,6,6,198,204, - 112,6,11,11,8,1,0,12,48,96,96,240,204,204,204,204, - 72,48,7,11,11,8,0,0,126,126,132,4,12,8,8,24, - 16,48,32,7,11,11,8,0,0,56,68,198,228,120,60,78, - 198,198,68,56,6,11,11,8,1,0,48,72,204,204,204,204, - 124,24,24,48,192,2,7,7,5,1,0,192,192,0,0,0, - 192,192,2,10,10,5,1,253,192,192,0,0,0,192,192,64, - 64,128,8,8,8,9,0,0,3,14,56,192,192,56,14,3, - 7,5,5,9,1,2,254,254,0,254,254,8,8,8,9,0, - 0,192,112,28,3,3,28,112,192,6,11,11,8,1,0,56, - 204,204,12,12,8,16,32,0,96,96,13,13,26,16,1,254, - 7,128,28,96,48,16,103,80,204,200,216,200,216,136,217,144, - 217,176,78,224,32,0,24,96,7,128,11,11,22,12,0,0, - 4,0,14,0,14,0,27,0,19,0,51,0,33,128,127,128, - 64,192,192,192,225,224,9,11,22,10,1,0,252,0,102,0, - 99,0,99,0,102,0,126,0,99,0,97,128,97,128,99,0, - 254,0,9,11,22,11,1,0,30,128,99,128,65,128,192,128, - 192,0,192,0,192,0,192,0,96,128,115,0,62,0,9,11, - 22,11,1,0,252,0,102,0,99,0,97,128,97,128,97,128, - 97,128,97,128,99,0,102,0,252,0,8,11,11,10,1,0, - 255,99,97,96,98,126,98,96,97,99,255,8,11,11,10,1, - 0,255,99,97,96,98,126,98,96,96,96,248,10,11,22,12, - 1,0,30,128,99,128,65,128,192,128,192,0,192,0,199,192, - 193,128,193,128,97,128,63,0,10,11,22,12,1,0,243,192, - 97,128,97,128,97,128,97,128,127,128,97,128,97,128,97,128, - 97,128,243,192,4,11,11,6,1,0,240,96,96,96,96,96, - 96,96,96,96,240,6,13,13,8,1,254,60,24,24,24,24, - 24,24,24,24,24,216,208,96,11,11,22,13,1,0,251,192, - 97,0,98,0,100,0,104,0,120,0,108,0,102,0,99,0, - 97,128,251,224,9,11,22,11,1,0,240,0,96,0,96,0, - 96,0,96,0,96,0,96,0,96,128,96,128,97,128,255,128, - 14,11,22,15,0,0,224,28,112,24,112,56,120,56,88,88, - 76,88,76,152,70,152,71,24,67,24,226,60,10,11,22,12, - 1,0,241,192,112,128,88,128,88,128,76,128,70,128,71,128, - 67,128,65,128,65,128,224,128,10,11,22,12,1,0,30,0, - 97,128,64,128,192,192,192,192,192,192,192,192,192,192,64,128, - 97,128,30,0,8,11,11,10,1,0,254,103,99,99,102,124, - 96,96,96,96,240,10,14,28,12,1,253,30,0,97,128,64, - 128,192,192,192,192,192,192,192,192,192,192,64,128,97,128,63, - 0,14,0,6,0,1,128,10,11,22,12,1,0,254,0,103, - 0,99,0,99,0,102,0,124,0,108,0,102,0,99,0,97, - 128,243,192,8,11,11,9,0,0,61,67,193,224,120,60,14, - 7,131,194,188,10,11,22,11,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,30,0, - 10,11,22,12,1,0,241,192,96,128,96,128,96,128,96,128, - 96,128,96,128,96,128,96,128,33,0,30,0,11,11,22,12, - 0,0,248,224,48,64,48,64,24,128,24,128,13,0,13,0, - 7,0,6,0,2,0,2,0,17,11,33,17,0,0,251,239, - 128,112,195,0,48,194,0,56,226,0,25,230,0,29,100,0, - 13,124,0,15,56,0,6,56,0,6,16,0,2,16,0,10, - 11,22,12,1,0,251,192,113,0,58,0,58,0,28,0,14, - 0,30,0,23,0,35,0,67,128,231,192,11,11,22,12,0, - 0,248,224,112,64,56,128,24,128,29,0,15,0,6,0,6, - 0,6,0,6,0,15,0,10,11,22,11,0,0,255,192,193, - 192,131,128,7,0,14,0,14,0,28,0,56,0,112,64,240, - 192,255,192,3,14,14,6,1,253,224,192,192,192,192,192,192, - 192,192,192,192,192,192,224,4,11,11,5,0,0,128,192,64, - 64,96,32,32,32,48,16,16,3,14,14,6,1,253,224,96, - 96,96,96,96,96,96,96,96,96,96,96,224,7,7,7,9, - 1,4,16,56,40,108,68,198,130,8,1,1,8,0,252,255, - 3,3,3,6,2,9,192,64,32,8,8,8,8,0,0,56, - 204,204,28,108,204,205,118,8,11,11,9,0,0,224,96,96, - 108,118,99,99,99,99,118,236,6,8,8,7,0,0,56,108, - 204,192,192,192,100,56,8,11,11,9,0,0,14,6,6,54, - 110,198,198,198,198,78,55,6,8,8,7,0,0,56,108,204, - 252,192,192,100,56,6,11,11,6,0,0,24,108,96,240,96, - 96,96,96,96,96,240,7,12,12,8,0,252,50,78,204,204, - 200,112,64,252,126,130,132,120,8,11,11,9,0,0,224,96, - 96,108,118,102,102,102,102,102,239,4,11,11,5,0,0,96, - 96,0,224,96,96,96,96,96,96,240,5,15,15,5,254,252, - 24,24,0,56,24,24,24,24,24,24,24,24,216,208,96,9, - 11,22,9,0,0,224,0,96,0,96,0,111,0,100,0,104, - 0,120,0,124,0,110,0,103,0,247,128,4,11,11,5,0, - 0,224,96,96,96,96,96,96,96,96,96,240,12,8,16,13, - 0,0,237,192,119,96,102,96,102,96,102,96,102,96,102,96, - 246,240,8,8,8,9,0,0,236,126,102,102,102,102,102,247, - 7,8,8,8,0,0,56,108,198,198,198,198,108,56,8,12, - 12,9,0,252,236,118,99,99,99,99,118,108,96,96,96,240, - 8,12,12,9,0,252,50,110,198,198,198,198,110,54,6,6, - 6,15,6,8,8,7,0,0,236,124,96,96,96,96,96,240, - 5,8,8,6,0,0,120,200,224,112,56,152,216,176,5,11, - 11,6,0,0,32,32,96,240,96,96,96,96,96,104,48,8, - 8,8,9,0,0,238,102,102,102,102,102,111,54,8,8,8, - 8,0,0,247,98,98,100,52,56,24,16,12,8,16,12,0, - 0,239,112,102,32,102,32,119,64,55,64,57,128,25,128,17, - 0,7,8,8,8,0,0,246,116,56,56,24,60,76,238,8, - 12,12,8,0,252,247,98,98,52,52,28,24,24,16,16,224, - 192,7,8,8,7,0,0,254,140,152,24,48,114,98,254,4, - 14,14,7,1,253,48,96,96,96,96,64,128,64,96,96,96, - 96,96,48,1,14,14,4,1,253,128,128,128,128,128,128,128, - 128,128,128,128,128,128,128,4,14,14,7,1,253,192,96,96, - 96,96,32,16,32,96,96,96,96,96,192,9,4,8,9,0, - 4,48,0,120,128,159,0,14,0,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=11 dx=19 dy= 0 ascent=17 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =17 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14[4851] U8G_FONT_SECTION("u8g_font_timB14") = { - 0,22,28,254,249,13,2,178,6,78,32,255,252,17,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,0,0,0,5,0,1,3,13,13, - 6,1,252,224,224,224,0,64,64,224,224,224,224,224,224,64, - 8,13,13,9,0,254,1,3,62,119,239,236,216,216,240,115, - 62,96,64,14,13,26,9,0,0,31,0,59,0,59,0,56, - 0,56,0,56,0,254,0,56,4,56,0,48,0,240,128,191, - 128,239,0,8,8,8,9,0,2,219,255,102,195,195,102,255, - 219,9,13,26,9,0,0,251,128,113,0,115,0,58,0,58, - 0,28,0,127,0,28,0,127,0,28,0,28,0,28,0,127, - 0,2,16,16,4,1,253,192,192,192,192,192,192,0,0,0, - 0,192,192,192,192,192,192,7,16,16,9,1,253,60,102,70, - 96,48,120,220,206,230,118,60,28,12,196,204,120,6,2,2, - 6,0,10,204,204,13,13,26,15,1,0,15,128,56,224,96, - 48,79,208,220,216,152,72,152,8,152,8,220,216,79,144,96, - 48,56,224,15,128,6,8,8,6,0,5,112,216,56,216,216, - 236,0,252,9,7,14,11,1,1,25,128,51,0,102,0,204, - 0,102,0,51,0,25,128,9,6,12,11,1,1,255,128,255, - 128,1,128,1,128,1,128,1,128,5,3,3,6,0,4,248, - 248,248,13,13,26,15,1,0,15,128,56,224,96,48,95,144, - 204,216,140,200,143,136,141,136,204,216,94,240,96,48,56,224, - 15,128,6,1,1,6,0,11,252,6,5,5,7,0,8,120, - 204,204,204,120,8,11,11,11,1,0,24,24,24,255,255,24, - 24,24,0,255,255,5,8,8,5,0,5,112,152,24,48,32, - 64,248,240,5,8,8,5,0,5,112,152,24,112,56,24,152, - 112,5,3,3,6,0,10,56,112,192,10,13,26,11,0,252, - 247,128,115,128,115,128,115,128,115,128,115,128,115,128,127,128, - 125,192,96,0,224,0,240,0,96,0,9,17,34,10,0,252, - 63,128,127,128,251,0,251,0,251,0,251,0,123,0,59,0, - 27,0,27,0,27,0,27,0,27,0,27,0,27,0,27,0, - 27,0,3,3,3,5,1,4,224,224,224,5,4,4,6,1, - 252,32,24,152,112,6,8,8,5,0,5,48,240,48,48,48, - 48,48,252,6,8,8,6,0,5,120,204,204,204,204,120,0, - 252,9,7,14,11,1,1,204,0,102,0,51,0,25,128,51, - 0,102,0,204,0,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,16,51,48,254,112,6,176,13,176,13, - 248,24,48,24,48,13,13,26,13,0,0,48,96,240,192,48, - 192,49,128,49,128,51,112,51,152,254,24,6,48,12,32,12, - 64,24,248,24,240,13,13,26,13,0,0,112,96,152,192,24, - 192,113,128,57,128,27,16,155,48,118,112,6,176,13,176,13, - 248,24,48,24,48,7,13,13,9,1,252,56,56,56,0,16, - 16,48,96,228,238,238,230,124,14,17,34,14,0,0,14,0, - 7,0,1,128,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,3,128,7,0,12,0,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,17,34,14,0,0,3,0, - 7,128,12,192,0,0,3,0,3,128,7,128,5,192,13,192, - 8,192,24,224,16,96,31,240,48,112,32,56,96,56,248,252, - 14,17,34,14,0,0,6,64,15,192,9,128,0,0,3,0, - 3,128,7,128,5,192,13,192,8,192,24,224,16,96,31,240, - 48,112,32,56,96,56,248,252,14,16,32,14,0,0,12,192, - 12,192,0,0,3,0,3,128,7,128,5,192,13,192,8,192, - 24,224,16,96,31,240,48,112,32,56,96,56,248,252,14,17, - 34,14,0,0,7,0,13,128,13,128,7,0,3,0,3,128, - 7,128,5,192,13,192,8,192,24,224,16,96,31,240,48,112, - 32,56,96,56,248,252,17,13,39,19,0,0,7,255,128,3, - 225,128,2,224,128,6,224,0,4,224,0,12,226,0,8,254, - 0,31,226,0,16,224,0,48,224,0,32,224,128,96,225,128, - 249,255,128,12,17,34,14,1,252,15,144,56,240,112,112,112, - 48,224,0,224,0,224,0,224,0,224,0,112,0,112,48,60, - 224,15,128,4,0,3,0,19,0,14,0,10,17,34,13,2, - 0,56,0,28,0,6,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,17,34,13,2,0,14,0,28,0,48,0,0, - 0,255,192,112,192,112,64,112,0,112,0,113,0,127,0,113, - 0,112,0,112,0,112,64,112,192,255,192,10,17,34,13,2, - 0,12,0,30,0,51,0,0,0,255,192,112,192,112,64,112, - 0,112,0,113,0,127,0,113,0,112,0,112,0,112,64,112, - 192,255,192,10,16,32,13,2,0,51,0,51,0,0,0,255, - 192,112,192,112,64,112,0,112,0,113,0,127,0,113,0,112, - 0,112,0,112,64,112,192,255,192,5,17,17,7,1,0,224, - 112,24,0,248,112,112,112,112,112,112,112,112,112,112,112,248, - 5,17,17,7,1,0,56,112,192,0,248,112,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,48,120,204, - 0,248,112,112,112,112,112,112,112,112,112,112,112,248,6,16, - 16,7,1,0,204,204,0,248,112,112,112,112,112,112,112,112, - 112,112,112,248,13,13,26,14,0,0,127,128,56,224,56,112, - 56,48,56,56,56,56,254,56,56,56,56,56,56,48,56,112, - 56,224,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,240,112,120,32,120,32,124,32,94,32,78,32,79,32, - 71,160,67,160,67,224,65,224,64,224,224,224,13,17,34,15, - 1,0,14,0,7,0,1,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,3,128,7,0,12,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,17,34,15, - 1,0,6,0,15,0,25,128,0,0,15,128,56,224,112,112, - 112,112,224,56,224,56,224,56,224,56,224,56,112,112,112,112, - 56,224,15,128,13,17,34,15,1,0,12,128,31,128,19,0, - 0,0,15,128,56,224,112,112,112,112,224,56,224,56,224,56, - 224,56,224,56,112,112,112,112,56,224,15,128,13,16,32,15, - 1,0,25,128,25,128,0,0,15,128,56,224,112,112,112,112, - 224,56,224,56,224,56,224,56,224,56,112,112,112,112,56,224, - 15,128,9,8,16,11,1,1,193,128,99,0,54,0,28,0, - 28,0,54,0,99,0,193,128,13,15,30,15,1,255,0,96, - 15,192,56,224,112,176,113,176,225,56,227,56,226,56,230,56, - 228,56,108,112,104,112,56,224,31,128,48,0,12,17,34,14, - 1,0,28,0,14,0,3,0,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,17,34,14,1,0,1,192,3,128,6,0, - 0,0,248,240,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,32,112,96,56,192,31,128,12,17,34,14, - 1,0,6,0,15,0,25,128,0,0,248,240,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,32,112,96, - 56,192,31,128,12,16,32,14,1,0,25,128,25,128,0,0, - 248,240,112,32,112,32,112,32,112,32,112,32,112,32,112,32, - 112,32,112,32,112,96,56,192,31,128,13,17,34,14,1,0, - 0,224,1,192,3,0,0,0,252,120,120,48,56,96,60,64, - 30,192,14,128,15,128,7,0,7,0,7,0,7,0,7,0, - 31,192,10,13,26,11,1,0,248,0,112,0,112,0,127,0, - 115,128,113,192,113,192,113,192,115,128,127,0,112,0,112,0, - 248,0,9,13,26,10,0,0,30,0,59,0,115,128,115,128, - 115,128,119,0,114,0,115,0,115,128,115,128,115,128,115,128, - 247,0,8,13,13,9,0,0,112,56,12,0,124,206,206,30, - 110,206,206,254,119,8,13,13,9,0,0,14,28,48,0,124, - 206,206,30,110,206,206,254,119,8,13,13,9,0,0,24,60, - 102,0,124,206,206,30,110,206,206,254,119,8,13,13,9,0, - 0,50,126,76,0,124,206,206,30,110,206,206,254,119,8,12, - 12,9,0,0,102,102,0,124,206,206,30,110,206,206,254,119, - 8,13,13,9,0,0,56,108,108,56,124,206,206,30,110,206, - 206,254,119,12,9,18,13,0,0,125,224,231,176,199,48,15, - 240,127,0,231,0,199,0,239,176,121,224,7,13,13,8,0, - 252,62,118,230,224,224,224,224,118,60,16,12,76,56,7,13, - 13,8,0,0,112,56,12,0,60,118,230,254,224,224,224,118, - 60,8,13,13,8,0,0,7,14,24,0,60,118,230,254,224, - 224,224,118,60,7,13,13,8,0,0,24,60,102,0,60,118, - 230,254,224,224,224,118,60,7,12,12,8,0,0,102,102,0, - 60,118,230,254,224,224,224,118,60,5,13,13,5,0,0,224, - 112,24,0,240,112,112,112,112,112,112,112,248,5,13,13,5, - 0,0,56,112,192,0,240,112,112,112,112,112,112,112,248,6, - 13,13,5,0,0,48,120,204,0,240,112,112,112,112,112,112, - 112,248,6,12,12,5,0,0,204,204,0,240,112,112,112,112, - 112,112,112,248,8,13,13,9,0,0,96,54,56,76,62,102, - 231,231,231,231,231,102,60,10,13,26,11,0,0,25,0,63, - 0,38,0,0,0,231,0,127,128,115,128,115,128,115,128,115, - 128,115,128,115,128,251,192,8,13,13,9,0,0,112,56,12, - 0,60,102,231,231,231,231,231,102,60,8,13,13,9,0,0, - 7,14,24,0,60,102,231,231,231,231,231,102,60,8,13,13, - 9,0,0,24,60,102,0,60,102,231,231,231,231,231,102,60, - 8,13,13,9,0,0,50,126,76,0,60,102,231,231,231,231, - 231,102,60,8,12,12,9,0,0,102,102,0,60,102,231,231, - 231,231,231,102,60,8,8,8,11,1,1,24,24,0,255,255, - 0,24,24,10,11,22,9,255,255,0,64,30,128,51,0,115, - 128,115,128,119,128,123,128,113,128,51,0,94,0,128,0,10, - 13,26,11,0,0,56,0,28,0,6,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,14,0,28,0,48,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 13,26,11,0,0,12,0,30,0,51,0,0,0,247,128,115, - 128,115,128,115,128,115,128,115,128,115,128,127,128,61,192,10, - 12,24,11,0,0,51,0,51,0,0,0,247,128,115,128,115, - 128,115,128,115,128,115,128,115,128,127,128,61,192,10,17,34, - 9,255,252,3,128,7,0,12,0,0,0,251,192,113,128,121, - 0,59,0,58,0,30,0,30,0,12,0,12,0,12,0,8, - 0,216,0,240,0,9,17,34,10,0,252,240,0,112,0,112, - 0,112,0,118,0,127,0,115,128,115,128,115,128,115,128,115, - 128,123,0,118,0,112,0,112,0,112,0,248,0,10,16,32, - 9,255,252,51,0,51,0,0,0,251,192,113,128,121,0,59, - 0,58,0,30,0,30,0,12,0,12,0,12,0,8,0,216, - 0,240,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--20-140-100-100-P-100-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=19 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=28 x=-2 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB14r[2295] U8G_FONT_SECTION("u8g_font_timB14r") = { - 0,22,28,254,249,13,2,178,6,78,32,127,252,14,252,13, - 252,0,0,0,5,0,1,3,13,13,6,1,0,64,224,224, - 224,224,224,224,64,64,0,224,224,224,6,6,6,10,2,7, - 204,204,204,204,136,136,10,12,24,9,0,0,25,128,25,128, - 25,128,127,192,127,192,51,0,51,0,255,128,255,128,102,0, - 102,0,102,0,8,16,16,9,0,254,24,126,219,219,216,248, - 124,62,31,31,27,219,219,126,24,24,14,13,26,18,1,0, - 60,24,119,240,226,96,226,64,228,192,253,128,115,120,6,236, - 6,196,13,196,25,200,49,248,48,224,13,13,26,16,2,0, - 30,0,51,0,51,0,51,0,58,0,28,240,60,96,94,64, - 207,128,199,128,227,192,255,248,120,240,2,6,6,5,1,7, - 192,192,192,192,128,128,5,17,17,6,1,252,8,16,48,96, - 96,224,192,192,192,192,192,224,96,96,48,16,8,5,17,17, - 6,0,252,128,64,96,48,48,56,24,24,24,24,24,56,48, - 32,96,64,128,8,9,9,9,0,4,24,24,219,255,60,255, - 219,24,24,10,10,20,11,0,0,12,0,12,0,12,0,12, - 0,255,192,255,192,12,0,12,0,12,0,12,0,4,6,6, - 5,0,253,112,112,112,48,96,192,5,3,3,6,0,4,248, - 248,248,3,3,3,5,1,0,224,224,224,5,13,13,6,0, - 0,24,24,24,48,48,48,32,96,96,96,192,192,192,8,13, - 13,9,0,0,60,102,103,231,231,231,231,231,231,231,102,102, - 60,8,13,13,9,0,0,28,60,252,28,28,28,28,28,28, - 28,28,28,127,8,13,13,9,0,0,60,126,207,135,7,7, - 6,12,24,49,99,255,255,9,13,26,9,0,0,60,0,126, - 0,143,0,7,0,14,0,28,0,62,0,15,0,7,128,3, - 128,195,0,230,0,124,0,8,13,13,9,0,0,14,30,30, - 46,46,78,206,142,255,255,14,14,14,9,13,26,9,0,0, - 63,0,63,0,62,0,64,0,120,0,126,0,63,0,7,128, - 3,128,3,128,195,0,230,0,252,0,8,13,13,9,0,0, - 7,28,56,112,96,252,230,231,231,231,231,102,60,8,13,13, - 9,0,0,255,255,254,134,12,12,12,24,24,56,48,48,112, - 8,13,13,9,0,0,60,102,227,227,246,124,60,126,207,199, - 195,231,126,8,13,13,9,0,0,60,102,231,231,231,231,103, - 63,7,6,14,60,240,3,9,9,5,1,0,224,224,224,0, - 0,0,224,224,224,4,12,12,5,0,253,112,112,112,0,0, - 0,112,112,112,48,96,192,9,9,18,11,1,0,3,128,15, - 0,60,0,240,0,192,0,240,0,60,0,15,0,3,128,9, - 6,12,11,1,2,255,128,255,128,0,0,0,0,255,128,255, - 128,9,9,18,11,1,0,224,0,120,0,30,0,7,128,1, - 128,7,128,30,0,120,0,224,0,7,13,13,9,1,0,124, - 206,238,238,78,12,24,16,16,0,56,56,56,15,16,32,17, - 1,253,3,224,15,56,56,12,48,4,115,182,103,118,231,118, - 238,102,238,102,238,236,239,252,103,184,112,0,56,0,30,0, - 7,240,14,13,26,14,0,0,3,0,3,128,7,128,5,192, - 13,192,8,192,24,224,16,96,31,240,48,112,32,56,96,56, - 248,252,10,13,26,13,1,0,254,0,115,128,113,192,113,192, - 113,192,115,128,126,0,115,128,113,192,113,192,113,192,115,128, - 255,0,12,13,26,14,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,0,224,0,224,0,112,0,112,48,60,224, - 15,128,12,13,26,14,1,0,255,0,113,192,112,224,112,96, - 112,112,112,112,112,112,112,112,112,112,112,96,112,224,113,192, - 255,0,10,13,26,13,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,64,112,192, - 255,192,10,13,26,12,2,0,255,192,112,192,112,64,112,0, - 112,0,113,0,127,0,113,0,112,0,112,0,112,0,112,0, - 248,0,13,13,26,15,1,0,15,144,56,240,112,112,112,48, - 224,0,224,0,224,248,224,112,224,112,112,112,112,112,56,240, - 15,192,13,13,26,15,1,0,248,248,112,112,112,112,112,112, - 112,112,112,112,127,240,112,112,112,112,112,112,112,112,112,112, - 249,248,5,13,13,7,1,0,248,112,112,112,112,112,112,112, - 112,112,112,112,248,8,15,15,9,0,254,31,14,14,14,14, - 14,14,14,14,14,14,14,238,236,120,12,13,26,15,2,0, - 249,240,112,192,113,128,115,0,118,0,124,0,124,0,126,0, - 119,0,119,128,115,192,113,224,248,240,10,13,26,13,2,0, - 248,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,112,0,112,64,112,192,255,192,15,13,26,18,2,0, - 240,30,112,28,120,60,120,60,124,92,92,92,94,220,78,156, - 79,156,71,28,71,28,67,28,226,62,12,13,26,14,1,0, - 240,112,120,32,120,32,124,32,94,32,78,32,79,32,71,160, - 67,160,67,224,65,224,64,224,224,224,13,13,26,15,1,0, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,10,13,26,12,1,0, - 255,0,115,128,113,192,113,192,113,192,115,128,127,0,112,0, - 112,0,112,0,112,0,112,0,248,0,13,17,34,15,1,252, - 15,128,56,224,112,112,112,112,224,56,224,56,224,56,224,56, - 224,56,112,112,112,112,56,224,15,128,15,0,7,128,3,224, - 0,248,12,13,26,14,1,0,255,0,115,128,113,192,113,192, - 113,192,115,128,127,0,119,0,115,128,113,192,113,192,112,224, - 248,240,9,13,26,11,1,0,30,128,99,128,225,128,224,0, - 248,0,124,0,63,0,15,128,7,128,3,128,195,128,231,0, - 188,0,11,13,26,13,1,0,255,224,206,96,142,32,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 31,0,12,13,26,14,1,0,248,240,112,32,112,32,112,32, - 112,32,112,32,112,32,112,32,112,32,112,32,112,96,56,192, - 31,128,14,13,26,14,0,0,252,124,120,24,56,16,60,48, - 28,32,30,96,30,64,14,192,15,128,7,128,7,0,3,0, - 2,0,18,13,39,19,1,0,253,247,192,121,225,128,56,225, - 0,60,227,0,60,226,0,28,114,0,30,118,0,14,116,0, - 14,188,0,15,60,0,7,60,0,6,24,0,6,24,0,14, - 13,26,14,0,0,248,120,120,48,60,96,28,192,15,128,7, - 0,7,128,7,192,13,192,24,224,48,112,96,120,240,252,13, - 13,26,14,1,0,252,120,120,48,56,96,60,64,30,192,14, - 128,15,128,7,0,7,0,7,0,7,0,7,0,31,192,10, - 13,26,13,2,0,255,192,195,192,131,128,7,128,15,0,14, - 0,30,0,60,0,56,0,120,0,240,64,224,192,255,192,4, - 16,16,6,1,253,240,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,240,5,13,13,5,0,0,192,192,192,96,96, - 96,32,48,48,48,24,24,24,4,16,16,6,1,253,240,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,240,8,7, - 7,11,1,6,24,24,60,36,102,195,195,9,2,4,9,0, - 252,255,128,255,128,5,3,3,6,0,10,224,112,24,8,9, - 9,9,0,0,124,206,206,30,110,206,206,254,119,9,13,26, - 9,255,0,240,0,112,0,112,0,112,0,118,0,127,0,115, - 128,115,128,115,128,115,128,115,128,115,0,110,0,7,9,9, - 8,0,0,62,118,230,224,224,224,224,118,60,9,13,26,10, - 0,0,15,0,7,0,7,0,7,0,55,0,127,0,231,0, - 231,0,231,0,231,0,231,0,119,0,59,128,7,9,9,8, - 0,0,60,118,230,254,224,224,224,118,60,7,13,13,6,0, - 0,62,118,118,112,252,112,112,112,112,112,112,112,248,9,13, - 26,9,0,252,63,128,231,0,231,0,231,0,230,0,120,0, - 96,0,254,0,255,128,227,128,193,128,227,0,126,0,10,13, - 26,11,0,0,240,0,112,0,112,0,112,0,119,0,127,128, - 115,128,115,128,115,128,115,128,115,128,115,128,251,192,5,13, - 13,5,0,0,96,96,96,0,240,112,112,112,112,112,112,112, - 248,6,17,17,5,254,252,24,24,24,0,60,28,28,28,28, - 28,28,28,28,28,220,216,112,10,13,26,10,0,0,240,0, - 112,0,112,0,112,0,115,128,115,0,118,0,124,0,124,0, - 126,0,119,0,115,128,247,192,5,13,13,6,0,0,240,112, - 112,112,112,112,112,112,112,112,112,112,248,15,9,18,16,0, - 0,247,56,123,220,115,156,115,156,115,156,115,156,115,156,115, - 156,251,222,10,9,18,11,0,0,231,0,127,128,115,128,115, - 128,115,128,115,128,115,128,115,128,251,192,8,9,9,9,0, - 0,60,102,231,231,231,231,231,102,60,9,13,26,10,0,252, - 230,0,127,0,115,128,115,128,115,128,115,128,115,128,123,0, - 118,0,112,0,112,0,112,0,248,0,9,13,26,9,0,252, - 57,0,119,0,231,0,231,0,231,0,231,0,231,0,127,0, - 55,0,7,0,7,0,7,0,15,128,7,9,9,8,0,0, - 238,118,112,112,112,112,112,112,248,6,9,9,7,0,0,124, - 204,228,240,120,60,156,204,248,6,11,11,7,0,0,16,48, - 252,112,112,112,112,112,112,116,56,10,9,18,11,0,0,247, - 128,115,128,115,128,115,128,115,128,115,128,115,128,127,128,61, - 192,10,9,18,9,255,0,251,192,113,128,121,0,59,0,59, - 0,30,0,30,0,12,0,12,0,14,9,18,12,255,0,247, - 156,119,24,115,144,59,176,57,160,29,224,31,224,12,192,12, - 192,9,9,18,9,0,0,243,128,115,0,122,0,60,0,28, - 0,30,0,55,0,103,128,227,128,10,13,26,9,255,252,251, - 192,113,128,121,0,59,0,58,0,30,0,30,0,12,0,12, - 0,12,0,200,0,216,0,240,0,7,9,9,8,0,0,254, - 206,142,28,56,112,114,230,254,7,17,17,8,0,252,30,56, - 48,48,48,48,48,96,192,96,48,48,48,48,48,56,30,2, - 16,16,4,1,253,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,7,17,17,8,1,252,240,56,24,24,24, - 24,24,12,6,12,24,24,24,24,24,56,240,8,4,4,10, - 1,3,112,249,159,14,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=23 x= 3 y=14 dx=25 dy= 0 ascent=23 len=69 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18[7223] U8G_FONT_SECTION("u8g_font_timB18") = { - 0,27,38,254,246,17,4,47,9,109,32,255,251,23,250,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,6,0, - 1,4,17,17,8,2,251,96,240,240,96,0,0,96,96,96, - 96,96,240,240,240,240,240,96,10,18,36,13,1,253,0,128, - 1,128,1,0,31,128,115,192,115,192,230,128,228,0,228,0, - 236,0,232,0,248,0,120,128,127,128,62,0,48,0,96,0, - 96,0,11,17,34,13,0,0,15,192,30,96,60,224,60,224, - 60,64,28,0,28,0,255,128,255,128,28,0,28,0,28,0, - 12,32,124,96,207,224,255,224,115,192,11,12,24,13,0,3, - 192,96,238,224,127,192,59,128,113,192,96,192,96,192,113,192, - 59,128,127,192,238,224,192,96,14,17,34,13,0,0,254,124, - 56,48,60,32,28,96,30,64,14,192,15,128,7,128,7,0, - 31,192,7,0,31,192,7,0,7,0,7,0,7,0,31,192, - 2,22,22,6,2,251,192,192,192,192,192,192,192,192,192,0, - 0,0,0,192,192,192,192,192,192,192,192,192,7,20,20,11, - 2,253,60,110,206,198,224,112,120,92,142,134,194,226,116,60, - 28,14,198,230,236,120,6,2,2,8,1,14,204,204,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 97,243,0,99,51,0,198,17,128,198,1,128,198,1,128,198, - 1,128,198,1,128,99,51,0,97,227,0,48,6,0,60,30, - 0,15,248,0,3,224,0,7,10,10,8,0,7,120,220,12, - 124,236,204,126,0,254,254,11,10,20,13,1,1,12,96,24, - 192,49,128,115,128,231,0,231,0,115,128,49,128,24,192,12, - 96,11,7,14,15,2,2,255,224,255,224,0,96,0,96,0, - 96,0,96,0,96,6,3,3,8,1,5,252,252,252,17,17, - 51,19,1,0,3,224,0,15,248,0,60,30,0,48,6,0, - 103,227,0,99,51,0,195,49,128,195,49,128,195,225,128,195, - 97,128,195,49,128,99,51,0,103,187,0,48,6,0,60,30, - 0,15,248,0,3,224,0,6,1,1,8,1,14,252,8,7, - 7,9,0,10,60,102,195,195,195,102,60,12,13,26,14,1, - 0,6,0,6,0,6,0,6,0,255,240,255,240,6,0,6, - 0,6,0,6,0,0,0,255,240,255,240,6,10,10,7,0, - 7,56,124,140,12,24,16,32,64,252,252,6,10,10,7,0, - 7,56,124,140,12,56,28,12,140,248,112,5,4,4,8,2, - 13,56,112,96,192,12,17,34,14,1,251,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,108,224,96,0,96,0,224,0,240,0,96,0,11,22,44, - 14,1,251,31,224,127,224,126,64,254,64,254,64,254,64,254, - 64,254,64,254,64,126,64,126,64,30,64,2,64,2,64,2, - 64,2,64,2,64,2,64,2,64,2,64,2,64,2,64,3, - 3,3,6,1,6,224,224,224,6,6,6,8,1,250,16,48, - 56,12,140,120,6,10,10,7,0,7,48,240,48,48,48,48, - 48,48,48,252,7,10,10,8,0,7,56,108,198,198,198,108, - 56,0,254,254,11,10,20,13,1,1,198,0,99,0,49,128, - 57,192,28,224,28,224,57,192,51,128,99,0,198,0,17,17, - 51,18,0,0,48,4,0,240,12,0,48,24,0,48,24,0, - 48,48,0,48,32,0,48,96,0,48,66,0,48,198,0,252, - 142,0,1,142,0,1,22,0,3,54,0,6,38,0,6,127, - 128,12,6,0,8,6,0,17,17,51,18,0,0,48,4,0, - 240,12,0,48,24,0,48,24,0,48,48,0,48,32,0,48, - 96,0,48,71,0,48,207,128,252,145,128,1,129,128,1,3, - 0,3,2,0,6,4,0,6,8,0,12,31,128,8,31,128, - 17,17,51,18,1,0,56,4,0,124,12,0,140,24,0,12, - 24,0,56,48,0,28,32,0,12,96,0,140,66,0,248,198, - 0,113,14,0,3,14,0,2,22,0,6,54,0,12,38,0, - 12,127,128,24,6,0,16,6,0,9,17,34,12,1,251,12, - 0,30,0,30,0,12,0,0,0,0,0,12,0,12,0,28, - 0,56,0,120,0,240,0,241,0,243,128,243,128,123,0,62, - 0,17,22,66,18,0,0,3,128,0,1,192,0,0,192,0, - 0,96,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,22,66,18,0,0,0, - 224,0,1,192,0,1,128,0,3,0,0,0,0,0,1,128, - 0,1,192,0,3,192,0,3,224,0,3,224,0,6,224,0, - 6,240,0,4,112,0,12,112,0,8,120,0,8,56,0,31, - 248,0,16,60,0,48,60,0,48,30,0,112,30,0,248,127, - 128,17,22,66,18,0,0,1,128,0,3,192,0,6,96,0, - 0,0,0,0,0,0,1,128,0,1,192,0,3,192,0,3, - 224,0,3,224,0,6,224,0,6,240,0,4,112,0,12,112, - 0,8,120,0,8,56,0,31,248,0,16,60,0,48,60,0, - 48,30,0,112,30,0,248,127,128,17,21,63,18,0,0,3, - 16,0,7,224,0,8,192,0,0,0,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,17,21, - 63,18,0,0,6,96,0,6,96,0,0,0,0,0,0,0, - 1,128,0,1,192,0,3,192,0,3,224,0,3,224,0,6, - 224,0,6,240,0,4,112,0,12,112,0,8,120,0,8,56, - 0,31,248,0,16,60,0,48,60,0,48,30,0,112,30,0, - 248,127,128,17,23,69,18,0,0,1,128,0,3,192,0,6, - 96,0,6,96,0,3,192,0,1,128,0,1,128,0,1,192, - 0,3,192,0,3,224,0,3,224,0,6,224,0,6,240,0, - 4,112,0,12,112,0,8,120,0,8,56,0,31,248,0,16, - 60,0,48,60,0,48,30,0,112,30,0,248,127,128,23,17, - 51,25,0,0,1,255,252,0,124,28,0,252,12,0,188,4, - 1,188,4,1,60,32,3,60,32,2,60,96,6,63,224,7, - 252,96,12,60,32,8,60,32,24,60,2,16,60,2,48,60, - 6,112,60,14,248,255,254,15,23,46,18,1,250,3,242,30, - 62,60,14,120,6,120,2,240,2,240,0,240,0,240,0,240, - 0,240,0,240,0,120,0,120,2,60,14,31,60,7,240,1, - 0,3,0,3,128,0,192,8,192,7,128,15,22,44,17,1, - 0,7,0,3,128,1,128,0,192,0,0,255,252,60,28,60, - 12,60,4,60,4,60,32,60,32,60,96,63,224,60,96,60, - 32,60,32,60,2,60,2,60,6,60,14,255,254,15,22,44, - 17,1,0,1,192,3,128,3,0,6,0,0,0,255,252,60, - 28,60,12,60,4,60,4,60,32,60,32,60,96,63,224,60, - 96,60,32,60,32,60,2,60,2,60,6,60,14,255,254,15, - 22,44,17,1,0,3,0,7,128,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,15,21,42,17,1,0,12,192,12,192,0,0,0,0,255, - 252,60,28,60,12,60,4,60,4,60,32,60,32,60,96,63, - 224,60,96,60,32,60,32,60,2,60,2,60,6,60,14,255, - 254,8,22,22,10,0,0,112,56,24,12,0,255,60,60,60, - 60,60,60,60,60,60,60,60,60,60,60,60,255,8,22,22, - 10,0,0,14,28,24,48,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,8,22,22,10,0,0,24, - 60,102,0,0,255,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,255,8,21,21,10,0,0,102,102,0,0,255, - 60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,255, - 16,17,34,18,1,0,255,224,60,120,60,60,60,30,60,30, - 60,15,60,15,255,143,255,143,60,15,60,15,60,14,60,30, - 60,28,60,60,60,120,255,224,17,22,66,18,0,0,1,136, - 0,3,240,0,4,96,0,0,0,0,0,0,0,248,15,128, - 124,7,0,62,2,0,63,2,0,63,130,0,47,194,0,39, - 226,0,35,226,0,33,242,0,32,250,0,32,126,0,32,62, - 0,32,30,0,32,14,0,32,14,0,96,6,0,248,2,0, - 16,22,44,19,1,0,7,0,3,128,1,128,0,192,0,0, - 7,224,30,120,60,60,120,30,120,30,240,15,240,15,240,15, - 240,15,240,15,240,15,240,15,120,30,120,30,60,60,30,120, - 7,224,16,22,44,19,1,0,0,112,0,224,0,192,1,128, - 0,0,7,224,30,120,60,60,120,30,120,30,240,15,240,15, - 240,15,240,15,240,15,240,15,240,15,120,30,120,30,60,60, - 30,120,7,224,16,22,44,19,1,0,1,128,3,192,6,96, - 0,0,0,0,7,224,30,120,60,60,120,30,120,30,240,15, - 240,15,240,15,240,15,240,15,240,15,240,15,120,30,120,30, - 60,60,30,120,7,224,16,22,44,19,1,0,3,16,7,224, - 8,192,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,16,21,42,19,1,0,12,96, - 12,96,0,0,0,0,7,224,30,120,60,60,120,30,120,30, - 240,15,240,15,240,15,240,15,240,15,240,15,240,15,120,30, - 120,30,60,60,30,120,7,224,12,12,24,14,1,0,192,48, - 224,112,112,224,57,192,31,128,15,0,15,0,31,128,57,192, - 112,224,224,112,192,48,16,19,38,19,1,255,0,4,7,236, - 30,120,56,28,120,62,120,62,240,111,240,207,240,207,241,143, - 243,15,243,15,246,15,124,30,124,30,56,28,62,120,55,224, - 96,0,17,22,66,18,0,0,3,128,0,1,192,0,0,192, - 0,0,96,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,22,66,18,0,0, - 0,56,0,0,112,0,0,96,0,0,192,0,0,0,0,255, - 15,128,62,6,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,6,0,30,4,0,31,28,0,7, - 248,0,17,22,66,18,0,0,0,96,0,0,240,0,1,152, - 0,0,0,0,0,0,0,255,15,128,62,6,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,2,0,60,2,0,60,2,0,60,6, - 0,30,4,0,31,28,0,7,248,0,17,21,63,18,0,0, - 3,24,0,3,24,0,0,0,0,0,0,0,255,15,128,62, - 6,0,60,2,0,60,2,0,60,2,0,60,2,0,60,2, - 0,60,2,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,6,0,30,4,0,31,28,0,7,248,0,18, - 23,69,18,0,0,0,14,0,0,28,0,0,24,0,0,48, - 0,0,0,0,0,0,0,255,143,192,62,3,0,30,2,0, - 15,6,0,15,12,0,7,140,0,7,152,0,3,208,0,3, - 240,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,1,224,0,1,224,0,7,248,0,14,17,34,15,0,0, - 255,0,60,0,60,0,60,0,63,224,60,120,60,60,60,60, - 60,60,60,60,60,60,60,120,63,224,60,0,60,0,60,0, - 255,0,11,17,34,14,1,0,31,0,57,128,113,192,113,192, - 113,192,113,192,115,128,119,0,115,128,113,192,112,224,112,224, - 112,224,112,224,112,224,112,192,243,128,10,17,34,12,1,0, - 56,0,28,0,12,0,6,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,14,0,28,0,24,0,48,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,17,34,12,1,0, - 12,0,30,0,51,0,0,0,0,0,62,0,119,0,227,128, - 227,128,67,128,15,128,115,128,227,128,227,128,231,128,255,192, - 113,128,10,17,34,12,1,0,24,128,63,0,70,0,0,0, - 0,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,10,16,32,12,1,0, - 51,0,51,0,0,0,0,0,62,0,119,0,227,128,227,128, - 67,128,15,128,115,128,227,128,227,128,231,128,255,192,113,128, - 10,18,36,12,1,0,12,0,30,0,51,0,51,0,30,0, - 12,0,62,0,119,0,227,128,227,128,67,128,15,128,115,128, - 227,128,227,128,231,128,255,192,113,128,15,12,24,17,1,0, - 62,120,119,204,227,206,99,142,3,142,31,254,115,128,227,128, - 227,192,231,226,254,252,124,120,9,18,36,11,1,250,30,0, - 115,0,115,128,227,128,225,0,224,0,224,0,224,0,240,0, - 120,128,127,0,30,0,8,0,24,0,28,0,6,0,70,0, - 60,0,9,17,34,11,1,0,56,0,28,0,12,0,6,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,17,34,11,1,0, - 14,0,28,0,24,0,48,0,0,0,30,0,115,0,115,128, - 227,128,227,128,255,128,224,0,224,0,240,0,120,128,127,0, - 30,0,9,17,34,11,1,0,24,0,60,0,102,0,0,0, - 0,0,30,0,115,0,115,128,227,128,227,128,255,128,224,0, - 224,0,240,0,120,128,127,0,30,0,9,16,32,11,1,0, - 51,0,51,0,0,0,0,0,30,0,115,0,115,128,227,128, - 227,128,255,128,224,0,224,0,240,0,120,128,127,0,30,0, - 5,17,17,7,1,0,224,112,48,24,0,240,112,112,112,112, - 112,112,112,112,112,112,248,6,17,17,7,1,0,28,56,48, - 96,0,240,112,112,112,112,112,112,112,112,112,112,248,6,17, - 17,7,1,0,48,120,204,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,6,16,16,7,1,0,204,204,0,0,240, - 112,112,112,112,112,112,112,112,112,112,248,11,17,34,13,1, - 0,96,0,56,192,15,0,30,0,99,0,31,128,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,12,17,34,14,1,0,12,64,31,128,35,0,0, - 0,0,0,243,192,119,224,120,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,112,224,249,240,11,17,34,13,1, - 0,28,0,14,0,6,0,3,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,3,128,7,0,6,0,12, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,17,34,13,1, - 0,12,0,30,0,51,0,0,0,0,0,31,0,123,192,113, - 192,224,224,224,224,224,224,224,224,224,224,224,224,113,192,123, - 192,31,0,11,17,34,13,1,0,24,128,63,0,70,0,0, - 0,0,0,31,0,123,192,113,192,224,224,224,224,224,224,224, - 224,224,224,224,224,113,192,123,192,31,0,11,16,32,13,1, - 0,49,128,49,128,0,0,0,0,31,0,123,192,113,192,224, - 224,224,224,224,224,224,224,224,224,224,224,113,192,123,192,31, - 0,12,12,24,14,1,0,6,0,6,0,6,0,0,0,0, - 0,255,240,255,240,0,0,0,0,6,0,6,0,6,0,11, - 16,32,13,1,254,0,64,0,64,30,128,121,192,113,192,226, - 224,226,224,228,224,228,224,232,224,232,224,113,192,123,192,63, - 0,64,0,64,0,12,17,34,14,1,0,28,0,14,0,6, - 0,3,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,17,34, - 14,1,0,7,0,14,0,12,0,24,0,0,0,241,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,112,224,113, - 224,126,240,60,224,12,17,34,14,1,0,6,0,15,0,25, - 128,0,0,0,0,241,224,112,224,112,224,112,224,112,224,112, - 224,112,224,112,224,112,224,113,224,126,240,60,224,12,16,32, - 14,1,0,25,128,25,128,0,0,0,0,241,224,112,224,112, - 224,112,224,112,224,112,224,112,224,112,224,112,224,113,224,126, - 240,60,224,12,22,44,12,0,251,1,192,3,128,3,0,6, - 0,0,0,253,240,120,96,56,64,56,192,60,128,28,128,29, - 128,31,0,15,0,15,0,6,0,6,0,6,0,100,0,236, - 0,248,0,112,0,12,22,44,14,1,251,240,0,112,0,112, - 0,112,0,112,0,115,128,119,224,124,224,120,112,112,112,112, - 112,112,112,112,112,112,112,120,224,119,224,115,128,112,0,112, - 0,112,0,112,0,252,0,12,21,42,12,0,251,25,128,25, - 128,0,0,0,0,253,240,120,96,56,64,56,192,60,128,28, - 128,29,128,31,0,15,0,15,0,6,0,6,0,6,0,100, - 0,236,0,248,0,112,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--25-180-100-100-P-132-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=24 h=22 x= 3 y=13 dx=25 dy= 0 ascent=18 len=66 - Font Bounding box w=27 h=38 x=-2 y=-10 - Calculated Min Values x=-1 y=-5 dx= 0 dy= 0 - Pure Font ascent =17 descent=-5 - X Font ascent =17 descent=-5 - Max Font ascent =18 descent=-5 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB18r[3355] U8G_FONT_SECTION("u8g_font_timB18r") = { - 0,27,38,254,246,17,4,47,9,109,32,127,251,18,251,17, - 251,0,0,0,6,0,1,4,17,17,8,2,0,96,240,240, - 240,240,240,96,96,96,96,96,0,0,96,240,240,96,8,8, - 8,12,2,9,231,231,231,231,231,231,66,66,12,17,34,13, - 0,0,12,192,12,192,12,192,12,192,127,240,127,240,25,128, - 25,128,25,128,25,128,255,224,255,224,51,0,51,0,51,0, - 51,0,51,0,10,20,40,12,1,254,8,0,8,0,63,0, - 107,128,233,128,233,128,248,128,124,0,126,0,63,0,31,128, - 15,128,11,192,137,192,201,192,201,128,235,128,62,0,8,0, - 8,0,17,17,51,19,1,0,30,12,0,59,252,0,113,24, - 0,225,48,0,226,48,0,226,96,0,244,96,0,120,192,0, - 0,192,0,1,143,0,1,157,128,3,56,128,3,112,128,6, - 113,0,6,113,0,12,122,0,12,60,0,17,17,51,21,1, - 0,3,224,0,6,112,0,14,48,0,14,48,0,14,112,0, - 7,224,0,15,15,128,31,135,0,51,194,0,97,230,0,225, - 252,0,224,248,0,224,120,0,240,124,0,248,255,128,127,159, - 0,63,14,0,3,8,8,7,2,9,224,224,224,224,224,224, - 64,64,5,21,21,8,1,252,8,24,48,48,112,96,96,224, - 224,224,224,224,224,224,96,96,112,48,48,24,8,5,21,21, - 8,1,252,128,192,96,96,48,48,48,56,56,56,56,56,56, - 56,48,48,48,96,96,192,128,10,11,22,13,1,6,12,0, - 12,0,76,128,237,192,127,128,30,0,127,128,237,192,76,128, - 12,0,12,0,12,12,24,14,1,0,6,0,6,0,6,0, - 6,0,6,0,255,240,255,240,6,0,6,0,6,0,6,0, - 6,0,4,9,9,6,1,251,96,240,240,112,48,96,96,192, - 128,6,3,3,8,1,5,252,252,252,4,4,4,6,1,0, - 96,240,240,96,7,17,17,7,0,0,6,6,4,12,12,8, - 24,24,16,48,48,32,96,96,64,192,192,11,17,34,12,0, - 0,14,0,59,128,49,128,113,192,113,192,241,224,241,224,241, - 224,241,224,241,224,241,224,113,192,113,192,113,192,49,128,59, - 128,14,0,9,17,34,12,2,0,12,0,60,0,252,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,62,0,255,128,10,17,34,12,1, - 0,30,0,63,0,127,128,199,128,131,128,3,128,3,128,3, - 0,7,0,6,0,12,0,12,0,24,64,48,64,127,192,255, - 192,255,128,11,17,34,12,0,0,15,0,63,128,99,192,65, - 192,1,192,3,128,7,0,31,0,7,192,1,224,1,224,0, - 224,0,224,96,224,241,192,251,128,126,0,11,17,34,12,0, - 0,1,128,3,128,7,128,7,128,15,128,27,128,51,128,51, - 128,99,128,195,128,255,224,255,224,255,224,3,128,3,128,3, - 128,3,128,11,17,34,12,0,0,31,224,31,192,63,192,48, - 0,32,0,112,0,127,0,127,128,127,192,7,192,1,192,0, - 192,0,192,96,192,241,128,251,128,126,0,11,17,34,12,1, - 0,1,224,7,128,30,0,60,0,56,0,120,0,119,0,123, - 128,241,192,241,224,241,224,241,224,241,224,113,192,113,192,59, - 128,30,0,11,17,34,12,0,0,63,224,127,224,127,192,192, - 192,129,128,1,128,3,128,3,0,3,0,7,0,6,0,6, - 0,14,0,14,0,12,0,28,0,28,0,11,17,34,12,0, - 0,31,0,59,128,113,192,113,192,113,192,121,128,59,0,63, - 0,31,128,55,192,99,192,225,224,225,224,225,224,241,192,123, - 128,62,0,11,17,34,12,0,0,14,0,59,128,113,192,113, - 192,241,224,241,224,241,224,241,224,113,224,59,192,31,192,3, - 192,3,128,7,128,15,0,60,0,240,0,4,12,12,8,2, - 0,96,240,240,96,0,0,0,0,96,240,240,96,4,17,17, - 8,2,251,96,240,240,96,0,0,0,0,96,240,240,112,48, - 96,96,192,128,11,12,24,14,1,0,0,96,1,224,7,192, - 31,0,60,0,224,0,224,0,60,0,31,0,7,192,1,224, - 0,96,11,6,12,14,1,3,255,224,255,224,0,0,0,0, - 255,224,255,224,11,12,24,14,1,0,192,0,240,0,124,0, - 31,0,7,128,0,224,0,224,7,128,31,0,124,0,240,0, - 192,0,9,17,34,12,1,0,62,0,111,0,231,128,231,128, - 71,128,7,128,15,0,14,0,28,0,24,0,24,0,0,0, - 0,0,24,0,60,0,60,0,24,0,20,21,63,23,1,252, - 0,124,0,3,247,128,15,128,192,30,0,96,60,0,32,56, - 59,48,112,255,16,113,231,16,241,199,16,227,198,16,227,142, - 16,227,142,48,227,142,32,243,158,96,241,254,192,112,243,128, - 120,0,0,56,0,0,30,0,0,7,131,0,1,252,0,17, - 17,51,18,0,0,1,128,0,1,192,0,3,192,0,3,224, - 0,3,224,0,6,224,0,6,240,0,4,112,0,12,112,0, - 8,120,0,8,56,0,31,248,0,16,60,0,48,60,0,48, - 30,0,112,30,0,248,127,128,14,17,34,16,0,0,255,192, - 60,240,60,120,60,120,60,120,60,120,60,112,60,192,63,224, - 60,120,60,60,60,60,60,60,60,60,60,56,60,120,255,224, - 15,17,34,18,1,0,3,242,30,62,60,14,120,6,120,2, - 240,2,240,0,240,0,240,0,240,0,240,0,240,0,120,0, - 120,2,60,14,31,60,7,240,16,17,34,18,1,0,255,224, - 60,120,60,60,60,30,60,30,60,15,60,15,60,15,60,15, - 60,15,60,15,60,14,60,30,60,28,60,60,60,120,255,224, - 15,17,34,17,1,0,255,252,60,28,60,12,60,4,60,4, - 60,32,60,32,60,96,63,224,60,96,60,32,60,32,60,2, - 60,2,60,6,60,14,255,254,14,17,34,15,0,0,255,252, - 60,28,60,12,60,4,60,4,60,32,60,32,60,96,63,224, - 60,96,60,32,60,32,60,0,60,0,60,0,60,0,255,0, - 17,17,51,19,1,0,3,242,0,30,62,0,60,14,0,120, - 6,0,120,2,0,240,2,0,240,0,0,240,0,0,240,0, - 0,240,127,128,240,30,0,240,30,0,120,30,0,120,30,0, - 56,30,0,30,30,0,7,248,0,18,17,51,19,0,0,255, - 63,192,60,15,0,60,15,0,60,15,0,60,15,0,60,15, - 0,60,15,0,60,15,0,63,255,0,60,15,0,60,15,0, - 60,15,0,60,15,0,60,15,0,60,15,0,60,15,0,255, - 63,192,8,17,17,10,0,0,255,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,60,255,11,19,38,12,0,254,31, - 224,7,128,7,128,7,128,7,128,7,128,7,128,7,128,7, - 128,7,128,7,128,7,128,7,128,7,128,231,128,231,128,231, - 0,231,0,60,0,18,17,51,19,0,0,255,63,128,60,30, - 0,60,24,0,60,48,0,60,96,0,60,192,0,61,128,0, - 63,192,0,63,192,0,61,224,0,60,240,0,60,248,0,60, - 124,0,60,62,0,60,31,0,60,15,128,255,31,192,15,17, - 34,16,0,0,255,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,2,60,6, - 60,12,60,28,255,252,21,17,51,24,1,0,252,1,248,60, - 3,224,62,3,224,62,7,224,47,5,224,47,13,224,39,9, - 224,39,137,224,39,153,224,35,145,224,35,241,224,35,241,224, - 33,225,224,33,225,224,32,193,224,32,193,224,248,7,248,17, - 17,51,18,0,0,248,15,128,124,7,0,62,2,0,63,2, - 0,63,130,0,47,194,0,39,226,0,35,226,0,33,242,0, - 32,250,0,32,126,0,32,62,0,32,30,0,32,30,0,32, - 14,0,96,6,0,248,2,0,16,17,34,19,1,0,7,224, - 28,56,56,28,120,30,112,14,240,15,240,15,240,15,240,15, - 240,15,240,15,240,15,112,14,120,30,56,28,28,56,7,224, - 14,17,34,15,0,0,255,224,60,120,60,60,60,60,60,60, - 60,60,60,60,60,120,63,224,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,255,0,17,22,66,19,1,251,7,224, - 0,28,56,0,56,28,0,120,30,0,112,14,0,240,15,0, - 240,15,0,240,15,0,240,15,0,240,15,0,240,15,0,240, - 15,0,240,14,0,120,30,0,120,28,0,60,56,0,31,224, - 0,7,192,0,1,224,0,1,240,0,0,252,0,0,63,128, - 16,17,34,18,1,0,255,224,60,120,60,56,60,60,60,60, - 60,60,60,56,60,112,63,192,61,224,60,240,60,240,60,120, - 60,124,60,60,60,30,255,31,12,17,34,14,1,0,63,160, - 113,224,224,224,224,96,224,32,248,0,126,0,127,128,63,192, - 15,224,7,224,129,240,128,240,192,240,224,224,249,224,191,128, - 14,17,34,16,1,0,255,252,231,156,199,140,135,132,135,132, - 7,128,7,128,7,128,7,128,7,128,7,128,7,128,7,128, - 7,128,7,128,7,128,31,224,17,17,51,18,0,0,255,15, - 128,126,7,0,60,2,0,60,2,0,60,2,0,60,2,0, - 60,2,0,60,2,0,60,2,0,60,2,0,60,2,0,60, - 2,0,60,2,0,60,6,0,30,4,0,31,12,0,7,248, - 0,17,17,51,18,0,0,255,31,128,60,6,0,60,4,0, - 30,4,0,30,12,0,15,8,0,15,24,0,15,24,0,7, - 144,0,7,176,0,3,224,0,3,224,0,3,224,0,1,192, - 0,1,192,0,0,128,0,0,128,0,24,17,51,25,0,0, - 255,127,159,60,30,6,60,30,4,30,15,12,30,31,8,30, - 31,24,15,23,152,15,55,144,15,39,176,7,227,176,7,195, - 224,7,195,224,3,193,224,3,129,192,3,129,192,1,0,128, - 1,0,128,16,17,34,18,1,0,255,63,62,12,30,8,31, - 24,15,48,15,160,7,224,3,192,3,224,3,224,3,240,6, - 240,12,120,8,124,24,60,56,62,252,255,18,17,51,18,0, - 0,255,143,192,62,3,0,30,2,0,15,6,0,15,12,0, - 7,140,0,7,152,0,3,208,0,3,240,0,1,224,0,1, - 224,0,1,224,0,1,224,0,1,224,0,1,224,0,1,224, - 0,7,248,0,14,17,34,17,1,0,255,248,224,248,193,240, - 193,240,131,224,3,192,7,192,7,128,15,128,15,0,30,0, - 62,4,60,4,124,12,120,28,248,60,255,248,5,21,21,8, - 1,252,248,224,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,224,248,7,17,17,7,0,0,192,192,64, - 96,96,32,48,48,16,24,24,8,12,12,4,6,6,5,21, - 21,8,1,252,248,56,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,24,24,56,248,8,10,10,15,3,7,24, - 24,60,36,102,102,102,195,195,129,12,2,4,12,0,251,255, - 240,255,240,5,4,4,8,1,13,224,112,48,24,10,12,24, - 12,1,0,62,0,119,0,227,128,227,128,67,128,15,128,115, - 128,227,128,227,128,231,128,255,192,113,128,11,17,34,13,1, - 0,240,0,112,0,112,0,112,0,112,0,119,0,127,192,113, - 192,112,224,112,224,112,224,112,224,112,224,112,224,113,192,123, - 192,103,0,9,12,24,11,1,0,30,0,115,0,115,128,227, - 128,225,0,224,0,224,0,224,0,240,0,120,128,127,0,30, - 0,12,17,34,14,1,0,1,224,0,224,0,224,0,224,0, - 224,30,224,127,224,113,224,224,224,224,224,224,224,224,224,224, - 224,240,224,113,224,126,224,28,112,9,12,24,11,1,0,30, - 0,115,0,115,128,227,128,227,128,255,128,224,0,224,0,240, - 0,120,128,127,0,30,0,8,17,17,8,1,0,30,51,115, - 112,112,252,112,112,112,112,112,112,112,112,112,112,248,10,17, - 34,12,1,251,62,192,119,192,227,128,227,128,227,128,227,128, - 115,0,62,0,96,0,224,0,255,128,255,192,127,192,193,192, - 192,192,225,128,127,0,12,17,34,14,1,0,240,0,112,0, - 112,0,112,0,112,0,115,192,127,224,120,224,112,224,112,224, - 112,224,112,224,112,224,112,224,112,224,112,224,249,240,5,17, - 17,7,1,0,112,112,112,0,0,240,112,112,112,112,112,112, - 112,112,112,112,248,7,22,22,8,255,251,14,14,14,0,0, - 30,14,14,14,14,14,14,14,14,14,14,14,14,206,206,204, - 120,13,17,34,15,1,0,240,0,112,0,112,0,112,0,112, - 0,115,240,112,192,113,128,115,0,118,0,126,0,127,0,119, - 128,115,192,113,224,112,240,251,248,5,17,17,7,1,0,240, - 112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,248, - 19,12,36,21,1,0,243,199,128,119,223,192,120,241,192,112, - 225,192,112,225,192,112,225,192,112,225,192,112,225,192,112,225, - 192,112,225,192,112,225,192,249,243,224,12,12,24,14,1,0, - 243,192,119,224,120,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,112,224,249,240,11,12,24,13,1,0,31,0, - 113,192,113,192,224,224,224,224,224,224,224,224,224,224,224,224, - 113,192,113,192,31,0,12,17,34,14,1,251,227,192,119,224, - 120,224,112,112,112,112,112,112,112,112,112,112,112,112,120,224, - 119,224,115,128,112,0,112,0,112,0,112,0,252,0,12,17, - 34,14,1,251,14,96,63,224,113,224,112,224,224,224,224,224, - 224,224,224,224,224,224,113,224,126,224,28,224,0,224,0,224, - 0,224,0,224,1,240,9,12,24,11,1,0,239,0,127,128, - 115,128,112,0,112,0,112,0,112,0,112,0,112,0,112,0, - 112,0,248,0,8,12,12,10,1,0,62,102,226,224,248,124, - 62,31,135,135,198,252,8,16,16,8,0,0,8,24,56,120, - 255,56,56,56,56,56,56,56,56,57,62,28,12,12,24,14, - 1,0,241,224,112,224,112,224,112,224,112,224,112,224,112,224, - 112,224,112,224,113,224,126,240,60,224,12,12,24,12,0,0, - 252,240,112,96,120,64,56,192,56,128,28,128,29,128,31,0, - 15,0,15,0,6,0,6,0,17,12,36,18,0,0,253,247, - 128,120,227,0,56,227,0,56,226,0,60,230,0,29,118,0, - 29,116,0,31,60,0,14,56,0,14,56,0,4,16,0,4, - 16,0,12,12,24,12,0,0,252,240,120,96,60,192,29,128, - 31,0,15,0,15,0,31,128,27,192,49,192,97,224,243,240, - 12,17,34,12,0,251,253,240,120,96,56,64,56,192,60,128, - 28,128,29,128,31,0,15,0,15,0,6,0,6,0,6,0, - 100,0,236,0,248,0,112,0,9,12,24,11,1,0,255,128, - 199,0,143,0,142,0,30,0,28,0,60,0,56,0,120,128, - 113,128,241,128,255,128,7,21,21,10,1,252,14,24,48,48, - 48,48,48,48,48,96,192,96,48,48,48,48,48,48,48,24, - 14,2,22,22,6,2,251,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,7,21,21, - 10,1,252,224,48,24,24,24,24,24,24,24,12,6,12,24, - 24,24,24,24,24,24,48,224,12,6,12,13,0,6,24,0, - 126,16,255,16,143,240,135,224,1,128,255}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=18 dx=33 dy= 0 ascent=30 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24[10820] U8G_FONT_SECTION("u8g_font_timB24") = { - 0,38,49,251,244,23,5,149,13,202,32,255,249,30,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,0,0,0,8,0, - 1,5,23,23,11,3,249,112,248,248,248,112,0,0,0,32, - 32,32,32,112,112,112,112,248,248,248,248,248,248,112,13,25, - 50,17,1,251,0,8,0,8,0,24,0,16,7,240,28,224, - 56,240,120,240,240,240,240,224,240,128,241,128,241,0,243,0, - 242,0,250,16,126,48,127,224,63,192,15,0,8,0,16,0, - 16,0,32,0,32,0,16,23,46,17,1,0,0,240,3,252, - 7,30,14,30,14,30,30,12,30,0,30,0,31,0,15,0, - 15,0,127,240,127,240,7,128,7,128,7,128,55,128,127,1, - 239,3,199,135,199,255,238,254,124,124,14,15,30,17,1,4, - 96,24,247,188,255,252,127,248,60,240,120,120,112,56,112,56, - 112,56,120,120,60,240,127,248,255,252,247,188,96,24,18,23, - 69,17,1,0,255,135,192,62,3,128,62,3,0,31,3,0, - 31,6,0,31,134,0,15,132,0,15,140,0,7,200,0,7, - 216,0,7,208,0,3,240,0,31,252,0,31,252,0,3,224, - 0,31,252,0,31,252,0,1,224,0,1,224,0,1,224,0, - 1,224,0,3,240,0,15,252,0,2,30,30,7,3,249,192, - 192,192,192,192,192,192,192,192,192,192,192,0,0,0,0,0, - 0,192,192,192,192,192,192,192,192,192,192,192,192,12,28,56, - 17,2,251,15,128,24,192,48,224,113,224,113,224,120,192,60, - 0,62,0,31,0,15,128,63,192,99,224,193,224,192,240,224, - 112,240,48,120,48,124,96,63,192,31,128,7,128,3,192,49, - 224,120,224,120,224,112,192,49,128,31,0,8,4,4,11,2, - 18,66,231,231,66,22,23,69,25,1,0,1,254,0,7,255, - 128,15,3,192,28,0,224,56,0,112,48,254,48,113,199,56, - 99,131,24,231,131,28,199,0,12,199,0,12,199,0,12,199, - 0,12,199,128,12,195,195,12,227,230,28,96,252,24,112,0, - 56,56,0,112,28,0,224,15,3,192,7,255,128,1,254,0, - 9,14,28,10,0,9,60,0,102,0,103,0,103,0,31,0, - 103,0,199,0,199,0,239,128,115,0,0,0,0,0,255,128, - 255,128,14,14,28,17,2,1,2,4,6,12,14,28,28,56, - 56,112,112,224,225,192,225,192,112,224,56,112,28,56,14,28, - 6,12,2,4,16,9,18,19,1,3,255,255,255,255,255,255, - 0,7,0,7,0,7,0,7,0,7,0,7,8,4,4,11, - 1,6,255,255,255,255,22,23,69,25,2,0,1,254,0,7, - 255,128,15,3,192,28,0,224,56,0,112,51,252,48,113,206, - 56,96,199,24,224,199,28,192,199,12,192,206,12,192,248,12, - 192,220,12,192,206,12,192,198,12,224,199,28,97,195,152,115, - 227,248,56,0,112,28,0,224,15,3,192,7,255,128,1,254, - 0,9,2,4,11,1,18,255,128,255,128,9,10,20,13,2, - 13,28,0,127,0,99,0,193,128,193,128,193,128,193,128,99, - 0,127,0,60,0,15,19,38,19,2,0,3,128,3,128,3, - 128,3,128,3,128,3,128,255,254,255,254,255,254,3,128,3, - 128,3,128,3,128,3,128,3,128,0,0,255,254,255,254,255, - 254,10,14,28,10,1,9,62,0,127,0,199,128,131,128,3, - 128,3,128,3,0,6,0,12,0,24,0,48,64,127,192,255, - 128,255,128,9,14,28,10,1,9,30,0,63,0,103,128,67, - 128,3,0,6,0,31,0,7,128,3,128,3,128,3,128,195, - 128,231,0,126,0,7,6,6,11,3,17,6,14,28,56,96, - 128,16,22,44,19,2,250,248,252,120,124,120,60,120,60,120, - 60,120,60,120,60,120,60,120,60,120,60,120,60,120,60,120, - 124,124,252,127,191,95,56,64,0,224,0,224,0,224,0,224, - 0,224,0,16,29,58,18,1,250,15,255,63,255,63,140,127, - 140,255,140,255,140,255,140,255,140,255,140,255,140,255,140,127, - 140,63,140,63,140,15,140,1,140,1,140,1,140,1,140,1, - 140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1, - 140,1,140,4,4,4,8,2,9,96,240,240,96,7,7,7, - 11,1,249,6,12,28,14,198,238,124,9,14,28,10,0,9, - 12,0,124,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,255,128,9,14,28,11, - 1,9,28,0,119,0,99,0,227,128,227,128,227,128,227,128, - 99,0,119,0,28,0,0,0,0,0,255,128,255,128,14,14, - 28,17,1,1,129,0,193,128,225,192,112,224,56,112,28,56, - 14,28,14,28,28,56,56,112,112,224,225,192,193,128,129,0, - 23,23,69,25,0,0,12,0,8,124,0,24,28,0,48,28, - 0,48,28,0,96,28,0,96,28,0,192,28,1,128,28,1, - 128,28,3,12,28,6,28,28,6,60,28,12,124,255,152,252, - 0,24,220,0,49,156,0,99,156,0,99,28,0,199,254,1, - 199,254,1,128,28,3,0,28,3,0,28,23,23,69,25,0, - 0,12,0,48,124,0,96,28,0,96,28,0,192,28,0,128, - 28,1,128,28,3,0,28,2,0,28,6,0,28,12,240,28, - 25,248,28,27,60,28,50,28,255,176,28,0,96,28,0,96, - 24,0,192,48,1,128,96,1,128,192,3,1,130,6,3,254, - 6,7,252,12,15,252,22,23,69,25,1,0,30,0,16,63, - 0,48,103,128,96,67,128,96,3,0,192,6,0,192,31,1, - 128,7,131,0,3,131,0,3,134,24,3,140,56,195,140,120, - 231,24,248,126,49,248,0,49,184,0,99,56,0,199,56,0, - 198,56,1,143,252,3,143,252,3,0,56,6,0,56,6,0, - 56,12,23,46,16,2,249,7,0,15,128,15,128,15,128,7, - 0,0,0,0,0,0,0,2,0,2,0,6,0,12,0,28, - 0,60,0,120,0,120,0,248,96,248,240,248,240,248,112,120, - 112,60,224,31,192,21,30,90,24,1,0,6,0,0,7,0, - 0,3,128,0,1,192,0,0,96,0,0,0,0,0,32,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,3,0,0,7, - 0,0,14,0,0,28,0,0,48,0,0,64,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,30,90,24,1,0,0,96,0,0,240, - 0,1,248,0,1,152,0,3,12,0,2,4,0,0,0,0, - 0,32,0,0,96,0,0,112,0,0,240,0,0,248,0,0, - 248,0,1,248,0,1,124,0,1,124,0,3,62,0,2,62, - 0,6,62,0,6,31,0,4,31,0,12,15,0,15,255,128, - 24,15,128,24,7,192,16,7,192,48,3,224,48,3,224,112, - 7,240,252,31,248,21,29,87,24,1,0,0,194,0,1,246, - 0,3,124,0,2,24,0,0,0,0,0,0,0,0,32,0, - 0,96,0,0,112,0,0,240,0,0,248,0,0,248,0,1, - 248,0,1,124,0,1,124,0,3,62,0,2,62,0,6,62, - 0,6,31,0,4,31,0,12,15,0,15,255,128,24,15,128, - 24,7,192,16,7,192,48,3,224,48,3,224,112,7,240,252, - 31,248,21,29,87,24,1,0,1,8,0,3,156,0,3,156, - 0,1,8,0,0,0,0,0,0,0,0,32,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,21, - 30,90,24,1,0,0,224,0,1,176,0,3,24,0,2,8, - 0,3,24,0,1,176,0,0,224,0,0,0,0,0,96,0, - 0,112,0,0,240,0,0,248,0,0,248,0,1,248,0,1, - 124,0,1,124,0,3,62,0,2,62,0,6,62,0,6,31, - 0,4,31,0,12,15,0,15,255,128,24,15,128,24,7,192, - 16,7,192,48,3,224,48,3,224,112,7,240,252,31,248,32, - 23,92,33,0,0,3,255,255,252,0,255,255,252,0,99,224, - 28,0,99,224,12,0,195,224,12,0,195,224,4,1,131,224, - 4,1,131,224,128,3,3,224,128,3,3,225,128,2,3,227, - 128,7,255,255,128,7,255,227,128,12,3,225,128,12,3,224, - 128,24,3,224,128,24,3,224,1,56,3,224,3,48,3,224, - 6,112,3,224,14,112,3,224,62,248,7,255,252,254,31,255, - 252,19,30,90,24,2,249,1,252,32,7,255,96,15,7,224, - 30,1,224,60,0,224,124,0,96,124,0,96,248,0,32,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,0,0,124,0,0,124,0,0,60,0,32, - 30,0,96,15,129,192,3,255,128,0,254,0,0,24,0,0, - 48,0,0,112,0,0,56,0,3,24,0,3,184,0,1,240, - 0,21,30,90,22,0,0,6,0,0,7,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,1,128,0,3,128,0,7,0, - 0,14,0,0,24,0,0,48,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,30,90,22,0,0,0,48,0,0,120,0,0,252,0, - 0,204,0,1,134,0,1,2,0,0,0,0,255,255,224,63, - 255,224,31,0,224,31,0,96,31,0,96,31,0,32,31,0, - 32,31,4,0,31,4,0,31,12,0,31,28,0,31,252,0, - 31,28,0,31,12,0,31,4,0,31,4,0,31,0,8,31, - 0,24,31,0,48,31,0,112,31,1,240,63,255,224,255,255, - 224,21,29,87,22,0,0,0,132,0,1,206,0,1,206,0, - 0,132,0,0,0,0,0,0,0,255,255,224,63,255,224,31, - 0,224,31,0,96,31,0,96,31,0,32,31,0,32,31,4, - 0,31,4,0,31,12,0,31,28,0,31,252,0,31,28,0, - 31,12,0,31,4,0,31,4,0,31,0,8,31,0,24,31, - 0,48,31,0,112,31,1,240,63,255,224,255,255,224,11,30, - 60,13,1,0,192,0,224,0,112,0,56,0,12,0,6,0, - 0,0,255,224,63,128,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,63,128,255,224, - 12,30,60,13,1,0,0,48,0,112,0,224,1,192,3,0, - 6,0,0,0,255,224,63,128,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,63,128, - 255,224,11,30,60,13,1,0,6,0,15,0,31,128,25,128, - 48,192,32,64,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,11,29,58,13,1,0,16,128,57,192,57,192, - 16,128,0,0,0,0,255,224,63,128,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 31,0,31,0,31,0,31,0,31,0,31,0,31,0,31,0, - 63,128,255,224,22,23,69,24,0,0,255,254,0,63,15,128, - 31,3,224,31,1,240,31,1,240,31,0,248,31,0,248,31, - 0,252,31,0,252,31,0,252,255,240,124,255,240,124,255,240, - 124,31,0,124,31,0,252,31,0,248,31,0,248,31,0,248, - 31,1,240,31,1,224,31,3,192,63,15,128,127,254,0,22, - 29,87,24,1,0,0,97,0,0,251,0,1,190,0,1,12, - 0,0,0,0,0,0,0,254,1,252,127,0,112,63,128,32, - 31,128,32,31,192,32,31,224,32,23,240,32,19,248,32,17, - 248,32,17,252,32,16,254,32,16,127,32,16,63,32,16,31, - 160,16,31,224,16,15,224,16,7,224,16,3,224,16,3,224, - 16,1,224,16,0,224,56,0,96,254,0,32,21,30,90,25, - 2,0,6,0,0,7,0,0,3,128,0,1,192,0,0,96, - 0,0,48,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,3,128,0,7,0,0,14,0,0,24,0,0,48, - 0,0,96,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,30,90,25, - 2,0,0,48,0,0,120,0,0,252,0,0,204,0,1,134, - 0,1,2,0,0,0,0,1,252,0,7,255,0,15,143,128, - 30,3,192,60,1,224,124,1,240,120,0,240,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,120,0,240,124,1,240,60,1,224, - 30,3,192,15,143,128,7,255,0,1,252,0,21,29,87,25, - 2,0,0,194,0,1,246,0,3,124,0,2,24,0,0,0, - 0,0,0,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,21,29,87,25,2,0,0, - 132,0,1,206,0,1,206,0,0,132,0,0,0,0,0,0, - 0,1,252,0,7,255,0,15,143,128,30,3,192,60,1,224, - 124,1,240,120,0,240,248,0,248,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,120,0,240,124,1,240,60,1,224,30,3,192,15,143,128, - 7,255,0,1,252,0,15,16,32,19,2,0,64,4,224,14, - 240,30,120,60,60,120,30,240,15,224,7,192,7,192,15,224, - 30,240,60,120,120,60,240,30,224,14,64,4,21,27,81,26, - 2,254,0,0,48,0,0,96,1,252,64,7,143,192,14,3, - 128,30,1,192,60,3,224,124,6,240,120,4,240,248,12,248, - 248,24,248,248,24,248,248,48,248,248,32,248,248,96,248,248, - 192,248,248,128,248,249,128,248,123,0,240,126,1,240,62,1, - 224,28,3,192,14,7,128,31,254,0,17,248,0,48,0,0, - 96,0,0,23,30,90,24,0,0,0,192,0,0,224,0,0, - 112,0,0,56,0,0,12,0,0,2,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,0,192,0,1,192,0, - 3,128,0,7,0,0,12,0,0,16,0,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,30,90,24,0,0,0,12,0,0,30,0,0, - 63,0,0,51,0,0,97,128,0,64,128,0,0,0,255,224, - 254,63,128,56,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,31,0,48,15,128,48,15,128,96,7,192,192,3,255,128, - 0,254,0,23,29,87,24,0,0,0,33,0,0,115,128,0, - 115,128,0,33,0,0,0,0,0,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 48,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,30,90,24,1,0,0,0,192,0,1,192,0,3,128,0, - 7,0,0,12,0,0,16,0,0,0,0,255,195,252,127,0, - 240,63,0,96,63,0,96,31,128,192,31,128,128,15,193,128, - 15,195,0,7,227,0,3,230,0,3,244,0,1,252,0,1, - 248,0,0,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,1,252,0,7,255,0, - 19,23,69,20,0,0,255,224,0,63,128,0,31,0,0,31, - 0,0,31,254,0,31,15,128,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,224,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,63,128,0,255,224,0,17,23,69,19,0, - 0,3,240,0,14,60,0,30,62,0,28,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,28,0,60,56,0,60, - 224,0,60,60,0,60,30,0,60,15,0,60,15,0,60,15, - 128,60,15,128,60,15,128,60,15,128,60,15,0,60,15,0, - 60,30,0,252,124,0,14,23,46,16,1,0,48,0,56,0, - 28,0,14,0,3,0,0,128,0,0,31,128,49,224,112,240, - 120,240,120,240,48,240,1,240,7,240,28,240,56,240,120,240, - 240,240,249,240,255,244,126,252,60,120,14,23,46,16,1,0, - 0,48,0,112,0,224,1,192,3,0,4,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,14,23, - 46,16,1,0,3,0,7,128,15,192,12,192,24,96,16,32, - 0,0,31,128,49,224,112,240,120,240,120,240,48,240,1,240, - 7,240,28,240,56,240,120,240,240,240,249,240,255,244,126,252, - 60,120,14,22,44,16,1,0,12,32,31,96,55,192,33,128, - 0,0,0,0,31,128,49,224,112,240,120,240,120,240,48,240, - 1,240,7,240,28,240,56,240,120,240,240,240,249,240,255,244, - 126,252,60,120,14,22,44,16,1,0,8,64,28,224,28,224, - 8,64,0,0,0,0,31,128,49,224,112,240,120,240,120,240, - 48,240,1,240,7,240,28,240,56,240,120,240,240,240,249,240, - 255,244,126,252,60,120,14,25,50,16,1,0,7,0,13,128, - 24,192,16,64,24,192,13,128,7,0,0,0,0,0,31,128, - 49,224,112,240,120,240,120,240,48,240,1,240,7,240,28,240, - 56,240,120,240,240,240,249,240,255,244,126,252,60,120,21,16, - 48,24,1,0,31,135,192,49,238,224,112,252,112,120,248,112, - 120,248,56,48,248,56,1,248,56,7,255,248,28,248,0,56, - 248,0,120,252,0,248,252,8,248,254,24,255,255,240,126,63, - 224,60,15,192,13,23,46,15,1,249,7,224,30,240,60,120, - 120,120,120,48,240,0,240,0,240,0,240,0,240,0,248,0, - 120,0,120,0,60,48,31,224,15,192,3,0,6,0,6,0, - 3,128,49,128,59,128,31,0,14,23,46,15,0,0,48,0, - 56,0,28,0,14,0,3,0,0,128,0,0,7,192,30,240, - 60,112,120,56,120,60,248,60,248,60,255,252,248,0,248,0, - 248,0,120,0,124,0,62,24,31,240,7,224,14,23,46,15, - 0,0,0,24,0,56,0,112,0,224,1,128,2,0,0,0, - 7,192,30,240,60,112,120,56,120,60,248,60,248,60,255,252, - 248,0,248,0,248,0,120,0,124,0,62,24,31,240,7,224, - 14,23,46,15,0,0,3,0,7,128,15,192,12,192,24,96, - 16,32,0,0,7,192,30,240,60,112,120,56,120,60,248,60, - 248,60,255,252,248,0,248,0,248,0,120,0,124,0,62,24, - 31,240,7,224,14,22,44,15,0,0,4,32,14,112,14,112, - 4,32,0,0,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,8,23,23,9,0,0,192,224,112,56, - 12,2,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,8,23,23,9,0,0,3,7,14,28,48,64,0, - 252,124,60,60,60,60,60,60,60,60,60,60,60,60,126,255, - 8,23,23,9,0,0,24,60,126,102,195,129,0,252,124,60, - 60,60,60,60,60,60,60,60,60,60,60,126,255,8,22,22, - 9,0,0,66,231,231,66,0,0,252,124,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,14,22,44,17,1,0,56, - 48,62,248,15,248,255,128,251,192,97,224,15,240,60,248,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,22,66,18,0, - 0,3,8,0,7,216,0,13,240,0,8,96,0,0,0,0, - 0,0,0,252,120,0,125,252,0,63,62,0,62,30,0,62, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,126,63,0, - 255,127,128,14,23,46,17,1,0,48,0,56,0,28,0,14, - 0,3,0,0,128,0,0,15,192,60,240,120,120,120,120,240, - 60,240,60,240,60,240,60,240,60,240,60,240,60,240,60,120, - 120,120,120,60,240,15,192,14,23,46,17,1,0,0,24,0, - 56,0,112,0,224,1,128,2,0,0,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,14,23,46,17,1, - 0,3,0,7,128,15,192,12,192,24,96,16,32,0,0,15, - 192,60,240,120,120,120,120,240,60,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,120,120,120,120,60,240,15,192,14, - 22,44,17,1,0,12,32,31,96,55,192,33,128,0,0,0, - 0,15,192,60,240,120,120,120,120,240,60,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,120,120,120,120,60,240,15, - 192,14,22,44,17,1,0,8,64,28,224,28,224,8,64,0, - 0,0,0,15,192,60,240,120,120,120,120,240,60,240,60,240, - 60,240,60,240,60,240,60,240,60,240,60,120,120,120,120,60, - 240,15,192,14,15,30,19,2,1,3,0,7,128,7,128,3, - 0,0,0,0,0,255,252,255,252,255,252,0,0,0,0,3, - 0,7,128,7,128,3,0,14,22,44,17,1,253,0,8,0, - 24,0,24,15,240,60,240,120,120,120,120,240,252,241,188,241, - 60,243,60,242,60,246,60,252,60,248,60,120,120,120,120,60, - 240,111,192,96,0,192,0,128,0,17,23,69,18,0,0,24, - 0,0,28,0,0,14,0,0,7,0,0,1,128,0,0,64, - 0,0,0,0,252,126,0,124,62,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,62,0,62,127,0,31,223, - 128,7,140,0,17,23,69,18,0,0,0,12,0,0,28,0, - 0,56,0,0,112,0,0,192,0,1,0,0,0,0,0,252, - 126,0,124,62,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,62,0,62,127,0,31,223,128,7,140,0,17, - 23,69,18,0,0,1,128,0,3,192,0,7,224,0,6,96, - 0,12,48,0,8,16,0,0,0,0,252,126,0,124,62,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,60, - 30,0,60,30,0,60,30,0,60,30,0,60,30,0,60,62, - 0,62,127,0,31,223,128,7,140,0,17,22,66,18,0,0, - 4,32,0,14,112,0,14,112,0,4,32,0,0,0,0,0, - 0,0,252,126,0,124,62,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,62,0,62,127,0,31,223,128,7, - 140,0,15,30,60,17,0,249,0,12,0,28,0,56,0,112, - 0,192,1,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0,15,29,58,19,1,249,252,0,124,0,60,0, - 60,0,60,0,60,0,60,224,63,248,62,124,60,60,60,62, - 60,30,60,30,60,30,60,30,60,30,60,30,60,30,60,60, - 62,60,63,248,60,224,60,0,60,0,60,0,60,0,60,0, - 126,0,255,0,15,29,58,17,0,249,4,32,14,112,14,112, - 4,32,0,0,0,0,255,190,126,12,62,8,62,8,31,24, - 31,16,15,16,15,176,15,160,7,160,7,224,7,192,3,192, - 3,192,1,128,1,128,1,128,1,0,115,0,243,0,246,0, - 254,0,120,0}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=25 x= 3 y= 9 dx=19 dy= 0 ascent=25 len=50 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x= 0 y=-6 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =25 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24n[723] U8G_FONT_SECTION("u8g_font_timB24n") = { - 0,38,49,251,244,23,0,0,0,0,42,58,0,25,250,23, - 0,13,14,28,17,1,9,3,0,7,0,7,0,231,56,242, - 120,122,240,15,128,15,128,122,240,242,120,231,56,7,0,7, - 0,6,0,15,15,30,19,2,0,3,128,3,128,3,128,3, - 128,3,128,3,128,255,254,255,254,255,254,3,128,3,128,3, - 128,3,128,3,128,3,128,6,11,11,8,1,250,56,124,124, - 124,60,12,8,24,48,96,192,8,4,4,11,1,6,255,255, - 255,255,5,5,5,8,1,0,112,248,248,248,112,9,25,50, - 9,0,0,1,128,1,128,1,0,3,0,3,0,3,0,6, - 0,6,0,6,0,4,0,12,0,12,0,12,0,24,0,24, - 0,24,0,48,0,48,0,48,0,48,0,96,0,96,0,96, - 0,192,0,192,0,14,23,46,16,1,0,7,128,31,224,28, - 224,56,112,120,112,120,120,120,120,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,248,124,120,120,120,120,120, - 120,56,112,28,224,15,192,7,128,13,23,46,16,2,0,1, - 128,7,128,31,128,255,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,31,192,255,248,16,23,46, - 16,0,0,3,192,15,240,31,248,63,248,48,252,96,124,64, - 124,0,124,0,120,0,120,0,120,0,240,0,224,1,192,1, - 128,3,0,7,1,14,3,28,6,63,254,127,254,255,252,255, - 252,14,23,46,16,1,0,7,192,31,240,63,240,48,248,96, - 120,64,120,0,120,0,112,0,192,3,224,15,240,15,248,3, - 248,0,252,0,124,0,60,0,60,0,60,96,56,240,56,248, - 112,127,192,31,0,14,23,46,16,1,0,0,112,0,240,0, - 240,1,240,3,240,6,240,6,240,12,240,24,240,24,240,48, - 240,96,240,96,240,192,240,255,252,255,252,255,252,255,252,0, - 240,0,240,0,240,0,240,0,240,13,23,46,16,1,0,31, - 248,31,248,31,248,31,248,48,0,48,0,32,0,62,0,127, - 128,127,224,127,240,127,240,3,248,0,248,0,120,0,56,0, - 56,0,56,96,48,240,48,248,96,127,192,31,0,14,23,46, - 16,1,0,0,28,0,240,3,192,7,128,15,0,30,0,62, - 0,60,0,124,0,127,224,253,240,248,248,248,120,248,124,248, - 124,248,124,248,124,120,124,120,120,120,120,56,112,28,224,15, - 192,13,23,46,16,2,0,127,248,127,248,255,248,255,248,192, - 48,128,112,128,112,0,96,0,224,0,224,0,192,1,192,1, - 192,3,128,3,128,3,128,7,0,7,0,7,0,14,0,14, - 0,14,0,28,0,14,23,46,16,1,0,15,224,62,240,60, - 120,120,120,120,56,120,56,124,56,126,112,63,224,63,128,31, - 192,15,224,63,240,113,248,112,252,224,124,224,60,224,60,224, - 60,240,56,120,120,127,240,31,192,14,23,46,16,1,0,15, - 192,28,224,56,112,120,120,120,120,248,120,248,124,248,124,248, - 124,248,124,120,124,124,124,62,252,31,248,0,248,0,240,1, - 240,1,224,3,192,7,128,15,0,60,0,224,0,5,16,16, - 11,3,0,112,248,248,248,112,0,0,0,0,0,0,112,248, - 248,248,112}; -/* - Fontname: -Adobe-Times-Bold-R-Normal--34-240-100-100-P-177-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=32 h=30 x= 4 y=17 dx=33 dy= 0 ascent=26 len=108 - Font Bounding box w=38 h=49 x=-5 y=-12 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =26 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timB24r[5003] U8G_FONT_SECTION("u8g_font_timB24r") = { - 0,38,49,251,244,23,5,149,13,202,32,127,249,26,249,23, - 249,0,0,0,8,0,1,5,23,23,11,3,0,112,248,248, - 248,248,248,248,112,112,112,112,32,32,32,32,0,0,0,112, - 248,248,248,112,11,11,22,19,2,12,96,192,241,224,241,224, - 241,224,241,224,241,224,241,224,96,192,96,192,96,192,96,192, - 16,23,46,17,0,0,3,12,3,12,7,28,7,28,6,24, - 6,24,127,255,127,255,14,56,12,48,12,48,12,48,12,48, - 28,112,255,254,255,254,24,96,24,96,24,96,56,224,56,224, - 48,192,48,192,15,28,56,16,1,253,3,0,3,0,15,232, - 63,248,115,56,99,24,227,8,227,8,243,0,251,0,127,0, - 127,128,63,224,15,240,3,248,3,252,3,124,131,62,131,30, - 131,30,195,28,195,60,243,120,255,224,131,0,3,0,3,0, - 3,0,24,23,69,33,4,0,7,128,32,15,192,224,30,127, - 192,60,32,192,124,33,128,120,33,128,248,99,0,240,71,0, - 240,198,0,240,206,0,241,140,60,127,24,126,60,25,243,0, - 49,225,0,51,193,0,99,193,0,231,195,0,199,130,1,199, - 134,1,135,134,3,3,140,3,3,248,6,1,224,22,23,69, - 28,2,0,1,240,0,3,188,0,7,30,0,7,14,0,15, - 14,0,15,14,0,15,140,0,7,216,0,7,240,0,3,224, - 252,7,240,112,29,240,48,57,248,96,112,252,64,240,252,192, - 240,127,128,248,63,0,248,31,128,252,31,192,254,63,228,127, - 243,252,127,193,252,31,0,120,4,11,11,9,2,12,96,240, - 240,240,240,240,240,96,96,96,96,8,29,29,11,2,250,3, - 6,12,24,24,48,48,112,96,224,224,224,224,224,224,224,224, - 224,224,224,96,112,48,48,24,24,12,6,3,8,29,29,11, - 0,250,192,96,48,24,24,12,12,14,6,7,7,7,7,7, - 7,7,7,7,7,7,6,14,12,12,24,24,48,96,192,13, - 14,28,17,1,9,3,0,7,0,7,0,231,56,242,120,122, - 240,15,128,15,128,122,240,242,120,231,56,7,0,7,0,6, - 0,15,15,30,19,2,0,3,128,3,128,3,128,3,128,3, - 128,3,128,255,254,255,254,255,254,3,128,3,128,3,128,3, - 128,3,128,3,128,6,11,11,8,1,250,56,124,124,124,60, - 12,8,24,48,96,192,8,4,4,11,1,6,255,255,255,255, - 5,5,5,8,1,0,112,248,248,248,112,9,25,50,9,0, - 0,1,128,1,128,1,0,3,0,3,0,3,0,6,0,6, - 0,6,0,4,0,12,0,12,0,12,0,24,0,24,0,24, - 0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,192, - 0,192,0,14,23,46,16,1,0,7,128,31,224,28,224,56, - 112,120,112,120,120,120,120,248,124,248,124,248,124,248,124,248, - 124,248,124,248,124,248,124,248,124,120,120,120,120,120,120,56, - 112,28,224,15,192,7,128,13,23,46,16,2,0,1,128,7, - 128,31,128,255,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,15,128,15,128,15,128,15,128,15, - 128,15,128,15,128,15,128,31,192,255,248,16,23,46,16,0, - 0,3,192,15,240,31,248,63,248,48,252,96,124,64,124,0, - 124,0,120,0,120,0,120,0,240,0,224,1,192,1,128,3, - 0,7,1,14,3,28,6,63,254,127,254,255,252,255,252,14, - 23,46,16,1,0,7,192,31,240,63,240,48,248,96,120,64, - 120,0,120,0,112,0,192,3,224,15,240,15,248,3,248,0, - 252,0,124,0,60,0,60,0,60,96,56,240,56,248,112,127, - 192,31,0,14,23,46,16,1,0,0,112,0,240,0,240,1, - 240,3,240,6,240,6,240,12,240,24,240,24,240,48,240,96, - 240,96,240,192,240,255,252,255,252,255,252,255,252,0,240,0, - 240,0,240,0,240,0,240,13,23,46,16,1,0,31,248,31, - 248,31,248,31,248,48,0,48,0,32,0,62,0,127,128,127, - 224,127,240,127,240,3,248,0,248,0,120,0,56,0,56,0, - 56,96,48,240,48,248,96,127,192,31,0,14,23,46,16,1, - 0,0,28,0,240,3,192,7,128,15,0,30,0,62,0,60, - 0,124,0,127,224,253,240,248,248,248,120,248,124,248,124,248, - 124,248,124,120,124,120,120,120,120,56,112,28,224,15,192,13, - 23,46,16,2,0,127,248,127,248,255,248,255,248,192,48,128, - 112,128,112,0,96,0,224,0,224,0,192,1,192,1,192,3, - 128,3,128,3,128,7,0,7,0,7,0,14,0,14,0,14, - 0,28,0,14,23,46,16,1,0,15,224,62,240,60,120,120, - 120,120,56,120,56,124,56,126,112,63,224,63,128,31,192,15, - 224,63,240,113,248,112,252,224,124,224,60,224,60,224,60,240, - 56,120,120,127,240,31,192,14,23,46,16,1,0,15,192,28, - 224,56,112,120,120,120,120,248,120,248,124,248,124,248,124,248, - 124,120,124,124,124,62,252,31,248,0,248,0,240,1,240,1, - 224,3,192,7,128,15,0,60,0,224,0,5,16,16,11,3, - 0,112,248,248,248,112,0,0,0,0,0,0,112,248,248,248, - 112,6,22,22,11,2,250,56,124,124,124,56,0,0,0,0, - 0,0,56,124,124,124,60,12,8,24,48,96,192,16,15,30, - 19,1,0,0,3,0,15,0,127,1,252,15,224,63,128,252, - 0,240,0,252,0,63,128,15,224,1,252,0,127,0,15,0, - 3,15,10,20,19,2,3,255,254,255,254,255,254,0,0,0, - 0,0,0,0,0,255,254,255,254,255,254,16,15,30,19,2, - 0,192,0,240,0,254,0,63,128,7,240,1,252,0,63,0, - 15,0,63,1,252,7,240,63,128,254,0,240,0,192,0,12, - 23,46,16,2,0,63,0,115,192,225,224,225,240,241,240,241, - 240,97,240,1,224,1,224,3,192,3,128,3,0,6,0,4, - 0,4,0,0,0,0,0,0,0,14,0,31,0,31,0,31, - 0,14,0,26,27,108,31,2,251,0,31,224,0,0,252,60, - 0,3,224,14,0,7,128,3,0,15,0,1,0,30,0,1, - 128,62,15,56,128,60,31,248,192,124,124,248,64,120,120,120, - 64,248,248,240,64,248,240,240,64,241,240,240,64,241,240,240, - 64,241,224,240,192,241,225,224,128,241,225,225,128,241,227,227, - 0,113,243,227,0,120,254,254,0,120,120,120,0,60,0,0, - 0,28,0,0,0,14,0,1,128,7,128,7,0,1,224,60, - 0,0,63,224,0,21,23,69,24,1,0,0,32,0,0,96, - 0,0,112,0,0,240,0,0,248,0,0,248,0,1,248,0, - 1,124,0,1,124,0,3,62,0,2,62,0,6,62,0,6, - 31,0,4,31,0,12,15,0,15,255,128,24,15,128,24,7, - 192,16,7,192,48,3,224,48,3,224,112,7,240,252,31,248, - 19,23,69,22,1,0,255,252,0,63,31,0,31,15,128,31, - 7,192,31,7,192,31,7,192,31,7,192,31,7,192,31,7, - 128,31,15,128,31,62,0,31,252,0,31,15,128,31,7,192, - 31,7,224,31,3,224,31,3,224,31,3,224,31,3,224,31, - 3,192,31,7,192,63,15,0,255,252,0,19,23,69,24,2, - 0,1,252,32,7,255,96,15,7,224,30,1,224,60,0,224, - 124,0,96,124,0,96,248,0,32,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,0,248,0, - 0,124,0,0,124,0,0,60,0,32,30,0,96,15,129,192, - 3,255,128,0,254,0,22,23,69,24,0,0,255,252,0,63, - 255,128,31,7,224,31,1,240,31,1,240,31,0,248,31,0, - 248,31,0,252,31,0,124,31,0,124,31,0,124,31,0,124, - 31,0,124,31,0,124,31,0,124,31,0,248,31,0,248,31, - 0,248,31,1,240,31,1,224,31,7,192,63,255,0,255,252, - 0,21,23,69,22,0,0,255,255,224,63,255,224,31,0,224, - 31,0,96,31,0,96,31,0,32,31,0,32,31,4,0,31, - 4,0,31,12,0,31,28,0,31,252,0,31,28,0,31,12, - 0,31,4,0,31,4,0,31,0,8,31,0,24,31,0,48, - 31,0,112,31,1,240,63,255,224,255,255,224,19,23,69,20, - 0,0,255,255,224,63,255,224,31,0,224,31,0,96,31,0, - 96,31,0,32,31,0,32,31,4,0,31,4,0,31,12,0, - 31,28,0,31,252,0,31,28,0,31,12,0,31,4,0,31, - 4,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,63,128,0,255,224,0,22,23,69,25,2,0,1,252,32, - 7,255,96,15,7,224,30,1,224,60,0,224,124,0,96,124, - 0,96,248,0,32,248,0,0,248,0,0,248,0,0,248,0, - 0,248,0,0,248,31,252,248,7,240,248,3,224,124,3,224, - 124,3,224,60,3,224,62,3,224,30,7,224,15,143,224,3, - 255,0,24,23,69,25,0,0,255,231,255,63,129,252,31,0, - 248,31,0,248,31,0,248,31,0,248,31,0,248,31,0,248, - 31,0,248,31,0,248,31,255,248,31,255,248,31,0,248,31, - 0,248,31,0,248,31,0,248,31,0,248,31,0,248,31,0, - 248,31,0,248,31,0,248,63,129,252,255,231,255,11,23,46, - 13,1,0,255,224,63,128,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,31,0,31, - 0,31,0,31,0,31,0,31,0,31,0,31,0,63,128,255, - 224,15,26,52,16,0,253,15,254,3,248,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1, - 240,1,240,1,240,1,240,1,240,1,240,1,240,97,240,241, - 240,241,240,243,224,227,224,127,192,31,0,24,23,69,25,1, - 0,255,207,252,127,3,224,62,1,192,62,3,128,62,7,0, - 62,14,0,62,28,0,62,56,0,62,112,0,62,224,0,63, - 240,0,63,248,0,63,252,0,62,254,0,62,127,0,62,63, - 128,62,31,192,62,15,224,62,7,240,62,3,248,62,1,252, - 127,0,254,255,195,255,20,23,69,22,1,0,255,224,0,63, - 128,0,31,0,0,31,0,0,31,0,0,31,0,0,31,0, - 0,31,0,0,31,0,0,31,0,0,31,0,0,31,0,0, - 31,0,0,31,0,0,31,0,0,31,0,0,31,0,16,31, - 0,48,31,0,96,31,0,224,31,129,224,63,255,192,255,255, - 192,28,23,92,31,1,0,255,0,15,240,63,0,31,192,31, - 128,31,128,31,128,63,128,23,192,63,128,23,192,47,128,23, - 192,111,128,19,224,79,128,19,224,207,128,19,224,207,128,17, - 240,143,128,17,241,143,128,16,249,15,128,16,251,15,128,16, - 251,15,128,16,126,15,128,16,126,15,128,16,124,15,128,16, - 60,15,128,16,60,15,128,16,24,15,128,56,24,31,192,254, - 24,63,240,22,23,69,24,1,0,254,1,252,127,0,112,63, - 128,32,31,128,32,31,192,32,31,224,32,23,240,32,19,248, - 32,17,248,32,17,252,32,16,254,32,16,127,32,16,63,32, - 16,31,160,16,31,224,16,15,224,16,7,224,16,3,224,16, - 3,224,16,1,224,16,0,224,56,0,96,254,0,32,21,23, - 69,25,2,0,1,252,0,7,255,0,15,143,128,30,3,192, - 60,1,224,124,1,240,120,0,240,248,0,248,248,0,248,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,120,0,240,124,1,240,60,1,224,30,3,192, - 15,143,128,7,255,0,1,252,0,19,23,69,20,0,0,255, - 252,0,63,31,128,31,15,192,31,7,192,31,7,224,31,3, - 224,31,3,224,31,3,224,31,3,224,31,7,192,31,7,192, - 31,31,128,31,254,0,31,0,0,31,0,0,31,0,0,31, - 0,0,31,0,0,31,0,0,31,0,0,31,0,0,63,128, - 0,255,224,0,22,27,81,26,2,252,1,252,0,7,255,0, - 15,143,128,30,3,192,60,1,224,124,1,240,120,0,240,248, - 0,248,248,0,248,248,0,248,248,0,248,248,0,248,248,0, - 248,248,0,248,248,0,248,248,0,248,248,0,248,124,1,240, - 124,1,240,62,3,224,31,7,192,7,255,0,1,252,0,0, - 254,0,0,127,132,0,31,248,0,7,224,22,23,69,24,1, - 0,255,252,0,63,31,128,31,7,192,31,7,224,31,3,224, - 31,3,224,31,3,224,31,3,224,31,7,224,31,7,192,31, - 31,128,31,252,0,31,126,0,31,62,0,31,63,0,31,31, - 128,31,31,128,31,15,192,31,7,224,31,7,224,31,3,240, - 63,129,248,255,225,252,15,23,46,18,1,0,15,196,56,124, - 112,60,112,28,240,12,240,12,248,4,252,0,255,0,127,192, - 63,240,31,248,15,252,3,252,1,254,128,126,128,62,192,30, - 192,30,224,28,240,28,248,56,143,224,19,23,69,22,1,0, - 255,255,224,249,243,224,225,240,224,193,240,96,129,240,32,129, - 240,32,129,240,32,1,240,0,1,240,0,1,240,0,1,240, - 0,1,240,0,1,240,0,1,240,0,1,240,0,1,240,0, - 1,240,0,1,240,0,1,240,0,1,240,0,1,240,0,3, - 248,0,15,254,0,23,23,69,24,0,0,255,224,254,63,128, - 56,31,0,16,31,0,16,31,0,16,31,0,16,31,0,16, - 31,0,16,31,0,16,31,0,16,31,0,16,31,0,16,31, - 0,16,31,0,16,31,0,16,31,0,16,31,0,16,31,0, - 16,15,128,48,15,128,96,7,192,192,3,255,128,0,254,0, - 22,23,69,24,1,0,255,195,252,127,0,240,62,0,96,63, - 0,64,31,0,192,31,128,192,15,128,128,15,129,128,15,193, - 0,7,193,0,7,195,0,3,226,0,3,230,0,3,246,0, - 1,244,0,1,252,0,0,248,0,0,248,0,0,248,0,0, - 112,0,0,112,0,0,32,0,0,32,0,32,23,92,33,0, - 0,255,239,255,63,127,3,248,14,63,1,248,12,31,1,248, - 12,31,1,248,8,31,129,252,24,15,129,252,24,15,129,124, - 16,15,195,124,48,7,194,126,48,7,198,62,32,7,230,62, - 96,3,228,62,96,3,236,31,64,3,248,31,192,1,248,31, - 192,1,248,15,128,1,240,15,128,0,240,15,128,0,224,7, - 0,0,224,7,0,0,224,7,0,0,64,2,0,21,23,69, - 24,1,0,255,207,224,127,3,0,63,2,0,31,134,0,31, - 132,0,15,204,0,15,200,0,7,248,0,3,240,0,3,240, - 0,1,248,0,0,248,0,1,252,0,1,124,0,3,62,0, - 2,63,0,6,31,0,4,31,128,12,15,192,8,15,192,24, - 7,224,56,7,240,254,63,248,22,23,69,24,1,0,255,195, - 252,127,0,240,63,0,96,63,0,96,31,128,192,31,128,128, - 15,193,128,15,195,0,7,227,0,3,230,0,3,244,0,1, - 252,0,1,248,0,0,248,0,0,248,0,0,248,0,0,248, - 0,0,248,0,0,248,0,0,248,0,0,248,0,1,252,0, - 7,255,0,19,23,69,22,1,0,63,255,192,126,15,128,120, - 31,128,112,31,0,96,63,0,64,126,0,0,126,0,0,252, - 0,0,252,0,1,248,0,1,240,0,3,240,0,3,224,0, - 7,224,0,7,192,0,15,192,32,31,128,32,31,128,96,63, - 0,96,63,0,224,126,1,224,126,7,192,255,255,192,7,28, - 28,11,2,251,254,240,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,240,254, - 8,26,26,9,0,0,128,192,192,192,96,96,96,96,48,48, - 48,24,24,24,24,12,12,12,4,6,6,6,3,3,3,3, - 7,28,28,11,1,251,254,30,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 30,254,11,13,26,19,4,10,14,0,14,0,31,0,31,0, - 27,0,59,128,59,128,113,192,113,192,97,192,224,224,224,224, - 192,96,16,3,6,16,0,251,255,255,255,255,255,255,7,6, - 6,11,1,17,192,224,112,56,12,2,14,16,32,16,1,0, - 31,128,49,224,112,240,120,240,120,240,48,240,1,240,7,240, - 28,240,56,240,120,240,240,240,249,240,255,244,126,252,60,120, - 17,22,66,18,0,0,252,0,0,124,0,0,60,0,0,60, - 0,0,60,0,0,60,0,0,60,120,0,61,254,0,63,254, - 0,62,31,0,60,31,0,60,15,128,60,15,128,60,15,128, - 60,15,128,60,15,128,60,15,128,60,15,0,60,31,0,62, - 62,0,55,252,0,33,240,0,14,16,32,15,1,0,7,240, - 30,120,60,60,124,60,120,24,248,0,248,0,248,0,248,0, - 248,0,248,0,248,0,124,0,62,24,31,240,15,224,16,22, - 44,18,1,0,0,252,0,124,0,60,0,60,0,60,0,60, - 15,188,63,252,124,60,120,60,248,60,240,60,240,60,240,60, - 240,60,240,60,240,60,240,60,120,60,124,126,63,255,15,184, - 14,16,32,15,0,0,7,192,30,240,60,112,120,56,120,60, - 248,60,248,60,255,252,248,0,248,0,248,0,120,0,124,0, - 62,24,31,240,7,224,12,23,46,11,0,0,7,224,30,112, - 28,240,60,240,60,96,60,0,60,0,255,128,255,128,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,0, - 60,0,60,0,60,0,126,0,255,0,14,23,46,16,1,249, - 15,192,61,252,112,252,240,240,240,120,240,120,240,120,240,120, - 120,248,63,240,31,192,60,0,96,0,224,0,255,224,255,248, - 127,252,48,60,96,28,192,12,224,28,127,248,31,224,17,22, - 66,18,0,0,252,0,0,124,0,0,60,0,0,60,0,0, - 60,0,0,60,0,0,60,120,0,61,252,0,63,254,0,62, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 126,63,0,255,127,128,8,23,23,9,0,0,24,60,60,60, - 24,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,126,255,10,30,60,11,254,249,1,128,3,192,3,192,3, - 192,1,128,0,0,0,0,15,192,7,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,3,192,3,192,3, - 192,3,192,3,192,3,192,3,192,3,192,99,192,243,192,243, - 128,119,128,62,0,18,22,66,18,0,0,252,0,0,124,0, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,31,0, - 60,14,0,60,12,0,60,24,0,60,48,0,60,96,0,60, - 192,0,61,192,0,63,224,0,61,240,0,60,248,0,60,124, - 0,60,62,0,60,31,0,126,15,128,255,31,192,8,22,22, - 9,0,0,252,124,60,60,60,60,60,60,60,60,60,60,60, - 60,60,60,60,60,60,60,126,255,26,16,64,27,0,0,252, - 120,60,0,125,254,254,0,63,63,159,0,62,63,31,0,62, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,60,30,15,0,60,30,15,0,60, - 30,15,0,60,30,15,0,126,63,31,128,255,127,191,192,17, - 16,48,18,0,0,252,120,0,125,252,0,63,62,0,62,30, - 0,62,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,30,0,60,30,0,60,30,0,60,30,0,60,30,0,126, - 63,0,255,127,128,14,16,32,17,1,0,15,192,60,240,120, - 120,120,120,240,60,240,60,240,60,240,60,240,60,240,60,240, - 60,240,60,120,120,120,120,60,240,15,192,17,23,69,18,0, - 249,252,248,0,125,254,0,63,31,0,62,15,0,60,15,128, - 60,7,128,60,7,128,60,7,128,60,7,128,60,7,128,60, - 7,128,60,7,128,62,15,0,63,15,0,63,254,0,60,248, - 0,60,0,0,60,0,0,60,0,0,60,0,0,60,0,0, - 126,0,0,255,0,0,16,23,46,18,1,249,15,196,62,236, - 124,60,120,60,248,60,240,60,240,60,240,60,240,60,240,60, - 240,60,240,60,120,60,120,124,63,252,15,60,0,60,0,60, - 0,60,0,60,0,60,0,126,0,255,13,16,32,15,1,0, - 252,112,124,248,63,248,63,120,62,48,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,126,0,255,0, - 10,16,32,13,1,0,31,64,113,192,96,192,224,192,240,64, - 252,0,127,0,127,128,63,128,15,192,3,192,129,192,193,192, - 193,192,227,128,191,0,10,21,42,11,0,0,4,0,12,0, - 28,0,28,0,60,0,127,128,255,128,60,0,60,0,60,0, - 60,0,60,0,60,0,60,0,60,0,60,0,60,0,60,64, - 62,192,63,128,30,0,17,16,48,18,0,0,252,126,0,124, - 62,0,60,30,0,60,30,0,60,30,0,60,30,0,60,30, - 0,60,30,0,60,30,0,60,30,0,60,30,0,60,30,0, - 60,62,0,62,95,0,31,223,128,7,140,0,15,16,32,17, - 0,0,255,62,124,12,60,8,62,24,30,16,31,16,31,48, - 15,32,15,32,7,224,7,192,7,192,3,128,3,128,1,0, - 1,0,23,16,48,24,0,0,255,127,190,126,62,28,60,30, - 8,62,30,24,30,31,16,31,31,48,31,63,48,15,47,160, - 15,231,224,7,231,192,7,199,192,7,195,192,3,131,128,3, - 131,128,1,1,0,1,1,0,16,16,32,17,0,0,255,62, - 126,24,62,24,31,48,31,96,15,192,15,192,7,192,3,224, - 3,224,7,240,13,248,24,248,24,124,48,124,252,255,15,23, - 46,17,0,249,255,190,126,12,62,8,62,8,31,24,31,16, - 15,16,15,176,15,160,7,160,7,224,7,192,3,192,3,192, - 1,128,1,128,1,128,1,0,115,0,243,0,246,0,254,0, - 120,0,12,16,32,15,1,0,255,240,227,240,195,224,135,224, - 135,192,15,128,15,128,31,0,31,0,62,0,62,16,124,16, - 124,48,248,48,248,240,255,240,10,27,54,13,1,252,7,192, - 14,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,56,0,112,0,224,0,112,0,56,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 14,0,7,192,2,30,30,7,3,249,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,10,27,54,13,1,252,248,0, - 28,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 14,0,14,0,7,0,3,128,1,192,3,128,7,0,14,0, - 14,0,14,0,14,0,14,0,14,0,14,0,14,0,14,0, - 28,0,248,0,15,8,16,17,1,8,28,0,63,0,127,130, - 255,198,143,254,131,252,1,248,0,112,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h=10 x= 1 y= 6 dx=10 dy= 0 ascent=10 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent =10 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08[2512] U8G_FONT_SECTION("u8g_font_timR08") = { - 0,12,17,254,252,7,1,147,3,56,32,255,254,10,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0, - 0,2,0,1,1,7,7,3,1,254,128,0,128,128,128,128, - 128,4,7,7,5,0,255,32,112,144,128,144,96,64,5,7, - 7,5,0,0,48,80,64,224,64,200,240,5,6,6,5,0, - 1,136,112,80,80,112,136,5,7,7,5,0,0,136,80,216, - 32,248,32,112,1,7,7,2,0,0,128,128,128,0,128,128, - 128,4,9,9,5,0,254,112,144,64,160,144,80,32,144,224, - 3,1,1,5,1,5,160,7,7,7,9,1,0,56,68,154, - 162,154,68,56,3,5,5,4,0,2,192,32,160,0,224,4, - 4,4,5,0,1,80,160,160,80,5,2,2,7,1,1,248, - 8,3,1,1,4,0,2,224,7,7,7,9,1,0,56,68, - 186,178,170,68,56,3,1,1,4,0,5,224,4,4,4,4, - 0,3,96,144,144,96,5,7,7,6,0,0,32,32,248,32, - 32,0,248,3,4,4,3,0,3,96,160,64,224,3,4,4, - 3,0,3,224,64,32,192,2,2,2,3,0,5,64,128,5, - 7,7,5,0,254,144,144,144,144,232,128,128,6,9,9,6, - 0,254,124,232,232,232,104,40,40,40,40,1,1,1,2,0, - 2,128,3,3,3,4,0,253,64,32,192,3,4,4,3,0, - 3,64,192,64,224,3,5,5,4,0,2,64,160,64,0,224, - 4,4,4,5,0,1,160,80,80,160,7,7,7,8,0,0, - 68,200,72,244,44,62,68,7,7,7,8,0,0,68,200,72, - 246,42,36,78,7,7,7,8,0,0,228,72,40,212,44,62, - 68,3,7,7,4,0,254,64,0,64,64,128,160,224,7,10, - 10,8,0,0,32,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,8,16,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,16,40,0,16,56,40,40,124,68,238,7,10, - 10,8,0,0,20,40,0,16,56,40,40,124,68,238,7,9, - 9,8,0,0,40,0,16,56,40,40,124,68,238,7,10,10, - 8,0,0,16,40,16,16,56,40,40,124,68,238,8,7,7, - 9,0,0,31,57,40,46,120,73,239,6,10,10,7,0,253, - 124,196,128,128,128,196,120,32,16,96,5,10,10,6,0,0, - 64,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 16,32,0,248,72,64,112,64,72,248,5,10,10,6,0,0, - 32,80,0,248,72,64,112,64,72,248,5,9,9,6,0,0, - 80,0,248,72,64,112,64,72,248,3,10,10,4,0,0,128, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,32, - 64,0,224,64,64,64,64,64,224,3,10,10,4,0,0,64, - 160,0,224,64,64,64,64,64,224,3,9,9,4,0,0,160, - 0,224,64,64,64,64,64,224,6,7,7,7,0,0,248,76, - 68,228,68,76,248,7,10,10,8,0,0,20,40,0,206,100, - 100,84,84,76,228,6,10,10,7,0,0,32,16,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,32,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,16,40,0,120,204, - 132,132,132,204,120,6,10,10,7,0,0,40,80,0,120,204, - 132,132,132,204,120,6,9,9,7,0,0,72,0,120,204,132, - 132,132,204,120,5,5,5,6,0,0,136,80,32,80,136,8, - 9,9,8,255,255,1,62,102,74,66,82,102,124,128,7,10, - 10,8,0,0,32,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,8,16,0,238,68,68,68,68,108,56,7,10, - 10,8,0,0,16,40,0,238,68,68,68,68,108,56,7,9, - 9,8,0,0,40,0,238,68,68,68,68,108,56,7,10,10, - 8,0,0,8,16,0,198,68,40,56,16,16,56,5,7,7, - 6,0,0,224,64,112,72,112,64,224,4,7,7,5,0,0, - 32,80,80,96,80,80,224,3,8,8,4,0,0,128,64,0, - 192,32,96,160,224,3,8,8,4,0,0,32,64,0,192,32, - 96,160,224,3,8,8,4,0,0,64,160,0,192,32,96,160, - 224,4,8,8,4,0,0,80,160,0,192,32,96,160,224,3, - 7,7,4,0,0,160,0,192,32,96,160,224,3,8,8,4, - 0,0,64,160,64,192,32,96,160,224,5,5,5,6,0,0, - 216,40,112,160,216,3,8,8,4,0,253,96,128,128,128,96, - 64,32,192,3,8,8,4,0,0,128,64,0,96,160,192,128, - 96,3,8,8,4,0,0,32,64,0,96,160,192,128,96,3, - 8,8,4,0,0,64,160,0,96,160,192,128,96,3,7,7, - 4,0,0,160,0,96,160,192,128,96,2,8,8,3,0,0, - 128,64,0,192,64,64,64,64,3,8,8,3,0,0,32,64, - 0,192,64,64,64,64,3,8,8,3,0,0,64,160,0,192, - 64,64,64,64,3,7,7,3,0,0,160,0,192,64,64,64, - 64,4,8,8,5,0,0,64,112,160,112,144,144,144,96,5, - 8,8,5,0,0,80,160,0,224,144,144,144,216,4,8,8, - 5,0,0,64,32,0,96,144,144,144,96,4,8,8,5,0, - 0,32,64,0,96,144,144,144,96,4,8,8,5,0,0,64, - 160,0,96,144,144,144,96,4,8,8,5,0,0,80,160,0, - 96,144,144,144,96,4,7,7,5,0,0,160,0,96,144,144, - 144,96,5,5,5,6,0,0,32,0,248,0,32,6,7,7, - 5,255,255,4,56,72,72,72,112,128,5,8,8,5,0,0, - 64,32,0,144,144,144,144,104,5,8,8,5,0,0,32,64, - 0,144,144,144,144,104,5,8,8,5,0,0,32,80,0,144, - 144,144,144,104,5,7,7,5,0,0,80,0,144,144,144,144, - 104,6,10,10,5,255,254,16,32,0,220,72,80,48,32,96, - 192,5,10,10,5,255,253,192,64,112,72,72,72,112,64,64, - 224,6,9,9,5,255,254,80,0,220,72,80,48,32,96,192 - }; -/* - Fontname: -Adobe-Times-Medium-R-Normal--11-80-100-100-P-54-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 7, '1' Height: 7 - Calculated Max Values w=11 h= 9 x= 1 y= 6 dx=10 dy= 0 ascent= 8 len=14 - Font Bounding box w=12 h=17 x=-2 y=-4 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent = 7 descent=-2 - X Font ascent = 7 descent=-2 - Max Font ascent = 8 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR08r[1198] U8G_FONT_SECTION("u8g_font_timR08r") = { - 0,12,17,254,252,7,1,147,3,56,32,127,254,8,253,7, - 254,0,0,0,2,0,1,1,7,7,3,1,0,128,128,128, - 128,128,0,128,3,2,2,4,0,5,160,160,5,7,7,5, - 0,0,80,80,248,80,248,80,80,4,9,9,5,0,255,32, - 112,144,128,96,16,144,224,32,7,7,7,8,0,0,126,164, - 168,86,42,42,68,8,7,7,8,0,0,48,80,110,116,152, - 141,118,1,2,2,2,0,5,128,128,3,9,9,4,0,254, - 32,64,64,128,128,128,64,64,32,3,9,9,4,0,254,128, - 64,64,32,32,32,64,64,128,3,3,3,5,1,4,160,64, - 160,5,5,5,6,0,0,32,32,248,32,32,2,2,2,3, - 0,255,192,64,3,1,1,4,0,2,224,1,1,1,3,1, - 0,128,3,7,7,3,0,0,32,32,64,64,64,128,128,4, - 7,7,5,0,0,96,144,144,144,144,144,96,3,7,7,5, - 1,0,64,192,64,64,64,64,224,4,7,7,5,0,0,96, - 144,16,32,32,64,240,4,7,7,5,0,0,96,144,16,96, - 16,16,224,5,7,7,5,0,0,16,48,80,144,248,16,16, - 4,7,7,5,0,0,112,64,224,16,16,16,224,4,7,7, - 5,0,0,48,64,224,144,144,144,96,4,7,7,5,0,0, - 240,144,32,32,64,64,64,4,7,7,5,0,0,96,144,144, - 96,144,144,96,4,7,7,5,0,0,96,144,144,144,112,32, - 192,1,5,5,3,1,0,128,0,0,0,128,2,6,6,3, - 0,255,64,0,0,0,192,64,3,5,5,5,1,0,32,64, - 128,64,32,5,3,3,6,0,1,248,0,248,3,5,5,5, - 0,0,128,64,32,64,128,3,7,7,4,0,0,224,160,32, - 64,64,0,64,8,9,9,9,0,254,60,66,157,165,165,173, - 146,64,62,7,7,7,8,0,0,16,56,40,40,124,68,238, - 5,7,7,6,0,0,240,72,72,112,72,72,240,6,7,7, - 7,0,0,124,196,128,128,128,196,120,6,7,7,7,0,0, - 248,76,68,68,68,76,248,5,7,7,6,0,0,248,72,64, - 112,64,72,248,5,7,7,6,0,0,248,72,64,112,64,64, - 224,6,7,7,7,0,0,124,196,128,156,132,196,120,7,7, - 7,8,0,0,238,68,68,124,68,68,238,3,7,7,4,0, - 0,224,64,64,64,64,64,224,4,7,7,4,0,0,112,32, - 32,32,32,160,192,6,7,7,7,0,0,236,72,80,96,80, - 72,236,5,7,7,6,0,0,224,64,64,64,64,72,248,9, - 7,14,10,0,0,227,128,99,0,85,0,85,0,93,0,73, - 0,235,128,7,7,7,8,0,0,238,100,84,84,76,76,228, - 6,7,7,7,0,0,120,204,132,132,132,204,120,5,7,7, - 6,0,0,240,72,72,112,64,64,224,6,9,9,7,0,254, - 120,204,132,132,132,204,112,24,12,6,7,7,7,0,0,240, - 72,72,112,80,72,236,4,7,7,5,0,0,112,144,192,96, - 16,144,224,5,7,7,6,0,0,248,168,32,32,32,32,112, - 7,7,7,8,0,0,238,68,68,68,68,108,56,7,7,7, - 8,0,0,238,68,108,40,40,16,16,11,7,14,10,255,0, - 238,224,68,64,100,192,46,128,42,128,17,0,17,0,7,7, - 7,8,0,0,238,68,40,16,40,68,238,7,7,7,8,0, - 0,238,68,40,56,16,16,56,5,7,7,6,0,0,248,136, - 16,32,64,136,248,2,9,9,3,0,254,192,128,128,128,128, - 128,128,128,192,3,7,7,3,0,0,128,128,64,64,64,32, - 32,2,9,9,3,0,254,192,64,64,64,64,64,64,64,192, - 3,3,3,5,1,4,64,160,160,5,1,1,5,0,253,248, - 2,2,2,3,0,6,128,64,3,5,5,4,0,0,192,32, - 96,160,224,5,7,7,5,255,0,192,64,112,72,72,72,112, - 3,5,5,4,0,0,96,128,128,128,96,5,7,7,5,0, - 0,48,16,112,144,144,144,104,3,5,5,4,0,0,96,160, - 192,128,96,4,7,7,4,0,0,48,64,224,64,64,64,224, - 4,7,7,5,0,254,112,160,160,64,96,144,224,6,7,7, - 5,255,0,192,64,112,72,72,72,108,2,7,7,3,0,0, - 64,0,192,64,64,64,64,3,9,9,3,255,254,32,0,96, - 32,32,32,32,32,192,6,7,7,5,255,0,192,64,72,80, - 112,72,76,3,7,7,4,0,0,192,64,64,64,64,64,224, - 8,5,5,8,0,0,236,146,146,146,219,5,5,5,5,0, - 0,224,144,144,144,216,4,5,5,5,0,0,96,144,144,144, - 96,5,8,8,5,255,253,240,72,72,72,112,64,64,224,5, - 8,8,5,0,253,112,144,144,144,112,16,16,56,3,5,5, - 4,0,0,160,96,64,64,224,3,5,5,4,0,0,96,128, - 64,32,224,4,6,6,4,0,0,64,224,64,64,64,48,5, - 5,5,5,0,0,216,144,144,144,104,6,5,5,5,255,0, - 236,72,40,48,16,9,5,10,8,255,0,237,128,73,0,42, - 0,54,0,20,0,5,5,5,6,0,0,216,80,32,80,216, - 6,7,7,5,255,254,220,72,80,48,32,96,192,4,5,5, - 5,0,0,240,32,64,144,240,3,9,9,4,0,254,32,64, - 64,64,128,64,64,64,32,1,9,9,2,0,254,128,128,128, - 128,128,128,128,128,128,3,9,9,4,0,254,128,64,64,64, - 32,64,64,64,128,6,2,2,7,0,2,100,152,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=14 x= 2 y= 8 dx=13 dy= 0 ascent=14 len=28 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x=-1 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =14 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10[3359] U8G_FONT_SECTION("u8g_font_timR10") = { - 0,17,24,254,250,10,2,4,4,92,32,255,253,14,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,0,0,0,3,0,1,1,10,10,5,2,253,128, - 128,0,128,128,128,128,128,128,128,6,9,9,7,0,255,4, - 124,204,144,144,160,228,120,128,7,10,10,8,0,0,28,52, - 32,32,248,32,32,32,226,188,5,7,7,7,1,1,136,112, - 136,136,136,112,136,7,10,10,7,0,0,238,68,108,40,124, - 16,124,16,16,56,1,10,10,3,1,0,128,128,128,128,0, - 0,128,128,128,128,5,13,13,7,1,253,56,88,64,96,112, - 152,136,200,112,48,16,208,224,3,2,2,5,1,8,160,160, - 10,10,20,12,1,0,30,0,97,128,78,128,146,64,144,64, - 144,64,146,64,76,128,97,128,30,0,3,6,6,4,0,4, - 224,32,160,224,0,224,6,6,6,7,0,0,36,72,144,144, - 72,36,7,4,4,9,1,2,254,2,2,2,3,1,1,4, - 0,3,224,10,10,20,12,1,0,30,0,97,128,92,128,146, - 64,156,64,148,64,146,64,82,128,97,128,30,0,4,1,1, - 4,0,8,240,4,4,4,6,1,6,96,144,144,96,7,7, - 7,8,0,0,16,16,254,16,16,0,254,4,6,6,4,0, - 4,96,144,16,32,64,240,4,6,6,4,0,4,96,144,32, - 16,144,96,3,3,3,5,1,8,32,96,128,7,10,10,7, - 0,253,204,68,68,68,68,108,118,64,64,96,7,13,13,7, - 0,253,62,116,244,244,244,116,52,20,20,20,20,20,20,1, - 2,2,4,2,3,128,128,3,3,3,5,1,253,64,32,192, - 3,6,6,4,0,4,64,192,64,64,64,224,4,6,6,5, - 0,4,96,144,144,96,0,240,6,6,6,7,1,0,144,72, - 36,36,72,144,10,10,20,10,0,0,65,0,194,0,66,0, - 68,0,68,128,233,128,10,128,20,128,23,192,32,128,10,10, - 20,10,0,0,65,0,194,0,66,0,68,0,69,128,234,64, - 8,64,16,128,17,0,35,192,10,10,20,10,0,0,97,0, - 146,0,34,0,20,0,148,128,105,128,10,128,20,128,23,192, - 32,128,5,10,10,6,0,253,32,32,0,32,32,64,128,136, - 136,112,9,14,28,11,1,0,16,0,24,0,4,0,0,0, - 8,0,8,0,20,0,20,0,34,0,34,0,62,0,65,0, - 65,0,227,128,9,14,28,11,1,0,4,0,12,0,16,0, - 0,0,8,0,8,0,20,0,20,0,34,0,34,0,62,0, - 65,0,65,0,227,128,9,14,28,11,1,0,8,0,28,0, - 34,0,0,0,8,0,8,0,20,0,20,0,34,0,34,0, - 62,0,65,0,65,0,227,128,9,14,28,11,1,0,18,0, - 42,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,13,26,11,1,0, - 36,0,36,0,0,0,8,0,8,0,20,0,20,0,34,0, - 34,0,62,0,65,0,65,0,227,128,9,14,28,11,1,0, - 24,0,36,0,24,0,0,0,8,0,8,0,20,0,20,0, - 34,0,34,0,62,0,65,0,65,0,227,128,11,10,20,13, - 1,0,31,224,12,32,20,0,20,64,39,192,36,64,60,0, - 68,32,68,32,239,224,8,13,13,10,1,253,61,99,65,129, - 128,128,128,193,98,60,8,4,24,7,14,14,9,1,0,32, - 48,8,0,254,66,64,68,124,68,64,66,66,254,7,14,14, - 9,1,0,4,12,16,0,254,66,64,68,124,68,64,66,66, - 254,7,14,14,9,1,0,16,56,68,0,254,66,64,68,124, - 68,64,66,66,254,7,13,13,9,1,0,36,36,0,254,66, - 64,68,124,68,64,66,66,254,3,14,14,5,1,0,128,192, - 32,0,224,64,64,64,64,64,64,64,64,224,3,14,14,5, - 1,0,32,96,128,0,224,64,64,64,64,64,64,64,64,224, - 5,14,14,5,0,0,32,112,136,0,112,32,32,32,32,32, - 32,32,32,112,3,13,13,5,1,0,160,160,0,224,64,64, - 64,64,64,64,64,64,224,9,10,20,10,0,0,254,0,35, - 0,33,0,32,128,248,128,32,128,32,128,33,0,35,0,254, - 0,9,14,28,11,1,0,18,0,42,0,36,0,0,0,227, - 128,97,0,81,0,89,0,73,0,77,0,69,0,69,0,67, - 0,227,0,8,14,14,10,1,0,32,48,8,0,60,102,66, - 129,129,129,129,66,102,60,8,14,14,10,1,0,4,12,16, - 0,60,102,66,129,129,129,129,66,102,60,8,14,14,10,1, - 0,16,56,68,0,60,102,66,129,129,129,129,66,102,60,8, - 14,14,10,1,0,36,84,72,0,60,102,66,129,129,129,129, - 66,102,60,8,13,13,10,1,0,36,36,0,60,102,66,129, - 129,129,129,66,102,60,7,7,7,8,1,0,130,68,40,16, - 40,68,130,9,12,24,10,0,255,0,128,31,0,49,0,35, - 0,68,128,76,128,72,128,80,128,49,0,99,0,94,0,128, - 0,8,14,14,10,1,0,32,48,8,0,231,66,66,66,66, - 66,66,66,102,60,8,14,14,10,1,0,4,12,16,0,231, - 66,66,66,66,66,66,66,102,60,8,14,14,10,1,0,16, - 56,68,0,231,66,66,66,66,66,66,66,102,60,8,13,13, - 10,1,0,36,36,0,231,66,66,66,66,66,66,66,102,60, - 9,14,28,9,0,0,2,0,6,0,8,0,0,0,227,128, - 65,0,34,0,34,0,20,0,8,0,8,0,8,0,8,0, - 28,0,6,10,10,8,1,0,224,64,120,76,68,68,76,120, - 64,224,6,10,10,7,0,0,56,108,68,72,112,88,76,68, - 84,216,6,11,11,7,1,0,64,96,16,0,112,200,24,104, - 136,200,116,6,11,11,7,1,0,8,24,32,0,112,200,24, - 104,136,200,116,6,11,11,7,1,0,32,112,136,0,112,200, - 24,104,136,200,116,6,11,11,7,1,0,72,168,144,0,112, - 200,24,104,136,200,116,6,10,10,7,1,0,80,80,0,112, - 200,24,104,136,200,116,6,11,11,7,1,0,48,72,48,0, - 112,200,24,104,136,200,116,9,7,14,11,1,0,127,0,201, - 128,31,0,104,0,136,0,204,128,119,0,6,10,10,7,1, - 253,112,200,128,128,128,196,120,32,16,96,6,11,11,7,1, - 0,64,96,16,0,112,136,248,128,128,196,120,6,11,11,7, - 1,0,8,24,32,0,112,136,248,128,128,196,120,6,11,11, - 7,1,0,32,112,136,0,112,136,248,128,128,196,120,6,10, - 10,7,1,0,80,80,0,112,136,248,128,128,196,120,3,11, - 11,3,0,0,128,192,32,0,192,64,64,64,64,64,224,3, - 11,11,3,0,0,32,96,128,0,192,64,64,64,64,64,224, - 5,11,11,3,255,0,32,112,136,0,96,32,32,32,32,32, - 112,3,10,10,3,0,0,160,160,0,192,64,64,64,64,64, - 224,5,10,10,7,1,0,216,96,144,120,216,136,136,136,216, - 112,7,11,11,7,0,0,36,84,72,0,216,108,68,68,68, - 68,238,5,11,11,7,1,0,64,96,16,0,112,216,136,136, - 136,216,112,5,11,11,7,1,0,16,48,64,0,112,216,136, - 136,136,216,112,5,11,11,7,1,0,32,112,136,0,112,216, - 136,136,136,216,112,5,11,11,7,1,0,72,168,144,0,112, - 216,136,136,136,216,112,5,10,10,7,1,0,80,80,0,112, - 216,136,136,136,216,112,7,7,7,8,1,0,16,16,0,254, - 0,16,16,7,9,9,7,0,255,2,60,108,68,68,68,108, - 120,128,7,11,11,7,0,0,32,48,8,0,204,68,68,68, - 68,108,54,7,11,11,7,0,0,8,24,32,0,204,68,68, - 68,68,108,54,7,11,11,7,0,0,16,56,68,0,204,68, - 68,68,68,108,54,7,10,10,7,0,0,40,40,0,204,68, - 68,68,68,108,54,7,14,14,7,0,253,4,12,16,0,238, - 68,68,40,40,16,48,32,160,192,6,13,13,7,0,253,192, - 64,64,88,108,68,68,68,108,88,64,64,224,7,13,13,7, - 0,253,40,40,0,238,68,68,40,40,16,48,32,160,192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--14-100-100-100-P-74-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=13 h=13 x= 2 y= 8 dx=13 dy= 0 ascent=11 len=24 - Font Bounding box w=17 h=24 x=-2 y=-6 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =10 descent=-3 - X Font ascent =10 descent=-3 - Max Font ascent =11 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR10r[1571] U8G_FONT_SECTION("u8g_font_timR10r") = { - 0,17,24,254,250,10,2,4,4,92,32,127,253,11,253,10, - 253,0,0,0,3,0,1,1,10,10,5,2,0,128,128,128, - 128,128,128,128,0,128,128,3,3,3,6,1,7,160,160,160, - 7,10,10,7,0,0,20,20,126,40,40,40,252,80,80,80, - 5,12,12,7,1,255,32,120,168,160,160,112,40,40,40,168, - 240,32,9,10,20,12,1,0,113,128,223,0,146,0,148,0, - 104,0,11,0,22,128,36,128,68,128,67,0,10,10,20,11, - 1,0,24,0,36,0,36,0,56,0,19,128,121,0,202,0, - 132,0,206,64,115,128,1,3,3,3,1,7,128,128,128,3, - 13,13,5,1,253,32,32,64,64,128,128,128,128,128,64,64, - 32,32,3,13,13,5,1,253,128,128,64,64,32,32,32,32, - 32,64,64,128,128,5,6,6,7,1,4,32,168,112,112,168, - 32,7,7,7,8,0,0,16,16,16,254,16,16,16,2,3, - 3,4,1,254,192,64,128,3,1,1,4,0,3,224,2,1, - 1,4,1,0,192,4,12,12,4,0,254,16,16,16,32,32, - 32,64,64,64,128,128,128,6,10,10,7,1,0,120,204,132, - 132,132,132,132,132,204,120,5,10,10,7,1,0,32,224,32, - 32,32,32,32,32,32,248,5,10,10,7,1,0,112,216,136, - 8,24,16,32,64,136,248,6,10,10,7,0,0,120,140,4, - 8,48,56,4,4,204,120,6,10,10,7,0,0,8,24,24, - 40,104,72,136,252,8,8,5,10,10,7,1,0,120,64,128, - 224,48,24,8,8,144,224,6,10,10,7,0,0,12,16,32, - 64,120,204,132,132,204,120,6,10,10,7,0,0,252,132,8, - 8,16,16,32,32,64,64,5,10,10,7,1,0,112,152,136, - 200,112,152,136,136,136,112,6,10,10,7,1,0,120,204,132, - 132,204,120,8,16,32,192,2,7,7,4,1,0,192,0,0, - 0,0,0,192,2,9,9,4,1,254,192,0,0,0,0,0, - 192,64,128,7,7,7,8,0,0,6,24,96,192,96,24,6, - 7,3,3,8,0,2,254,0,254,7,7,7,8,0,0,192, - 48,12,6,12,48,192,5,10,10,6,0,0,112,136,136,8, - 16,32,32,0,32,32,12,12,24,13,0,254,15,128,48,96, - 96,32,70,144,137,16,145,16,145,16,147,32,205,192,64,0, - 48,192,15,0,9,10,20,11,1,0,8,0,8,0,20,0, - 20,0,34,0,34,0,62,0,65,0,65,0,227,128,7,10, - 10,9,1,0,252,70,66,70,124,70,66,66,70,252,8,10, - 10,10,1,0,61,99,65,129,128,128,128,193,98,60,9,10, - 20,10,0,0,254,0,35,0,33,0,32,128,32,128,32,128, - 32,128,33,0,35,0,254,0,7,10,10,9,1,0,254,66, - 64,68,124,68,64,66,66,254,7,10,10,8,1,0,254,66, - 64,68,124,68,64,64,64,224,9,10,20,11,1,0,61,0, - 99,0,65,0,129,0,128,0,135,128,129,0,193,0,99,0, - 62,0,8,10,10,10,1,0,231,66,66,66,126,66,66,66, - 66,231,3,10,10,5,1,0,224,64,64,64,64,64,64,64, - 64,224,4,10,10,6,1,0,112,32,32,32,32,32,32,32, - 160,192,8,10,10,10,1,0,238,68,72,80,112,80,72,68, - 70,231,7,10,10,9,1,0,224,64,64,64,64,64,64,64, - 66,254,11,10,20,13,1,0,224,224,96,192,81,64,81,64, - 91,64,74,64,74,64,78,64,68,64,228,224,9,10,20,11, - 1,0,227,128,97,0,81,0,89,0,73,0,77,0,69,0, - 69,0,67,0,227,0,8,10,10,10,1,0,60,102,66,129, - 129,129,129,66,102,60,6,10,10,8,1,0,248,76,68,68, - 76,120,64,64,64,224,8,13,13,10,1,253,60,102,66,129, - 129,129,129,66,102,60,8,6,3,9,10,20,9,0,0,252, - 0,38,0,34,0,34,0,38,0,60,0,36,0,34,0,35, - 0,241,128,6,10,10,8,1,0,116,204,132,192,112,24,4, - 132,204,184,7,10,10,9,1,0,254,146,146,16,16,16,16, - 16,16,56,8,10,10,10,1,0,231,66,66,66,66,66,66, - 66,102,60,9,10,20,9,0,0,227,128,65,0,99,0,34, - 0,34,0,54,0,20,0,28,0,8,0,8,0,13,10,20, - 13,0,0,231,56,66,16,98,48,34,32,37,32,53,96,21, - 64,24,192,8,128,8,128,10,10,20,10,0,0,115,128,33, - 0,18,0,18,0,12,0,12,0,18,0,33,0,97,128,243, - 192,9,10,20,9,0,0,227,128,65,0,34,0,34,0,20, - 0,8,0,8,0,8,0,8,0,28,0,8,10,10,8,0, - 0,127,67,2,4,8,16,32,64,193,255,3,13,13,5,1, - 253,224,128,128,128,128,128,128,128,128,128,128,128,224,4,10, - 10,4,0,0,128,128,64,64,64,32,32,32,16,16,3,13, - 13,5,1,253,224,32,32,32,32,32,32,32,32,32,32,32, - 224,5,5,5,7,1,5,32,80,80,136,136,7,1,1,7, - 0,253,254,3,3,3,5,1,8,128,192,32,6,7,7,7, - 1,0,112,200,24,104,136,200,116,6,10,10,7,0,0,192, - 64,64,88,108,68,68,68,76,120,6,7,7,7,1,0,120, - 204,128,128,128,196,120,6,10,10,7,1,0,24,8,8,120, - 200,136,136,136,216,116,6,7,7,7,1,0,112,136,248,128, - 128,196,120,5,10,10,4,0,0,56,96,64,248,64,64,64, - 64,64,240,6,10,10,7,1,253,120,208,136,200,112,64,120, - 132,204,112,7,10,10,7,0,0,192,64,64,88,108,68,68, - 68,68,238,3,10,10,3,0,0,64,64,0,192,64,64,64, - 64,64,224,3,13,13,4,0,253,32,32,0,96,32,32,32, - 32,32,32,32,160,192,7,10,10,7,0,0,192,64,64,76, - 72,112,80,72,76,230,3,10,10,3,0,0,192,64,64,64, - 64,64,64,64,64,224,11,7,14,11,0,0,219,128,110,192, - 68,64,68,64,68,64,68,64,238,224,7,7,7,7,0,0, - 216,108,68,68,68,68,238,5,7,7,7,1,0,112,216,136, - 136,136,216,112,6,10,10,7,0,253,216,108,68,68,68,108, - 88,64,64,224,6,10,10,7,1,253,120,200,136,136,136,216, - 104,8,8,28,5,7,7,5,0,0,184,96,64,64,64,64, - 224,4,7,7,6,1,0,112,144,192,96,48,144,224,4,8, - 8,4,0,0,64,240,64,64,64,64,64,48,7,7,7,7, - 0,0,204,68,68,68,68,108,54,7,7,7,7,0,0,238, - 68,68,40,40,16,16,11,7,14,11,0,0,238,224,68,64, - 68,64,36,128,59,128,17,0,17,0,7,7,7,7,0,0, - 238,68,56,16,56,68,238,7,10,10,7,0,253,238,68,68, - 40,40,16,48,32,160,192,6,7,7,6,0,0,252,136,24, - 48,96,196,252,5,13,13,7,1,253,24,32,32,32,32,64, - 128,64,32,32,32,32,24,1,10,10,3,1,0,128,128,128, - 128,128,128,128,128,128,128,5,13,13,7,1,253,192,32,32, - 32,32,16,8,16,32,32,32,32,192,7,2,2,8,0,3, - 98,156,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=16 x= 2 y= 9 dx=16 dy= 0 ascent=15 len=30 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =15 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12[3905] U8G_FONT_SECTION("u8g_font_timR12") = { - 0,19,26,254,249,11,2,36,5,11,32,255,252,15,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,4,0,1,1,11, - 11,5,2,253,128,128,0,0,128,128,128,128,128,128,128,7, - 12,12,8,0,254,4,4,60,74,138,136,144,146,84,56,32, - 32,8,11,11,8,0,0,12,18,34,32,32,252,16,16,113, - 145,110,8,9,9,8,0,1,153,102,66,129,129,129,66,102, - 153,9,11,22,8,255,0,227,128,65,0,34,0,20,0,8, - 0,62,0,8,0,62,0,8,0,8,0,28,0,1,11,11, - 3,0,0,128,128,128,128,128,0,128,128,128,128,128,7,14, - 14,8,0,253,56,68,76,32,80,136,132,66,34,20,8,100, - 68,56,4,2,2,6,1,9,144,144,11,11,22,13,0,0, - 14,0,49,128,64,64,78,64,145,32,144,32,144,32,81,64, - 78,64,49,128,14,0,4,6,6,5,0,5,96,16,112,144, - 80,240,7,7,7,8,0,0,18,36,72,144,72,36,18,8, - 5,5,9,0,0,255,1,1,1,1,4,1,1,5,0,4, - 240,11,11,22,13,0,0,14,0,49,128,64,64,78,64,137, - 32,142,32,138,32,74,64,73,64,49,128,14,0,5,1,1, - 6,0,9,248,5,5,5,7,1,6,112,136,136,136,112,7, - 9,9,9,1,0,16,16,16,254,16,16,16,0,254,5,7, - 7,5,0,4,112,136,8,16,32,72,248,6,7,7,5,255, - 4,56,68,4,24,4,132,120,3,3,3,6,2,8,32,64, - 128,8,11,11,8,0,253,198,66,66,66,66,66,71,122,64, - 64,64,7,15,15,8,0,252,62,116,244,244,244,116,52,20, - 20,20,20,20,20,20,20,1,2,2,4,1,4,128,128,4, - 4,4,6,0,252,32,112,16,224,3,7,7,5,1,4,64, - 192,64,64,64,64,224,4,6,6,5,0,5,96,144,144,144, - 96,240,7,7,7,8,0,0,144,72,36,18,36,72,144,11, - 11,22,13,1,0,64,128,193,0,67,0,66,0,68,64,76, - 192,233,64,25,64,18,64,39,224,64,64,12,11,22,13,0, - 0,64,128,193,0,67,0,66,0,68,224,77,16,232,16,24, - 32,16,64,32,144,65,240,13,11,22,13,255,0,56,32,68, - 64,4,192,24,128,5,16,135,48,122,80,6,80,4,144,9, - 248,8,16,5,11,11,7,1,253,32,32,0,0,32,32,64, - 128,136,136,112,12,15,30,12,0,0,8,0,4,0,2,0, - 0,0,4,0,6,0,10,0,11,0,17,0,17,128,32,128, - 63,128,64,192,64,64,224,240,12,15,30,12,0,0,1,0, - 2,0,4,0,0,0,4,0,6,0,10,0,11,0,17,0, - 17,128,32,128,63,128,64,192,64,64,224,240,12,15,30,12, - 0,0,4,0,10,0,17,0,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 12,14,28,12,0,0,13,0,22,0,0,0,4,0,6,0, - 10,0,11,0,17,0,17,128,32,128,63,128,64,192,64,64, - 224,240,12,14,28,12,0,0,9,0,9,0,0,0,4,0, - 6,0,10,0,11,0,17,0,17,128,32,128,63,128,64,192, - 64,64,224,240,12,14,28,12,0,0,6,0,9,0,9,0, - 6,0,6,0,10,0,11,0,17,0,17,128,32,128,63,128, - 64,192,64,64,224,240,14,11,22,15,0,0,7,248,3,8, - 5,8,9,0,9,16,17,240,31,16,33,0,33,0,65,4, - 243,248,10,15,30,11,0,252,15,64,48,192,64,64,128,64, - 128,0,128,0,128,0,128,0,64,64,49,128,14,0,4,0, - 14,0,2,0,28,0,9,15,30,10,0,0,32,0,16,0, - 8,0,0,0,255,0,65,0,64,0,64,0,66,0,126,0, - 66,0,64,0,64,0,64,128,255,0,9,15,30,10,0,0, - 2,0,4,0,8,0,0,0,255,0,65,0,65,0,64,0, - 66,0,126,0,66,0,64,0,64,0,64,128,255,0,9,15, - 30,10,0,0,8,0,20,0,34,0,0,0,255,0,65,0, - 64,0,64,0,66,0,126,0,66,0,64,0,64,0,64,128, - 255,0,9,14,28,10,0,0,36,0,36,0,0,0,255,0, - 65,0,64,0,64,0,66,0,126,0,66,0,64,0,64,0, - 64,128,255,0,4,15,15,5,255,0,128,64,32,0,112,32, - 32,32,32,32,32,32,32,32,112,5,15,15,5,0,0,8, - 16,32,0,224,64,64,64,64,64,64,64,64,64,224,5,15, - 15,5,255,0,32,80,136,0,112,32,32,32,32,32,32,32, - 32,32,112,3,14,14,5,0,0,160,160,0,224,64,64,64, - 64,64,64,64,64,64,224,10,11,22,12,1,0,252,0,67, - 0,64,128,64,64,64,64,248,64,64,64,64,64,64,128,67, - 0,252,0,10,14,28,12,0,0,13,0,22,0,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,15,30,12,1,0,32,0,16,0,8, - 0,0,0,28,0,99,0,65,0,128,128,128,128,128,128,128, - 128,128,128,65,0,99,0,28,0,9,15,30,12,1,0,2, - 0,4,0,8,0,0,0,28,0,99,0,65,0,128,128,128, - 128,128,128,128,128,128,128,65,0,99,0,28,0,9,15,30, - 12,1,0,8,0,20,0,34,0,0,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,9,14,28,12,1,0,26,0,44,0,0,0,28,0,99, - 0,65,0,128,128,128,128,128,128,128,128,128,128,65,0,99, - 0,28,0,9,14,28,12,1,0,34,0,34,0,0,0,28, - 0,99,0,65,0,128,128,128,128,128,128,128,128,128,128,65, - 0,99,0,28,0,7,7,7,9,1,0,130,68,40,16,40, - 68,130,11,13,26,12,0,255,0,64,14,64,49,128,65,64, - 130,32,132,32,132,32,136,32,144,32,80,64,49,128,78,0, - 64,0,10,15,30,12,0,0,16,0,8,0,4,0,0,0, - 225,192,64,128,64,128,64,128,64,128,64,128,64,128,64,128, - 64,128,33,0,30,0,10,15,30,12,0,0,1,0,2,0, - 4,0,0,0,225,192,64,128,64,128,64,128,64,128,64,128, - 64,128,64,128,64,128,33,0,30,0,10,15,30,12,0,0, - 4,0,10,0,17,0,0,0,225,192,64,128,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,33,0,30,0,10,14, - 28,12,0,0,18,0,18,0,0,0,225,192,64,128,64,128, - 64,128,64,128,64,128,64,128,64,128,64,128,33,0,30,0, - 11,15,30,12,0,0,0,128,1,0,2,0,0,0,224,224, - 64,64,32,128,17,0,17,0,10,0,4,0,4,0,4,0, - 4,0,14,0,8,11,11,9,0,0,224,64,124,66,65,65, - 66,124,64,64,224,7,11,11,8,0,0,56,68,68,68,72, - 88,68,66,66,82,204,7,12,12,7,1,0,64,32,16,0, - 112,136,136,56,200,136,154,100,7,12,12,7,1,0,8,16, - 32,0,112,136,136,56,200,136,154,100,7,12,12,7,1,0, - 32,80,136,0,112,136,136,56,200,136,154,100,7,11,11,7, - 1,0,104,176,0,112,136,136,56,200,136,154,100,7,11,11, - 7,1,0,72,72,0,112,136,136,56,200,136,154,100,7,12, - 12,7,1,0,32,80,80,32,112,136,136,56,200,136,154,100, - 9,8,16,11,1,0,115,0,140,128,136,128,63,128,200,0, - 136,0,156,128,99,0,6,12,12,7,0,252,56,68,132,128, - 128,128,68,56,16,56,8,112,6,12,12,7,0,0,64,32, - 16,0,56,68,132,252,128,128,68,56,6,12,12,7,0,0, - 4,8,16,0,56,68,132,252,128,128,68,56,6,12,12,7, - 0,0,16,40,68,0,56,68,132,252,128,128,68,56,6,11, - 11,7,0,0,72,72,0,56,68,132,252,128,128,68,56,3, - 12,12,5,0,0,128,64,32,0,64,192,64,64,64,64,64, - 224,3,12,12,5,0,0,32,64,128,0,64,192,64,64,64, - 64,64,224,5,12,12,5,255,0,32,80,136,0,32,96,32, - 32,32,32,32,112,3,11,11,5,0,0,160,160,0,64,192, - 64,64,64,64,64,224,7,11,11,8,0,0,108,48,200,60, - 68,130,130,130,130,68,56,8,11,11,8,255,0,52,88,0, - 92,230,66,66,66,66,66,231,7,12,12,8,0,0,32,16, - 8,0,56,68,130,130,130,130,68,56,7,12,12,8,0,0, - 4,8,16,0,56,68,130,130,130,130,68,56,7,12,12,8, - 0,0,16,40,68,0,56,68,130,130,130,130,68,56,7,11, - 11,8,0,0,52,88,0,56,68,130,130,130,130,68,56,7, - 11,11,8,0,0,72,72,0,56,68,130,130,130,130,68,56, - 9,9,18,9,255,0,8,0,8,0,0,0,0,0,255,128, - 0,0,0,0,8,0,8,0,7,12,12,8,0,254,2,2, - 60,68,138,146,146,162,100,56,64,64,8,12,12,8,255,0, - 32,16,8,0,198,66,66,66,66,66,70,59,8,12,12,8, - 255,0,4,8,16,0,198,66,66,66,66,66,70,59,8,12, - 12,8,255,0,16,40,68,0,198,66,66,66,66,66,70,59, - 8,11,11,8,255,0,36,36,0,198,66,66,66,66,66,70, - 59,8,16,16,8,255,252,2,4,8,0,247,66,66,36,36, - 20,8,8,16,16,160,192,8,15,15,8,255,252,64,192,64, - 92,98,65,65,65,65,98,92,64,64,64,224,8,15,15,8, - 255,252,36,36,0,247,66,98,36,52,20,24,8,16,16,160, - 192}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--17-120-100-100-P-84-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=15 h=15 x= 2 y= 8 dx=16 dy= 0 ascent=12 len=28 - Font Bounding box w=19 h=26 x=-2 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =11 descent=-4 - X Font ascent =11 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR12r[1784] U8G_FONT_SECTION("u8g_font_timR12r") = { - 0,19,26,254,249,11,2,36,5,11,32,127,252,12,252,11, - 252,0,0,0,4,0,1,1,11,11,5,2,0,128,128,128, - 128,128,128,128,0,0,128,128,4,3,3,7,1,8,144,144, - 144,8,11,11,8,0,0,18,18,18,127,36,36,254,72,72, - 72,72,7,13,13,8,0,255,16,124,146,146,144,80,56,20, - 18,146,146,124,16,11,11,22,14,1,0,57,0,79,0,139, - 0,138,0,150,0,100,224,13,32,10,32,26,32,18,64,17, - 128,12,11,22,13,0,0,12,0,18,0,18,0,18,0,12, - 224,56,64,68,128,131,0,130,16,69,32,56,192,1,3,3, - 3,1,8,128,128,128,4,14,14,5,0,253,16,32,64,64, - 128,128,128,128,128,128,64,64,32,16,4,14,14,5,255,253, - 128,64,32,32,16,16,16,16,16,16,32,32,64,128,5,6, - 6,8,1,5,32,168,112,112,168,32,7,7,7,9,1,1, - 16,16,16,254,16,16,16,2,3,3,4,1,255,64,64,128, - 4,1,1,5,0,4,240,1,2,2,4,1,0,128,128,5, - 13,13,5,0,254,8,8,8,16,16,32,32,32,64,64,64, - 128,128,7,11,11,8,0,0,56,68,68,130,130,130,130,130, - 68,68,56,4,11,11,8,1,0,32,96,160,32,32,32,32, - 32,32,32,112,7,11,11,8,0,0,56,68,130,2,2,4, - 8,16,32,66,252,7,11,11,8,0,0,56,68,132,8,16, - 56,4,2,2,196,120,8,11,11,8,255,0,2,6,10,10, - 18,34,34,66,255,2,2,7,11,11,8,0,0,62,32,32, - 64,120,4,2,2,2,140,112,7,11,11,8,0,0,14,48, - 64,64,152,228,130,130,130,68,56,7,11,11,8,0,0,254, - 130,132,4,8,8,16,16,16,32,32,6,11,11,8,0,0, - 48,72,132,132,72,48,72,132,132,72,48,7,11,11,8,0, - 0,56,68,130,130,130,70,58,4,4,24,224,1,8,8,4, - 1,0,128,128,0,0,0,0,128,128,2,9,9,4,0,255, - 64,64,0,0,0,0,64,64,128,8,9,9,9,0,0,3, - 12,16,96,128,96,16,12,3,7,4,4,9,0,2,254,0, - 0,254,8,9,9,9,1,0,192,48,8,6,1,6,8,48, - 192,5,11,11,7,1,0,112,136,136,8,16,32,32,0,0, - 32,32,14,14,28,15,0,253,7,192,24,48,32,8,65,168, - 70,100,132,68,136,68,136,68,136,200,137,72,70,48,32,0, - 24,48,7,192,12,11,22,12,0,0,4,0,6,0,10,0, - 11,0,17,0,17,128,32,128,63,128,64,192,64,64,224,240, - 8,11,11,11,1,0,252,70,66,66,68,124,70,65,65,67, - 254,10,11,22,11,0,0,31,64,96,192,64,64,128,64,128, - 0,128,0,128,0,128,0,64,64,97,128,30,0,10,11,22, - 12,0,0,252,0,67,0,64,128,64,64,64,64,64,64,64, - 64,64,64,64,128,67,0,252,0,9,11,22,10,0,0,255, - 0,65,0,64,0,64,0,66,0,126,0,66,0,64,0,64, - 0,64,128,255,0,8,11,11,9,0,0,255,65,64,64,66, - 126,66,64,64,64,224,11,11,22,12,0,0,15,64,48,192, - 64,64,128,0,128,0,129,224,128,64,128,64,64,64,48,192, - 15,0,10,11,22,12,0,0,225,192,64,128,64,128,64,128, - 64,128,127,128,64,128,64,128,64,128,64,128,225,192,3,11, - 11,5,0,0,224,64,64,64,64,64,64,64,64,64,224,5, - 11,11,6,0,0,56,16,16,16,16,16,16,16,144,144,96, - 10,11,22,12,1,0,243,192,65,0,66,0,68,0,72,0, - 112,0,72,0,68,0,66,0,65,0,243,192,8,11,11,10, - 0,0,224,64,64,64,64,64,64,64,64,65,254,13,11,22, - 15,0,0,224,56,96,48,80,80,80,80,72,144,72,144,72, - 144,69,16,69,16,66,16,226,56,10,11,22,12,0,0,225, - 192,96,128,80,128,80,128,72,128,72,128,68,128,66,128,66, - 128,65,128,240,128,9,11,22,12,1,0,28,0,99,0,65, - 0,128,128,128,128,128,128,128,128,128,128,65,0,99,0,28, - 0,8,11,11,9,0,0,252,66,65,65,66,124,64,64,64, - 64,224,10,14,28,12,1,253,28,0,99,0,65,0,128,128, - 128,128,128,128,128,128,128,128,65,0,99,0,60,0,12,0, - 6,0,1,192,10,11,22,11,0,0,252,0,66,0,65,0, - 65,0,66,0,124,0,72,0,68,0,66,0,65,0,225,192, - 8,11,11,9,0,0,58,70,130,128,96,28,2,1,129,194, - 188,9,11,22,10,0,0,255,128,136,128,136,128,8,0,8, - 0,8,0,8,0,8,0,8,0,8,0,28,0,10,11,22, - 12,0,0,225,192,64,128,64,128,64,128,64,128,64,128,64, - 128,64,128,64,128,33,0,30,0,11,11,22,12,0,0,224, - 224,64,64,32,128,32,128,17,0,17,0,17,0,10,0,10, - 0,4,0,4,0,15,11,22,16,0,0,231,14,66,4,33, - 8,33,8,17,136,18,144,18,144,10,80,10,80,4,32,4, - 32,11,11,22,12,0,0,224,224,64,64,32,128,17,0,10, - 0,4,0,10,0,17,0,32,128,64,64,224,224,11,11,22, - 12,0,0,224,224,64,64,32,128,17,0,17,0,10,0,4, - 0,4,0,4,0,4,0,14,0,9,11,22,10,0,0,255, - 128,129,0,130,0,4,0,4,0,8,0,16,0,32,0,32, - 0,64,128,255,0,3,14,14,5,1,253,224,128,128,128,128, - 128,128,128,128,128,128,128,128,224,6,11,11,5,255,0,128, - 64,64,32,32,16,16,8,8,4,4,3,14,14,5,0,253, - 224,32,32,32,32,32,32,32,32,32,32,32,32,224,7,7, - 7,8,0,4,16,40,40,68,68,130,130,8,1,1,8,0, - 254,255,3,3,3,6,1,8,128,64,32,7,8,8,7,1, - 0,112,136,136,56,200,136,154,108,7,11,11,8,0,0,64, - 192,64,92,100,66,66,66,66,100,56,6,8,8,7,0,0, - 56,68,132,128,128,128,68,56,7,11,11,8,0,0,4,12, - 4,52,76,132,132,132,132,78,52,6,8,8,7,0,0,56, - 68,132,252,128,128,68,56,5,11,11,6,1,0,48,72,64, - 64,240,64,64,64,64,64,240,7,12,12,8,0,252,54,76, - 132,132,72,112,128,124,130,130,196,120,8,11,11,8,0,0, - 64,192,64,92,102,66,66,66,66,66,231,3,11,11,5,1, - 0,64,64,0,64,192,64,64,64,64,64,224,3,15,15,4, - 0,252,32,32,0,32,96,32,32,32,32,32,32,32,32,160, - 192,7,11,11,8,1,0,64,192,64,92,72,80,96,80,72, - 68,238,3,11,11,5,1,0,64,192,64,64,64,64,64,64, - 64,64,224,11,8,16,13,1,0,89,128,230,64,68,64,68, - 64,68,64,68,64,68,64,238,224,8,8,8,8,0,0,92, - 230,66,66,66,66,66,231,7,8,8,8,0,0,56,68,130, - 130,130,130,68,56,7,12,12,8,0,252,92,230,66,66,66, - 66,98,92,64,64,64,224,7,12,12,8,1,252,116,204,132, - 132,132,132,204,116,4,4,4,14,5,8,8,6,0,0,88, - 232,64,64,64,64,64,224,5,8,8,6,0,0,120,136,128, - 112,8,136,200,176,4,10,10,5,0,0,64,64,240,64,64, - 64,64,64,80,32,8,8,8,8,0,0,198,66,66,66,66, - 66,71,58,8,8,8,8,0,0,231,66,66,36,36,20,24, - 8,12,8,16,12,0,0,238,112,68,32,68,32,34,64,34, - 64,21,64,8,128,8,128,7,8,8,8,0,0,238,68,40, - 16,40,40,68,238,8,12,12,8,0,252,247,66,66,36,36, - 20,8,8,16,16,160,192,6,8,8,7,0,0,252,132,8, - 16,32,64,132,252,4,14,14,8,2,253,48,64,64,64,64, - 64,128,64,64,64,64,64,64,48,1,11,11,3,0,0,128, - 128,128,128,128,128,128,128,128,128,128,4,14,14,8,0,253, - 192,32,32,32,32,32,16,32,32,32,32,32,32,192,8,3, - 3,9,0,3,113,153,142,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=18 x= 2 y=10 dx=18 dy= 0 ascent=18 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-2 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =18 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14[4577] U8G_FONT_SECTION("u8g_font_timR14") = { - 0,22,29,253,249,13,2,131,6,16,32,255,252,18,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,5, - 0,1,2,13,13,4,1,252,192,192,0,0,128,128,128,192, - 192,192,192,192,192,7,14,14,9,1,253,6,4,60,110,200, - 216,208,208,240,114,124,64,192,128,10,13,26,11,0,0,15, - 0,25,128,25,128,24,0,24,0,24,0,126,0,24,0,24, - 0,16,0,120,64,191,192,231,128,9,7,14,11,1,3,221, - 128,247,128,99,0,65,0,99,0,247,128,221,128,8,13,13, - 9,0,0,247,98,98,118,52,52,126,24,126,24,24,24,126, - 1,13,13,3,1,0,128,128,128,128,128,0,0,0,128,128, - 128,128,128,8,16,16,10,1,253,60,102,102,112,56,124,142, - 199,227,113,62,28,14,102,102,60,5,2,2,5,0,10,216, - 216,13,13,26,15,1,0,15,128,48,96,64,16,71,144,136, - 136,144,8,144,8,144,8,136,136,71,16,64,16,48,96,15, - 128,5,8,8,5,0,5,96,144,16,112,144,232,0,248,8, - 7,7,10,1,1,17,51,102,204,102,51,17,9,5,10,11, - 1,2,255,128,255,128,1,128,1,128,1,128,5,2,2,6, - 0,3,248,248,13,13,26,15,1,0,15,128,48,96,64,16, - 95,16,136,136,136,136,143,8,137,8,136,136,92,208,64,16, - 48,96,15,128,5,2,2,5,0,10,248,248,5,5,5,7, - 1,8,112,136,136,136,112,8,11,11,10,1,0,24,24,24, - 255,255,24,24,24,0,255,255,5,8,8,6,0,5,112,152, - 24,16,32,32,64,248,5,8,8,6,0,5,112,136,24,112, - 24,8,136,112,4,3,3,4,0,10,48,96,128,9,13,26, - 9,255,252,231,0,99,0,99,0,99,0,99,0,99,0,99, - 0,119,0,123,128,64,0,64,0,96,0,96,0,7,17,17, - 8,1,252,62,116,244,244,244,244,244,116,20,20,20,20,20, - 20,20,20,20,2,2,2,4,1,4,192,192,4,5,5,6, - 1,252,32,32,16,176,112,3,8,8,6,1,5,64,192,64, - 64,64,64,64,224,5,8,8,6,0,5,112,216,136,136,216, - 112,0,248,8,7,7,10,1,1,136,204,102,51,102,204,136, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 68,64,76,192,233,64,27,64,50,64,39,224,96,64,64,64, - 11,13,26,13,1,0,64,128,193,128,65,0,67,0,70,0, - 69,192,78,96,232,96,24,64,48,128,32,128,97,0,67,224, - 13,13,26,13,255,0,112,32,136,96,24,64,112,192,25,128, - 9,16,139,48,114,80,6,208,12,144,9,248,24,16,16,16, - 6,13,13,8,1,252,48,48,0,16,16,48,96,96,192,204, - 140,196,120,13,17,34,14,1,0,24,0,12,0,2,0,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,0,192,1,128,2,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,17,34,14,1,0,2,0,7,0,13,128,0, - 0,2,0,7,0,7,0,5,0,13,128,9,128,25,192,16, - 192,31,192,48,224,32,96,96,112,240,248,13,17,34,14,1, - 0,12,128,31,128,19,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,13,16,32,14,1,0,13,128,13,128,0,0,2, - 0,7,0,7,0,5,0,13,128,9,128,25,192,16,192,31, - 192,48,224,32,96,96,112,240,248,13,18,36,14,1,0,6, - 0,9,0,9,0,6,0,0,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,15,13,26,17,1,0,15,252,7,140,5,132,5, - 128,13,128,9,136,25,248,31,136,17,128,49,128,33,130,97, - 134,247,254,11,17,34,13,1,252,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,4,0,2,0,22,0,14,0,9,17,34,12,1, - 0,48,0,24,0,4,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,17,34,12,1,0,3,0,6,0,8,0,0, - 0,255,128,97,128,96,128,96,0,96,0,97,0,127,0,97, - 0,96,0,96,0,96,128,97,128,255,128,9,17,34,12,1, - 0,8,0,28,0,54,0,0,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,16,32,12,1,0,54,0,54,0,0,0,255, - 128,97,128,96,128,96,0,96,0,97,0,127,0,97,0,96, - 0,96,0,96,128,97,128,255,128,6,17,17,6,255,0,192, - 96,16,0,60,24,24,24,24,24,24,24,24,24,24,24,60, - 6,17,17,6,1,0,12,24,32,0,240,96,96,96,96,96, - 96,96,96,96,96,96,240,5,17,17,6,1,0,32,112,216, - 0,240,96,96,96,96,96,96,96,96,96,96,96,240,5,16, - 16,6,1,0,216,216,0,240,96,96,96,96,96,96,96,96, - 96,96,96,240,12,13,26,13,0,0,127,128,49,192,48,96, - 48,96,48,48,48,48,252,48,48,48,48,48,48,96,48,96, - 49,192,127,128,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,224,112,96,32,112,32,120,32,92,32,76,32,78,32, - 71,32,67,160,65,224,64,224,64,96,224,32,12,17,34,14, - 1,0,48,0,24,0,4,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,0,192,1,128,2,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,17,34,14, - 1,0,4,0,14,0,27,0,0,0,15,0,48,192,96,96, - 96,96,192,48,192,48,192,48,192,48,192,48,96,96,96,96, - 48,192,15,0,12,17,34,14,1,0,12,128,31,128,19,0, - 0,0,15,0,48,192,96,96,96,96,192,48,192,48,192,48, - 192,48,192,48,96,96,96,96,48,192,15,0,12,16,32,14, - 1,0,27,0,27,0,0,0,15,0,48,192,96,96,96,96, - 192,48,192,48,192,48,192,48,192,48,96,96,96,96,48,192, - 15,0,8,7,7,10,1,1,195,102,60,24,60,102,195,12, - 15,30,14,1,255,0,48,15,96,48,192,96,224,97,160,195, - 48,195,48,198,48,204,48,204,48,88,96,112,96,48,192,111, - 0,192,0,11,17,34,14,2,0,48,0,24,0,4,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,17,34,14,2, - 0,0,192,1,128,2,0,0,0,240,224,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,96,64,112,192,57, - 128,31,0,11,17,34,14,2,0,4,0,14,0,27,0,0, - 0,240,224,96,64,96,64,96,64,96,64,96,64,96,64,96, - 64,96,64,96,64,112,192,57,128,31,0,11,16,32,14,2, - 0,27,0,27,0,0,0,240,224,96,64,96,64,96,64,96, - 64,96,64,96,64,96,64,96,64,96,64,112,192,57,128,31, - 0,12,17,34,14,1,0,0,192,1,128,2,0,0,0,240, - 240,112,96,48,192,24,128,25,0,15,0,6,0,6,0,6, - 0,6,0,6,0,6,0,15,0,9,13,26,10,1,0,240, - 0,96,0,96,0,127,0,99,128,97,128,97,128,97,128,99, - 0,126,0,96,0,96,0,240,0,8,13,13,9,0,0,28, - 50,99,99,102,110,124,102,99,99,107,111,238,7,13,13,9, - 1,0,192,96,16,0,120,200,204,28,108,204,204,252,102,7, - 13,13,9,1,0,12,24,32,0,120,200,204,28,108,204,204, - 252,102,7,13,13,9,1,0,16,56,108,0,120,200,204,28, - 108,204,204,252,102,7,13,13,9,1,0,100,252,152,0,120, - 200,204,28,108,204,204,252,102,7,12,12,9,1,0,108,108, - 0,120,200,204,28,108,204,204,252,102,7,14,14,9,1,0, - 48,72,72,48,0,120,200,204,28,108,204,204,252,102,11,9, - 18,12,0,0,123,192,206,96,204,32,31,224,108,0,204,0, - 204,0,254,96,99,192,7,13,13,8,0,252,60,102,192,192, - 192,192,192,102,60,16,8,88,56,7,13,13,8,0,0,192, - 96,16,0,60,102,194,254,192,192,192,102,60,7,13,13,8, - 0,0,6,12,16,0,60,102,194,254,192,192,192,102,60,7, - 13,13,8,0,0,16,56,108,0,60,102,194,254,192,192,192, - 102,60,7,12,12,8,0,0,108,108,0,60,102,194,254,192, - 192,192,102,60,6,13,13,5,254,0,192,96,16,0,24,56, - 24,24,24,24,24,24,60,6,13,13,5,0,0,12,24,32, - 0,96,224,96,96,96,96,96,96,240,5,13,13,5,0,0, - 32,112,216,0,96,224,96,96,96,96,96,96,240,5,12,12, - 5,0,0,216,216,0,96,224,96,96,96,96,96,96,240,8, - 13,13,9,0,0,96,54,56,76,62,102,195,195,195,195,195, - 102,60,9,13,26,10,0,0,50,0,126,0,76,0,0,0, - 102,0,239,0,115,0,99,0,99,0,99,0,99,0,99,0, - 243,128,8,13,13,9,0,0,48,24,4,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,0,6,12,16,0,60, - 102,195,195,195,195,195,102,60,8,13,13,9,0,0,16,56, - 108,0,60,102,195,195,195,195,195,102,60,8,13,13,9,0, - 0,50,126,76,0,60,102,195,195,195,195,195,102,60,8,12, - 12,9,0,0,108,108,0,60,102,195,195,195,195,195,102,60, - 8,8,8,10,1,1,24,24,0,255,255,0,24,24,8,11, - 11,9,0,255,1,63,102,207,203,219,211,243,102,124,192,9, - 13,26,10,0,0,96,0,48,0,8,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,6,0,12,0,16,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 13,26,10,0,0,8,0,28,0,54,0,0,0,231,0,99, - 0,99,0,99,0,99,0,99,0,99,0,119,0,59,128,9, - 12,24,10,0,0,54,0,54,0,0,0,231,0,99,0,99, - 0,99,0,99,0,99,0,99,0,119,0,59,128,8,17,17, - 8,255,252,3,6,8,0,243,99,114,50,54,28,28,12,8, - 24,16,240,224,8,17,17,9,0,252,96,224,96,96,110,119, - 99,99,99,99,99,118,124,96,96,96,240,8,16,16,9,0, - 252,54,54,0,243,99,114,50,54,28,28,12,8,24,16,240, - 224}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--20-140-100-100-P-96-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 13, '1' Height: 13 - Calculated Max Values w=18 h=17 x= 2 y=10 dx=18 dy= 0 ascent=14 len=39 - Font Bounding box w=22 h=29 x=-3 y=-7 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent =13 descent=-4 - X Font ascent =13 descent=-4 - Max Font ascent =14 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR14r[2156] U8G_FONT_SECTION("u8g_font_timR14r") = { - 0,22,29,253,249,13,2,131,6,16,32,127,252,14,252,13, - 252,0,0,0,5,0,1,2,13,13,4,1,0,192,192,192, - 192,192,192,64,64,64,0,0,192,192,6,4,4,8,1,9, - 204,204,204,136,12,11,22,10,255,1,12,192,12,192,12,192, - 127,240,25,128,25,128,25,128,255,224,51,0,51,0,51,0, - 7,16,16,9,1,254,16,124,214,210,208,240,120,60,28,22, - 22,150,214,124,16,16,13,13,26,15,1,0,56,48,111,224, - 196,64,196,128,205,128,251,0,114,112,6,216,13,136,9,136, - 25,152,49,240,32,224,12,13,26,14,1,0,28,0,50,0, - 50,0,50,0,52,0,25,224,56,192,109,128,207,0,199,0, - 199,128,237,240,120,224,2,4,4,4,1,9,192,192,192,128, - 5,17,17,7,1,252,24,48,96,96,64,192,192,192,192,192, - 192,192,64,96,96,48,24,5,17,17,7,1,252,192,96,48, - 48,16,24,24,24,24,24,24,24,16,48,48,96,192,7,7, - 7,9,1,6,16,214,84,56,214,146,16,8,8,8,10,1, - 1,24,24,24,255,255,24,24,24,3,5,5,4,0,253,96, - 96,32,96,192,5,2,2,6,0,3,248,248,2,2,2,4, - 1,0,192,192,7,17,17,5,255,252,2,2,6,4,12,12, - 8,24,24,16,48,48,32,96,96,64,192,8,13,13,9,1, - 0,60,102,102,195,195,195,195,195,195,195,102,102,60,6,13, - 13,9,2,0,48,112,240,48,48,48,48,48,48,48,48,120, - 252,7,13,13,9,1,0,60,126,206,134,6,6,12,12,24, - 48,98,254,254,7,13,13,9,1,0,124,206,134,6,12,56, - 60,14,6,6,6,204,248,8,13,13,9,0,0,2,6,14, - 14,22,38,70,70,255,255,6,6,6,7,13,13,9,1,0, - 126,124,192,192,240,60,12,14,6,6,12,220,240,8,13,13, - 9,1,0,7,28,48,96,96,252,198,195,195,195,227,118,60, - 8,13,13,9,1,0,127,255,130,6,4,12,12,8,24,24, - 16,48,48,8,13,13,9,1,0,60,102,194,230,124,56,60, - 110,199,195,195,102,60,8,13,13,9,1,0,60,110,198,195, - 195,195,227,127,54,6,12,56,224,2,9,9,5,1,0,192, - 192,0,0,0,0,0,192,192,3,12,12,5,0,253,96,96, - 0,0,0,0,0,96,96,32,96,192,9,9,18,11,1,0, - 1,128,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,128,9,5,10,11,1,2,255,128,255,128,0,0,255,128, - 255,128,9,9,18,11,1,0,192,0,112,0,28,0,7,0, - 1,128,7,0,28,0,112,0,192,0,6,13,13,8,1,0, - 120,140,196,204,12,24,24,48,32,32,0,48,48,14,16,32, - 17,1,253,7,224,14,48,56,24,48,8,99,236,103,228,198, - 100,204,100,204,204,204,200,205,216,103,112,96,0,48,0,28, - 48,7,224,13,13,26,14,1,0,2,0,7,0,7,0,5, - 0,13,128,9,128,25,192,16,192,31,192,48,224,32,96,96, - 112,240,248,10,13,26,13,2,0,255,0,99,128,97,128,97, - 128,97,128,99,0,127,128,97,192,96,192,96,192,96,192,97, - 128,255,0,11,13,26,13,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,0,192,0,192,0,96,0,96,96,56, - 192,15,0,11,13,26,14,2,0,255,0,99,128,96,192,96, - 192,96,96,96,96,96,96,96,96,96,96,96,192,96,192,99, - 128,255,0,9,13,26,12,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,128,97, - 128,255,128,9,13,26,11,1,0,255,128,97,128,96,128,96, - 0,96,0,97,0,127,0,97,0,96,0,96,0,96,0,96, - 0,240,0,12,13,26,14,1,0,15,32,48,224,96,96,96, - 32,192,0,192,0,192,240,192,96,192,96,96,96,96,96,57, - 192,15,0,12,13,26,14,1,0,240,240,96,96,96,96,96, - 96,96,96,96,96,127,224,96,96,96,96,96,96,96,96,96, - 96,240,240,4,13,13,6,1,0,240,96,96,96,96,96,96, - 96,96,96,96,96,240,6,13,13,7,0,0,60,24,24,24, - 24,24,24,24,24,24,24,216,240,12,13,26,14,1,0,243, - 224,97,128,99,0,102,0,108,0,120,0,120,0,124,0,110, - 0,103,0,99,128,97,192,240,240,10,13,26,12,1,0,240, - 0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96, - 0,96,0,96,64,96,192,255,192,14,13,26,17,1,0,224, - 28,112,56,112,56,120,120,88,88,88,216,92,216,76,152,77, - 152,71,24,71,24,66,24,226,60,12,13,26,14,1,0,224, - 112,96,32,112,32,120,32,92,32,76,32,78,32,71,32,67, - 160,65,224,64,224,64,96,224,32,12,13,26,14,1,0,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,9,13,26,11,1,0,255, - 0,99,128,97,128,97,128,97,128,99,0,126,0,96,0,96, - 0,96,0,96,0,96,0,240,0,12,17,34,14,1,252,15, - 0,48,192,96,96,96,96,192,48,192,48,192,48,192,48,192, - 48,96,96,96,96,48,192,15,0,6,0,3,0,1,192,0, - 240,11,13,26,13,1,0,255,0,99,128,97,128,97,128,97, - 128,99,0,126,0,110,0,102,0,99,0,97,128,96,192,240, - 224,8,13,13,11,2,0,58,70,194,192,224,120,60,14,7, - 3,131,198,184,10,13,26,12,1,0,255,192,204,192,140,64, - 12,0,12,0,12,0,12,0,12,0,12,0,12,0,12,0, - 12,0,30,0,11,13,26,14,2,0,240,224,96,64,96,64, - 96,64,96,64,96,64,96,64,96,64,96,64,96,64,112,192, - 57,128,31,0,13,13,26,14,0,0,248,120,112,48,48,32, - 56,32,24,96,24,64,28,64,12,192,14,128,6,128,7,128, - 3,0,3,0,18,13,39,18,0,0,249,227,192,112,193,128, - 48,193,0,56,225,0,24,99,0,24,226,0,24,226,0,29, - 166,0,13,52,0,15,60,0,14,56,0,6,24,0,6,24, - 0,12,13,26,14,1,0,240,112,112,96,56,192,25,128,13, - 0,14,0,6,0,15,0,27,0,17,128,49,192,96,224,240, - 240,12,13,26,14,1,0,240,240,112,96,48,192,24,128,25, - 0,15,0,6,0,6,0,6,0,6,0,6,0,6,0,15, - 0,10,13,26,12,1,0,127,192,97,192,65,128,3,128,7, - 0,6,0,14,0,28,0,56,0,48,0,112,64,224,192,255, - 192,4,16,16,6,2,253,240,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,240,5,13,13,5,0,0,128,128,192, - 64,96,96,32,48,48,16,24,8,8,4,16,16,6,0,253, - 240,48,48,48,48,48,48,48,48,48,48,48,48,48,48,240, - 7,7,7,9,1,6,16,56,40,108,68,198,130,9,2,4, - 9,0,252,255,128,255,128,4,3,3,4,0,10,192,96,16, - 7,9,9,9,1,0,120,200,204,28,108,204,204,252,102,8, - 13,13,9,0,0,96,224,96,96,110,119,99,99,99,99,99, - 102,92,7,9,9,8,0,0,60,102,192,192,192,192,192,102, - 60,8,13,13,9,0,0,6,14,6,6,62,102,198,198,198, - 198,198,102,63,7,9,9,8,0,0,60,102,194,254,192,192, - 192,102,60,6,13,13,6,0,0,28,52,32,96,248,96,96, - 96,96,96,96,96,240,8,13,13,9,0,252,62,204,196,196, - 204,120,64,124,127,131,193,226,124,9,13,26,10,0,0,96, - 0,224,0,96,0,96,0,102,0,111,0,115,0,99,0,99, - 0,99,0,99,0,99,0,243,128,4,13,13,5,0,0,96, - 96,0,0,96,224,96,96,96,96,96,96,240,4,17,17,5, - 255,252,48,48,0,0,48,112,48,48,48,48,48,48,48,48, - 48,224,192,10,13,26,9,0,0,96,0,224,0,96,0,96, - 0,103,0,98,0,100,0,104,0,120,0,108,0,110,0,103, - 0,227,192,4,13,13,5,0,0,96,224,96,96,96,96,96, - 96,96,96,96,96,240,14,9,18,15,0,0,102,48,239,120, - 115,152,99,24,99,24,99,24,99,24,99,24,247,188,9,9, - 18,10,0,0,102,0,239,0,115,0,99,0,99,0,99,0, - 99,0,99,0,243,128,8,9,9,9,0,0,60,102,195,195, - 195,195,195,102,60,8,13,13,9,0,252,110,247,99,99,99, - 99,99,118,124,96,96,96,240,8,13,13,9,0,252,62,102, - 198,198,198,198,198,102,62,6,6,6,15,6,9,9,7,0, - 0,108,236,112,96,96,96,96,96,240,5,9,9,7,1,0, - 104,152,200,224,112,56,152,200,176,6,11,11,6,0,0,32, - 96,248,96,96,96,96,96,96,116,56,9,9,18,10,0,0, - 231,0,99,0,99,0,99,0,99,0,99,0,99,0,119,0, - 59,128,9,9,18,9,255,0,243,128,99,0,98,0,50,0, - 54,0,20,0,28,0,8,0,8,0,13,9,18,14,0,0, - 231,56,102,48,98,96,54,96,55,96,29,64,29,192,8,128, - 8,128,9,9,18,9,0,0,225,128,99,0,54,0,28,0, - 28,0,28,0,54,0,99,0,195,128,8,13,13,9,0,252, - 243,99,114,50,54,28,28,12,8,24,16,240,224,7,9,9, - 8,0,0,254,206,140,24,48,48,98,230,254,7,17,17,9, - 1,252,14,24,48,48,48,48,48,96,192,96,48,48,48,48, - 48,24,14,1,13,13,3,1,0,128,128,128,128,128,128,128, - 128,128,128,128,128,128,7,17,17,9,1,252,224,48,24,24, - 24,24,24,12,6,12,24,24,24,24,24,48,224,9,4,8, - 11,1,3,48,0,121,128,207,0,6,0,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=14 dx=23 dy= 0 ascent=23 len=69 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =23 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18[6850] U8G_FONT_SECTION("u8g_font_timR18") = { - 0,29,37,252,247,17,4,9,8,241,32,255,250,23,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,0,0,0,6,0,1,3,17, - 17,8,3,251,96,96,0,0,0,64,64,64,64,224,224,224, - 224,224,224,224,64,9,16,32,12,1,254,2,0,2,0,15, - 0,51,128,101,128,196,0,196,0,200,0,200,0,200,0,208, - 0,112,128,113,0,62,0,64,0,64,0,10,17,34,12,1, - 0,15,0,25,128,49,128,48,0,48,0,48,0,48,0,252, - 0,48,0,48,0,48,0,48,0,48,0,48,0,120,64,190, - 192,231,128,11,12,24,13,1,3,192,96,238,224,127,192,49, - 128,96,192,96,192,96,192,96,192,49,128,127,192,238,224,192, - 96,14,17,34,14,0,0,248,124,112,48,48,32,24,96,24, - 64,12,192,12,128,7,128,3,0,31,224,3,0,31,224,3, - 0,3,0,3,0,3,0,15,192,2,17,17,6,2,0,192, - 192,192,192,192,192,192,0,0,0,192,192,192,192,192,192,192, - 8,20,20,12,2,253,28,38,70,96,112,56,60,78,135,131, - 195,226,116,56,28,14,6,98,100,56,6,2,2,8,1,14, - 204,204,17,17,51,19,1,0,7,240,0,28,28,0,48,6, - 0,97,227,0,71,49,0,196,25,128,140,0,128,136,0,128, - 136,0,128,136,0,128,140,0,128,196,25,128,71,113,0,97, - 195,0,48,6,0,28,28,0,7,240,0,7,9,9,8,0, - 8,120,204,12,124,204,204,118,0,254,9,10,20,13,1,1, - 8,128,25,128,51,0,102,0,204,0,204,0,102,0,51,0, - 25,128,8,128,11,7,14,15,2,1,255,224,255,224,0,96, - 0,96,0,96,0,96,0,96,6,2,2,8,0,5,252,252, - 17,17,51,19,1,0,7,240,0,28,28,0,48,6,0,103, - 227,0,66,49,0,194,17,128,130,16,128,130,48,128,131,224, - 128,130,64,128,130,32,128,194,49,128,71,25,0,96,3,0, - 48,6,0,28,28,0,7,240,0,7,2,2,8,1,14,254, - 254,7,7,7,9,1,10,56,68,130,130,130,68,56,10,11, - 22,14,2,0,12,0,12,0,12,0,255,192,255,192,12,0, - 12,0,12,0,0,0,255,192,255,192,6,10,10,7,0,7, - 56,76,140,12,8,16,48,32,68,252,6,10,10,7,0,7, - 56,76,140,8,48,8,12,140,136,112,5,4,4,8,2,13, - 24,56,112,192,11,17,34,13,1,251,225,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,113,192,126,192, - 92,224,64,0,192,0,192,0,224,0,64,0,9,21,42,11, - 1,252,31,128,57,0,121,0,121,0,249,0,249,0,249,0, - 121,0,121,0,57,0,25,0,9,0,9,0,9,0,9,0, - 9,0,9,0,9,0,9,0,9,0,9,0,2,3,3,6, - 2,5,192,192,192,6,6,6,8,1,250,16,48,60,12,204, - 120,5,10,10,7,1,7,32,96,160,32,32,32,32,32,32, - 248,7,9,9,8,0,8,56,68,198,198,198,68,56,0,254, - 9,10,20,12,2,1,136,0,204,0,102,0,51,0,25,128, - 25,128,51,0,102,0,204,0,136,0,16,17,34,18,1,0, - 32,24,96,24,160,48,32,96,32,96,32,192,32,192,33,132, - 35,12,251,28,6,20,6,36,12,100,24,68,24,255,48,4, - 48,4,15,17,34,18,1,0,32,24,96,24,160,48,32,96, - 32,96,32,192,32,192,33,156,35,38,251,70,6,6,6,4, - 12,8,24,24,24,16,48,34,48,126,17,17,51,18,0,0, - 56,12,0,76,12,0,140,24,0,8,48,0,48,48,0,8, - 96,0,12,96,0,140,194,0,137,134,0,113,142,0,3,10, - 0,3,18,0,6,50,0,12,34,0,12,127,128,24,2,0, - 24,2,0,8,17,17,11,1,251,12,12,0,0,8,8,24, - 24,56,48,112,224,195,195,193,99,62,17,22,66,17,0,0, - 12,0,0,14,0,0,7,0,0,1,128,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,22,66,17,0,0,0,24,0,0,56,0,0,112, - 0,0,192,0,0,0,0,0,128,0,1,192,0,1,192,0, - 1,96,0,2,96,0,2,48,0,6,48,0,4,48,0,4, - 24,0,12,24,0,15,248,0,8,12,0,24,12,0,16,12, - 0,16,6,0,48,6,0,252,31,128,17,22,66,17,0,0, - 1,128,0,3,192,0,6,96,0,4,32,0,0,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,17,21,63,17,0,0,3,32,0,7,224,0,4,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,17,21,63,17,0,0,6,96,0, - 6,96,0,0,0,0,0,0,0,0,128,0,1,192,0,1, - 192,0,1,96,0,2,96,0,2,48,0,6,48,0,4,48, - 0,4,24,0,12,24,0,15,248,0,8,12,0,24,12,0, - 16,12,0,16,6,0,48,6,0,252,31,128,17,23,69,17, - 0,0,1,192,0,2,32,0,2,32,0,2,32,0,1,192, - 0,0,0,0,0,128,0,1,192,0,1,192,0,1,96,0, - 2,96,0,2,48,0,6,48,0,4,48,0,4,24,0,12, - 24,0,15,248,0,8,12,0,24,12,0,16,12,0,16,6, - 0,48,6,0,252,31,128,21,17,51,22,0,0,3,255,240, - 0,240,48,1,176,16,1,48,16,3,48,0,2,48,0,6, - 48,64,4,48,64,4,63,192,12,48,64,15,240,64,8,48, - 0,24,48,0,16,48,8,48,48,8,32,48,24,248,255,248, - 14,23,46,16,1,250,7,228,28,60,56,12,96,4,96,4, - 192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,0, - 96,4,56,8,30,56,7,224,1,0,3,0,3,192,0,192, - 12,192,7,128,13,22,44,15,1,0,24,0,28,0,14,0, - 3,0,0,0,255,240,48,48,48,16,48,16,48,0,48,0, - 48,64,48,64,63,192,48,64,48,64,48,0,48,0,48,8, - 48,8,48,24,255,248,13,22,44,15,1,0,0,96,0,224, - 1,192,3,0,0,0,255,240,48,48,48,16,48,16,48,0, - 48,0,48,64,48,64,63,192,48,64,48,64,48,0,48,0, - 48,8,48,8,48,24,255,248,13,22,44,15,1,0,6,0, - 15,0,25,128,16,128,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,13,21,42,15,1,0, - 25,128,25,128,0,0,0,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,64,48,64,63,192,48,64,48,64,48,0, - 48,0,48,8,48,8,48,24,255,248,7,22,22,8,0,0, - 192,224,112,24,0,126,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,24,126,7,22,22,8,1,0,6,14,28,48, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,6,22,22,8,1,0,48,120,204,132,0,252,48,48, - 48,48,48,48,48,48,48,48,48,48,48,48,48,252,6,21, - 21,8,1,0,204,204,0,0,252,48,48,48,48,48,48,48, - 48,48,48,48,48,48,48,48,252,16,17,34,17,0,0,127, - 224,24,56,24,28,24,6,24,6,24,3,24,3,255,3,255, - 3,24,3,24,3,24,3,24,6,24,6,24,28,24,56,127, - 224,16,21,42,18,1,0,3,32,7,224,4,192,0,0,240, - 31,48,4,56,4,56,4,44,4,38,4,38,4,35,4,33, - 132,33,132,32,196,32,100,32,100,32,52,32,28,32,28,248, - 12,16,22,44,18,1,0,12,0,14,0,7,0,1,128,0, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,16,22,44,18,1,0,0,48,0,112,0,224,1, - 128,0,0,7,224,28,56,56,28,96,6,96,6,192,3,192, - 3,192,3,192,3,192,3,192,3,192,3,96,6,96,6,56, - 28,28,56,7,224,16,22,44,18,1,0,1,128,3,192,6, - 96,4,32,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,3,32,7, - 224,4,192,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,16,21,42,18,1,0,6,96,6, - 96,0,0,0,0,7,224,28,56,56,28,96,6,96,6,192, - 3,192,3,192,3,192,3,192,3,192,3,192,3,96,6,96, - 6,56,28,28,56,7,224,10,9,18,12,1,1,192,192,97, - 128,51,0,30,0,12,0,30,0,51,0,97,128,192,192,16, - 19,38,18,1,255,0,4,7,228,28,56,56,28,96,38,96, - 70,192,67,192,131,192,131,193,3,193,3,194,3,194,3,100, - 6,104,6,56,28,28,56,39,224,32,0,16,22,44,18,1, - 0,6,0,7,0,3,128,0,192,0,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,16,22,44, - 18,1,0,0,48,0,112,0,224,1,128,0,0,252,31,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,8,24,8,28,48,7,224,16, - 22,44,18,1,0,1,128,3,192,6,96,4,32,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,21,42,18,1,0,6,96,6,96,0,0,0,0,252, - 31,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,4,48,4,48,8,24,8,28,48,7, - 224,16,22,44,18,1,0,0,48,0,112,0,224,1,128,0, - 0,252,63,48,12,56,8,24,24,28,16,12,48,6,32,6, - 96,3,64,3,192,1,128,1,128,1,128,1,128,1,128,1, - 128,7,224,13,17,34,15,1,0,252,0,48,0,48,0,48, - 0,63,192,48,112,48,48,48,24,48,24,48,24,48,48,48, - 112,63,192,48,0,48,0,48,0,252,0,10,17,34,12,1, - 0,30,0,51,0,97,128,97,128,97,128,97,128,99,0,108, - 0,103,0,99,128,97,128,97,192,96,192,96,192,108,192,108, - 128,231,0,9,17,34,11,1,0,96,0,112,0,56,0,12, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,17,34,11,1, - 0,3,0,7,0,14,0,24,0,0,0,62,0,103,0,99, - 0,3,0,15,0,59,0,99,0,195,0,195,0,199,0,251, - 0,113,128,9,17,34,11,1,0,12,0,30,0,51,0,33, - 0,0,0,62,0,103,0,99,0,3,0,15,0,59,0,99, - 0,195,0,195,0,199,0,251,0,113,128,9,16,32,11,1, - 0,50,0,126,0,76,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,9,16,32,11,1,0,102,0,102,0,0,0,0,0,62, - 0,103,0,99,0,3,0,15,0,59,0,99,0,195,0,195, - 0,199,0,251,0,113,128,9,18,36,11,1,0,28,0,34, - 0,34,0,34,0,28,0,0,0,62,0,103,0,99,0,3, - 0,15,0,59,0,99,0,195,0,195,0,199,0,251,0,113, - 128,14,12,24,16,1,0,60,240,103,152,99,12,3,12,15, - 252,59,0,99,0,195,0,195,0,199,132,251,248,112,240,9, - 18,36,11,1,250,31,0,99,128,65,128,192,0,192,0,192, - 0,192,0,192,0,224,0,112,128,127,0,30,0,8,0,24, - 0,30,0,6,0,102,0,60,0,9,17,34,11,1,0,96, - 0,112,0,56,0,12,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,17,34,11,1,0,3,0,7,0,14,0,24,0,0, - 0,30,0,99,0,65,128,193,128,255,128,192,0,192,0,192, - 0,224,0,112,128,127,0,30,0,9,17,34,11,1,0,12, - 0,30,0,51,0,33,0,0,0,30,0,99,0,65,128,193, - 128,255,128,192,0,192,0,192,0,224,0,112,128,127,0,30, - 0,9,16,32,11,1,0,51,0,51,0,0,0,0,0,30, - 0,99,0,65,128,193,128,255,128,192,0,192,0,192,0,224, - 0,112,128,127,0,30,0,6,17,17,6,255,0,192,224,112, - 24,0,56,24,24,24,24,24,24,24,24,24,24,60,5,17, - 17,6,1,0,24,56,112,192,0,96,224,96,96,96,96,96, - 96,96,96,96,240,6,17,17,6,0,0,48,120,204,132,0, - 48,112,48,48,48,48,48,48,48,48,48,120,6,16,16,6, - 0,0,204,204,0,0,112,48,48,48,48,48,48,48,48,48, - 48,120,10,17,34,12,1,0,192,0,113,128,30,0,60,0, - 198,0,31,0,115,128,97,128,192,192,192,192,192,192,192,192, - 192,192,192,192,97,128,115,128,30,0,11,16,32,13,1,0, - 25,0,63,0,38,0,0,0,103,0,239,128,113,192,96,192, - 96,192,96,192,96,192,96,192,96,192,96,192,96,192,241,224, - 10,17,34,12,1,0,96,0,112,0,56,0,12,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,17,34,12,1,0,3,0, - 7,0,14,0,24,0,0,0,30,0,115,128,97,128,192,192, - 192,192,192,192,192,192,192,192,192,192,97,128,115,128,30,0, - 10,17,34,12,1,0,12,0,30,0,51,0,33,0,0,0, - 30,0,115,128,97,128,192,192,192,192,192,192,192,192,192,192, - 192,192,97,128,115,128,30,0,10,16,32,12,1,0,25,0, - 63,0,38,0,0,0,30,0,115,128,97,128,192,192,192,192, - 192,192,192,192,192,192,192,192,97,128,115,128,30,0,10,16, - 32,12,1,0,51,0,51,0,0,0,0,0,30,0,115,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,97,128, - 115,128,30,0,10,10,20,12,1,1,12,0,12,0,0,0, - 0,0,255,192,255,192,0,0,0,0,12,0,12,0,10,14, - 28,12,1,255,0,192,30,192,115,128,99,128,198,192,196,192, - 204,192,200,192,216,192,208,192,113,128,115,128,222,0,192,0, - 11,17,34,13,1,0,96,0,112,0,56,0,12,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,17,34,13,1,0,1,128, - 3,128,7,0,12,0,0,0,225,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,96,192,113,192,62,192,28,224, - 11,17,34,13,1,0,12,0,30,0,51,0,33,0,0,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,16,32,13,1,0,51,0, - 51,0,0,0,0,0,225,192,96,192,96,192,96,192,96,192, - 96,192,96,192,96,192,96,192,113,192,62,192,28,224,11,22, - 44,11,0,251,1,128,3,128,7,0,12,0,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,12,0,8,0,24,0,240,0,224,0, - 10,22,44,12,1,251,96,0,224,0,96,0,96,0,96,0, - 110,0,115,128,97,128,96,192,96,192,96,192,96,192,96,192, - 96,192,97,128,115,128,110,0,96,0,96,0,96,0,96,0, - 240,0,11,21,42,11,0,251,51,0,51,0,0,0,0,0, - 241,224,96,192,96,128,48,128,48,128,49,0,25,0,25,0, - 26,0,14,0,14,0,4,0,12,0,8,0,24,0,240,0, - 224,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--25-180-100-100-P-125-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 17, '1' Height: 17 - Calculated Max Values w=23 h=23 x= 3 y=13 dx=23 dy= 0 ascent=19 len=60 - Font Bounding box w=29 h=37 x=-4 y=-9 - Calculated Min Values x=-2 y=-6 dx= 0 dy= 0 - Pure Font ascent =17 descent=-6 - X Font ascent =17 descent=-6 - Max Font ascent =19 descent=-6 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR18r[3208] U8G_FONT_SECTION("u8g_font_timR18r") = { - 0,29,37,252,247,17,4,9,8,241,32,127,250,19,250,17, - 250,0,0,0,6,0,1,3,17,17,8,3,0,64,224,224, - 224,224,224,224,224,64,64,64,64,0,0,0,192,192,6,5, - 5,10,1,12,204,204,204,204,136,11,17,34,13,1,0,8, - 128,8,128,8,128,8,128,8,128,127,224,127,224,17,0,17, - 0,17,0,255,192,255,192,34,0,34,0,34,0,34,0,34, - 0,11,21,42,12,0,254,4,0,4,0,63,0,101,192,196, - 192,196,64,196,64,228,0,124,0,30,0,7,128,5,192,4, - 224,4,96,132,96,132,96,196,192,229,192,63,0,4,0,4, - 0,17,16,48,19,1,0,30,12,0,51,252,0,97,24,0, - 193,16,0,193,48,0,194,96,0,228,64,0,120,192,0,1, - 143,0,1,25,128,3,48,128,6,96,128,4,96,128,12,97, - 0,24,114,0,16,60,0,17,17,51,19,1,0,7,192,0, - 8,96,0,24,32,0,24,32,0,24,96,0,12,192,0,15, - 158,0,7,12,0,15,8,0,51,136,0,97,144,0,192,208, - 0,192,224,0,192,96,0,224,240,128,127,191,0,62,14,0, - 2,5,5,6,2,12,192,192,192,192,128,6,22,22,8,1, - 251,4,8,16,48,32,96,96,192,192,192,192,192,192,192,192, - 96,96,32,48,16,8,4,6,22,22,8,1,251,128,64,32, - 48,16,24,24,12,12,12,12,12,12,12,12,24,24,16,48, - 32,64,128,9,9,18,12,2,8,28,0,28,0,201,128,235, - 128,28,0,235,128,201,128,28,0,28,0,12,12,24,12,0, - 0,6,0,6,0,6,0,6,0,6,0,255,240,255,240,6, - 0,6,0,6,0,6,0,6,0,3,5,5,7,2,253,192, - 224,32,96,192,6,2,2,8,0,5,252,252,2,2,2,6, - 2,0,192,192,9,21,42,7,254,252,1,128,1,128,1,0, - 3,0,3,0,2,0,6,0,6,0,4,0,12,0,12,0, - 8,0,24,0,24,0,16,0,48,0,48,0,96,0,96,0, - 64,0,192,0,10,17,34,12,1,0,30,0,51,0,97,128, - 97,128,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,225,192,97,128,97,128,51,0,30,0,8,17,17,12, - 2,0,8,24,120,24,24,24,24,24,24,24,24,24,24,24, - 24,24,255,10,17,34,12,1,0,28,0,127,0,67,128,129, - 128,129,128,1,128,1,128,3,0,3,0,6,0,4,0,12, - 0,24,0,48,0,96,64,255,192,255,128,9,17,34,12,1, - 0,28,0,126,0,71,0,131,0,131,0,6,0,12,0,30, - 0,7,0,3,128,1,128,1,128,1,128,1,0,195,0,230, - 0,120,0,10,17,34,12,1,0,3,0,7,0,7,0,11, - 0,27,0,19,0,51,0,35,0,99,0,67,0,195,0,255, - 192,255,192,3,0,3,0,3,0,3,0,10,17,34,12,1, - 0,31,192,31,128,32,0,32,0,96,0,120,0,126,0,15, - 128,3,128,1,192,0,192,0,192,0,192,0,192,193,128,227, - 128,126,0,10,17,34,12,1,0,3,192,14,0,24,0,48, - 0,112,0,96,0,238,0,243,128,193,128,192,192,192,192,192, - 192,192,192,224,192,97,128,123,128,30,0,10,17,34,12,1, - 0,127,192,255,192,192,192,129,128,1,128,1,0,3,0,3, - 0,2,0,6,0,6,0,4,0,12,0,12,0,12,0,24, - 0,24,0,10,17,34,12,1,0,30,0,51,0,97,128,97, - 128,97,128,115,0,62,0,30,0,63,0,99,128,65,192,192, - 192,192,192,192,192,225,128,115,128,30,0,10,17,34,12,1, - 0,30,0,119,128,97,128,193,192,192,192,192,192,192,192,192, - 192,97,192,115,192,29,128,1,128,3,128,3,0,6,0,28, - 0,240,0,2,11,11,6,2,0,192,192,0,0,0,0,0, - 0,0,192,192,3,14,14,7,2,253,192,192,0,0,0,0, - 0,0,0,192,224,32,96,192,11,11,22,14,1,0,0,96, - 1,192,7,0,28,0,112,0,192,0,112,0,28,0,7,0, - 1,192,0,96,9,5,10,13,2,3,255,128,255,128,0,0, - 255,128,255,128,11,11,22,13,1,0,192,0,112,0,28,0, - 7,0,1,192,0,96,1,192,7,0,28,0,112,0,192,0, - 8,17,17,11,2,0,124,198,131,195,195,7,14,12,28,24, - 24,16,16,0,0,48,48,18,20,60,22,2,253,3,248,0, - 15,14,0,28,3,0,56,1,128,112,0,128,96,236,192,225, - 252,64,195,140,64,195,12,64,198,12,64,198,24,64,198,24, - 192,198,24,128,198,57,128,99,123,0,97,222,0,48,0,0, - 24,0,0,14,12,0,3,240,0,17,17,51,17,0,0,0, - 128,0,1,192,0,1,192,0,1,96,0,2,96,0,2,48, - 0,6,48,0,4,48,0,4,24,0,12,24,0,15,248,0, - 8,12,0,24,12,0,16,12,0,16,6,0,48,6,0,252, - 31,128,14,17,34,16,1,0,255,192,48,112,48,48,48,24, - 48,24,48,24,48,48,48,64,63,224,48,56,48,24,48,12, - 48,12,48,12,48,24,48,120,255,224,14,17,34,16,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,0,192,0,192,0,96,0,96,4,56,8,30,56, - 7,224,15,17,34,17,1,0,255,192,48,112,48,56,48,12, - 48,12,48,6,48,6,48,6,48,6,48,6,48,6,48,6, - 48,12,48,12,48,56,48,112,255,192,13,17,34,15,1,0, - 255,240,48,48,48,16,48,16,48,0,48,0,48,64,48,64, - 63,192,48,64,48,64,48,0,48,0,48,8,48,8,48,24, - 255,248,12,17,34,14,1,0,255,240,48,48,48,16,48,16, - 48,0,48,0,48,32,48,32,63,224,48,32,48,32,48,0, - 48,0,48,0,48,0,48,0,252,0,16,17,34,18,1,0, - 7,228,28,60,56,12,96,4,96,4,192,0,192,0,192,0, - 192,0,192,63,192,12,192,12,96,12,96,12,56,28,30,56, - 7,224,17,17,51,19,1,0,252,31,128,48,6,0,48,6, - 0,48,6,0,48,6,0,48,6,0,48,6,0,48,6,0, - 63,254,0,48,6,0,48,6,0,48,6,0,48,6,0,48, - 6,0,48,6,0,48,6,0,252,31,128,6,17,17,8,1, - 0,252,48,48,48,48,48,48,48,48,48,48,48,48,48,48, - 48,252,9,17,34,11,1,0,31,128,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,198,0,204,0,120,0,16,17,34,17,1,0, - 252,126,48,24,48,48,48,96,48,192,49,128,51,0,62,0, - 63,0,51,128,49,192,48,224,48,112,48,56,48,28,48,14, - 252,31,13,17,34,14,1,0,252,0,48,0,48,0,48,0, - 48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0, - 48,0,48,8,48,8,48,24,255,248,21,17,51,22,1,0, - 240,0,248,48,0,224,56,1,96,56,1,96,44,2,96,44, - 2,96,38,2,96,38,4,96,35,4,96,35,8,96,33,136, - 96,33,136,96,32,208,96,32,208,96,32,96,96,32,96,96, - 248,97,248,16,17,34,18,1,0,240,31,48,4,56,4,56, - 4,44,4,38,4,38,4,35,4,33,132,33,132,32,196,32, - 100,32,100,32,52,32,28,32,28,248,12,16,17,34,18,1, - 0,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,13,17,34,15,1,0,255,192,48,112,48,48,48, - 24,48,24,48,24,48,48,48,112,63,192,48,0,48,0,48, - 0,48,0,48,0,48,0,48,0,252,0,16,22,44,18,1, - 251,7,224,28,56,56,28,96,6,96,6,192,3,192,3,192, - 3,192,3,192,3,192,3,192,3,96,6,96,6,56,28,28, - 56,7,224,1,192,0,224,0,112,0,56,0,15,15,17,34, - 16,1,0,255,192,48,112,48,48,48,24,48,24,48,24,48, - 48,48,112,63,192,51,128,49,128,48,192,48,96,48,112,48, - 56,48,28,252,30,11,17,34,13,1,0,30,64,99,192,192, - 192,192,64,192,64,224,0,120,0,30,0,15,128,3,192,0, - 224,0,96,128,96,128,96,192,192,241,128,158,0,14,17,34, - 16,1,0,255,252,195,12,131,4,131,4,3,0,3,0,3, - 0,3,0,3,0,3,0,3,0,3,0,3,0,3,0,3, - 0,3,0,15,192,16,17,34,18,1,0,252,31,48,4,48, - 4,48,4,48,4,48,4,48,4,48,4,48,4,48,4,48, - 4,48,4,48,4,48,8,24,8,28,48,7,224,17,17,51, - 17,0,0,252,31,128,48,6,0,48,4,0,24,12,0,24, - 8,0,24,8,0,12,24,0,12,16,0,6,48,0,6,32, - 0,6,32,0,3,96,0,3,64,0,3,192,0,1,128,0, - 1,128,0,1,128,0,23,17,51,23,0,0,252,126,126,48, - 24,24,48,24,16,24,24,16,24,24,48,24,44,32,12,44, - 32,12,44,96,6,76,96,6,76,64,6,70,64,3,70,192, - 3,70,128,3,135,128,1,131,128,1,131,0,1,131,0,18, - 17,51,18,0,0,126,15,128,28,6,0,14,12,0,6,8, - 0,3,16,0,1,160,0,1,192,0,0,192,0,0,224,0, - 1,112,0,2,56,0,6,24,0,4,12,0,8,14,0,24, - 7,0,48,3,128,252,15,192,16,17,34,18,1,0,252,63, - 48,12,56,8,24,24,28,16,12,48,6,32,6,96,3,64, - 3,192,1,128,1,128,1,128,1,128,1,128,1,128,7,224, - 13,17,34,15,1,0,255,240,192,112,128,224,128,192,1,192, - 3,128,3,0,7,0,6,0,14,0,28,0,24,0,56,0, - 48,8,112,8,224,24,255,248,5,21,21,8,2,252,248,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,248,7,17,17,7,0,0,192,192,64,96,96,32,48, - 48,16,24,24,8,12,12,4,6,6,5,21,21,8,1,252, - 248,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24, - 24,24,24,24,248,9,9,18,11,1,8,8,0,28,0,20, - 0,54,0,34,0,99,0,65,0,193,128,128,128,12,2,4, - 12,0,251,255,240,255,240,5,4,4,8,1,13,192,224,112, - 24,9,12,24,11,1,0,62,0,103,0,99,0,3,0,15, - 0,59,0,99,0,195,0,195,0,199,0,251,0,113,128,11, - 17,34,12,0,0,48,0,240,0,48,0,48,0,48,0,55, - 0,57,192,48,192,48,96,48,96,48,96,48,96,48,96,48, - 96,48,192,57,192,47,0,9,12,24,11,1,0,31,0,99, - 128,65,128,192,0,192,0,192,0,192,0,192,0,224,0,112, - 128,127,0,30,0,10,17,34,12,1,0,1,128,7,128,1, - 128,1,128,1,128,29,128,115,128,97,128,193,128,193,128,193, - 128,193,128,193,128,193,128,99,128,127,128,25,192,9,12,24, - 11,1,0,30,0,99,0,65,128,193,128,255,128,192,0,192, - 0,192,0,224,0,112,128,127,0,30,0,7,17,17,7,0, - 0,14,22,48,48,48,254,48,48,48,48,48,48,48,48,48, - 48,120,11,18,36,12,1,250,30,192,35,192,97,0,97,128, - 97,128,97,128,97,128,51,0,60,0,64,0,96,0,127,128, - 63,192,64,224,192,96,192,96,225,192,127,0,12,17,34,13, - 0,0,48,0,240,0,48,0,48,0,48,0,51,128,55,192, - 56,224,48,96,48,96,48,96,48,96,48,96,48,96,48,96, - 48,96,120,240,4,17,17,6,1,0,96,96,0,0,0,96, - 224,96,96,96,96,96,96,96,96,96,240,6,23,23,6,254, - 250,12,12,0,0,0,12,28,12,12,12,12,12,12,12,12, - 12,12,12,12,12,204,200,112,12,17,34,12,0,0,48,0, - 240,0,48,0,48,0,48,0,51,224,49,128,51,0,50,0, - 52,0,60,0,54,0,55,0,51,128,49,192,48,224,121,240, - 5,17,17,6,0,0,48,240,48,48,48,48,48,48,48,48, - 48,48,48,48,48,48,120,18,12,36,20,1,0,103,14,0, - 239,159,0,113,227,128,96,193,128,96,193,128,96,193,128,96, - 193,128,96,193,128,96,193,128,96,193,128,96,193,128,241,227, - 192,11,12,24,13,1,0,103,0,239,128,113,192,96,192,96, - 192,96,192,96,192,96,192,96,192,96,192,96,192,241,224,10, - 12,24,12,1,0,30,0,115,128,97,128,192,192,192,192,192, - 192,192,192,192,192,192,192,97,128,115,128,30,0,10,18,36, - 12,1,250,110,0,243,128,97,128,96,192,96,192,96,192,96, - 192,96,192,96,192,97,128,115,128,110,0,96,0,96,0,96, - 0,96,0,96,0,240,0,10,18,36,12,1,250,29,128,115, - 128,97,128,193,128,193,128,193,128,193,128,193,128,193,128,97, - 128,115,128,29,128,1,128,1,128,1,128,1,128,1,128,3, - 192,6,12,12,8,1,0,108,236,112,96,96,96,96,96,96, - 96,96,240,8,12,12,10,1,0,62,70,194,224,112,124,30, - 7,3,131,198,248,7,15,15,7,0,0,16,48,112,254,48, - 48,48,48,48,48,48,48,48,50,28,11,12,24,13,1,0, - 225,192,96,192,96,192,96,192,96,192,96,192,96,192,96,192, - 96,192,113,192,62,192,28,224,11,12,24,11,0,0,241,224, - 96,192,96,128,48,128,48,128,49,0,25,0,25,0,26,0, - 14,0,14,0,4,0,17,12,36,17,0,0,241,231,128,96, - 195,0,96,194,0,48,194,0,48,194,0,49,100,0,25,100, - 0,26,100,0,26,40,0,14,56,0,14,56,0,4,16,0, - 11,12,24,13,1,0,241,224,96,192,49,128,57,0,26,0, - 12,0,14,0,27,0,51,128,33,128,96,192,241,224,12,18, - 36,11,255,250,120,240,48,96,48,64,24,64,24,64,24,128, - 12,128,12,128,13,0,7,0,7,0,2,0,6,0,4,0, - 12,0,200,0,240,0,96,0,8,12,12,10,1,0,255,195, - 134,14,28,24,56,48,112,97,195,255,8,22,22,10,1,251, - 7,12,24,24,24,24,24,16,48,32,192,32,48,16,24,24, - 24,24,24,24,12,7,2,17,17,5,1,0,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,192,192,8,22,22, - 10,1,251,224,48,24,24,24,24,24,8,12,4,3,4,12, - 8,24,24,24,24,24,24,48,224,11,4,8,13,1,4,56, - 32,124,96,199,192,131,128,255}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=18 dx=32 dy= 0 ascent=30 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =30 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24[10419] U8G_FONT_SECTION("u8g_font_timR24") = { - 0,38,48,251,245,23,5,140,13,213,32,255,249,30,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,8, - 0,1,4,22,22,11,3,249,96,240,240,96,0,0,96,96, - 96,96,96,96,96,96,96,96,96,240,240,240,240,96,12,23, - 46,17,2,252,0,64,0,64,0,128,0,128,15,128,56,224, - 113,112,97,112,225,48,195,0,194,0,194,0,230,0,228,0, - 116,16,124,48,63,224,31,192,31,0,16,0,48,0,32,0, - 32,0,15,23,46,17,1,0,1,240,3,152,6,28,6,28, - 14,24,14,0,14,0,14,0,14,0,14,0,255,224,255,224, - 15,0,7,0,7,0,7,0,7,0,6,0,6,2,126,6, - 199,252,207,248,120,240,16,17,34,17,0,3,199,227,255,255, - 62,124,120,30,112,14,224,7,224,7,192,3,192,3,192,3, - 224,7,224,7,112,14,120,30,62,124,255,255,199,227,17,23, - 69,17,0,0,254,31,128,120,7,0,56,6,0,60,4,0, - 28,12,0,30,8,0,14,24,0,15,16,0,7,48,0,7, - 160,0,3,224,0,3,192,0,63,254,0,1,192,0,1,192, - 0,1,192,0,63,254,0,1,192,0,1,192,0,1,192,0, - 1,192,0,1,192,0,7,240,0,2,23,23,7,2,0,192, - 192,192,192,192,192,192,192,192,0,0,0,0,0,192,192,192, - 192,192,192,192,192,192,12,28,56,17,2,251,31,128,49,192, - 97,192,97,192,113,128,56,0,60,0,30,0,15,0,63,128, - 99,192,193,224,192,224,192,112,224,48,112,48,120,48,60,96, - 31,192,15,0,7,128,3,192,1,192,24,224,56,96,56,96, - 56,192,31,128,9,3,6,11,1,18,227,128,227,128,227,128, - 22,23,69,25,1,0,0,252,0,3,255,0,14,1,192,24, - 0,96,48,0,48,96,0,24,96,127,24,193,199,12,195,131, - 12,195,1,12,199,0,12,199,0,12,199,0,12,199,0,12, - 199,128,12,67,129,24,97,230,24,96,124,48,48,0,48,24, - 0,96,14,1,192,7,255,0,1,252,0,9,13,26,9,0, - 10,60,0,78,0,198,0,198,0,30,0,102,0,198,0,198, - 0,239,128,123,0,0,0,0,0,255,0,13,13,26,17,1, - 1,2,8,6,24,12,48,24,96,56,224,113,192,227,128,113, - 192,56,224,24,96,12,48,6,24,2,8,16,9,18,18,1, - 4,255,255,255,255,0,3,0,3,0,3,0,3,0,3,0, - 3,0,3,8,2,2,11,1,7,255,255,22,23,69,25,1, - 0,0,254,0,3,255,0,14,1,192,24,0,96,48,0,48, - 35,252,24,96,199,24,192,195,12,192,195,12,192,195,12,192, - 198,12,192,248,12,192,220,12,192,204,12,192,206,12,64,198, - 8,96,199,24,35,227,208,48,0,48,24,0,96,14,1,192, - 3,255,0,0,252,0,10,2,4,11,0,18,255,192,255,192, - 10,10,20,13,1,13,30,0,63,0,97,128,192,192,192,192, - 192,192,192,192,97,128,63,0,30,0,16,20,40,19,1,0, - 1,128,1,128,1,128,1,128,1,128,1,128,1,128,255,255, - 255,255,1,128,1,128,1,128,1,128,1,128,1,128,1,128, - 1,128,0,0,255,255,255,255,9,14,28,10,0,9,60,0, - 78,0,135,0,3,0,3,0,7,0,6,0,12,0,24,0, - 16,0,32,0,64,128,255,0,254,0,9,14,28,10,0,9, - 62,0,71,0,131,0,3,0,3,0,6,0,60,0,7,0, - 3,128,1,128,1,128,193,128,227,0,126,0,7,6,6,11, - 3,17,6,14,28,48,96,192,16,22,44,17,0,249,248,124, - 56,28,56,28,56,28,56,28,56,28,56,28,56,28,56,28, - 56,28,56,28,56,60,60,124,63,223,47,152,32,0,112,0, - 112,0,112,0,112,0,112,0,32,0,13,29,58,15,1,250, - 7,248,30,32,62,32,126,32,126,32,254,32,254,32,254,32, - 254,32,126,32,126,32,62,32,30,32,14,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,2,32,2,32,2,32, - 2,32,2,32,2,32,2,32,2,32,4,4,4,8,2,7, - 96,240,240,96,6,7,7,11,2,249,32,96,120,28,12,28, - 248,6,14,14,10,2,9,48,240,48,48,48,48,48,48,48, - 48,48,48,48,252,9,13,26,10,0,10,62,0,99,0,195, - 128,193,128,193,128,193,128,193,128,225,128,99,0,62,0,0, - 0,0,0,255,128,13,13,26,16,2,1,130,0,195,0,97, - 128,48,192,56,224,28,112,14,56,28,112,56,224,48,192,97, - 128,195,0,130,0,22,23,69,25,2,0,48,0,96,240,0, - 96,48,0,192,48,1,192,48,1,128,48,3,0,48,3,0, - 48,6,0,48,14,0,48,12,16,48,24,48,48,24,112,48, - 48,112,252,96,240,0,97,176,0,193,48,1,194,48,1,134, - 48,3,12,48,3,31,252,6,0,48,12,0,48,12,0,48, - 23,23,69,25,1,0,48,0,192,240,0,192,48,1,128,48, - 3,128,48,3,0,48,6,0,48,6,0,48,12,0,48,28, - 0,48,24,240,48,49,56,48,50,28,48,96,12,252,224,12, - 0,192,28,1,128,24,3,128,48,3,0,96,6,0,64,6, - 0,128,12,1,2,24,3,252,24,3,248,24,23,69,25,0, - 0,62,0,24,71,0,24,131,0,48,3,0,112,3,0,96, - 6,0,192,60,0,192,7,1,128,3,131,128,1,131,4,1, - 134,12,193,134,28,227,12,28,126,24,60,0,24,108,0,48, - 76,0,112,140,0,97,140,0,195,12,0,199,255,1,128,12, - 3,0,12,3,0,12,11,22,44,14,1,249,6,0,15,0, - 15,0,6,0,0,0,2,0,2,0,6,0,4,0,12,0, - 24,0,56,0,48,0,112,0,112,0,224,192,224,224,224,224, - 112,96,112,96,57,192,31,0,22,30,90,24,1,0,6,0, - 0,7,0,0,3,128,0,0,192,0,0,96,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,1, - 128,0,3,128,0,7,0,0,12,0,0,24,0,0,48,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,30,90,24,1,0,0,48, - 0,0,120,0,0,252,0,1,206,0,3,3,0,2,1,0, - 0,0,0,0,48,0,0,48,0,0,112,0,0,120,0,0, - 120,0,0,252,0,0,220,0,0,156,0,1,142,0,1,14, - 0,3,15,0,3,7,0,2,7,0,6,7,128,6,3,128, - 15,255,192,12,3,192,24,1,192,24,1,224,48,1,224,48, - 0,240,112,0,240,252,3,252,22,28,84,24,1,0,0,224, - 128,1,249,128,3,63,0,2,14,0,0,0,0,0,48,0, - 0,48,0,0,112,0,0,120,0,0,120,0,0,252,0,0, - 220,0,0,156,0,1,142,0,1,14,0,3,15,0,3,7, - 0,2,7,0,6,7,128,6,3,128,15,255,192,12,3,192, - 24,1,192,24,1,224,48,1,224,48,0,240,112,0,240,252, - 3,252,22,28,84,24,1,0,1,199,0,1,199,0,1,199, - 0,0,0,0,0,0,0,0,48,0,0,48,0,0,112,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,22,30,90,24, - 1,0,0,112,0,0,248,0,1,140,0,1,4,0,1,140, - 0,0,248,0,0,112,0,0,0,0,0,48,0,0,48,0, - 0,120,0,0,120,0,0,252,0,0,220,0,0,156,0,1, - 142,0,1,14,0,3,15,0,3,7,0,2,7,0,6,7, - 128,6,3,128,15,255,192,12,3,192,24,1,192,24,1,224, - 48,1,224,48,0,240,112,0,240,252,3,252,28,23,92,30, - 1,0,0,255,255,224,0,31,129,224,0,31,0,96,0,55, - 0,32,0,55,0,32,0,103,0,0,0,103,0,0,0,71, - 0,128,0,199,0,128,0,199,1,128,1,135,3,128,1,135, - 255,128,3,7,3,128,3,7,1,128,7,255,0,128,6,7, - 0,128,12,7,0,0,12,7,0,16,24,7,0,16,24,7, - 0,48,48,7,0,96,48,15,129,224,254,63,255,224,20,30, - 90,22,1,249,1,255,16,7,131,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,16,240,0,0,240, - 0,0,240,0,0,240,0,0,240,0,0,240,0,0,240,0, - 0,112,0,0,112,0,0,56,0,0,56,0,16,28,0,48, - 14,0,96,7,131,192,1,255,0,0,64,0,0,192,0,0, - 240,0,0,56,0,0,24,0,0,56,0,1,240,0,19,30, - 90,20,1,0,3,0,0,3,128,0,1,192,0,0,96,0, - 0,48,0,0,24,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,6,0,0,14,0,0,28,0,0,48,0, - 0,96,0,0,192,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,30, - 90,20,1,0,0,48,0,0,120,0,0,252,0,1,206,0, - 3,3,0,2,1,0,0,0,0,255,255,192,62,3,192,28, - 0,192,28,0,64,28,0,64,28,0,0,28,0,0,28,0, - 0,28,1,0,28,1,0,28,3,0,31,255,0,28,3,0, - 28,1,0,28,1,0,28,0,0,28,0,0,28,0,32,28, - 0,32,28,0,96,28,0,192,62,3,192,255,255,192,19,28, - 84,20,1,0,3,142,0,3,142,0,3,142,0,0,0,0, - 0,0,0,255,255,192,62,3,192,28,0,192,28,0,64,28, - 0,64,28,0,0,28,0,0,28,0,0,28,1,0,28,1, - 0,28,3,0,31,255,0,28,3,0,28,1,0,28,1,0, - 28,0,0,28,0,0,28,0,32,28,0,32,28,0,96,28, - 0,192,62,3,192,255,255,192,9,30,60,11,1,0,96,0, - 112,0,56,0,12,0,6,0,3,0,0,0,255,128,62,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,62,0,255,128,9,30,60,11,1,0, - 1,128,3,128,7,0,12,0,24,0,48,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,10,30,60,11, - 1,0,12,0,30,0,63,0,115,128,192,192,128,64,0,0, - 255,128,62,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,62,0,255,128,9,28, - 56,11,1,0,227,128,227,128,227,128,0,0,0,0,255,128, - 62,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,62,0,255,128,22,23,69,24, - 1,0,255,254,0,62,7,128,28,1,192,28,0,224,28,0, - 112,28,0,112,28,0,56,28,0,56,28,0,60,28,0,60, - 28,0,60,255,192,60,255,192,60,28,0,60,28,0,60,28, - 0,56,28,0,56,28,0,112,28,0,112,28,0,224,28,1, - 192,62,7,128,255,254,0,22,29,87,24,1,0,0,224,128, - 1,249,128,3,63,0,2,14,0,0,0,0,0,0,0,248, - 1,252,60,0,112,30,0,32,31,0,32,31,0,32,23,128, - 32,19,192,32,19,192,32,17,224,32,16,240,32,16,248,32, - 16,120,32,16,60,32,16,30,32,16,31,32,16,15,32,16, - 7,160,16,3,224,16,1,224,16,1,224,16,0,224,56,0, - 96,254,0,32,22,30,90,24,1,0,3,0,0,3,128,0, - 1,192,0,0,96,0,0,48,0,0,24,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,1,128,0,3,128, - 0,7,0,0,12,0,0,24,0,0,48,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,30,90,24,1,0,0,48,0,0,120,0, - 0,252,0,1,206,0,3,3,0,2,1,0,0,0,0,1, - 254,0,7,135,128,14,1,192,28,0,224,56,0,112,56,0, - 112,112,0,56,112,0,56,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,112,0,56,112, - 0,56,56,0,112,56,0,112,28,0,224,14,1,192,7,135, - 128,1,254,0,22,28,84,24,1,0,0,224,128,1,249,128, - 3,63,0,2,14,0,0,0,0,1,254,0,7,135,128,14, - 1,192,28,0,224,56,0,112,56,0,112,112,0,56,112,0, - 56,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 240,0,60,240,0,60,112,0,56,112,0,56,56,0,112,56, - 0,112,28,0,224,14,1,192,7,135,128,1,254,0,22,28, - 84,24,1,0,1,199,0,1,199,0,1,199,0,0,0,0, - 0,0,0,1,254,0,7,135,128,14,1,192,28,0,224,56, - 0,112,56,0,112,112,0,56,112,0,56,240,0,60,240,0, - 60,240,0,60,240,0,60,240,0,60,240,0,60,240,0,60, - 112,0,56,112,0,56,56,0,112,56,0,112,28,0,224,14, - 1,192,7,135,128,1,254,0,16,16,32,19,1,0,64,2, - 224,7,112,14,56,28,28,56,14,112,7,224,3,192,3,192, - 7,224,14,112,28,56,56,28,112,14,224,7,64,2,22,27, - 81,24,1,254,0,0,16,0,0,48,1,254,96,7,135,192, - 14,1,192,28,1,224,56,3,112,56,2,112,112,6,56,112, - 12,56,240,8,60,240,24,60,240,48,60,240,96,60,240,64, - 60,240,192,60,240,128,60,113,128,56,115,0,56,58,0,112, - 62,0,112,28,0,224,30,1,192,55,135,128,33,254,0,96, - 0,0,64,0,0,22,30,90,24,1,0,0,192,0,0,224, - 0,0,112,0,0,24,0,0,12,0,0,6,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,1,128,0,3, - 128,0,7,0,0,12,0,0,24,0,0,48,0,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,30,90,24,1,0,0,24,0,0,60, - 0,0,126,0,0,231,0,1,129,128,1,0,128,0,0,0, - 255,129,252,62,0,112,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,96,30,0,96,14,0,64,15,0,192,7, - 195,128,1,254,0,22,28,84,24,1,0,1,199,0,1,199, - 0,1,199,0,0,0,0,0,0,0,255,129,252,62,0,112, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,96, - 30,0,96,14,0,64,15,0,192,7,195,128,1,254,0,22, - 30,90,24,1,0,0,0,192,0,1,192,0,3,128,0,6, - 0,0,12,0,0,24,0,0,0,0,255,192,252,63,0,56, - 30,0,48,15,0,96,15,128,192,7,128,128,3,193,128,3, - 195,0,1,227,0,0,246,0,0,252,0,0,124,0,0,56, - 0,0,56,0,0,56,0,0,56,0,0,56,0,0,56,0, - 0,56,0,0,56,0,0,56,0,0,124,0,1,255,0,18, - 23,69,19,1,0,255,128,0,62,0,0,28,0,0,28,0, - 0,28,0,0,31,252,0,28,31,0,28,7,128,28,3,128, - 28,3,192,28,1,192,28,1,192,28,1,192,28,3,192,28, - 3,128,28,7,128,28,31,0,31,252,0,28,0,0,28,0, - 0,28,0,0,62,0,0,255,128,0,15,23,46,17,1,0, - 7,192,12,112,24,56,24,56,56,56,56,56,56,56,56,56, - 56,48,56,96,57,192,56,120,56,28,56,30,56,14,56,14, - 56,14,56,14,56,14,59,12,59,156,59,152,249,240,13,23, - 46,15,1,0,24,0,28,0,14,0,3,0,1,128,0,192, - 0,0,0,0,31,128,49,192,112,224,112,224,96,224,3,224, - 14,224,24,224,48,224,96,224,224,224,225,224,242,232,126,248, - 60,112,13,23,46,15,1,0,0,192,1,192,3,128,6,0, - 12,0,24,0,0,0,0,0,31,128,49,192,112,224,112,224, - 96,224,3,224,14,224,24,224,48,224,96,224,224,224,225,224, - 242,232,126,248,60,112,13,23,46,15,1,0,6,0,15,0, - 31,128,57,192,96,96,64,32,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 28,16,62,48,99,224,65,192,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,21,42,15,1,0, - 56,224,56,224,56,224,0,0,0,0,0,0,31,128,49,192, - 112,224,112,224,96,224,3,224,14,224,24,224,48,224,96,224, - 224,224,225,224,242,232,126,248,60,112,13,23,46,15,1,0, - 7,0,15,128,24,192,16,64,24,192,15,128,7,0,0,0, - 31,128,49,192,112,224,112,224,96,224,3,224,14,224,24,224, - 48,224,96,224,224,224,225,224,242,232,126,248,60,112,19,15, - 45,22,1,0,31,159,0,49,249,192,112,224,192,112,224,224, - 96,224,224,3,255,224,14,224,0,24,224,0,48,224,0,96, - 224,0,224,224,32,225,240,96,243,120,192,126,63,128,60,31, - 0,12,22,44,15,1,249,15,128,56,192,112,224,96,224,224, - 96,192,0,192,0,192,0,192,0,224,0,224,16,112,48,124, - 96,63,192,15,0,4,0,12,0,15,0,3,128,1,128,3, - 128,31,0,12,23,46,15,1,0,48,0,56,0,28,0,6, - 0,3,0,1,128,0,0,0,0,15,128,57,192,96,224,96, - 112,192,112,255,240,192,0,192,0,192,0,224,0,224,16,112, - 48,124,96,63,192,15,0,12,23,46,15,1,0,1,128,3, - 128,7,0,12,0,24,0,48,0,0,0,0,0,15,128,57, - 192,96,224,96,112,192,112,255,240,192,0,192,0,192,0,224, - 0,224,16,112,48,124,96,63,192,15,0,12,23,46,15,1, - 0,6,0,15,0,31,128,57,192,96,96,64,32,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,12, - 21,42,15,1,0,56,224,56,224,56,224,0,0,0,0,0, - 0,15,128,57,192,96,224,96,112,192,112,255,240,192,0,192, - 0,192,0,224,0,224,16,112,48,124,96,63,192,15,0,7, - 23,23,9,1,0,192,224,112,24,12,6,0,0,24,248,56, - 56,56,56,56,56,56,56,56,56,56,56,254,7,23,23,9, - 1,0,6,14,28,48,96,192,0,0,24,248,56,56,56,56, - 56,56,56,56,56,56,56,56,254,10,23,46,9,0,0,12, - 0,30,0,63,0,115,128,192,192,128,64,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,9,21,42, - 9,0,0,227,128,227,128,227,128,0,0,0,0,0,0,12, - 0,124,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,127,0,14,23,46, - 17,1,0,16,0,56,0,28,112,15,240,15,0,127,128,49, - 192,0,224,7,240,24,240,48,120,112,56,96,60,224,28,224, - 28,224,28,224,28,224,28,112,24,112,56,56,48,28,96,7, - 128,16,21,42,16,0,0,14,8,31,24,49,240,32,224,0, - 0,0,0,24,240,251,248,62,60,60,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,254, - 127,14,23,46,16,1,0,24,0,28,0,14,0,3,0,1, - 128,0,192,0,0,0,0,7,128,24,224,48,112,112,56,96, - 56,224,28,224,28,224,28,224,28,224,28,112,24,112,56,56, - 48,28,96,7,128,14,23,46,16,1,0,0,192,1,192,3, - 128,6,0,12,0,24,0,0,0,0,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,112, - 24,112,56,56,48,28,96,7,128,14,23,46,16,1,0,3, - 0,7,128,15,192,28,224,48,48,32,16,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,28,16,62,48,99,224,65,192,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,14,21,42, - 16,1,0,56,224,56,224,56,224,0,0,0,0,0,0,7, - 128,24,224,48,112,112,56,96,56,224,28,224,28,224,28,224, - 28,224,28,112,24,112,56,56,48,28,96,7,128,16,17,34, - 19,1,0,1,128,3,192,3,192,1,128,0,0,0,0,0, - 0,255,255,255,255,0,0,0,0,0,0,0,0,1,128,3, - 192,3,192,1,128,14,21,42,17,1,253,0,24,0,16,0, - 48,7,160,24,224,48,240,112,184,97,184,225,28,225,28,227, - 28,226,28,230,28,116,24,116,56,60,48,28,96,31,128,48, - 0,32,0,96,0,16,23,46,17,0,0,12,0,14,0,7, - 0,1,128,0,192,0,96,0,0,0,0,248,124,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,60,60,124,31,223,15,152,16,23,46,17,0,0,0, - 96,0,224,1,192,3,0,6,0,12,0,0,0,0,0,248, - 124,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,60,60,124,31,223,15,152,16,23,46, - 17,0,0,1,128,3,192,7,224,14,112,24,24,16,8,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,16,21,42,17,0,0,28,112,28,112,28,112,0,0,0, - 0,0,0,248,124,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,60,60,124,31,223,15, - 152,15,30,60,17,0,249,0,24,0,56,0,112,0,192,1, - 128,3,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,128,1,0,3,0,2,0,62,0,124, - 0,56,0,15,30,60,17,0,249,24,0,248,0,56,0,56, - 0,56,0,56,0,56,0,56,0,57,240,59,248,62,124,60, - 28,56,30,56,14,56,14,56,14,56,14,56,14,56,12,56, - 28,60,24,62,48,59,224,56,0,56,0,56,0,56,0,56, - 0,56,0,255,0,15,28,56,17,1,249,28,112,28,112,28, - 112,0,0,0,0,0,0,254,30,120,12,56,12,60,8,28, - 24,30,24,14,16,14,48,7,32,7,32,3,224,3,192,1, - 192,1,128,1,128,1,0,1,0,3,0,2,0,62,0,124, - 0,56,0}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 0, '1' Height: 23 - Calculated Max Values w=16 h=26 x= 4 y=10 dx=19 dy= 0 ascent=23 len=52 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x= 0 y=-3 dx= 0 dy= 0 - Pure Font ascent =23 descent= 0 - X Font ascent =23 descent= 0 - Max Font ascent =23 descent=-3 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24n[717] U8G_FONT_SECTION("u8g_font_timR24n") = { - 0,38,48,251,245,23,0,0,0,0,42,58,0,23,253,23, - 0,12,13,26,17,2,10,6,0,15,0,6,0,198,48,246, - 240,118,224,15,0,118,224,246,240,198,48,6,0,15,0,6, - 0,16,16,32,19,1,1,1,128,1,128,1,128,1,128,1, - 128,1,128,1,128,255,255,255,255,1,128,1,128,1,128,1, - 128,1,128,1,128,1,128,4,7,7,8,2,253,96,240,240, - 112,16,32,64,8,2,2,11,1,7,255,255,4,4,4,8, - 2,0,96,240,240,96,10,26,52,9,0,253,0,192,0,192, - 1,128,1,128,3,128,3,0,3,0,3,0,6,0,6,0, - 6,0,14,0,12,0,12,0,28,0,24,0,24,0,24,0, - 48,0,48,0,48,0,112,0,96,0,96,0,192,0,192,0, - 14,23,46,16,1,0,7,128,28,224,56,112,48,48,112,56, - 112,56,96,24,224,28,224,28,224,28,224,28,224,28,224,28, - 224,28,224,28,224,28,224,24,112,56,112,56,48,48,56,112, - 28,224,7,128,9,23,46,16,4,0,12,0,28,0,124,0, - 220,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,15,23,46,16,0,0,7,224, - 15,240,28,248,48,60,32,60,96,28,64,28,0,28,0,28, - 0,24,0,56,0,48,0,96,0,96,0,192,1,128,3,0, - 6,0,12,2,24,6,63,252,127,248,255,248,12,23,46,16, - 2,0,15,128,63,192,97,224,192,224,128,224,0,224,0,192, - 0,192,1,128,3,0,7,192,31,224,1,240,0,112,0,112, - 0,48,0,48,0,48,0,112,0,96,224,192,243,128,127,0, - 14,23,46,16,1,0,0,96,0,224,0,224,1,224,1,96, - 3,96,6,96,4,96,12,96,24,96,16,96,48,96,96,96, - 64,96,255,252,255,252,255,252,0,96,0,96,0,96,0,96, - 0,96,0,96,13,23,46,16,1,0,15,248,31,240,31,224, - 16,0,48,0,32,0,126,0,127,128,127,192,7,224,1,224, - 0,240,0,112,0,112,0,48,0,48,0,48,0,48,0,96, - 0,96,224,192,243,128,126,0,14,23,46,16,1,0,0,120, - 1,192,3,128,15,0,30,0,28,0,56,0,120,0,112,0, - 115,192,247,240,248,120,224,56,224,60,224,28,224,28,224,28, - 224,28,112,28,112,24,56,56,28,96,7,192,14,23,46,16, - 1,0,63,252,127,252,96,24,192,24,128,56,0,48,0,48, - 0,48,0,96,0,96,0,96,0,224,0,192,0,192,1,192, - 1,128,1,128,1,128,3,0,3,0,3,0,7,0,6,0, - 13,23,46,16,2,0,31,128,56,224,112,112,224,48,224,48, - 224,48,224,112,240,96,124,192,63,0,31,128,15,192,27,224, - 113,240,96,240,224,120,192,120,192,56,192,56,224,56,96,112, - 112,224,31,192,14,23,46,16,1,0,7,128,24,224,48,112, - 112,56,96,56,224,28,224,28,224,28,224,28,224,28,240,28, - 112,28,120,60,62,252,15,184,0,56,0,112,0,112,0,224, - 1,192,3,128,15,0,120,0,4,15,15,9,2,0,96,240, - 240,96,0,0,0,0,0,0,0,96,240,240,96}; -/* - Fontname: -Adobe-Times-Medium-R-Normal--34-240-100-100-P-170-ISO10646-1 - Copyright: Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved. - Capital A Height: 23, '1' Height: 23 - Calculated Max Values w=31 h=30 x= 4 y=17 dx=32 dy= 0 ascent=25 len=112 - Font Bounding box w=38 h=48 x=-5 y=-11 - Calculated Min Values x=-2 y=-7 dx= 0 dy= 0 - Pure Font ascent =23 descent=-7 - X Font ascent =23 descent=-7 - Max Font ascent =25 descent=-7 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_timR24r[4764] U8G_FONT_SECTION("u8g_font_timR24r") = { - 0,38,48,251,245,23,5,140,13,213,32,127,249,25,249,23, - 249,0,0,0,8,0,1,4,23,23,11,3,0,96,240,240, - 240,240,240,96,96,96,96,96,96,96,96,96,96,96,0,0, - 96,240,240,96,9,7,14,14,2,16,227,128,227,128,227,128, - 227,128,65,0,65,0,65,0,16,23,46,17,0,0,6,24, - 6,24,6,24,6,24,6,24,6,24,6,24,6,24,127,255, - 127,255,12,48,12,48,12,48,12,48,255,254,255,254,24,96, - 24,96,24,96,24,96,24,96,24,96,24,96,13,28,56,16, - 2,253,2,0,2,0,15,192,58,112,50,56,98,24,98,8, - 98,8,114,0,122,0,62,0,63,0,31,128,7,192,3,224, - 2,240,2,112,2,56,2,56,130,24,130,24,194,56,226,48, - 114,96,31,192,2,0,2,0,2,0,23,23,69,27,2,0, - 15,0,64,29,131,192,56,252,128,112,65,128,112,67,0,224, - 66,0,224,70,0,224,196,0,192,140,0,193,136,0,193,24, - 120,102,16,236,60,49,198,0,99,130,0,67,130,0,199,2, - 0,135,2,1,135,6,1,6,4,3,6,12,2,6,8,6, - 3,48,4,1,224,23,23,69,26,2,0,0,248,0,1,140, - 0,3,14,0,3,6,0,7,6,0,7,6,0,7,12,0, - 7,140,0,3,152,0,3,241,252,3,192,112,7,192,96,29, - 224,64,56,240,192,112,112,128,96,121,128,224,63,0,224,30, - 0,224,15,0,240,31,130,120,51,252,127,225,248,31,128,240, - 3,8,8,6,1,15,224,224,224,224,64,64,64,64,8,28, - 28,11,2,251,3,6,12,24,56,48,112,112,96,224,224,224, - 224,224,224,224,224,224,224,96,112,112,48,56,24,12,6,3, - 8,28,28,11,1,251,192,96,48,24,28,12,14,14,6,7, - 7,7,7,7,7,7,7,7,7,6,14,14,12,28,24,48, - 96,192,12,13,26,17,2,10,6,0,15,0,6,0,198,48, - 246,240,118,224,15,0,118,224,246,240,198,48,6,0,15,0, - 6,0,16,16,32,19,1,1,1,128,1,128,1,128,1,128, - 1,128,1,128,1,128,255,255,255,255,1,128,1,128,1,128, - 1,128,1,128,1,128,1,128,4,7,7,8,2,253,96,240, - 240,112,16,32,64,8,2,2,11,1,7,255,255,4,4,4, - 8,2,0,96,240,240,96,10,26,52,9,0,253,0,192,0, - 192,1,128,1,128,3,128,3,0,3,0,3,0,6,0,6, - 0,6,0,14,0,12,0,12,0,28,0,24,0,24,0,24, - 0,48,0,48,0,48,0,112,0,96,0,96,0,192,0,192, - 0,14,23,46,16,1,0,7,128,28,224,56,112,48,48,112, - 56,112,56,96,24,224,28,224,28,224,28,224,28,224,28,224, - 28,224,28,224,28,224,28,224,24,112,56,112,56,48,48,56, - 112,28,224,7,128,9,23,46,16,4,0,12,0,28,0,124, - 0,220,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,62,0,255,128,15,23,46,16,0,0,7, - 224,15,240,28,248,48,60,32,60,96,28,64,28,0,28,0, - 28,0,24,0,56,0,48,0,96,0,96,0,192,1,128,3, - 0,6,0,12,2,24,6,63,252,127,248,255,248,12,23,46, - 16,2,0,15,128,63,192,97,224,192,224,128,224,0,224,0, - 192,0,192,1,128,3,0,7,192,31,224,1,240,0,112,0, - 112,0,48,0,48,0,48,0,112,0,96,224,192,243,128,127, - 0,14,23,46,16,1,0,0,96,0,224,0,224,1,224,1, - 96,3,96,6,96,4,96,12,96,24,96,16,96,48,96,96, - 96,64,96,255,252,255,252,255,252,0,96,0,96,0,96,0, - 96,0,96,0,96,13,23,46,16,1,0,15,248,31,240,31, - 224,16,0,48,0,32,0,126,0,127,128,127,192,7,224,1, - 224,0,240,0,112,0,112,0,48,0,48,0,48,0,48,0, - 96,0,96,224,192,243,128,126,0,14,23,46,16,1,0,0, - 120,1,192,3,128,15,0,30,0,28,0,56,0,120,0,112, - 0,115,192,247,240,248,120,224,56,224,60,224,28,224,28,224, - 28,224,28,112,28,112,24,56,56,28,96,7,192,14,23,46, - 16,1,0,63,252,127,252,96,24,192,24,128,56,0,48,0, - 48,0,48,0,96,0,96,0,96,0,224,0,192,0,192,1, - 192,1,128,1,128,1,128,3,0,3,0,3,0,7,0,6, - 0,13,23,46,16,2,0,31,128,56,224,112,112,224,48,224, - 48,224,48,224,112,240,96,124,192,63,0,31,128,15,192,27, - 224,113,240,96,240,224,120,192,120,192,56,192,56,224,56,96, - 112,112,224,31,192,14,23,46,16,1,0,7,128,24,224,48, - 112,112,56,96,56,224,28,224,28,224,28,224,28,224,28,240, - 28,112,28,120,60,62,252,15,184,0,56,0,112,0,112,0, - 224,1,192,3,128,15,0,120,0,4,15,15,9,2,0,96, - 240,240,96,0,0,0,0,0,0,0,96,240,240,96,4,18, - 18,9,2,253,96,240,240,96,0,0,0,0,0,0,0,96, - 240,240,112,16,32,64,16,18,36,19,1,0,0,1,0,7, - 0,31,0,124,1,240,7,192,31,0,124,0,240,0,240,0, - 124,0,31,0,7,192,1,240,0,124,0,31,0,7,0,1, - 16,9,18,19,1,4,255,255,255,255,0,0,0,0,0,0, - 0,0,0,0,255,255,255,255,16,18,36,19,2,0,128,0, - 224,0,248,0,62,0,15,128,3,224,0,248,0,62,0,15, - 0,15,0,62,0,248,3,224,15,128,62,0,248,0,224,0, - 128,0,11,23,46,14,2,0,31,0,115,128,193,192,193,192, - 224,224,224,224,96,224,1,192,1,192,1,128,3,128,3,0, - 6,0,4,0,12,0,8,0,8,0,0,0,0,0,12,0, - 30,0,30,0,12,0,27,28,112,31,2,251,0,31,240,0, - 0,248,60,0,1,224,6,0,7,128,3,0,14,0,1,128, - 28,0,0,192,28,0,0,192,56,7,140,96,112,31,92,96, - 112,28,124,32,112,56,56,32,224,112,56,32,224,112,48,32, - 224,112,112,32,224,224,112,96,224,224,112,64,224,224,224,192, - 224,224,224,128,112,225,225,128,112,119,115,0,112,60,62,0, - 56,0,0,0,24,0,0,0,28,0,0,0,14,0,0,0, - 7,128,6,0,1,240,60,0,0,127,240,0,22,23,69,24, - 1,0,0,48,0,0,48,0,0,112,0,0,120,0,0,120, - 0,0,252,0,0,220,0,0,156,0,1,142,0,1,14,0, - 3,15,0,3,7,0,2,7,0,6,7,128,6,3,128,15, - 255,192,12,3,192,24,1,192,24,1,224,48,1,224,48,0, - 240,112,0,240,252,3,252,20,23,69,22,1,0,255,254,0, - 62,15,128,28,3,192,28,1,192,28,1,224,28,0,224,28, - 0,224,28,1,224,28,1,192,28,3,192,28,15,128,31,254, - 0,28,7,128,28,1,224,28,0,224,28,0,240,28,0,112, - 28,0,112,28,0,240,28,0,224,28,1,224,62,7,192,255, - 255,0,20,23,69,22,1,0,1,255,16,7,131,240,14,0, - 240,28,0,112,56,0,48,56,0,48,112,0,16,112,0,16, - 240,0,0,240,0,0,240,0,0,240,0,0,240,0,0,240, - 0,0,240,0,0,112,0,0,112,0,0,56,0,0,56,0, - 16,28,0,48,14,0,96,7,131,192,1,255,0,22,23,69, - 24,1,0,255,254,0,62,7,128,28,1,192,28,0,224,28, - 0,112,28,0,112,28,0,56,28,0,56,28,0,60,28,0, - 60,28,0,60,28,0,60,28,0,60,28,0,60,28,0,60, - 28,0,56,28,0,56,28,0,112,28,0,112,28,0,224,28, - 1,192,62,7,128,255,254,0,19,23,69,20,1,0,255,255, - 192,62,3,192,28,0,192,28,0,64,28,0,64,28,0,0, - 28,0,0,28,0,0,28,1,0,28,1,0,28,3,0,31, - 255,0,28,3,0,28,1,0,28,1,0,28,0,0,28,0, - 0,28,0,32,28,0,32,28,0,96,28,0,192,62,3,192, - 255,255,192,17,23,69,18,1,0,255,255,128,62,7,128,28, - 1,128,28,0,128,28,0,128,28,0,0,28,0,0,28,0, - 0,28,2,0,28,2,0,28,6,0,31,254,0,28,6,0, - 28,2,0,28,2,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,62,0,0,255,128,0,22,23, - 69,24,1,0,1,255,48,7,135,240,14,0,240,28,0,112, - 56,0,48,56,0,48,112,0,16,112,0,0,240,0,0,240, - 0,0,240,0,0,240,3,252,240,0,248,240,0,112,240,0, - 112,112,0,112,112,0,112,56,0,112,56,0,112,28,0,112, - 14,0,112,7,129,224,1,255,128,22,23,69,24,1,0,255, - 135,252,62,1,240,28,0,224,28,0,224,28,0,224,28,0, - 224,28,0,224,28,0,224,28,0,224,28,0,224,28,0,224, - 31,255,224,28,0,224,28,0,224,28,0,224,28,0,224,28, - 0,224,28,0,224,28,0,224,28,0,224,28,0,224,62,1, - 240,255,135,252,9,23,46,11,1,0,255,128,62,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0, - 28,0,28,0,62,0,255,128,12,23,46,13,1,0,31,240, - 7,192,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,3,128,3,128,3,128,3,128,3,128,3,128, - 3,128,3,128,195,128,227,0,231,0,124,0,23,23,69,24, - 1,0,255,199,248,62,1,224,28,1,128,28,3,0,28,6, - 0,28,12,0,28,24,0,28,48,0,28,96,0,28,192,0, - 31,192,0,31,224,0,31,240,0,30,120,0,28,60,0,28, - 30,0,28,15,0,28,7,128,28,3,192,28,1,224,28,0, - 240,62,0,248,255,199,254,19,23,69,20,1,0,255,128,0, - 62,0,0,28,0,0,28,0,0,28,0,0,28,0,0,28, - 0,0,28,0,0,28,0,0,28,0,0,28,0,0,28,0, - 0,28,0,0,28,0,0,28,0,0,28,0,0,28,0,0, - 28,0,32,28,0,32,28,0,96,28,0,192,62,3,192,255, - 255,192,28,23,92,30,1,0,252,0,7,240,62,0,7,192, - 30,0,15,128,31,0,15,128,31,0,11,128,23,0,27,128, - 23,128,27,128,19,128,51,128,19,192,51,128,19,192,35,128, - 17,224,99,128,17,224,99,128,16,224,195,128,16,240,195,128, - 16,112,131,128,16,121,131,128,16,121,3,128,16,61,3,128, - 16,63,3,128,16,30,3,128,16,30,3,128,56,12,7,192, - 254,12,31,240,22,23,69,24,1,0,248,1,252,60,0,112, - 30,0,32,31,0,32,31,0,32,23,128,32,19,192,32,19, - 192,32,17,224,32,16,240,32,16,248,32,16,120,32,16,60, - 32,16,30,32,16,31,32,16,15,32,16,7,160,16,3,224, - 16,1,224,16,1,224,16,0,224,56,0,96,254,0,32,22, - 23,69,24,1,0,1,254,0,7,135,128,14,1,192,28,0, - 224,56,0,112,56,0,112,112,0,56,112,0,56,240,0,60, - 240,0,60,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,112,0,56,112,0,56,56,0,112,56,0,112,28,0, - 224,14,1,192,7,135,128,1,254,0,17,23,69,18,1,0, - 255,248,0,60,62,0,28,15,0,28,7,0,28,7,128,28, - 3,128,28,3,128,28,3,128,28,7,128,28,7,0,28,15, - 0,28,62,0,31,240,0,28,0,0,28,0,0,28,0,0, - 28,0,0,28,0,0,28,0,0,28,0,0,28,0,0,62, - 0,0,255,128,0,22,29,87,24,1,250,1,254,0,7,135, - 128,14,1,192,28,0,224,56,0,112,56,0,112,112,0,56, - 112,0,56,240,0,60,240,0,60,240,0,60,240,0,60,240, - 0,60,240,0,60,240,0,60,112,0,56,112,0,56,56,0, - 112,56,0,112,28,0,224,14,1,192,7,135,128,1,254,0, - 0,124,0,0,62,0,0,31,0,0,15,128,0,3,224,0, - 0,124,21,23,69,22,1,0,255,248,0,60,62,0,28,15, - 0,28,7,128,28,7,128,28,3,128,28,3,128,28,3,128, - 28,7,128,28,7,0,28,30,0,31,248,0,28,240,0,28, - 120,0,28,60,0,28,60,0,28,30,0,28,15,0,28,15, - 128,28,7,128,28,3,192,62,1,224,255,129,248,15,23,46, - 18,1,0,7,228,28,60,56,28,112,12,112,4,112,6,120, - 0,124,0,62,0,31,128,15,224,7,240,1,248,0,124,0, - 62,0,30,128,14,128,14,192,14,224,12,112,28,124,120,103, - 240,19,23,69,20,1,0,255,255,224,240,225,224,192,224,96, - 192,224,96,128,224,32,128,224,32,0,224,0,0,224,0,0, - 224,0,0,224,0,0,224,0,0,224,0,0,224,0,0,224, - 0,0,224,0,0,224,0,0,224,0,0,224,0,0,224,0, - 0,224,0,0,224,0,1,240,0,7,252,0,22,23,69,24, - 1,0,255,129,252,62,0,112,28,0,32,28,0,32,28,0, - 32,28,0,32,28,0,32,28,0,32,28,0,32,28,0,32, - 28,0,32,28,0,32,28,0,32,28,0,32,28,0,32,28, - 0,32,28,0,32,28,0,32,30,0,96,14,0,64,15,0, - 192,7,195,128,1,254,0,22,23,69,23,1,0,255,1,252, - 124,0,112,60,0,96,30,0,64,30,0,192,14,0,192,15, - 0,128,15,1,128,7,1,128,7,129,0,3,131,0,3,195, - 0,3,194,0,1,198,0,1,230,0,0,228,0,0,236,0, - 0,124,0,0,120,0,0,120,0,0,56,0,0,48,0,0, - 16,0,31,23,92,32,1,0,255,63,224,254,124,15,128,120, - 60,7,0,48,28,7,128,48,30,7,128,96,30,3,128,96, - 14,3,192,96,15,3,192,192,7,3,224,192,7,135,224,192, - 7,134,225,128,3,132,241,128,3,204,241,128,3,204,115,0, - 1,216,123,0,1,216,59,0,1,248,62,0,0,240,62,0, - 0,240,28,0,0,224,28,0,0,96,28,0,0,96,8,0, - 0,64,8,0,22,23,69,24,1,0,255,195,252,63,0,240, - 31,0,224,15,0,192,7,129,128,7,131,0,3,198,0,1, - 230,0,1,236,0,0,248,0,0,120,0,0,120,0,0,124, - 0,0,222,0,1,158,0,1,143,0,3,15,128,6,7,128, - 14,3,192,12,3,224,24,1,224,56,1,240,254,7,252,22, - 23,69,24,1,0,255,192,252,63,0,56,30,0,48,15,0, - 96,15,128,192,7,128,128,3,193,128,3,195,0,1,227,0, - 0,246,0,0,252,0,0,124,0,0,56,0,0,56,0,0, - 56,0,0,56,0,0,56,0,0,56,0,0,56,0,0,56, - 0,0,56,0,0,124,0,1,255,0,19,23,69,20,1,0, - 63,255,224,56,3,192,96,7,128,96,7,128,64,15,0,64, - 30,0,0,30,0,0,60,0,0,120,0,0,120,0,0,240, - 0,1,224,0,1,224,0,3,192,0,3,192,0,7,128,0, - 15,0,0,15,0,32,30,0,32,60,0,96,60,0,96,120, - 1,192,255,255,192,7,28,28,11,3,251,254,240,224,224,224, - 224,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,224,224,224,224,240,254,13,23,46,9,254,0,192,0,224, - 0,96,0,112,0,48,0,56,0,24,0,28,0,12,0,14, - 0,6,0,7,0,3,0,3,128,1,128,1,192,0,192,0, - 224,0,96,0,112,0,48,0,56,0,24,7,28,28,11,1, - 251,254,30,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,30,254,13,13,26, - 16,1,10,7,0,7,0,15,128,13,128,24,192,24,192,48, - 96,48,96,112,112,96,48,224,56,192,24,192,24,17,2,6, - 17,0,251,255,255,128,255,255,128,7,6,6,11,1,17,192, - 224,112,24,12,6,13,15,30,15,1,0,31,128,49,192,112, - 224,112,224,96,224,3,224,14,224,24,224,48,224,96,224,224, - 224,225,224,242,232,126,248,60,112,15,23,46,16,0,0,24, - 0,248,0,56,0,56,0,56,0,56,0,56,0,56,0,57, - 240,59,248,60,124,56,28,56,30,56,14,56,14,56,14,56, - 14,56,14,56,12,56,28,56,24,60,112,15,224,12,15,30, - 15,1,0,15,128,56,192,112,224,96,224,224,96,192,0,192, - 0,192,0,192,0,224,0,224,16,112,48,124,96,63,192,31, - 0,15,23,46,16,1,0,0,24,0,248,0,56,0,56,0, - 56,0,56,0,56,0,56,15,184,24,248,48,120,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,190,15,48,12,15,30,15,1,0,15,128,57,192,96, - 224,96,112,192,112,255,240,192,0,192,0,192,0,224,0,224, - 16,112,48,124,96,63,192,15,0,12,23,46,11,0,0,3, - 224,6,112,12,112,12,48,28,0,28,0,28,0,28,0,255, - 192,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28, - 0,28,0,28,0,28,0,28,0,62,0,255,128,14,22,44, - 16,1,249,15,192,24,252,48,124,112,48,112,48,112,48,112, - 48,56,112,28,224,15,128,24,0,48,0,120,0,127,224,63, - 248,31,252,96,12,192,12,192,28,240,56,127,224,31,128,16, - 23,46,16,0,0,24,0,248,0,56,0,56,0,56,0,56, - 0,56,0,56,0,57,240,59,248,62,60,60,28,56,28,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,254,127,7,23,23,9,1,0,56,56,56,0,0,0,0, - 0,56,248,56,56,56,56,56,56,56,56,56,56,56,56,254, - 8,30,30,9,255,249,7,7,7,0,0,0,0,0,3,31, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 6,198,236,120,16,23,46,16,0,0,24,0,248,0,56,0, - 56,0,56,0,56,0,56,0,56,0,56,254,56,112,56,96, - 56,192,57,128,63,0,62,0,63,0,59,128,57,192,56,224, - 56,240,56,120,56,60,254,127,7,23,23,9,1,0,24,248, - 56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56, - 56,56,56,56,254,25,15,60,26,0,0,24,240,120,0,251, - 249,252,0,62,63,30,0,60,30,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,56,28,14,0,56,28,14,0,56,28,14,0,56, - 28,14,0,254,127,63,128,16,15,30,16,0,0,24,240,251, - 248,60,60,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,28,56,28,56,28,254,127,14,15,30,16,1, - 0,7,128,24,224,48,112,112,56,96,56,224,28,224,28,224, - 28,224,28,224,28,112,24,112,56,56,48,28,96,7,128,15, - 22,44,17,0,249,25,224,251,248,60,124,56,28,56,30,56, - 14,56,14,56,14,56,14,56,14,56,12,56,28,60,24,62, - 112,59,192,56,0,56,0,56,0,56,0,56,0,56,0,255, - 0,15,22,44,17,1,249,15,200,28,120,48,56,112,56,96, - 56,224,56,224,56,224,56,224,56,224,56,240,56,112,120,120, - 248,63,184,31,56,0,56,0,56,0,56,0,56,0,56,0, - 56,1,254,10,15,30,11,1,0,25,128,251,192,63,192,60, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,0,56,0,254,0,10,15,30,13,1,0,62,128,99, - 128,193,128,192,128,224,128,240,0,124,0,63,0,15,128,3, - 192,129,192,128,192,192,192,225,128,191,0,9,19,38,9,0, - 0,8,0,8,0,24,0,56,0,255,0,56,0,56,0,56, - 0,56,0,56,0,56,0,56,0,56,0,56,0,56,0,56, - 0,56,128,63,0,28,0,16,15,30,17,0,0,248,124,56, - 28,56,28,56,28,56,28,56,28,56,28,56,28,56,28,56, - 28,56,28,56,60,60,92,31,223,15,140,15,15,30,17,1, - 0,254,62,120,12,56,8,60,24,28,24,28,16,14,48,14, - 32,7,96,7,64,7,192,3,192,3,128,1,128,1,0,21, - 15,45,24,1,0,253,252,120,112,112,48,112,112,48,56,48, - 32,56,56,96,24,56,64,28,120,64,28,92,192,12,204,128, - 14,143,128,15,143,0,7,7,0,7,7,0,3,6,0,2, - 2,0,14,15,30,17,1,0,252,248,56,96,60,192,28,128, - 30,128,15,0,7,0,7,128,15,128,11,192,25,224,16,224, - 48,112,96,120,240,252,15,22,44,17,1,249,254,30,120,12, - 56,12,60,8,28,24,30,24,14,16,14,48,7,32,7,32, - 3,224,3,192,1,192,1,128,1,128,1,0,1,0,3,0, - 2,0,62,0,124,0,56,0,13,15,30,15,1,0,127,240, - 96,240,64,224,65,224,3,192,3,128,7,128,7,0,14,0, - 30,0,28,8,56,8,120,8,112,24,255,240,8,28,28,16, - 4,251,15,28,56,56,56,56,56,56,56,56,56,56,56,48, - 224,48,56,56,56,56,56,56,56,56,56,24,28,15,2,23, - 23,7,2,0,192,192,192,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,192,192,192,192,8,28,28,16,4, - 251,240,56,28,28,28,28,28,28,28,28,28,28,28,12,7, - 12,28,28,28,28,28,28,28,28,28,24,56,240,16,4,8, - 18,1,7,62,3,127,135,225,254,192,124,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=11 h=13 x= 1 y=10 dx=12 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssb[2656] U8G_FONT_SECTION("u8g_font_tpssb") = { - 0,11,17,0,252,9,1,205,3,159,32,255,252,13,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,2,9,9,3,0,0,192,192,0,192,192,192,192, - 192,192,5,7,7,7,1,0,32,112,168,160,168,112,32,6, - 9,9,7,0,0,192,192,248,192,192,192,204,204,252,5,5, - 5,7,1,1,136,112,80,112,136,6,9,9,8,1,0,204, - 204,120,48,48,120,48,120,48,2,9,9,4,1,0,192,192, - 192,0,0,0,192,192,192,8,10,10,10,1,0,124,192,126, - 195,126,3,3,3,195,62,5,1,1,7,1,3,216,9,7, - 14,11,1,0,62,0,65,0,221,128,209,128,221,128,65,0, - 62,0,7,8,8,9,1,0,120,204,204,204,204,126,0,254, - 7,3,3,9,1,2,102,204,102,5,3,3,7,1,1,248, - 248,24,255,9,7,14,11,1,0,62,0,65,0,221,128,209, - 128,209,128,65,0,62,0,5,1,1,6,0,6,248,3,3, - 3,5,1,2,224,160,224,5,7,7,7,1,0,32,32,248, - 32,32,0,248,255,255,255,255,255,255,255,255,255,7,3,3, - 9,1,2,204,102,204,255,255,255,255,6,12,12,7,0,0, - 96,48,0,120,204,204,252,204,204,204,204,204,6,12,12,7, - 0,0,24,48,0,120,204,204,252,204,204,204,204,204,6,12, - 12,7,0,0,48,72,0,120,204,204,252,204,204,204,204,204, - 6,12,12,7,0,0,232,184,0,120,204,204,252,204,204,204, - 204,204,6,11,11,7,0,0,72,0,120,204,204,252,204,204, - 204,204,204,6,13,13,7,0,0,48,72,48,0,120,204,204, - 252,204,204,204,204,204,11,9,18,12,0,0,127,224,206,0, - 206,0,255,192,206,0,206,0,206,0,206,0,207,224,6,11, - 11,7,0,254,120,204,192,192,192,192,192,204,120,48,96,6, - 12,12,7,0,0,96,48,0,252,192,192,248,192,192,192,192, - 252,6,12,12,7,0,0,24,48,0,252,192,192,248,192,192, - 192,192,252,6,12,12,7,0,0,48,72,0,252,192,192,248, - 192,192,192,192,252,6,11,11,7,0,0,204,0,252,192,192, - 248,192,192,192,192,252,3,12,12,4,0,0,192,96,0,96, - 96,96,96,96,96,96,96,96,3,12,12,4,0,0,96,192, - 0,192,192,192,192,192,192,192,192,192,4,12,12,5,0,0, - 96,144,0,96,96,96,96,96,96,96,96,96,6,11,11,7, - 0,0,204,0,48,48,48,48,48,48,48,48,48,6,9,9, - 7,0,0,248,204,204,236,204,204,204,204,248,6,12,12,7, - 0,0,232,184,0,204,236,252,220,204,204,204,204,204,6,12, - 12,7,0,0,96,48,0,120,204,204,204,204,204,204,204,120, - 6,12,12,7,0,0,24,48,0,120,204,204,204,204,204,204, - 204,120,6,12,12,7,0,0,48,72,0,120,204,204,204,204, - 204,204,204,120,6,12,12,7,0,0,232,184,0,120,204,204, - 204,204,204,204,204,120,6,11,11,7,0,0,204,0,120,204, - 204,204,204,204,204,204,120,3,3,3,6,1,2,160,64,160, - 6,9,9,7,0,0,120,204,220,220,236,236,236,204,120,6, - 12,12,7,0,0,96,48,0,204,204,204,204,204,204,204,204, - 120,6,12,12,7,0,0,24,48,0,204,204,204,204,204,204, - 204,204,120,6,12,12,7,0,0,48,72,0,204,204,204,204, - 204,204,204,204,120,6,11,11,7,0,0,204,0,204,204,204, - 204,204,204,204,204,120,6,12,12,7,0,0,24,48,0,204, - 204,120,48,48,48,48,48,48,7,9,9,8,0,0,192,192, - 252,198,252,192,192,192,192,7,11,11,8,0,254,252,198,220, - 198,198,198,220,192,192,192,192,6,9,9,7,0,0,96,48, - 0,120,204,204,204,204,124,6,9,9,7,0,0,24,48,0, - 120,204,204,204,204,124,6,9,9,7,0,0,48,72,0,120, - 204,204,204,204,124,6,9,9,7,0,0,232,184,0,120,204, - 204,204,204,124,6,8,8,7,0,0,204,0,120,204,204,204, - 204,124,6,10,10,7,0,0,48,72,48,0,120,204,204,204, - 204,124,9,6,12,11,1,0,127,128,136,128,143,128,136,0, - 136,128,127,128,6,8,8,7,0,254,120,204,192,192,204,120, - 48,96,6,9,9,7,0,0,96,48,0,120,204,252,192,204, - 120,6,9,9,7,0,0,24,48,0,120,204,252,192,204,120, - 6,9,9,7,0,0,48,72,0,120,204,252,192,204,120,6, - 8,8,7,0,0,204,0,120,204,252,192,204,120,3,12,12, - 4,0,0,192,96,0,96,96,96,96,96,96,96,96,96,3, - 12,12,4,0,0,96,192,0,192,192,192,192,192,192,192,192, - 192,4,12,12,5,0,0,96,144,0,96,96,96,96,96,96, - 96,96,96,6,11,11,7,0,0,204,0,48,48,48,48,48, - 48,48,48,48,6,9,9,7,0,0,12,60,12,124,204,204, - 204,204,124,6,9,9,7,0,0,232,184,0,248,236,204,204, - 204,204,6,9,9,7,0,0,96,48,0,120,204,204,204,204, - 120,6,9,9,7,0,0,24,48,0,120,204,204,204,204,120, - 6,9,9,7,0,0,48,72,0,120,204,204,204,204,120,6, - 9,9,7,0,0,232,184,0,120,204,204,204,204,120,6,8, - 8,7,0,0,204,0,120,204,204,204,204,120,6,6,6,7, - 0,1,48,0,252,252,0,48,6,6,6,7,0,0,120,220, - 220,236,236,120,6,9,9,7,0,0,96,48,0,204,204,204, - 204,204,120,6,9,9,7,0,0,24,48,0,204,204,204,204, - 204,120,6,9,9,7,0,0,48,72,0,204,204,204,204,204, - 120,6,8,8,7,0,0,204,0,204,204,204,204,204,120,6, - 13,13,7,0,252,24,48,0,204,204,204,204,204,124,12,12, - 204,120,6,6,6,7,0,0,192,248,204,248,192,192,6,12, - 12,7,0,252,204,0,204,204,204,204,204,124,12,12,204,120 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 6 h= 9 x= 1 y= 3 dx= 8 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbn[240] U8G_FONT_SECTION("u8g_font_tpssbn") = { - 0,11,17,0,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,6,6, - 6,8,1,1,48,48,252,252,48,48,3,2,2,5,1,255, - 96,192,5,2,2,7,1,3,248,248,2,1,1,4,1,0, - 192,6,9,9,8,1,0,12,24,24,48,48,48,96,96,192, - 6,9,9,7,0,0,120,204,204,204,204,204,204,204,120,6, - 9,9,7,0,0,48,112,240,48,48,48,48,48,252,6,9, - 9,7,0,0,120,204,204,12,24,48,96,192,252,6,9,9, - 7,0,0,120,204,12,56,12,12,12,204,120,6,9,9,7, - 0,0,12,204,204,252,12,12,12,12,12,6,9,9,7,0, - 0,252,192,192,248,12,12,12,204,120,6,9,9,7,0,0, - 120,204,192,248,204,204,204,204,120,6,9,9,7,0,0,252, - 12,24,48,96,96,96,96,96,6,9,9,7,0,0,120,204, - 204,120,204,204,204,204,120,6,9,9,7,0,0,120,204,204, - 204,124,12,12,204,120,2,4,4,4,1,0,192,0,0,192 - }; -/* - Fontname: -FreeType-Teachers Pet Sans Serif Bold-Medium-R-Normal--8-80-72-72-P-61-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w=10 h=13 x= 1 y=10 dx=12 dy= 0 ascent=12 len=18 - Font Bounding box w=11 h=17 x= 0 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssbr[1346] U8G_FONT_SECTION("u8g_font_tpssbr") = { - 0,11,17,0,252,9,1,205,3,159,32,127,252,12,252,9, - 252,0,0,0,4,0,0,2,9,9,4,1,0,192,192,192, - 192,192,192,0,192,192,5,2,2,7,1,7,216,216,5,5, - 5,7,1,0,80,248,80,248,80,7,9,9,9,1,0,124, - 146,144,124,18,18,146,146,124,8,9,9,10,1,0,198,204, - 12,24,24,24,48,51,99,9,9,18,11,1,0,124,0,198, - 0,198,0,124,0,198,0,198,0,198,0,199,128,62,0,2, - 2,2,4,1,7,192,192,5,9,9,7,1,0,24,48,96, - 96,224,96,96,48,24,5,9,9,7,1,0,192,96,48,48, - 56,48,48,96,192,5,7,7,7,1,1,32,168,112,32,112, - 168,32,6,6,6,8,1,1,48,48,252,252,48,48,3,2, - 2,5,1,255,96,192,5,2,2,7,1,3,248,248,2,1, - 1,4,1,0,192,6,9,9,8,1,0,12,24,24,48,48, - 48,96,96,192,6,9,9,7,0,0,120,204,204,204,204,204, - 204,204,120,6,9,9,7,0,0,48,112,240,48,48,48,48, - 48,252,6,9,9,7,0,0,120,204,204,12,24,48,96,192, - 252,6,9,9,7,0,0,120,204,12,56,12,12,12,204,120, - 6,9,9,7,0,0,12,204,204,252,12,12,12,12,12,6, - 9,9,7,0,0,252,192,192,248,12,12,12,204,120,6,9, - 9,7,0,0,120,204,192,248,204,204,204,204,120,6,9,9, - 7,0,0,252,12,24,48,96,96,96,96,96,6,9,9,7, - 0,0,120,204,204,120,204,204,204,204,120,6,9,9,7,0, - 0,120,204,204,204,124,12,12,204,120,2,4,4,4,1,0, - 192,0,0,192,3,5,5,5,1,255,96,0,0,96,192,6, - 9,9,8,1,0,12,24,48,96,192,96,48,24,12,6,5, - 5,8,1,1,252,252,0,252,252,6,9,9,8,1,0,192, - 96,48,24,12,24,48,96,192,6,9,9,8,1,0,120,204, - 12,24,48,48,0,48,48,10,8,16,12,1,0,63,0,64, - 128,204,192,210,192,210,128,205,0,64,64,63,128,6,9,9, - 7,0,0,120,204,204,252,204,204,204,204,204,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,248,6,9,9,7,0, - 0,120,204,192,192,192,192,192,204,120,6,9,9,7,0,0, - 248,204,204,204,204,204,204,204,248,6,9,9,7,0,0,252, - 192,192,248,192,192,192,192,252,6,9,9,7,0,0,252,192, - 192,248,192,192,192,192,192,6,9,9,7,0,0,120,204,192, - 220,204,204,204,204,120,6,9,9,7,0,0,204,204,204,252, - 204,204,204,204,204,2,9,9,3,0,0,192,192,192,192,192, - 192,192,192,192,6,9,9,7,0,0,12,12,12,12,12,12, - 12,204,120,6,9,9,7,0,0,204,204,216,240,224,240,216, - 204,204,6,9,9,7,0,0,192,192,192,192,192,192,192,192, - 252,7,9,9,9,1,0,130,238,254,146,130,130,130,130,130, - 6,9,9,7,0,0,204,236,252,220,204,204,204,204,204,6, - 9,9,7,0,0,120,204,204,204,204,204,204,204,120,6,9, - 9,7,0,0,248,204,204,248,192,192,192,192,192,7,9,9, - 8,0,0,124,130,130,130,130,146,146,146,124,6,9,9,7, - 0,0,248,204,204,248,204,204,204,204,204,6,9,9,7,0, - 0,120,204,192,120,12,12,204,204,120,6,9,9,7,0,0, - 252,48,48,48,48,48,48,48,48,6,9,9,7,0,0,204, - 204,204,204,204,204,204,204,120,7,9,9,8,0,0,198,198, - 198,108,108,108,56,56,56,9,9,18,11,1,0,128,128,128, - 128,128,128,105,128,105,128,105,128,127,0,127,0,127,0,6, - 9,9,7,0,0,204,204,120,48,48,120,204,204,204,6,9, - 9,7,0,0,204,204,120,48,48,48,48,48,48,6,9,9, - 7,0,0,252,12,12,24,48,96,192,192,252,4,9,9,6, - 1,0,240,192,192,192,192,192,192,192,240,6,7,7,8,1, - 0,192,96,96,48,24,24,12,4,9,9,6,1,0,240,48, - 48,48,48,48,48,48,240,4,2,2,6,1,10,96,144,6, - 2,2,8,1,0,252,252,2,2,2,4,1,10,64,128,6, - 6,6,7,0,0,120,204,204,204,204,124,6,9,9,7,0, - 0,192,192,192,248,204,204,204,204,120,6,6,6,7,0,0, - 120,204,192,192,204,120,6,9,9,7,0,0,12,12,12,124, - 204,204,204,204,124,6,6,6,7,0,0,120,204,252,192,204, - 120,6,9,9,7,0,0,56,108,96,240,96,96,96,96,96, - 6,10,10,7,0,252,120,204,204,204,204,124,12,12,204,120, - 6,9,9,7,0,0,192,192,192,248,236,204,204,204,204,2, - 9,9,3,0,0,192,192,0,192,192,192,192,192,192,3,13, - 13,4,0,252,96,96,0,96,96,96,96,96,96,96,96,96, - 192,6,9,9,7,0,0,192,192,192,216,240,224,240,216,204, - 2,9,9,3,0,0,192,192,192,192,192,192,192,192,192,7, - 6,6,9,1,0,254,146,146,146,146,146,6,6,6,7,0, - 0,248,236,204,204,204,204,6,6,6,7,0,0,120,204,204, - 204,204,120,6,10,10,7,0,252,120,204,204,204,204,248,192, - 192,192,192,7,10,10,7,0,252,124,204,204,204,204,124,12, - 30,12,12,5,6,6,6,0,0,248,240,192,192,192,192,6, - 6,6,7,0,0,120,224,120,12,204,120,5,9,9,6,0, - 0,96,96,96,248,96,96,96,96,96,6,6,6,7,0,0, - 204,204,204,204,204,120,6,6,6,7,0,0,204,204,120,120, - 48,48,9,6,12,10,0,0,128,128,128,128,107,0,107,0, - 127,0,127,0,6,6,6,7,0,0,204,120,48,48,120,204, - 6,10,10,7,0,252,204,204,204,204,204,124,12,12,204,120, - 6,6,6,7,0,0,124,204,24,48,96,252,6,9,9,8, - 1,0,12,24,48,48,240,48,48,24,12,2,9,9,4,1, - 0,192,192,192,192,192,192,192,192,192,6,9,9,8,1,0, - 192,96,48,48,28,48,48,96,192,5,2,2,6,0,10,232, - 184,255}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=13 len=18 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x=-1 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =13 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpss[2605] U8G_FONT_SECTION("u8g_font_tpss") = { - 0,11,17,255,252,9,1,192,3,136,32,255,252,13,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,1,9,9,2,0,0,128,128,0,128, - 128,128,128,128,128,5,7,7,7,1,0,32,112,168,160,168, - 112,32,5,9,9,7,1,0,128,128,240,128,128,128,136,136, - 248,5,5,5,7,1,1,136,112,80,112,136,5,9,9,7, - 1,0,136,136,80,32,32,248,32,248,32,1,9,9,3,1, - 0,128,128,128,0,0,0,128,128,128,6,10,10,8,1,0, - 120,128,120,132,120,4,4,4,132,120,5,1,1,7,1,3, - 136,7,7,7,9,1,0,124,130,186,162,186,130,124,6,8, - 8,8,1,0,112,136,136,136,136,116,0,252,5,3,3,7, - 1,2,72,144,72,5,2,2,7,1,2,248,8,0,0,0, - 8,0,0,7,7,7,9,1,0,124,130,186,162,162,130,124, - 5,1,1,6,0,6,248,3,3,3,5,1,2,64,160,64, - 5,7,7,7,1,0,32,32,248,32,32,0,248,255,255,255, - 0,0,0,8,0,0,255,0,0,0,8,0,0,255,255,255, - 5,3,3,7,1,2,144,72,144,255,255,255,255,5,12,12, - 6,0,0,64,32,0,112,136,136,248,136,136,136,136,136,5, - 12,12,6,0,0,16,32,0,112,136,136,248,136,136,136,136, - 136,5,12,12,6,0,0,32,80,0,112,136,136,248,136,136, - 136,136,136,5,12,12,6,0,0,232,184,0,112,136,136,248, - 136,136,136,136,136,5,11,11,6,0,0,80,0,112,136,136, - 248,136,136,136,136,136,5,13,13,6,0,0,32,80,32,0, - 112,136,136,248,136,136,136,136,136,9,9,18,10,0,0,127, - 128,136,0,136,0,255,0,136,0,136,0,136,0,136,0,143, - 128,5,9,9,6,0,254,112,136,128,128,128,136,112,32,96, - 5,12,12,6,0,0,64,32,0,248,128,128,240,128,128,128, - 128,248,5,12,12,6,0,0,16,32,0,248,128,128,240,128, - 128,128,128,248,5,12,12,6,0,0,32,80,0,248,128,128, - 240,128,128,128,128,248,5,11,11,6,0,0,80,0,248,128, - 128,240,128,128,128,128,248,2,12,12,2,0,0,128,64,0, - 64,64,64,64,64,64,64,64,64,2,12,12,2,0,0,64, - 128,0,128,128,128,128,128,128,128,128,128,3,12,12,2,255, - 0,64,160,0,64,64,64,64,64,64,64,64,64,3,11,11, - 2,255,0,160,0,64,64,64,64,64,64,64,64,64,5,9, - 9,6,0,0,240,136,136,232,136,136,136,136,240,5,12,12, - 6,0,0,232,184,0,136,136,136,200,168,152,136,136,136,5, - 12,12,6,0,0,64,32,0,112,136,136,136,136,136,136,136, - 112,5,12,12,6,0,0,16,32,0,112,136,136,136,136,136, - 136,136,112,5,12,12,6,0,0,32,80,0,112,136,136,136, - 136,136,136,136,112,5,12,12,6,0,0,232,184,0,112,136, - 136,136,136,136,136,136,112,5,11,11,6,0,0,80,0,112, - 136,136,136,136,136,136,136,112,3,3,3,6,1,2,160,64, - 160,7,9,9,8,0,0,58,68,76,84,84,84,100,68,184, - 5,12,12,6,0,0,64,32,0,136,136,136,136,136,136,136, - 136,112,5,12,12,6,0,0,16,32,0,136,136,136,136,136, - 136,136,136,112,5,12,12,6,0,0,32,80,0,136,136,136, - 136,136,136,136,136,112,5,11,11,6,0,0,80,0,136,136, - 136,136,136,136,136,136,112,5,12,12,6,0,0,16,32,0, - 136,136,80,32,32,32,32,32,32,5,9,9,6,0,0,128, - 128,240,136,240,128,128,128,128,5,11,11,6,0,254,240,136, - 176,136,136,136,176,128,128,128,128,5,9,9,6,0,0,64, - 32,0,112,136,136,136,136,120,5,9,9,6,0,0,16,32, - 0,112,136,136,136,136,120,5,9,9,6,0,0,32,80,0, - 112,136,136,136,136,120,5,9,9,6,0,0,232,184,0,112, - 136,136,136,136,120,5,8,8,6,0,0,80,0,112,136,136, - 136,136,120,5,10,10,6,0,0,32,80,32,0,112,136,136, - 136,136,120,9,6,12,10,0,0,119,0,136,128,143,128,136, - 0,136,128,119,0,5,8,8,6,0,254,112,136,128,128,136, - 112,32,64,5,6,6,6,0,0,112,136,248,128,136,112,5, - 6,6,6,0,0,112,136,248,128,136,112,5,6,6,6,0, - 0,112,136,248,128,136,112,5,6,6,6,0,0,112,136,248, - 128,136,112,2,10,10,3,0,0,128,64,0,0,64,64,64, - 64,64,64,2,10,10,3,0,0,64,128,0,0,128,128,128, - 128,128,128,3,10,10,4,0,0,64,160,0,0,64,64,64, - 64,64,64,3,9,9,4,0,0,160,0,0,64,64,64,64, - 64,64,5,9,9,6,0,0,8,56,8,120,136,136,136,136, - 120,5,9,9,6,0,0,232,184,0,176,200,136,136,136,136, - 5,9,9,6,0,0,64,32,0,112,136,136,136,136,112,5, - 9,9,6,0,0,16,32,0,112,136,136,136,136,112,5,9, - 9,6,0,0,32,80,0,112,136,136,136,136,112,5,9,9, - 6,0,0,232,184,0,112,136,136,136,136,112,5,8,8,6, - 0,0,80,0,112,136,136,136,136,112,5,5,5,6,0,1, - 32,0,248,0,32,5,6,6,6,0,0,112,152,168,168,200, - 112,5,9,9,6,0,0,64,32,0,136,136,136,136,136,112, - 5,9,9,6,0,0,16,32,0,136,136,136,136,136,112,5, - 9,9,6,0,0,32,80,0,136,136,136,136,136,112,5,8, - 8,6,0,0,80,0,136,136,136,136,136,112,5,13,13,6, - 0,252,16,32,0,136,136,136,136,136,120,8,8,136,112,5, - 6,6,5,0,0,128,240,136,240,128,128,5,12,12,6,0, - 252,80,0,136,136,136,136,136,120,8,8,136,112}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 0, '1' Height: 9 - Calculated Max Values w= 5 h= 9 x= 1 y= 3 dx= 7 dy= 0 ascent= 9 len= 9 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 9 descent= 0 - X Font ascent = 9 descent= 0 - Max Font ascent = 9 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssn[238] U8G_FONT_SECTION("u8g_font_tpssn") = { - 0,11,17,255,252,9,0,0,0,0,42,58,0,9,255,9, - 0,5,7,7,7,1,1,32,168,112,32,112,168,32,5,5, - 5,7,1,1,32,32,248,32,32,2,2,2,4,1,255,64, - 128,5,1,1,7,1,3,248,1,1,1,3,1,0,128,5, - 9,9,7,1,0,8,16,16,32,32,32,64,64,128,5,9, - 9,6,0,0,112,136,136,136,136,136,136,136,112,5,9,9, - 6,0,0,32,96,160,32,32,32,32,32,248,5,9,9,6, - 0,0,112,136,136,8,16,32,64,128,248,5,9,9,6,0, - 0,112,136,8,48,8,8,8,136,112,5,9,9,6,0,0, - 8,136,136,248,8,8,8,8,8,5,9,9,6,0,0,248, - 128,128,248,8,8,8,136,112,5,9,9,6,0,0,112,136, - 128,240,136,136,136,136,112,5,9,9,6,0,0,248,8,16, - 32,64,64,64,64,64,5,9,9,6,0,0,112,136,136,112, - 136,136,136,136,112,5,9,9,6,0,0,112,136,136,136,120, - 8,8,136,112,1,4,4,3,1,0,128,0,0,128}; -/* - Fontname: -FreeType-Teachers Pet Sans Serif-Medium-R-Normal--8-80-72-72-P-18-ISO10646-1 - Copyright: � www.orgdot.com - Capital A Height: 9, '1' Height: 9 - Calculated Max Values w= 9 h=13 x= 1 y=10 dx=11 dy= 0 ascent=12 len=16 - Font Bounding box w=11 h=17 x=-1 y=-4 - Calculated Min Values x= 0 y=-4 dx= 0 dy= 0 - Pure Font ascent = 9 descent=-4 - X Font ascent = 9 descent=-4 - Max Font ascent =12 descent=-4 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_tpssr[1317] U8G_FONT_SECTION("u8g_font_tpssr") = { - 0,11,17,255,252,9,1,192,3,136,32,127,252,12,252,9, - 252,0,0,0,4,0,0,1,9,9,3,1,0,128,128,128, - 128,128,128,0,128,128,3,2,2,5,1,7,160,160,5,5, - 5,7,1,0,80,248,80,248,80,5,9,9,7,1,0,112, - 168,160,112,40,40,168,168,112,5,9,9,7,1,0,136,144, - 16,32,32,32,64,72,136,7,9,9,9,1,0,112,136,136, - 112,136,136,136,138,116,1,2,2,3,1,7,128,128,5,9, - 9,7,1,0,24,32,64,64,128,64,64,32,24,5,9,9, - 7,1,0,192,32,16,16,8,16,16,32,192,5,7,7,7, - 1,1,32,168,112,32,112,168,32,5,5,5,7,1,1,32, - 32,248,32,32,2,2,2,4,1,255,64,128,5,1,1,7, - 1,3,248,1,1,1,3,1,0,128,5,9,9,7,1,0, - 8,16,16,32,32,32,64,64,128,5,9,9,6,0,0,112, - 136,136,136,136,136,136,136,112,5,9,9,6,0,0,32,96, - 160,32,32,32,32,32,248,5,9,9,6,0,0,112,136,136, - 8,16,32,64,128,248,5,9,9,6,0,0,112,136,8,48, - 8,8,8,136,112,5,9,9,6,0,0,8,136,136,248,8, - 8,8,8,8,5,9,9,6,0,0,248,128,128,248,8,8, - 8,136,112,5,9,9,6,0,0,112,136,128,240,136,136,136, - 136,112,5,9,9,6,0,0,248,8,16,32,64,64,64,64, - 64,5,9,9,6,0,0,112,136,136,112,136,136,136,136,112, - 5,9,9,6,0,0,112,136,136,136,120,8,8,136,112,1, - 4,4,3,1,0,128,0,0,128,2,5,5,4,1,255,64, - 0,0,64,128,5,9,9,7,1,0,8,16,32,64,128,64, - 32,16,8,5,3,3,7,1,2,248,0,248,5,9,9,7, - 1,0,128,64,32,16,8,16,32,64,128,5,9,9,7,1, - 0,112,136,8,16,32,32,0,32,32,9,8,16,11,1,0, - 126,0,129,0,153,0,165,0,165,0,154,0,128,128,127,0, - 5,9,9,6,0,0,112,136,136,248,136,136,136,136,136,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,240,5,9, - 9,6,0,0,112,136,128,128,128,128,128,136,112,5,9,9, - 6,0,0,240,136,136,136,136,136,136,136,240,5,9,9,6, - 0,0,248,128,128,240,128,128,128,128,248,5,9,9,6,0, - 0,248,128,128,240,128,128,128,128,128,5,9,9,6,0,0, - 112,136,128,184,136,136,136,136,112,5,9,9,6,0,0,136, - 136,136,248,136,136,136,136,136,1,9,9,2,0,0,128,128, - 128,128,128,128,128,128,128,5,9,9,6,0,0,8,8,8, - 8,8,8,8,136,112,5,9,9,6,0,0,136,136,144,160, - 192,160,144,136,136,5,9,9,6,0,0,128,128,128,128,128, - 128,128,128,248,7,9,9,8,0,0,130,198,170,146,130,130, - 130,130,130,5,9,9,6,0,0,136,200,168,152,136,136,136, - 136,136,5,9,9,6,0,0,112,136,136,136,136,136,136,136, - 112,5,9,9,6,0,0,240,136,136,240,128,128,128,128,128, - 5,9,9,6,0,0,112,136,136,136,136,168,168,168,112,5, - 9,9,6,0,0,240,136,136,240,136,136,136,136,136,5,9, - 9,6,0,0,112,136,128,112,8,8,136,136,112,5,9,9, - 6,0,0,248,32,32,32,32,32,32,32,32,5,9,9,6, - 0,0,136,136,136,136,136,136,136,136,112,5,9,9,6,0, - 0,136,136,136,80,80,80,80,32,32,7,9,9,8,0,0, - 130,130,130,84,84,84,40,40,40,5,9,9,6,0,0,136, - 136,80,32,32,80,136,136,136,5,9,9,6,0,0,136,136, - 80,32,32,32,32,32,32,5,9,9,6,0,0,248,8,8, - 16,32,64,128,128,248,3,9,9,5,1,0,224,128,128,128, - 128,128,128,128,224,5,7,7,7,1,0,128,64,64,32,16, - 16,8,3,9,9,5,1,0,224,32,32,32,32,32,32,32, - 224,3,2,2,5,1,10,64,160,6,1,1,8,1,0,252, - 2,2,2,4,1,10,64,128,5,6,6,6,0,0,112,136, - 136,136,136,120,5,9,9,6,0,0,128,128,128,240,136,136, - 136,136,112,5,6,6,6,0,0,112,136,128,128,136,112,5, - 9,9,6,0,0,8,8,8,120,136,136,136,136,120,5,6, - 6,6,0,0,112,136,248,128,136,112,5,9,9,6,0,0, - 48,72,64,224,64,64,64,64,64,5,10,10,6,0,252,112, - 136,136,136,136,120,8,8,136,112,5,9,9,6,0,0,128, - 128,128,176,200,136,136,136,136,1,9,9,2,0,0,128,128, - 0,128,128,128,128,128,128,2,13,13,3,0,252,64,64,0, - 64,64,64,64,64,64,64,64,64,128,5,9,9,6,0,0, - 128,128,128,144,160,192,160,144,136,1,9,9,2,0,0,128, - 128,128,128,128,128,128,128,128,7,6,6,8,0,0,182,218, - 146,146,146,146,5,6,6,6,0,0,176,200,136,136,136,136, - 5,6,6,6,0,0,112,136,136,136,136,112,5,10,10,6, - 0,252,112,136,136,136,136,240,128,128,128,128,6,10,10,7, - 0,252,120,136,136,136,136,120,8,28,8,8,4,6,6,5, - 0,0,176,192,128,128,128,128,5,6,6,6,0,0,112,128, - 112,8,136,112,4,9,9,5,0,0,64,64,64,240,64,64, - 64,64,64,5,6,6,6,0,0,136,136,136,136,136,112,5, - 6,6,6,0,0,136,136,80,80,32,32,7,6,6,8,0, - 0,130,130,84,84,40,40,5,6,6,6,0,0,136,80,32, - 32,80,136,5,10,10,6,0,252,136,136,136,136,136,120,8, - 8,136,112,5,6,6,6,0,0,120,136,16,32,64,248,6, - 9,9,8,1,0,12,16,32,32,192,32,32,16,12,1,9, - 9,3,1,0,128,128,128,128,128,128,128,128,128,6,9,9, - 8,1,0,192,32,16,16,12,16,16,32,192,5,2,2,6, - 0,10,232,184,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 7 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 7 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_square[1236] U8G_FONT_SECTION("u8g_font_trixel_square") = { - 0,5,9,0,254,5,1,91,2,177,32,255,254,7,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,4,5,5,5,0,0,112,64,96,64,240, - 255,255,255,3,7,7,4,0,254,224,128,224,160,224,32,224, - 255,255,255,3,2,2,4,0,1,160,160,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,255,3,2,2,4,0,1, - 160,160,255,255,255,255,255,255,255,255,3,7,7,4,0,0, - 160,0,224,160,224,160,160,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,3,7,7,4,0,0,160,0, - 224,160,160,160,224,255,255,255,255,255,3,7,7,4,0,0, - 160,0,160,160,160,160,224,255,255,3,7,7,4,0,254,224, - 160,224,160,224,128,128,255,255,255,255,4,5,5,5,0,0, - 160,0,224,160,240,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,3,5,5,4,0,0,160,0,224,160, - 224,255,255,255,255,255,3,5,5,4,0,0,160,0,160,160, - 224,255,255,255}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 0, '1' Height: 5 - Calculated Max Values w= 3 h= 5 x= 0 y= 2 dx= 4 dy= 0 ascent= 5 len= 5 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 5 descent= 0 - X Font ascent = 5 descent= 0 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squaren[187] U8G_FONT_SECTION("u8g_font_trixel_squaren") = { - 0,5,9,0,254,5,0,0,0,0,42,58,0,5,255,5, - 0,3,3,3,4,0,2,160,64,160,3,3,3,4,0,0, - 64,224,64,1,2,2,2,0,255,128,128,3,1,1,4,0, - 1,224,1,1,1,2,0,0,128,3,5,5,4,0,0,32, - 96,64,192,128,3,5,5,4,0,0,224,160,160,160,224,2, - 5,5,3,0,0,64,192,64,64,64,3,5,5,4,0,0, - 224,160,96,192,224,3,5,5,4,0,0,224,32,96,32,224, - 3,5,5,4,0,0,160,160,224,32,32,3,5,5,4,0, - 0,224,128,224,32,224,3,5,5,4,0,0,224,128,224,160, - 224,3,5,5,4,0,0,224,32,32,32,32,3,5,5,4, - 0,0,224,160,224,160,224,3,5,5,4,0,0,224,160,224, - 32,224,1,3,3,2,0,0,128,0,128}; -/* - Fontname: -FreeType-Trixel Square-Medium-R-Normal--8-80-72-72-P-33-ISO10646-1 - Copyright: Copyright julischka 2008 - Capital A Height: 5, '1' Height: 5 - Calculated Max Values w= 5 h= 7 x= 0 y= 3 dx= 6 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 5 h= 9 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 5 descent=-2 - X Font ascent = 5 descent=-2 - Max Font ascent = 6 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_trixel_squarer[994] U8G_FONT_SECTION("u8g_font_trixel_squarer") = { - 0,5,9,0,254,5,1,91,2,177,32,127,254,6,254,5, - 254,0,0,0,1,0,0,1,5,5,2,0,0,128,128,128, - 0,128,3,2,2,4,0,3,160,160,5,5,5,6,0,255, - 80,248,80,248,80,3,6,6,4,0,0,64,224,192,96,224, - 64,3,5,5,4,0,0,160,32,224,128,160,5,5,5,6, - 0,0,224,160,240,160,248,1,2,2,2,0,3,128,128,2, - 5,5,3,0,0,192,128,128,128,192,2,5,5,3,0,0, - 192,64,64,64,192,3,3,3,4,0,2,160,64,160,3,3, - 3,4,0,0,64,224,64,1,2,2,2,0,255,128,128,3, - 1,1,4,0,1,224,1,1,1,2,0,0,128,3,5,5, - 4,0,0,32,96,64,192,128,3,5,5,4,0,0,224,160, - 160,160,224,2,5,5,3,0,0,64,192,64,64,64,3,5, - 5,4,0,0,224,160,96,192,224,3,5,5,4,0,0,224, - 32,96,32,224,3,5,5,4,0,0,160,160,224,32,32,3, - 5,5,4,0,0,224,128,224,32,224,3,5,5,4,0,0, - 224,128,224,160,224,3,5,5,4,0,0,224,32,32,32,32, - 3,5,5,4,0,0,224,160,224,160,224,3,5,5,4,0, - 0,224,160,224,32,224,1,3,3,2,0,0,128,0,128,1, - 4,4,2,0,255,128,0,128,128,3,3,3,4,0,0,96, - 192,96,3,3,3,4,0,0,224,0,224,3,3,3,4,0, - 0,192,96,192,3,5,5,4,0,0,224,32,96,0,64,5, - 6,6,6,0,255,248,136,168,184,128,248,3,5,5,4,0, - 0,224,160,224,160,160,3,5,5,4,0,0,224,160,224,160, - 224,3,5,5,4,0,0,224,160,128,160,224,3,5,5,4, - 0,0,224,160,160,160,224,3,5,5,4,0,0,224,128,192, - 128,224,3,5,5,4,0,0,224,128,192,128,128,3,5,5, - 4,0,0,224,128,160,160,224,3,5,5,4,0,0,160,160, - 224,160,160,1,5,5,2,0,0,128,128,128,128,128,3,5, - 5,4,0,0,224,32,32,32,224,3,5,5,4,0,0,160, - 160,192,160,160,3,5,5,4,0,0,128,128,128,128,224,5, - 5,5,6,0,0,216,216,168,168,136,4,5,5,5,0,0, - 208,208,176,176,144,3,5,5,4,0,0,224,160,160,160,224, - 3,5,5,4,0,0,224,160,224,128,128,4,5,5,5,0, - 0,224,160,160,160,240,3,5,5,4,0,0,224,160,192,160, - 160,3,5,5,4,0,0,224,128,224,32,224,3,5,5,4, - 0,0,224,64,64,64,64,3,5,5,4,0,0,160,160,160, - 160,224,3,5,5,4,0,0,160,160,160,224,64,5,5,5, - 6,0,0,136,136,168,168,248,3,5,5,4,0,0,160,224, - 64,224,160,3,5,5,4,0,0,160,160,224,64,64,3,5, - 5,4,0,0,224,32,224,128,224,3,5,5,4,0,0,224, - 128,128,128,224,3,5,5,4,0,0,128,192,64,96,32,3, - 5,5,4,0,0,224,32,32,32,224,3,2,2,4,0,3, - 224,160,3,1,1,4,0,0,224,2,2,2,3,0,3,192, - 64,4,3,3,5,0,0,224,160,240,3,5,5,4,0,0, - 128,128,224,160,224,3,3,3,4,0,0,224,128,224,3,5, - 5,4,0,0,32,32,224,160,224,3,3,3,4,0,0,224, - 192,224,2,5,5,3,0,0,192,128,192,128,128,3,5,5, - 4,0,254,224,160,224,32,224,3,5,5,4,0,0,128,128, - 224,160,160,1,5,5,2,0,0,128,0,128,128,128,2,7, - 7,3,0,254,64,0,64,64,64,64,192,3,5,5,4,0, - 0,128,128,160,224,160,2,5,5,3,0,0,128,128,128,128, - 192,5,3,3,6,0,0,248,168,168,3,3,3,4,0,0, - 224,160,160,3,3,3,4,0,0,224,160,224,3,5,5,4, - 0,254,224,160,224,128,128,3,5,5,4,0,254,224,160,224, - 32,32,2,3,3,3,0,0,192,128,128,3,3,3,4,0, - 0,96,64,192,2,5,5,3,0,0,128,192,128,128,192,3, - 3,3,4,0,0,160,160,224,3,3,3,4,0,0,160,224, - 64,5,3,3,6,0,0,168,168,248,3,3,3,4,0,0, - 160,64,160,3,5,5,4,0,254,160,160,224,32,224,3,3, - 3,4,0,0,224,64,224,3,5,5,4,0,0,96,64,192, - 64,96,1,5,5,2,0,0,128,128,128,128,128,3,5,5, - 4,0,0,192,64,96,64,192,3,3,3,4,0,1,32,224, - 128,255}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 8 h= 7 x= 1 y= 4 dx= 9 dy= 0 ascent= 6 len= 7 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 6 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4[1660] U8G_FONT_SECTION("u8g_font_u8glib_4") = { - 1,9,6,0,255,4,0,233,1,198,32,255,255,6,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240,2,0,32,2,53,69,160,0, - 160,160,224,2,54,70,64,128,0,224,192,224,2,54,70,64, - 160,0,96,160,224,2,53,69,160,0,96,160,224,2,54,70, - 64,32,0,96,160,224,2,54,70,64,160,64,96,160,224,1, - 36,52,192,128,192,192,2,54,70,64,160,0,224,192,224,2, - 53,69,160,0,224,192,224,2,54,70,64,32,0,224,192,224, - 2,52,68,160,0,64,64,2,53,149,64,160,0,64,64,2, - 37,53,128,64,0,64,64,2,69,85,144,96,144,240,144,2, - 70,86,96,144,96,144,240,144,2,70,86,32,64,240,224,128, - 240,2,83,99,120,176,248,2,132,148,31,46,120,143,2,54, - 70,64,160,0,224,160,224,2,53,69,160,0,224,160,224,2, - 54,70,128,64,0,224,160,224,2,54,70,64,160,0,160,160, - 224,2,54,70,64,32,0,160,160,224,1,54,70,160,0,160, - 224,32,96,2,69,85,144,96,144,144,96,2,69,85,144,0, - 144,144,240,2,0,64,2,0,64,2,0,64,2,0,64,2, - 0,64,2,54,70,64,128,0,96,160,224,2,37,53,64,128, - 0,128,128,2,54,70,32,64,0,224,160,224,2,54,70,32, - 64,0,160,160,224,2,70,70,80,160,0,192,160,160,2,70, - 86,80,160,144,208,176,144,2,21,37,128,128,0,128,128,1, - 54,70,224,128,224,224,32,224,6,65,81,144,1,119,151,124, - 130,186,162,186,130,124,2,0,144,2,51,67,96,192,96,3, - 50,66,224,32,2,0,144,1,119,151,124,130,186,178,170,130, - 124,6,65,81,240,4,51,67,224,160,224,2,52,148,64,224, - 64,224,4,51,67,192,64,96,4,35,51,192,64,192,5,34, - 50,64,128,1,52,148,160,160,224,128,1,101,117,124,244,116, - 20,20,19,17,49,128,2,0,144,4,35,51,192,64,64,4, - 51,67,224,160,224,2,51,67,192,96,192,1,118,134,196,72, - 80,40,78,132,1,118,134,196,72,80,44,68,134,1,118,150, - 196,72,208,40,78,132,2,0,64,2,70,86,64,32,96,144, - 240,144,2,70,86,32,64,96,144,240,144,2,70,86,96,144, - 96,144,240,144,2,70,86,80,160,96,144,240,144,2,69,85, - 144,96,144,240,144,2,70,86,96,0,96,144,240,144,2,132, - 148,31,46,120,143,1,69,85,240,128,240,32,96,2,70,86, - 64,32,240,224,128,240,2,70,86,32,64,240,224,128,240,2, - 70,86,96,144,240,224,128,240,2,70,86,144,0,240,224,128, - 240,2,38,54,128,64,128,128,128,128,2,38,54,64,128,64, - 64,64,64,2,54,70,64,160,64,64,64,64,2,53,69,160, - 64,64,64,64,2,84,100,112,232,72,112,2,70,86,80,160, - 0,144,208,176,2,70,86,64,32,96,144,144,96,2,70,86, - 32,64,96,144,144,96,2,70,86,96,144,96,144,144,96,2, - 70,86,80,160,96,144,144,96,2,69,85,144,96,144,144,96, - 2,51,67,160,64,160,1,102,118,4,56,88,104,112,128,2, - 70,86,64,32,144,144,144,240,2,70,86,32,64,144,144,144, - 240,2,70,86,96,144,0,144,144,240,2,69,85,144,0,144, - 144,240,2,70,86,32,64,144,240,16,240,1,70,86,128,224, - 144,144,224,128,1,53,69,192,192,160,192,128,2,54,70,64, - 32,0,96,160,224,2,54,70,64,128,0,96,160,224,2,54, - 70,64,160,0,96,160,224,2,70,70,80,160,0,96,160,224, - 2,53,69,160,0,96,160,224,2,54,70,64,160,64,96,160, - 224,2,83,99,120,176,248,1,36,52,192,128,192,192,2,54, - 70,64,32,0,224,160,192,2,54,70,64,128,0,224,160,192, - 2,54,70,64,160,0,224,160,192,2,53,69,160,0,224,160, - 192,2,37,53,128,64,0,64,64,2,37,53,64,128,0,128, - 128,2,53,69,64,160,0,64,64,2,52,68,160,0,64,64, - 2,70,86,96,96,16,112,144,96,2,70,70,80,160,0,192, - 160,160,2,54,70,64,32,0,224,160,224,2,54,70,64,128, - 0,224,160,224,2,54,70,64,160,0,224,160,224,2,70,70, - 80,160,0,224,160,224,2,53,69,160,0,224,160,224,2,53, - 69,64,0,224,0,64,1,85,101,8,112,80,112,128,2,54, - 70,64,32,0,160,160,224,2,54,70,64,128,0,160,160,224, - 2,54,70,64,160,0,160,160,224,2,53,69,160,0,160,160, - 224,1,55,71,64,128,0,160,224,32,96,1,53,69,128,192, - 160,192,128,1,54,70,160,0,160,224,32,96}; -/* - Fontname: u8glib_4 - Copyright: public domain - Capital A Height: 4, '1' Height: 4 - Calculated Max Values w= 5 h= 6 x= 0 y= 3 dx= 6 dy= 0 ascent= 5 len= 6 - Font Bounding box w= 9 h= 6 x= 0 y=-1 - Calculated Min Values x= 0 y=-1 dx= 0 dy= 0 - Pure Font ascent = 4 descent=-1 - X Font ascent = 5 descent=-1 - Max Font ascent = 5 descent=-1 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_u8glib_4r[664] U8G_FONT_SECTION("u8g_font_u8glib_4r") = { - 1,9,6,0,255,4,0,233,1,198,32,127,255,5,255,5, - 255,2,0,32,2,20,36,128,128,0,128,5,50,66,160,160, - 1,85,101,80,248,80,248,80,1,86,102,32,120,224,56,240, - 32,2,68,84,144,32,64,144,2,69,85,64,160,64,160,240, - 5,18,34,128,128,1,38,54,64,128,128,128,128,64,1,38, - 54,128,64,64,64,64,128,3,34,50,192,192,2,51,67,64, - 224,64,1,18,34,128,128,3,49,65,224,2,17,33,128,2, - 68,84,16,32,64,128,2,52,68,224,160,160,224,2,36,52, - 64,192,64,64,2,52,68,224,32,64,224,2,52,68,224,64, - 32,224,2,52,68,128,160,224,32,2,52,68,224,192,32,224, - 2,52,68,224,128,224,224,2,52,68,224,32,64,128,2,52, - 68,224,224,160,224,2,52,68,224,224,32,224,2,19,35,128, - 0,128,1,20,36,128,0,128,128,2,35,51,64,128,64,2, - 51,67,224,0,224,2,35,51,128,64,128,2,36,52,192,64, - 0,64,2,68,84,240,176,128,240,2,68,84,96,144,240,144, - 2,68,84,224,240,144,240,2,52,68,96,128,128,96,2,68, - 84,224,144,144,224,2,68,84,240,224,128,240,2,68,84,240, - 128,224,128,2,68,84,240,128,176,240,2,68,84,144,240,144, - 144,2,20,36,128,128,128,128,2,52,68,224,32,32,192,2, - 68,84,144,224,144,144,2,52,68,128,128,128,224,2,84,100, - 136,216,168,136,2,68,84,144,208,176,144,2,68,84,96,144, - 144,96,2,68,84,224,144,224,128,2,84,100,240,144,144,232, - 2,68,84,240,240,160,144,2,68,84,112,192,48,224,2,52, - 68,224,64,64,64,2,68,84,144,144,144,240,2,68,84,144, - 144,144,96,2,84,100,136,168,168,80,2,52,68,160,64,64, - 160,2,68,84,144,240,16,240,2,68,84,240,32,64,240,1, - 38,54,192,128,128,128,128,192,2,68,84,128,64,32,16,1, - 38,54,192,64,64,64,64,192,5,50,66,64,160,1,65,81, - 240,5,34,50,128,64,2,51,67,96,160,224,2,52,68,128, - 192,160,192,2,35,51,192,128,192,2,52,68,32,96,160,96, - 2,51,67,224,160,192,2,52,68,32,64,224,64,1,52,68, - 224,224,32,96,2,52,68,128,192,160,160,2,20,36,128,0, - 128,128,1,37,53,64,0,64,64,128,2,52,68,128,160,192, - 160,2,20,36,128,128,128,128,2,83,99,208,168,168,2,51, - 67,192,160,160,2,51,67,224,160,224,1,52,68,192,160,192, - 128,1,52,68,96,160,96,32,2,35,51,192,128,128,2,51, - 67,96,64,192,2,52,68,64,224,64,96,2,51,67,160,160, - 224,2,51,67,160,160,64,2,83,99,136,168,80,2,51,67, - 160,64,160,1,52,68,160,224,32,224,2,51,67,192,64,96, - 1,54,70,96,64,128,128,64,96,1,22,38,128,128,128,128, - 128,128,1,54,70,192,64,32,32,64,192,5,66,82,80,160, - 2,69,85,240,144,144,144,240}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_0_8[4249] U8G_FONT_SECTION("u8g_font_unifont_0_8") = { - 0,16,16,0,254,10,1,231,3,213,32,255,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,6,13,13, - 8,1,0,96,24,0,252,128,128,128,248,128,128,128,128,252, - 6,14,14,8,1,0,72,72,0,0,252,128,128,128,248,128, - 128,128,128,252,7,10,10,8,1,0,252,32,32,32,60,34, - 34,34,34,44,6,14,14,8,1,0,24,96,0,0,252,128, - 128,128,128,128,128,128,128,128,6,10,10,8,1,0,56,68, - 128,128,248,128,128,128,68,56,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,5,10,10,8,2,0,248,32, - 32,32,32,32,32,32,32,248,5,14,14,8,2,0,144,144, - 0,0,248,32,32,32,32,32,32,32,32,248,6,10,10,8, - 1,0,28,8,8,8,8,8,8,136,136,112,8,10,10,8, - 0,0,120,72,72,72,78,73,73,73,73,142,7,10,10,8, - 1,0,144,144,144,144,252,146,146,146,146,156,7,10,10,8, - 1,0,252,32,32,32,60,34,34,34,34,34,6,14,14,8, - 1,0,24,96,0,0,128,140,144,160,192,192,160,144,136,132, - 6,13,13,8,1,0,96,24,0,132,140,140,148,148,164,164, - 196,196,132,7,14,14,8,1,0,132,132,120,0,130,130,68, - 68,40,40,16,16,32,96,7,12,12,8,1,254,130,130,130, - 130,130,130,130,130,130,254,16,16,6,10,10,8,1,0,48, - 72,72,132,132,252,132,132,132,132,6,10,10,8,1,0,248, - 128,128,128,248,132,132,132,132,248,6,10,10,8,1,0,248, - 132,132,132,248,132,132,132,132,248,6,10,10,8,1,0,252, - 128,128,128,128,128,128,128,128,128,8,12,12,8,0,254,14, - 18,18,18,34,34,34,66,66,255,129,129,6,10,10,8,1, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,146,146,84,84,56,56,84,84,146,146,6,10,10,8,1, - 0,120,132,4,4,120,8,4,4,132,120,6,10,10,8,1, - 0,132,140,140,148,148,164,164,196,196,132,6,13,13,8,1, - 0,72,48,0,132,140,140,148,148,164,164,196,196,132,6,10, - 10,8,1,0,140,144,144,160,160,192,160,144,136,132,6,10, - 10,8,1,0,60,36,36,36,36,36,36,68,68,132,6,10, - 10,8,1,0,132,132,204,204,180,180,132,132,132,132,6,10, - 10,8,1,0,132,132,132,132,252,132,132,132,132,132,6,10, - 10,8,1,0,120,132,132,132,132,132,132,132,132,120,6,10, - 10,8,1,0,252,132,132,132,132,132,132,132,132,132,6,10, - 10,8,1,0,248,132,132,132,248,128,128,128,128,128,6,10, - 10,8,1,0,120,132,132,128,128,128,128,132,132,120,7,10, - 10,8,1,0,254,16,16,16,16,16,16,16,16,16,7,10, - 10,8,1,0,130,130,68,68,40,40,16,16,32,96,7,11, - 11,8,1,0,16,124,146,146,146,146,146,124,16,16,16,6, - 10,10,8,1,0,132,132,72,72,48,48,72,72,132,132,7, - 12,12,8,1,254,132,132,132,132,132,132,132,132,132,254,2, - 2,6,10,10,8,1,0,132,132,132,132,132,252,4,4,4, - 4,7,10,10,8,1,0,146,146,146,146,146,146,146,146,146, - 254,8,12,12,8,0,254,146,146,146,146,146,146,146,146,146, - 255,1,1,7,10,10,8,1,0,224,32,32,32,60,34,34, - 34,34,60,6,10,10,8,1,0,132,132,132,132,228,148,148, - 148,148,228,6,10,10,8,1,0,128,128,128,128,248,132,132, - 132,132,248,6,10,10,8,1,0,112,136,4,4,124,4,4, - 4,136,112,6,10,10,8,1,0,152,164,164,164,228,164,164, - 164,164,152,6,10,10,8,1,0,124,132,132,132,124,36,68, - 68,132,132,6,8,8,8,1,0,120,132,4,124,132,132,140, - 116,6,12,12,8,1,0,4,56,64,128,248,132,132,132,132, - 132,132,120,6,8,8,8,1,0,248,132,132,248,132,132,132, - 248,6,8,8,8,1,0,252,128,128,128,128,128,128,128,7, - 9,9,8,1,255,60,36,68,68,132,132,132,254,130,6,8, - 8,8,1,0,120,132,132,252,128,128,132,120,7,8,8,8, - 1,0,146,146,84,56,56,84,146,146,6,8,8,8,1,0, - 120,132,4,120,8,4,132,120,6,8,8,8,1,0,140,140, - 148,148,164,164,196,196,6,12,12,8,1,0,72,48,0,0, - 140,140,148,148,164,164,196,196,6,8,8,8,1,0,140,144, - 160,192,160,144,136,132,6,8,8,8,1,0,60,36,36,36, - 36,68,68,132,6,8,8,8,1,0,132,204,204,180,180,132, - 132,132,6,8,8,8,1,0,132,132,132,252,132,132,132,132, - 6,8,8,8,1,0,120,132,132,132,132,132,132,120,6,8, - 8,8,1,0,252,132,132,132,132,132,132,132,6,10,10,8, - 1,254,184,196,132,132,132,132,196,184,128,128,6,8,8,8, - 1,0,120,132,128,128,128,128,132,120,7,8,8,8,1,0, - 254,16,16,16,16,16,16,16,6,10,10,8,1,254,132,132, - 72,72,48,48,32,32,64,192,7,13,13,8,1,254,16,16, - 16,124,146,146,146,146,146,146,124,16,16,6,8,8,8,1, - 0,132,132,72,48,48,72,132,132,7,10,10,8,1,254,132, - 132,132,132,132,132,132,254,2,2,6,8,8,8,1,0,132, - 132,132,132,252,4,4,4,7,8,8,8,1,0,146,146,146, - 146,146,146,146,254,8,10,10,8,0,254,146,146,146,146,146, - 146,146,255,1,1,7,8,8,8,1,0,224,32,32,60,34, - 34,34,60,6,8,8,8,1,0,132,132,132,228,148,148,148, - 228,6,8,8,8,1,0,128,128,128,248,132,132,132,248,6, - 8,8,8,1,0,112,136,4,124,4,4,136,112,6,8,8, - 8,1,0,152,164,164,228,164,164,164,152,6,8,8,8,1, - 0,124,132,132,132,124,36,68,132,6,12,12,8,1,0,96, - 24,0,0,120,132,132,252,128,128,132,120,6,12,12,8,1, - 0,72,72,0,0,120,132,132,252,128,128,132,120,7,13,13, - 8,0,254,64,240,64,92,98,66,66,66,66,66,66,2,12, - 6,12,12,8,1,0,24,96,0,0,252,128,128,128,128,128, - 128,128,6,8,8,8,1,0,56,68,128,248,128,128,68,56, - 6,8,8,8,1,0,120,132,128,96,24,4,132,120,5,11, - 11,8,2,0,32,32,0,96,32,32,32,32,32,32,248,5, - 11,11,8,2,0,144,144,0,96,32,32,32,32,32,32,248, - 5,13,13,8,1,254,8,8,0,24,8,8,8,8,8,8, - 8,144,96,8,8,8,8,0,0,120,72,72,78,73,73,73, - 142,7,8,8,8,1,0,144,144,144,252,146,146,146,156,7, - 11,11,8,0,0,64,240,64,92,98,66,66,66,66,66,66, - 6,12,12,8,1,0,24,96,0,0,140,144,160,192,160,144, - 136,132,6,12,12,8,1,0,96,24,0,0,140,140,148,148, - 164,164,196,196,6,15,15,8,1,254,132,132,120,0,0,132, - 132,72,72,48,48,32,32,64,192,5,10,10,8,2,254,136, - 136,136,136,136,136,136,248,32,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 7 - Calculated Max Values w=16 h=16 x= 9 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 2 - X Font ascent =13 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_12_13[3987] U8G_FONT_SECTION("u8g_font_unifont_12_13") = { - 0,16,16,0,254,8,4,155,6,11,0,255,2,14,254,13, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,85,85,128, - 0,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 4,42,13,170,12,53,245,128,0,0,1,170,170,16,16,32, - 16,0,254,85,85,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,0,1,142,0,14,25,135,224,0,1,128,0,0, - 1,170,170,16,16,32,16,0,254,85,85,128,0,0,1,128, - 0,0,1,128,0,0,25,128,36,0,69,129,68,1,73,158, - 240,0,1,128,0,0,1,170,170,16,16,32,16,0,254,85, - 85,128,0,0,1,128,0,0,1,128,0,0,1,128,0,0, - 1,128,0,1,149,130,124,2,1,191,0,0,1,170,170,16, - 16,32,16,0,254,85,85,128,0,0,1,136,4,22,25,161, - 224,0,1,128,0,0,1,128,0,0,1,128,0,0,1,128, - 0,0,1,170,170,12,14,28,16,1,255,1,80,225,80,33, - 160,17,0,17,0,9,0,8,0,4,224,4,128,2,128,3, - 0,3,0,2,0,2,0,11,15,30,16,1,255,0,64,0, - 128,225,0,33,64,16,128,17,32,8,192,8,0,4,224,4, - 128,2,128,3,0,3,0,2,0,2,0,12,7,14,16,2, - 3,1,144,58,96,202,192,17,64,16,64,32,128,31,0,5, - 10,10,8,1,1,8,8,80,16,32,32,64,64,136,160,7, - 10,10,8,1,1,8,8,80,16,32,32,64,66,136,160,10, - 10,20,16,3,2,48,0,48,0,6,0,9,0,7,0,1, - 0,14,0,240,128,0,64,0,64,2,4,4,8,3,3,64, - 128,192,192,5,4,4,8,1,2,24,48,64,128,12,4,8, - 16,3,1,112,0,136,0,136,48,127,192,7,11,11,16,2, - 0,24,32,32,24,32,76,82,98,36,88,128,6,4,4,8, - 2,9,24,36,228,88,9,6,12,16,4,7,3,0,4,0, - 39,128,56,0,64,0,128,0,10,5,10,16,3,8,252,64, - 16,64,32,128,71,0,64,0,11,4,8,16,2,9,24,32, - 36,32,228,64,89,128,10,4,8,16,3,8,0,64,254,64, - 1,64,0,128,7,4,4,16,4,9,64,92,98,252,8,6, - 6,16,3,8,40,40,40,104,128,127,3,5,5,16,6,8, - 32,0,32,32,192,4,2,2,16,6,10,48,192,5,5,5, - 16,5,8,16,40,48,96,144,4,13,13,16,6,254,240,0, - 0,0,0,0,0,0,0,0,0,48,192,2,5,5,8,3, - 2,64,128,192,0,192,16,16,32,16,0,254,170,170,0,1, - 128,0,0,1,178,34,74,55,250,42,74,35,203,162,0,1, - 128,0,0,1,128,0,0,1,128,0,85,85,14,14,28,16, - 1,255,255,252,231,156,219,124,219,28,219,108,231,156,255,252, - 255,252,247,28,231,108,247,108,247,108,227,28,255,252,3,3, - 3,16,7,0,64,0,160,7,9,9,8,1,2,124,130,128, - 64,32,16,16,0,16,6,8,8,8,1,255,24,164,144,136, - 112,32,80,32,4,5,5,8,2,2,112,128,240,64,128,7, - 10,10,8,1,3,2,124,128,16,16,16,16,16,16,16,3, - 11,11,8,2,3,96,128,96,128,32,32,32,32,32,32,32, - 6,13,13,8,1,255,24,32,24,32,0,24,36,36,60,4, - 8,144,96,3,12,12,8,3,254,64,64,64,64,64,64,64, - 0,96,128,96,128,6,11,11,8,1,255,48,64,48,64,0, - 140,144,144,140,132,120,1,8,8,8,4,3,128,128,128,128, - 128,128,128,128,6,7,7,8,1,0,8,68,132,120,0,0, - 16,5,8,8,8,2,3,144,0,0,96,144,136,136,112,6, - 7,7,8,1,3,40,0,0,8,68,132,120,6,9,9,8, - 1,3,32,0,80,0,0,8,68,132,120,6,8,8,8,1, - 254,252,32,64,128,144,128,68,56,6,8,8,8,1,254,252, - 32,64,128,128,128,68,56,6,11,11,8,1,254,32,0,0, - 252,32,64,128,128,128,68,56,6,5,5,8,1,3,16,8, - 4,132,248,6,7,7,8,1,3,64,0,16,8,4,132,248, - 6,7,7,8,1,255,8,4,4,4,8,144,96,6,10,10, - 8,1,255,32,0,0,8,4,4,4,8,144,96,7,7,7, - 8,1,255,2,42,42,188,144,144,96,7,12,12,8,1,255, - 16,0,36,0,0,2,42,42,188,144,144,96,7,6,6,8, - 1,0,12,50,156,144,144,96,7,9,9,8,1,0,8,0, - 0,12,50,156,144,144,96,6,8,8,8,1,3,64,64,64, - 64,88,100,68,248,6,8,8,8,1,3,64,72,64,64,88, - 100,68,248,6,9,9,8,1,254,48,72,64,56,64,128,128, - 132,120,6,12,12,8,1,254,16,0,0,48,72,64,56,64, - 128,128,132,120,7,9,9,8,0,3,80,4,8,16,32,64, - 60,130,126,7,12,12,8,0,255,4,8,16,32,64,60,130, - 126,0,40,0,16,6,10,10,8,1,255,64,160,160,8,148, - 144,136,132,132,120,6,9,9,8,1,255,160,0,8,148,144, - 136,132,132,120,6,10,10,8,1,255,64,0,160,8,148,144, - 136,132,132,120,8,1,1,8,0,3,255,6,8,8,8,1, - 3,16,0,12,20,12,132,132,120,6,10,10,8,1,0,72, - 0,0,56,36,20,76,132,136,112,6,8,8,8,1,3,4, - 20,36,20,68,132,132,120,6,11,11,8,1,0,4,4,4, - 4,4,4,68,132,132,136,120,5,8,8,8,2,254,112,24, - 120,128,128,128,128,128,6,9,9,8,1,0,32,0,0,8, - 68,132,132,136,112,10,9,18,16,1,1,4,0,3,0,6, - 128,10,64,10,64,6,64,25,128,96,0,128,0,6,8,8, - 8,1,255,24,36,36,60,4,8,144,96,6,7,7,8,1, - 255,8,148,144,136,132,132,120,6,8,8,8,1,254,8,148, - 144,136,132,120,0,80,4,4,4,8,2,9,48,192,48,192, - 5,5,5,8,2,8,24,24,200,80,224,4,4,4,8,2, - 0,32,192,48,192,4,2,2,8,2,9,48,192,4,6,6, - 8,2,6,64,160,160,112,64,128,4,2,2,8,2,254,48, - 192,5,4,4,8,1,7,8,40,176,192,4,4,4,8,2, - 7,96,144,144,96,7,3,3,8,1,9,2,124,128,3,4, - 4,8,2,10,96,128,96,128,3,4,4,8,2,254,96,128, - 96,128,2,3,3,16,9,254,128,64,64,5,5,5,16,5, - 9,8,16,32,224,96,4,3,3,16,6,9,144,144,96,4, - 1,1,16,6,10,240,5,4,4,16,5,9,136,80,32,32, - 5,4,4,16,5,9,32,32,80,136,2,2,2,16,7,0, - 192,192,5,5,5,16,5,9,96,224,32,16,8,4,4,4, - 16,6,9,144,96,96,144,4,5,5,8,2,254,112,128,240, - 64,128,3,3,3,8,2,5,64,224,64,4,9,9,8,2, - 2,128,128,64,64,32,32,16,16,16,5,9,9,8,2,2, - 136,144,96,64,32,32,16,16,16,7,9,9,8,1,2,146, - 164,120,64,32,32,16,16,16,6,9,9,8,1,2,8,16, - 32,64,48,64,128,132,120,6,9,9,8,1,2,48,72,72, - 132,132,132,132,72,48,7,9,9,8,1,2,128,120,8,8, - 4,4,4,2,2,7,9,9,8,1,2,130,130,68,68,40, - 40,16,16,16,7,9,9,8,1,2,16,16,16,40,40,68, - 68,130,130,7,9,9,8,1,2,48,72,136,152,104,4,4, - 2,2,5,10,10,8,1,2,8,8,144,144,32,32,72,72, - 128,128,4,4,4,8,2,1,16,16,16,224,2,4,4,8, - 3,7,192,192,64,128,7,6,6,8,1,3,16,16,254,56, - 108,68,6,4,4,8,1,3,8,68,132,120,6,7,7,8, - 1,0,56,36,20,76,132,136,112,1,4,4,8,4,7,128, - 128,128,128,5,11,11,8,2,3,16,40,120,128,32,32,32, - 32,32,32,32,6,11,11,8,1,3,12,16,76,176,0,16, - 16,16,16,16,16,6,12,12,8,1,254,16,16,16,16,16, - 16,16,0,12,16,76,176,3,4,4,8,2,10,96,128,96, - 128,5,11,11,8,2,3,24,32,24,32,128,128,128,128,128, - 128,128,7,13,13,8,1,255,6,8,6,8,0,24,36,36, - 60,4,8,144,96,7,13,13,8,1,255,102,104,38,72,128, - 24,36,36,60,4,8,144,96,7,11,11,8,1,255,6,8, - 6,8,0,140,144,144,140,132,120,6,9,9,8,1,3,64, - 64,112,112,0,8,68,132,120,6,9,9,8,1,3,32,0, - 32,0,0,8,68,132,120,6,8,8,8,1,255,8,68,132, - 120,0,16,0,16,6,10,10,8,1,0,40,0,0,8,68, - 132,120,16,40,16,6,9,9,8,1,3,80,0,32,0,0, - 8,68,132,120,6,8,8,8,1,255,8,68,132,120,0,40, - 0,16,6,9,9,8,1,3,80,0,80,0,0,8,68,132, - 120,6,8,8,8,1,255,8,68,132,120,0,40,0,40,6, - 13,13,8,1,254,48,64,48,64,0,252,32,64,128,128,128, - 68,56,6,13,13,8,1,254,32,0,32,0,0,252,32,64, - 128,128,128,68,56,6,8,8,8,1,254,252,32,64,128,168, - 128,68,56,6,8,8,8,1,254,252,32,64,144,128,144,68, - 56,6,13,13,8,1,254,32,0,72,0,0,252,32,64,128, - 128,128,68,56,6,8,8,8,1,254,252,64,128,168,128,144, - 68,56,6,8,8,8,1,254,252,64,128,168,128,168,68,56, - 6,10,10,8,1,3,64,64,112,112,0,16,8,4,132,248, - 6,8,8,8,1,0,16,8,4,132,248,16,40,16,6,7, - 7,8,1,1,16,8,4,132,248,0,16,6,12,12,8,1, - 1,64,64,112,112,0,16,8,4,132,248,0,16,6,8,8, - 8,1,3,80,0,0,16,8,4,132,248,6,7,7,8,1, - 1,16,8,4,132,248,0,80,6,9,9,8,1,3,32,0, - 80,0,16,8,4,132,248,6,9,9,8,1,3,80,0,32, - 0,16,8,4,132,248,6,9,9,8,1,3,80,0,80,0, - 16,8,4,132,248,6,13,13,8,1,255,16,16,28,28,0, - 0,8,4,4,4,8,144,96,7,13,13,8,1,255,34,20, - 8,8,0,0,8,4,4,4,8,144,96,6,8,8,8,1, - 254,8,4,4,4,8,152,116,8,6,7,7,8,1,255,8, - 4,4,4,8,144,100,7,8,8,8,1,254,16,8,8,8, - 16,144,106,4,6,7,7,8,1,255,8,4,4,36,8,144, - 100,6,10,10,8,1,255,36,0,0,8,4,4,4,8,144, - 96,6,12,12,8,1,255,16,0,40,0,0,8,4,4,4, - 8,144,96,6,12,12,8,1,255,36,0,36,0,0,8,4, - 4,4,8,144,96,7,10,10,8,1,0,8,0,0,2,42, - 42,188,144,148,96,7,8,8,8,1,255,2,42,42,188,160, - 170,64,4,7,13,13,8,1,255,16,0,36,0,0,2,42, - 42,188,160,170,64,4,7,6,6,8,1,0,12,50,156,160, - 170,64,7,11,11,8,1,0,16,0,36,0,0,12,50,156, - 144,144,96,6,8,8,8,1,3,72,64,84,64,88,100,68, - 248,6,14,14,8,1,254,32,0,72,0,0,48,72,64,56, - 64,128,128,132,120,6,6,6,8,1,3,12,20,12,132,132, - 120,6,8,8,8,1,1,12,20,12,132,132,120,0,16,6, - 11,11,8,1,1,8,0,0,12,20,12,132,132,120,0,16, - 6,10,10,8,1,3,16,0,36,0,12,20,12,132,132,120, - 6,10,10,8,1,255,12,20,12,132,132,120,0,72,0,32, - 6,10,10,8,1,3,20,0,20,0,12,20,12,132,132,120, - 6,10,10,8,1,0,8,0,0,56,36,20,76,132,136,112, - 6,12,12,8,1,0,32,0,72,0,0,56,36,20,76,132, - 136,112,7,8,8,8,0,3,4,8,16,32,64,60,130,126, - 14,8,16,16,1,3,0,48,0,192,3,0,12,0,16,0, - 15,248,128,4,127,248,7,8,8,8,0,3,4,12,26,36, - 64,60,130,126,6,10,10,8,1,3,16,0,4,20,36,20, - 68,132,132,120,6,11,11,8,1,3,32,0,80,4,20,36, - 20,68,132,132,120,6,12,12,8,1,255,4,20,36,20,68, - 132,132,120,0,40,0,16,7,10,10,8,0,3,8,16,36, - 72,16,32,64,60,130,126,7,10,10,8,0,3,8,16,36, - 76,26,36,64,60,130,126,7,10,10,8,0,3,80,6,24, - 98,12,48,64,60,130,126,7,12,12,8,0,1,8,16,36, - 72,16,32,64,60,130,126,0,40,7,14,14,8,0,255,8, - 16,36,72,16,32,64,60,130,126,0,16,0,16,7,11,11, - 8,0,3,64,0,166,24,98,12,48,64,60,130,126,7,14, - 14,8,1,0,34,20,8,8,0,4,4,4,4,68,132,132, - 136,120,6,13,13,8,1,0,4,0,4,4,4,4,4,4, - 68,132,132,136,120,7,14,14,8,1,0,8,0,18,0,4, - 4,4,4,4,68,132,132,136,120,6,13,13,8,1,254,4, - 4,4,4,4,4,68,132,120,0,40,0,16,6,11,11,8, - 1,254,16,0,0,8,68,132,132,136,112,0,16,6,6,6, - 8,1,0,8,68,132,132,136,112,6,12,12,8,1,0,32, - 32,56,56,0,0,8,68,132,132,136,112,6,11,11,8,1, - 254,16,0,0,8,68,132,132,136,120,20,8,6,11,11,8, - 1,0,32,0,72,0,0,8,68,132,132,136,112,6,6,6, - 8,1,2,32,88,84,52,72,128,6,11,11,8,1,254,32, - 0,0,252,64,128,168,128,144,68,56,4,10,10,8,2,3, - 96,128,96,128,0,64,96,144,144,240,6,3,3,8,1,2, - 32,92,128,6,8,8,8,1,2,48,64,48,64,0,32,92, - 128,6,6,6,8,1,2,80,0,0,32,92,128,6,8,8, - 8,1,255,24,36,36,28,68,164,72,240,6,8,8,8,1, - 255,24,36,36,60,4,56,144,96,6,13,13,8,1,255,68, - 40,16,16,0,24,36,36,60,4,8,144,96,6,14,14,8, - 1,255,32,80,80,56,32,64,152,36,36,60,4,8,144,96, - 6,12,12,8,1,255,16,8,8,0,24,36,36,60,4,8, - 144,96,6,12,12,8,1,255,16,40,68,0,24,36,36,60, - 4,8,144,96,6,11,11,8,1,255,40,0,0,24,36,36, - 60,4,8,144,96,6,13,13,8,1,255,16,0,36,0,0, - 24,36,36,60,4,8,144,96,6,7,7,8,1,255,8,148, - 144,136,132,132,120,7,7,7,8,0,255,4,42,104,164,34, - 34,28,6,12,12,8,1,255,136,80,32,32,0,8,148,144, - 136,132,132,120,6,11,11,8,1,255,16,0,0,24,36,36, - 60,4,8,144,96,6,9,9,8,1,254,24,164,144,136,112, - 0,32,0,32,6,9,9,8,1,254,24,164,144,136,112,0, - 80,0,32,7,6,6,8,1,255,16,40,32,64,128,254,7, - 10,10,8,1,255,96,128,96,128,16,40,32,64,128,254,4, - 1,1,8,2,3,240,4,5,5,8,2,3,64,96,144,144, - 240,11,5,10,16,3,9,16,64,18,224,127,224,128,0,254, - 0,10,5,10,16,3,9,18,64,17,0,127,0,128,0,254, - 0,6,4,4,16,5,9,8,20,60,192,5,5,5,16,4, - 9,136,72,48,16,48,8,5,5,16,3,9,252,32,72,33, - 30,3,3,3,8,4,8,160,0,128,9,4,8,16,4,9, - 18,128,159,128,144,0,96,0,16,16,32,16,0,254,85,85, - 128,0,1,193,134,48,11,233,140,24,16,5,144,4,16,5, - 140,24,11,233,134,48,1,193,128,0,0,1,170,170,15,15, - 30,16,1,254,1,0,2,128,63,248,40,40,48,24,35,136, - 100,76,164,74,100,76,35,136,48,24,40,40,63,248,2,128, - 1,0,3,4,4,16,6,9,96,160,160,96,4,5,5,16, - 6,9,96,144,144,144,96,6,3,3,16,5,10,252,8,96, - 3,5,5,16,6,9,96,224,128,128,64,9,4,8,16,4, - 254,18,128,159,128,144,0,96,0,6,2,2,16,5,10,12, - 240,5,4,4,8,2,9,24,24,16,224,7,4,4,8,1, - 9,32,64,128,254,7,4,4,16,3,9,32,64,128,254,6, - 4,4,16,5,9,16,132,132,124,15,15,30,16,1,254,1, - 0,2,128,5,64,10,160,21,80,42,168,84,84,42,168,42, - 168,42,168,43,168,40,40,47,232,96,12,255,254,5,5,5, - 16,5,9,32,80,136,80,32,5,5,5,16,5,254,32,80, - 136,80,32,2,2,2,16,7,11,192,192,2,4,4,16,7, - 254,192,128,128,64,6,9,9,8,1,3,16,40,68,0,16, - 8,4,132,248,7,11,11,8,1,255,8,20,34,0,8,4, - 4,4,8,144,96,3,3,3,8,2,5,64,224,64,4,9, - 9,8,2,2,128,128,64,64,32,32,16,16,16,5,9,9, - 8,2,2,136,144,96,64,32,32,16,16,16,7,9,9,8, - 1,2,146,164,120,64,32,32,16,16,16,6,9,9,8,1, - 2,48,72,192,228,88,64,32,32,32,7,9,9,8,1,1, - 16,16,40,40,68,68,146,170,198,6,8,8,8,1,2,56, - 68,64,64,48,12,48,192,7,9,9,8,1,2,130,130,68, - 68,40,40,16,16,16,7,9,9,8,1,2,16,16,16,40, - 40,68,68,130,130,7,9,9,8,1,2,48,72,136,152,104, - 4,4,2,2,7,12,12,8,1,0,16,0,36,0,0,2, - 42,42,188,144,148,96,7,9,9,8,1,0,8,0,0,12, - 50,156,144,148,96,6,12,12,8,1,254,16,0,0,48,72, - 64,56,64,144,128,132,120,4,10,10,8,2,254,112,128,240, - 64,128,0,80,80,80,80,6,8,8,8,1,254,56,12,124, - 128,148,148,148,148,10,12,24,16,1,1,4,0,10,0,17, - 0,4,0,3,0,6,128,10,64,10,64,6,64,25,128,96, - 0,128,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 12 - Calculated Max Values w=16 h=16 x=12 y=11 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent=-2 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_18_19[7078] U8G_FONT_SECTION("u8g_font_unifont_18_19") = { - 0,16,16,0,254,3,7,121,9,233,0,255,254,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,8,4,4,16,4,9,152,91,35, - 28,2,2,2,16,7,11,192,192,2,5,5,16,12,3,192, - 192,0,192,192,14,15,30,16,2,255,32,0,31,0,0,128, - 57,252,68,192,4,192,12,192,56,192,8,192,135,192,134,192, - 78,192,60,192,0,192,0,64,15,12,24,16,1,255,57,254, - 68,192,4,192,12,192,56,192,8,192,135,192,134,192,78,192, - 60,192,0,192,0,64,15,12,24,16,1,255,57,254,68,204, - 4,204,12,204,56,204,8,204,135,204,134,204,78,204,60,204, - 0,204,0,68,16,13,26,16,0,254,255,255,0,192,0,192, - 15,192,24,0,24,0,15,224,0,48,3,48,5,176,7,224, - 0,64,0,32,16,16,32,16,0,254,3,192,6,32,1,0, - 255,255,0,192,0,192,15,192,24,0,24,0,15,224,0,48, - 3,48,5,176,7,224,0,64,0,32,16,12,24,16,0,255, - 255,255,1,128,0,192,0,192,1,192,15,128,65,128,64,192, - 32,192,16,192,9,192,7,128,16,12,24,16,0,255,255,255, - 1,128,0,192,0,192,1,192,15,156,65,178,64,226,32,194, - 16,198,9,196,7,128,16,13,26,16,0,254,255,255,1,128, - 57,128,101,152,3,152,7,248,31,136,57,136,33,156,1,184, - 1,160,0,160,0,30,16,12,24,16,0,255,255,255,0,32, - 0,32,56,32,116,248,99,204,99,12,48,12,16,120,12,192, - 2,128,0,124,16,16,32,16,0,254,0,152,0,112,0,0, - 255,255,12,48,12,48,12,48,12,48,12,96,4,0,2,0, - 1,128,0,96,0,16,0,24,0,24,16,16,32,16,0,254, - 16,0,15,224,0,16,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,13,26,16,0,254,255,255,12,48,12,48,12,48,12,48, - 12,96,4,0,2,0,1,128,0,96,0,16,0,24,0,24, - 16,16,32,16,0,254,15,0,0,128,0,64,255,255,12,48, - 12,48,12,48,12,48,12,96,4,0,2,0,1,128,0,96, - 0,16,0,24,0,24,15,15,30,16,1,255,0,76,0,60, - 0,0,57,254,68,204,4,204,12,204,56,204,8,204,135,204, - 134,204,78,204,60,204,0,204,0,68,15,15,30,16,1,255, - 2,0,1,240,0,8,57,254,68,204,4,204,12,204,56,204, - 8,204,135,204,134,204,78,204,60,204,0,204,0,68,15,15, - 30,16,1,255,1,192,0,32,0,16,57,254,68,204,4,204, - 12,204,56,204,8,204,135,204,134,204,78,204,60,204,0,204, - 0,68,15,15,30,16,1,255,0,224,1,208,0,40,57,254, - 68,204,4,204,12,204,56,204,8,204,135,204,134,204,78,204, - 60,204,0,204,0,68,16,12,24,16,0,255,255,255,1,128, - 1,128,29,128,51,224,35,144,39,152,29,152,1,152,1,152, - 1,128,0,128,16,12,24,16,0,255,255,255,8,24,8,24, - 9,216,59,56,58,24,18,56,17,216,8,24,6,24,1,152, - 0,8,16,12,24,16,0,255,255,255,1,152,1,152,1,152, - 1,152,7,152,3,152,1,152,0,152,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,12,24,12,24,7,216,2,24, - 4,24,4,56,4,120,3,216,0,24,0,24,0,8,16,11, - 22,16,0,0,255,255,0,96,0,96,15,224,24,0,24,4, - 15,206,0,100,16,96,8,96,7,192,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,31,248,3,24,6,56,6,120, - 3,216,0,24,0,24,0,8,16,13,26,16,0,254,255,255, - 0,16,0,16,60,120,112,228,96,196,32,68,31,44,12,24, - 24,56,24,100,7,134,0,6,16,12,24,16,0,255,255,255, - 0,24,0,24,0,24,3,248,17,152,8,216,8,216,7,152, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,3,24, - 3,24,31,24,48,24,48,24,31,248,1,24,13,24,22,24, - 29,24,0,136,16,12,24,16,0,255,255,255,0,24,0,24, - 7,24,5,152,33,184,33,248,33,216,19,152,15,24,0,24, - 0,8,16,11,22,16,0,0,255,255,0,192,0,192,0,192, - 7,192,12,0,24,0,24,0,24,0,12,16,7,224,16,12, - 24,16,0,255,255,255,1,128,1,128,1,128,3,128,7,96, - 12,16,8,24,8,24,8,56,4,112,3,224,16,11,22,16, - 0,0,255,255,0,24,0,24,3,248,6,0,6,0,3,240, - 0,24,4,24,2,24,1,240,16,12,24,16,0,255,255,255, - 0,96,0,96,7,224,12,0,24,0,24,192,25,160,9,16, - 5,16,3,48,1,224,16,12,24,16,0,255,255,255,25,152, - 25,152,25,152,25,152,25,152,9,152,7,24,0,24,0,24, - 0,24,0,8,16,12,24,16,0,255,255,255,0,24,0,24, - 0,24,7,248,14,24,12,24,12,24,6,24,2,24,1,24, - 0,136,13,12,24,16,3,255,227,248,216,192,204,192,76,192, - 28,192,120,192,97,192,35,192,30,192,0,192,0,192,0,64, - 16,12,24,16,0,255,255,255,0,24,0,24,0,24,1,248, - 2,0,6,0,6,24,2,40,1,240,0,8,0,4,13,12, - 24,16,3,255,115,248,200,192,192,192,192,192,96,192,28,192, - 48,192,96,192,97,192,99,192,30,192,0,64,16,12,24,16, - 0,255,255,255,0,24,0,24,0,24,7,248,6,24,6,24, - 2,24,0,24,0,24,0,24,0,8,16,12,24,16,0,255, - 255,255,0,24,0,24,0,24,7,248,6,24,6,24,2,24, - 0,24,1,24,3,152,1,8,16,12,24,16,0,255,255,255, - 6,24,6,24,6,24,6,24,6,24,2,56,1,216,0,24, - 0,24,0,24,0,8,16,12,24,16,0,255,255,255,49,128, - 49,128,49,128,49,240,49,200,19,132,15,132,1,132,1,140, - 1,140,0,128,16,12,24,16,0,255,255,255,0,24,0,24, - 7,216,14,120,13,24,12,152,12,120,7,248,0,24,0,24, - 0,8,14,12,24,16,2,255,227,252,216,96,200,96,76,96, - 60,96,12,96,31,224,28,96,12,96,0,96,0,96,0,32, - 16,12,24,16,0,255,255,255,6,24,6,24,6,24,6,24, - 6,24,15,248,6,24,2,24,0,24,0,24,0,8,16,12, - 24,16,0,255,255,255,3,24,3,24,3,24,3,24,6,24, - 4,56,4,120,3,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,0,192,0,192,0,192,3,192,3,128,3,128, - 1,0,0,128,0,64,0,32,0,24,16,12,24,16,0,255, - 255,255,0,192,0,192,0,192,3,192,3,128,3,128,1,0, - 0,128,4,64,14,32,4,24,16,12,24,16,0,255,255,255, - 0,24,0,24,28,56,58,248,49,216,49,152,24,24,8,24, - 4,24,3,24,0,8,16,11,22,16,0,0,255,255,0,48, - 0,48,0,112,14,200,25,140,49,140,49,140,49,152,19,112, - 14,0,16,13,26,16,0,254,255,255,0,48,0,48,0,112, - 14,200,25,140,49,140,49,140,49,152,19,112,14,0,0,192, - 0,192,16,12,24,16,0,255,255,255,0,24,0,24,3,216, - 15,56,12,24,12,56,4,120,3,216,0,24,0,24,0,8, - 16,12,24,16,0,255,255,255,6,24,6,24,31,24,1,152, - 1,152,25,152,21,24,30,24,2,24,1,24,0,136,16,12, - 24,16,0,255,255,255,12,24,14,24,13,24,12,152,12,88, - 12,56,6,56,1,216,0,24,0,24,0,8,16,12,24,16, - 0,255,255,255,3,24,3,24,3,24,11,24,15,24,14,248, - 4,24,4,24,2,24,1,24,0,136,16,12,24,16,0,255, - 255,255,0,24,0,24,7,248,12,0,12,0,6,240,1,152, - 3,16,3,0,1,128,0,252,2,4,4,16,7,10,192,192, - 192,192,6,16,16,16,10,254,48,48,48,252,48,48,48,48, - 48,48,48,48,48,48,48,16,2,2,2,16,7,255,192,192, - 9,11,22,16,7,0,63,128,64,0,64,0,96,0,48,0, - 24,0,8,0,12,0,12,0,156,0,120,0,6,13,13,16, - 10,254,252,48,48,48,48,48,48,48,48,48,48,48,16,8, - 14,14,16,0,0,60,98,49,252,48,48,48,48,48,48,48, - 48,48,16,9,16,32,16,7,254,120,0,132,0,132,0,31, - 128,6,0,6,0,6,0,6,0,6,0,6,0,6,0,6, - 0,6,0,6,0,6,0,2,0,6,3,3,16,4,255,152, - 68,56,6,3,3,16,6,255,112,136,100,4,3,3,16,6, - 255,96,128,112,3,5,5,16,6,255,96,128,96,128,96,5, - 3,3,16,5,10,136,72,48,5,3,3,16,4,10,128,112, - 8,5,3,3,16,4,10,224,16,8,6,4,4,16,3,9, - 112,8,228,28,6,16,16,16,10,254,136,120,0,252,48,48, - 48,48,48,48,48,48,48,48,48,16,8,16,16,16,8,254, - 128,120,4,63,12,12,12,12,12,12,12,12,12,12,12,4, - 8,16,16,16,8,254,240,8,4,63,12,12,12,12,12,12, - 12,12,12,12,12,4,9,16,32,16,7,254,120,0,244,0, - 10,0,31,128,6,0,6,0,6,0,6,0,6,0,6,0, - 6,0,6,0,6,0,6,0,6,0,2,0,5,3,3,16, - 6,255,224,16,8,4,13,13,16,2,254,240,192,192,192,192, - 192,192,192,192,192,192,192,128,9,15,30,16,7,255,32,0, - 30,0,129,0,125,128,3,0,31,0,3,0,3,0,3,0, - 3,0,3,0,3,0,3,0,3,0,1,0,14,12,24,16, - 1,1,4,192,2,216,57,24,68,224,4,0,12,56,56,76, - 8,204,135,156,134,120,78,0,60,0,1,3,3,16,8,10, - 128,128,128,4,1,1,16,6,0,240,3,3,3,16,6,10, - 128,64,32,3,3,3,16,7,10,32,64,128,5,5,5,16, - 5,8,136,72,48,0,248,6,2,2,16,3,254,132,120,8, - 4,4,16,2,254,66,60,129,126,16,13,26,16,0,254,255, - 255,0,192,0,192,14,192,25,248,17,200,19,204,14,204,0, - 204,0,204,4,192,14,64,4,0,16,13,26,16,0,254,255, - 255,8,24,8,24,9,216,59,56,58,24,18,56,17,216,8, - 24,4,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,1,152,1,152,1,152,1,152,7,152,3,152,1,152,0, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,152,1,200,0,128,16,13,26,16,0,254,255, - 255,0,24,0,24,3,248,6,0,6,0,3,240,0,24,4, - 24,3,240,0,0,0,192,0,192,16,13,26,16,0,254,255, - 255,0,96,0,96,7,224,12,0,24,224,25,144,25,16,13, - 48,7,224,0,0,1,128,1,128,16,13,26,16,0,254,255, - 255,49,128,49,128,49,128,49,240,49,200,19,132,15,132,1, - 132,1,140,9,140,28,128,8,0,16,13,26,16,0,254,255, - 255,3,24,3,24,3,24,3,24,6,24,4,56,4,120,3, - 216,0,24,1,24,3,136,1,0,16,13,26,16,0,254,255, - 255,3,0,3,0,51,24,75,40,7,240,15,24,51,8,67, - 24,3,48,3,28,1,16,0,14,16,13,26,16,0,254,255, - 255,0,32,0,32,30,112,49,152,49,152,16,48,8,96,4, - 192,0,60,0,192,0,192,0,60,8,5,5,16,4,255,72, - 146,130,68,3,8,6,6,16,4,254,72,146,132,67,4,3, - 2,12,12,16,7,255,128,192,192,192,192,192,192,192,192,192, - 192,64,5,12,12,16,6,255,144,216,216,216,216,216,216,216, - 216,216,216,72,8,7,7,16,4,2,60,78,199,195,227,114, - 60,6,13,13,16,5,254,112,232,204,204,76,60,24,48,96, - 32,16,8,4,9,13,26,16,4,254,252,0,226,0,1,0, - 1,0,1,0,3,0,54,0,44,0,56,0,4,0,2,0, - 1,0,0,128,8,13,13,16,4,254,252,226,2,2,60,2, - 1,51,46,60,4,2,1,12,12,24,16,2,255,128,16,64, - 48,32,96,16,192,9,128,7,0,6,0,13,0,9,128,9, - 128,9,128,7,0,8,13,13,16,4,254,192,195,195,67,62, - 12,12,104,88,120,4,2,1,8,13,13,16,4,254,60,192, - 128,192,124,16,32,35,51,15,4,4,2,11,11,22,16,3, - 0,128,0,135,0,142,192,140,64,68,96,67,224,64,32,32, - 32,32,64,24,192,7,0,10,10,20,16,3,1,255,192,32, - 0,64,0,128,0,128,0,131,0,135,128,124,128,56,128,0, - 128,8,12,12,16,4,255,56,100,98,97,32,56,72,192,192, - 192,32,31,5,4,4,16,6,3,112,136,136,112,2,2,2, - 16,8,6,192,192,15,15,30,16,1,255,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,192,0,64,15,15,30,16,1,255,0, - 192,0,192,0,192,57,254,68,192,4,192,12,192,56,192,8, - 192,135,192,134,192,78,192,60,192,0,192,0,64,15,15,30, - 16,1,255,0,12,0,12,0,12,57,254,68,204,4,204,12, - 204,56,204,8,204,135,204,134,204,78,204,60,204,0,204,0, - 68,15,15,30,16,1,255,0,128,0,120,2,4,57,246,68, - 12,4,124,12,204,56,204,8,204,135,204,134,204,78,204,60, - 204,0,204,0,68,15,16,32,16,1,254,2,0,1,32,0, - 192,57,254,68,192,4,192,12,192,56,192,8,192,135,192,134, - 192,78,192,60,192,0,64,33,0,30,0,15,16,32,16,1, - 254,2,0,1,32,0,192,57,254,68,192,4,192,12,192,56, - 192,8,192,135,192,78,192,60,192,33,192,30,0,64,128,63, - 0,16,12,24,16,0,255,255,255,24,0,24,0,24,0,63, - 224,56,112,0,48,0,48,0,48,0,48,0,96,0,64,16, - 12,24,16,0,255,255,255,0,24,0,24,0,24,3,248,17, - 152,8,216,8,216,7,152,0,24,8,152,2,8,16,12,24, - 16,0,255,255,255,3,24,3,24,3,24,3,152,6,88,4, - 56,4,120,3,216,0,24,0,24,0,8,16,12,24,16,0, - 255,255,255,1,152,1,152,1,152,1,152,7,152,3,152,1, - 152,0,152,0,24,0,24,15,248,16,12,24,16,0,255,255, - 255,0,24,0,24,0,24,3,248,17,152,8,216,8,216,7, - 152,0,24,0,24,31,248,8,13,13,16,4,254,124,226,193, - 1,1,3,62,60,48,48,48,48,16,16,13,26,16,0,254, - 255,255,0,24,0,24,3,248,6,0,6,0,3,240,0,24, - 4,24,2,24,1,240,0,0,15,254,16,12,24,16,0,255, - 255,255,0,24,0,24,7,216,14,120,13,24,12,152,12,120, - 7,248,0,24,0,24,15,248,11,12,24,16,2,255,30,0, - 55,0,97,128,193,128,193,128,89,128,57,128,1,128,1,128, - 1,160,1,160,0,192,6,4,4,16,5,9,48,180,132,120, - 5,8,8,16,11,0,96,144,96,0,192,96,48,8,4,7, - 7,16,11,1,96,144,96,0,96,144,96,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,231,108,219,108,231,12,219,236,231,236,255,252,16,12,24, - 16,0,255,255,255,0,12,64,12,67,140,71,204,71,236,99, - 44,32,108,48,124,24,220,15,140,0,4,16,13,26,16,0, - 255,0,6,255,247,0,110,64,102,70,102,79,102,79,102,69, - 102,65,102,97,102,51,230,30,102,0,34,16,15,30,16,0, - 255,32,0,31,192,0,32,255,255,0,0,15,192,24,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,16, - 15,30,16,0,255,32,0,31,240,0,8,255,255,30,0,63, - 12,59,30,25,56,1,248,1,240,3,144,79,16,60,16,16, - 24,0,14,16,15,30,16,0,255,16,0,15,224,0,16,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,15,30,16,0,255,16,0,15, - 224,0,16,255,255,3,0,3,0,83,0,83,16,83,56,83, - 108,73,204,40,12,36,12,18,24,15,240,15,14,28,16,1, - 255,64,0,228,0,230,206,133,204,121,204,3,204,14,204,120, - 204,96,236,120,252,14,220,3,204,1,204,0,68,14,14,28, - 16,1,255,64,0,128,0,128,0,64,0,127,192,31,240,0, - 56,15,12,24,140,56,76,56,76,56,76,16,216,3,240,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,231,28,219,108,231,108,219,108,231,28,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,231,12,219,124,231,28,219,124,231, - 12,255,252,14,13,26,16,1,255,0,48,0,248,1,140,3, - 12,135,140,135,140,131,12,128,12,192,12,64,108,96,156,51, - 12,14,4,14,15,30,16,1,255,0,8,0,16,0,16,0, - 216,3,236,6,52,140,52,158,52,158,52,140,56,192,48,65, - 176,98,112,60,48,24,16,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,231,220,219, - 156,227,220,251,220,231,140,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,231, - 12,219,236,227,12,251,124,231,12,255,252,14,13,26,16,1, - 255,0,240,3,24,6,12,14,12,142,12,134,120,192,248,64, - 120,96,12,48,12,24,12,12,24,7,240,14,15,30,16,1, - 255,0,8,0,16,0,16,7,216,8,108,28,52,28,52,156, - 52,137,228,131,248,193,224,64,48,96,48,48,112,31,224,16, - 12,24,16,0,255,255,255,0,96,0,96,1,248,7,100,60, - 98,48,98,60,110,7,108,1,224,0,224,0,32,14,13,26, - 16,2,255,64,0,226,60,227,48,197,48,121,48,1,48,6, - 48,120,48,126,48,1,176,0,112,0,48,0,16,14,12,24, - 16,2,255,62,124,113,96,224,224,224,96,252,96,70,96,6, - 96,6,96,28,96,120,96,32,96,0,32,16,12,24,16,0, - 255,255,255,24,24,48,24,56,24,31,152,1,152,6,24,12, - 24,31,24,1,216,0,56,0,8,12,13,26,16,2,255,32, - 0,35,192,22,64,12,64,15,128,140,0,136,32,136,112,199, - 176,64,48,96,48,48,96,31,128,16,12,24,16,0,255,255, - 255,24,0,24,0,28,0,27,0,24,252,24,12,24,12,24, - 12,24,24,28,48,15,192,16,12,24,16,0,255,255,255,24, - 0,24,0,28,0,27,224,24,56,24,104,28,200,15,16,0, - 96,1,248,0,14,16,12,24,16,0,255,255,255,1,240,3, - 28,70,15,76,2,76,196,79,36,102,44,32,44,48,100,24, - 196,15,131,16,12,24,16,0,255,255,231,0,102,0,102,1, - 230,7,102,60,102,48,102,60,102,7,126,1,238,0,230,0, - 34,14,13,26,16,1,255,7,0,13,128,25,176,49,248,57, - 204,185,140,145,184,129,140,193,204,199,248,111,176,121,128,48, - 128,16,15,30,16,0,255,16,0,15,192,0,32,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,16,15,30,16,0,255,16,0,15,0,0, - 128,255,255,0,128,0,128,0,192,1,192,1,96,35,48,58, - 24,20,24,24,24,12,48,7,224,16,12,24,16,0,255,255, - 255,3,0,3,0,67,0,67,16,67,56,99,108,33,204,48, - 12,24,12,14,24,3,240,16,12,24,16,0,255,255,255,24, - 0,24,0,24,0,24,96,24,240,24,112,24,48,24,96,24, - 192,15,128,7,0,13,13,26,16,3,255,28,96,62,120,97, - 96,192,224,192,224,224,96,224,96,64,96,0,96,0,96,0, - 96,0,96,0,32,16,12,24,16,0,255,255,255,0,0,65, - 248,67,12,67,132,67,134,99,134,33,6,48,6,24,12,12, - 28,7,240,15,13,26,16,1,255,60,0,98,62,241,48,241, - 48,97,48,1,48,6,48,120,48,126,48,1,176,0,112,0, - 48,0,16,16,12,24,16,0,255,255,255,12,0,12,0,12, - 120,12,240,13,224,13,96,15,96,14,96,14,96,12,48,8, - 28,12,13,26,16,4,255,96,0,240,240,224,192,128,192,99, - 192,30,192,56,192,224,192,248,192,14,192,3,192,1,192,0, - 64,16,12,24,16,0,255,255,255,0,24,0,24,0,24,0, - 24,30,24,63,152,60,216,56,120,0,56,0,24,0,8,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,156,219,108,195,140,219,236,219,156,255, - 252,15,13,26,16,1,255,14,48,31,190,48,240,96,112,240, - 240,155,176,14,48,24,48,32,48,0,48,0,48,0,48,0, - 16,16,12,24,16,0,255,255,255,16,0,56,120,12,100,6, - 98,12,98,24,110,48,108,63,96,1,224,0,96,0,32,16, - 12,24,16,0,255,255,255,0,24,0,24,0,120,3,216,7, - 24,28,24,31,24,1,216,0,120,0,56,0,8,16,12,24, - 16,0,255,255,255,0,0,66,16,71,8,71,12,70,20,99, - 230,32,6,48,6,24,12,12,28,7,240,16,12,24,16,0, - 255,255,255,12,24,28,24,14,24,3,24,3,24,3,24,15, - 216,30,120,12,56,0,24,0,8,16,12,24,16,0,255,255, - 255,8,48,28,48,6,48,3,48,6,48,12,48,24,48,31, - 176,0,240,0,48,0,16,16,12,24,16,0,255,255,255,0, - 24,0,120,3,216,7,24,28,24,31,24,1,216,2,120,7, - 56,7,24,2,8,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,220,219,156,199, - 220,219,220,199,140,255,252,16,12,24,16,0,255,255,255,0, - 6,0,6,28,22,62,62,99,102,65,198,65,198,64,134,124, - 6,60,6,24,2,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,199, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,199,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,199,12,219,236,199,12,255,252,15,13,26,16,1, - 255,112,204,249,238,143,60,143,28,31,140,63,204,25,140,0, - 12,0,12,0,12,0,12,0,12,0,4,16,12,24,16,0, - 255,255,255,28,24,14,24,7,152,1,216,6,120,28,24,31, - 24,1,216,0,120,0,56,0,8,16,12,24,16,0,255,255, - 255,16,12,56,12,28,12,6,12,2,204,1,236,3,28,102, - 12,60,12,24,12,0,4,16,12,24,16,0,255,255,255,0, - 0,15,192,24,96,60,48,60,48,24,48,0,96,63,192,7, - 0,1,192,0,124,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,12,219,108,199, - 12,219,108,199,108,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,28,219, - 108,199,28,219,108,199,28,255,252,2,2,2,16,7,255,192, - 192,14,12,24,16,0,255,240,0,8,0,15,192,28,96,60, - 48,60,48,24,48,0,96,63,192,7,0,1,192,0,124,5, - 10,10,16,11,255,48,184,112,48,48,48,48,48,48,16,13, - 14,28,16,0,255,15,128,63,224,96,16,96,8,32,0,248, - 0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,16, - 0,12,14,28,16,4,255,63,0,65,128,128,192,190,64,65, - 64,1,240,0,192,0,192,0,192,0,192,0,192,0,192,0, - 192,0,64,6,5,5,16,5,254,4,104,144,104,4,6,5, - 5,16,6,254,96,128,112,8,4,5,5,5,16,5,254,24, - 96,128,96,24,3,5,5,16,6,255,96,128,96,128,64,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,227,12,223,124,223,12,223,236,227,12,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,227,156,223,124,223,28,223,108,227, - 156,255,252,5,9,9,16,0,255,248,24,48,96,64,64,64, - 88,56,5,12,12,16,0,255,128,112,8,248,24,48,96,64, - 64,64,88,56,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,227,156,223,108,223,140, - 223,236,227,156,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,227,12,223,108, - 223,12,223,108,227,108,255,252,16,10,20,16,0,255,0,6, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,16,13,26,16,0,255,0,128,0,112,0,8,0,4, - 248,23,24,14,48,6,96,6,64,6,64,6,64,6,88,6, - 56,2,5,3,3,16,6,0,192,48,8,8,12,12,16,4, - 255,56,92,204,236,216,192,96,56,12,6,3,1,14,14,28, - 16,1,255,255,252,231,156,219,108,219,140,219,236,231,156,255, - 252,255,252,227,12,223,124,223,28,223,124,227,124,255,252,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,199,156,219,108,219,108,219,108,199,156,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,199,220,219,156,219,220,219,220,199, - 140,255,252,14,14,28,16,1,255,255,252,231,156,219,108,219, - 140,219,236,231,156,255,252,255,252,199,12,219,236,219,12,219, - 124,199,12,255,252,14,14,28,16,1,255,255,252,231,156,219, - 108,219,140,219,236,231,156,255,252,255,252,199,28,219,236,219, - 140,219,236,199,28,255,252,14,14,28,16,1,255,255,252,231, - 156,219,108,219,140,219,236,231,156,255,252,255,252,199,108,219, - 108,219,12,219,236,199,236,255,252,14,14,28,16,1,255,255, - 252,231,156,219,108,219,140,219,236,231,156,255,252,255,252,199, - 12,219,124,219,12,219,236,199,12,255,252,14,14,28,16,1, - 255,255,252,231,156,219,108,219,140,219,236,231,156,255,252,255, - 252,199,156,219,124,219,28,219,108,199,156,255,252,8,13,13, - 16,8,255,128,112,8,4,23,14,6,6,6,6,6,6,2, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,199,156,219,108,219,156,219,108,199,156, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,199,156,219,108,219,140,219,236, - 199,156,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,199,12,219,108,219,12, - 219,108,199,108,255,252,14,14,28,16,1,255,255,252,231,156, - 219,108,219,140,219,236,231,156,255,252,255,252,199,28,219,108, - 219,28,219,108,199,28,255,252,16,13,26,16,0,254,255,255, - 3,0,67,16,67,56,99,108,35,204,49,140,24,12,14,24, - 3,240,0,0,0,192,0,192,16,13,26,16,0,254,255,255, - 12,0,12,0,12,0,12,48,12,120,12,56,12,48,7,224, - 3,192,0,0,1,128,1,128,14,14,28,16,1,255,255,252, - 231,156,219,108,219,140,219,236,231,156,255,252,255,252,199,12, - 219,124,219,28,219,124,199,12,255,252,16,13,26,16,0,254, - 255,255,4,24,14,24,3,24,1,152,3,24,6,24,12,24, - 15,216,0,120,1,24,3,136,1,0,15,15,30,16,1,254, - 64,0,228,0,230,206,133,204,121,204,3,204,14,204,120,204, - 96,236,120,252,14,220,123,204,97,204,120,68,14,0,8,14, - 14,16,4,255,128,124,3,121,197,205,158,128,124,3,121,197, - 205,158,7,5,5,16,5,255,124,2,114,202,220,10,6,12, - 16,5,255,3,128,112,64,10,64,77,64,173,128,176,0,14, - 14,28,16,1,255,255,252,231,156,219,108,219,140,219,236,231, - 156,255,252,255,252,195,108,223,108,199,12,223,236,195,236,255, - 252,14,14,28,16,1,255,255,252,231,156,219,108,219,140,219, - 236,231,156,255,252,255,252,195,12,223,124,199,12,223,236,195, - 12,255,252,10,11,22,16,3,0,30,0,63,0,97,128,192, - 192,192,192,192,192,192,192,192,192,97,128,63,0,30,0,9, - 12,24,16,4,0,64,0,64,0,96,0,56,0,14,0,3, - 0,1,128,97,128,225,128,225,128,195,0,126,0,10,11,22, - 16,3,0,224,0,56,0,14,0,3,0,3,0,227,0,126, - 0,28,0,6,0,1,128,0,64,12,12,24,16,2,255,131, - 192,132,96,136,48,140,48,142,48,142,48,134,48,64,48,64, - 96,32,96,17,192,15,0,11,13,26,16,2,255,31,0,63, - 128,96,192,64,64,96,192,49,128,31,0,96,192,192,96,192, - 96,224,224,127,192,31,0,11,13,26,16,2,255,7,0,30, - 0,57,96,112,192,97,128,195,0,198,0,198,0,198,0,198, - 0,99,96,48,192,31,128,12,12,24,16,2,255,28,0,12, - 0,12,0,140,0,140,96,140,160,141,176,199,48,64,48,96, - 48,48,96,31,192,9,13,26,16,4,255,60,0,126,0,195, - 0,195,0,199,0,127,0,59,0,3,0,3,0,3,0,3, - 0,3,0,1,128,13,13,26,16,1,255,224,0,96,0,96, - 0,96,8,103,240,127,192,112,96,96,96,96,96,96,96,112, - 192,63,128,30,0,12,15,30,16,2,254,128,0,128,0,96, - 0,60,0,15,0,3,192,0,224,0,48,60,48,66,48,225, - 48,225,48,225,96,65,192,1,0,16,12,24,16,0,255,255, - 255,0,24,0,24,0,120,3,216,7,152,28,120,31,24,1, - 216,0,120,0,56,0,8,16,13,26,16,0,254,255,255,0, - 24,0,24,0,120,3,216,7,24,28,24,31,24,1,216,28, - 120,7,56,1,136,0,64,9,8,16,16,3,3,224,0,248, - 0,124,0,14,0,3,0,1,0,0,128,0,128,12,13,26, - 16,1,255,48,0,120,0,204,0,12,0,31,240,12,0,12, - 96,12,240,12,240,12,48,12,96,7,192,3,128,9,8,16, - 16,3,2,0,128,0,128,1,0,3,0,14,0,124,0,248, - 0,224,0,12,9,18,16,2,2,56,16,124,16,226,32,242, - 96,242,192,98,192,7,128,15,0,14,0,12,13,26,16,2, - 255,0,16,0,16,0,16,56,16,124,16,126,16,62,16,6, - 48,12,96,248,224,193,192,127,128,30,0,2,13,13,16,8, - 255,128,192,192,192,192,192,192,192,192,192,192,192,64,11,13, - 26,16,2,255,224,0,96,0,96,192,97,192,99,192,98,192, - 102,192,108,192,120,192,112,192,96,192,0,192,0,96,11,10, - 20,16,3,1,31,0,63,128,96,192,192,96,192,96,192,96, - 192,96,96,192,63,128,31,0,14,9,18,16,1,255,0,4, - 2,4,135,8,135,8,66,16,96,48,48,96,31,192,15,0, - 6,8,8,16,5,254,96,128,128,64,32,16,8,4,14,14, - 28,16,1,255,255,252,231,156,219,108,219,140,219,236,231,156, - 255,252,255,252,195,140,223,124,199,124,223,124,223,140,255,252, - 14,14,28,16,1,255,255,252,231,156,219,108,219,140,219,236, - 231,156,255,252,255,252,195,28,223,108,199,108,223,108,223,28, - 255,252,14,14,28,16,1,255,255,252,231,156,219,108,219,140, - 219,236,231,156,255,252,255,252,195,12,223,124,199,28,223,124, - 223,12,255,252,14,14,28,16,1,255,255,252,231,156,219,108, - 219,140,219,236,231,156,255,252,255,252,195,12,223,124,199,28, - 223,124,223,124,255,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 4 y= 0 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =14 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_2_3[4633] U8G_FONT_SECTION("u8g_font_unifont_2_3") = { - 0,16,16,0,254,10,4,222,7,30,0,255,0,14,254,14, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,11,11,8,1,0,120,0,0, - 120,132,4,124,132,132,140,116,6,14,14,8,1,0,132,132, - 120,0,48,72,72,132,132,252,132,132,132,132,6,13,13,8, - 1,0,132,132,120,0,0,120,132,4,124,132,132,140,116,7, - 12,12,8,1,254,48,72,72,132,132,252,132,132,132,132,8, - 6,7,10,10,8,1,254,120,132,4,124,132,132,140,116,8, - 6,6,14,14,8,1,0,24,96,0,0,120,132,132,128,128, - 128,128,132,132,120,6,12,12,8,1,0,24,96,0,0,120, - 132,128,128,128,128,132,120,6,14,14,8,1,0,48,72,0, - 0,120,132,132,128,128,128,128,132,132,120,6,12,12,8,1, - 0,48,72,0,0,120,132,128,128,128,128,132,120,6,14,14, - 8,1,0,32,32,0,0,120,132,132,128,128,128,128,132,132, - 120,6,12,12,8,1,0,32,32,0,0,120,132,128,128,128, - 128,132,120,6,14,14,8,1,0,72,48,0,0,120,132,132, - 128,128,128,128,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,128,128,128,128,132,120,6,14,14,8,1,0,144, - 96,0,0,240,136,132,132,132,132,132,132,136,240,6,14,14, - 8,1,0,72,48,0,4,4,4,116,140,132,132,132,132,140, - 116,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,11,11,8,1,0,4,30,4,116,140,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,252,128,128,128,248, - 128,128,128,128,252,6,11,11,8,1,0,120,0,0,120,132, - 132,252,128,128,132,120,6,14,14,8,1,0,132,132,120,0, - 252,128,128,128,248,128,128,128,128,252,6,12,12,8,1,0, - 132,132,120,0,120,132,132,252,128,128,132,120,6,14,14,8, - 1,0,32,32,0,0,252,128,128,128,248,128,128,128,128,252, - 6,12,12,8,1,0,32,32,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,254,252,128,128,128,248,128,128,128, - 128,252,16,12,6,10,10,8,1,254,120,132,132,252,128,128, - 132,120,32,24,6,14,14,8,1,0,72,48,0,0,252,128, - 128,128,248,128,128,128,128,252,6,12,12,8,1,0,72,48, - 0,0,120,132,132,252,128,128,132,120,6,14,14,8,1,0, - 48,72,0,0,120,132,132,128,128,156,132,132,140,116,6,14, - 14,8,1,254,48,72,0,4,116,136,136,136,112,64,120,132, - 132,120,6,14,14,8,1,0,132,132,120,0,120,132,132,128, - 128,156,132,132,140,116,6,15,15,8,1,254,132,132,120,0, - 4,116,136,136,136,112,64,120,132,132,120,6,14,14,8,1, - 0,32,32,0,0,120,132,132,128,128,156,132,132,140,116,6, - 14,14,8,1,254,32,32,0,4,116,136,136,136,112,64,120, - 132,132,120,6,12,12,8,1,254,120,132,132,128,128,156,132, - 132,140,116,16,96,6,14,14,8,1,254,24,32,0,4,116, - 136,136,136,112,64,120,132,132,120,6,14,14,8,1,0,48, - 72,0,0,132,132,132,132,252,132,132,132,132,132,6,14,14, - 8,1,0,96,144,0,128,128,128,184,196,132,132,132,132,132, - 132,8,10,10,8,0,0,66,66,255,66,66,126,66,66,66, - 66,7,11,11,8,0,0,64,240,64,92,98,66,66,66,66, - 66,66,6,14,14,8,1,0,100,152,0,0,124,16,16,16, - 16,16,16,16,16,124,6,12,12,8,1,0,100,152,0,0, - 48,16,16,16,16,16,16,124,5,13,13,8,2,0,240,0, - 0,248,32,32,32,32,32,32,32,32,248,5,11,11,8,2, - 0,240,0,0,96,32,32,32,32,32,32,248,6,14,14,8, - 1,0,132,132,120,0,124,16,16,16,16,16,16,16,16,124, - 6,12,12,8,1,0,132,132,120,0,48,16,16,16,16,16, - 16,124,5,12,12,8,2,254,248,32,32,32,32,32,32,32, - 32,248,32,24,5,13,13,8,2,254,32,32,0,96,32,32, - 32,32,32,32,248,32,24,5,14,14,8,2,0,32,32,0, - 0,248,32,32,32,32,32,32,32,32,248,5,8,8,8,2, - 0,96,32,32,32,32,32,32,248,6,10,10,8,1,0,132, - 132,132,132,132,132,4,4,132,120,5,14,14,8,2,254,136, - 136,0,0,136,136,136,136,136,136,104,8,136,112,7,14,14, - 8,1,0,24,36,0,0,62,8,8,8,8,8,8,136,136, - 112,6,14,14,8,1,254,24,36,0,0,24,8,8,8,8, - 8,8,8,144,96,7,12,12,8,0,254,66,68,72,80,96, - 96,80,72,68,66,32,192,7,13,13,8,0,254,64,64,64, - 68,72,80,96,80,72,68,66,32,192,6,8,8,8,1,0, - 132,136,144,224,224,144,136,132,6,14,14,8,1,0,48,192, - 0,0,128,128,128,128,128,128,128,128,128,252,5,14,14,8, - 2,0,48,192,0,96,32,32,32,32,32,32,32,32,32,248, - 6,12,12,8,1,254,128,128,128,128,128,128,128,128,128,252, - 16,96,5,13,13,8,2,254,96,32,32,32,32,32,32,32, - 32,32,248,32,192,6,14,14,8,1,0,72,48,0,0,128, - 128,128,128,128,128,128,128,128,252,5,14,14,8,2,0,144, - 96,0,96,32,32,32,32,32,32,32,32,32,248,6,10,10, - 8,1,0,128,128,128,128,136,136,128,128,128,252,5,11,11, - 8,1,0,96,32,32,32,32,40,40,32,32,32,248,7,10, - 10,8,0,0,64,64,72,80,96,192,64,64,64,126,5,11, - 11,8,2,0,96,32,32,40,48,96,160,32,32,32,248,6, - 14,14,8,1,0,24,96,0,0,132,196,196,164,164,148,148, - 140,140,132,6,12,12,8,1,0,24,96,0,0,184,196,132, - 132,132,132,132,132,7,12,12,8,0,254,66,98,98,82,82, - 74,74,70,70,66,32,192,7,10,10,8,0,254,92,98,66, - 66,66,66,66,66,32,192,6,14,14,8,1,0,72,48,0, - 0,132,196,196,164,164,148,148,140,140,132,6,12,12,8,1, - 0,72,48,0,0,184,196,132,132,132,132,132,132,6,13,13, - 8,1,0,192,64,64,128,0,184,196,132,132,132,132,132,132, - 6,10,10,8,1,0,184,196,132,132,132,132,132,132,132,152, - 6,10,10,8,1,254,184,196,132,132,132,132,132,132,4,24, - 6,13,13,8,1,0,120,0,0,120,132,132,132,132,132,132, - 132,132,120,6,11,11,8,1,0,120,0,0,120,132,132,132, - 132,132,132,120,6,14,14,8,1,0,132,132,120,0,120,132, - 132,132,132,132,132,132,132,120,6,12,12,8,1,0,132,132, - 120,0,120,132,132,132,132,132,132,120,7,14,14,8,1,0, - 102,136,0,0,120,132,132,132,132,132,132,132,132,120,7,12, - 12,8,1,0,102,136,0,0,120,132,132,132,132,132,132,120, - 7,10,10,8,1,0,110,144,144,144,156,144,144,144,144,110, - 7,8,8,8,1,0,108,146,146,158,144,144,146,108,6,14, - 14,8,1,0,24,96,0,0,248,132,132,132,248,144,136,136, - 132,132,6,12,12,8,1,0,24,96,0,0,184,196,132,128, - 128,128,128,128,7,12,12,8,0,254,124,66,66,66,124,72, - 68,68,66,66,32,192,7,10,10,8,0,254,92,98,66,64, - 64,64,64,64,32,192,6,14,14,8,1,0,72,48,0,0, - 248,132,132,132,248,144,136,136,132,132,6,12,12,8,1,0, - 72,48,0,0,184,196,132,128,128,128,128,128,6,14,14,8, - 1,0,24,96,0,0,120,132,132,128,96,24,4,132,132,120, - 6,12,12,8,1,0,24,96,0,0,120,132,128,96,24,132, - 132,120,6,14,14,8,1,0,48,72,0,0,120,132,132,128, - 96,24,4,132,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,128,96,24,4,132,120,6,12,12,8,1,254,120,132, - 132,128,96,24,4,132,132,120,16,96,6,10,10,8,1,254, - 120,132,128,96,24,4,132,120,16,96,6,14,14,8,1,0, - 72,48,0,0,120,132,132,128,96,24,4,132,132,120,6,12, - 12,8,1,0,72,48,0,0,120,132,128,96,24,4,132,120, - 7,12,12,8,1,254,254,16,16,16,16,16,16,16,16,16, - 16,96,5,12,12,8,1,254,32,32,32,248,32,32,32,32, - 32,24,16,96,7,14,14,8,1,0,72,48,0,0,254,16, - 16,16,16,16,16,16,16,16,5,14,14,8,1,0,72,48, - 0,0,32,32,32,248,32,32,32,32,32,24,7,10,10,8, - 1,0,254,16,16,20,24,48,80,16,16,16,5,10,10,8, - 1,0,32,32,32,248,32,40,48,96,160,24,6,14,14,8, - 1,0,100,152,0,0,132,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,100,152,0,0,132,132,132,132,132,132, - 140,116,6,13,13,8,1,0,120,0,0,132,132,132,132,132, - 132,132,132,132,120,6,11,11,8,1,0,120,0,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,132,132,120,0, - 132,132,132,132,132,132,132,132,132,120,6,13,13,8,1,0, - 132,132,120,0,0,132,132,132,132,132,132,140,116,6,14,14, - 8,1,0,48,72,48,0,132,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,48,72,48,0,132,132,132,132,132, - 132,140,116,7,14,14,8,1,0,102,136,0,0,132,132,132, - 132,132,132,132,132,132,120,7,12,12,8,1,0,102,136,0, - 0,132,132,132,132,132,132,140,116,6,12,12,8,1,254,132, - 132,132,132,132,132,132,132,132,120,32,24,7,10,10,8,1, - 254,132,132,132,132,132,132,140,116,8,6,6,14,14,8,1, - 0,48,72,0,0,132,132,132,132,180,180,204,204,132,132,7, - 12,12,8,1,0,48,72,0,0,130,146,146,146,146,146,146, - 108,7,14,14,8,1,0,48,72,0,0,130,130,68,68,40, - 16,16,16,16,16,6,14,14,8,1,254,48,72,0,0,132, - 132,132,132,132,76,52,4,4,120,7,14,14,8,1,0,72, - 72,0,0,130,130,68,68,40,16,16,16,16,16,6,14,14, - 8,1,0,24,96,0,0,252,4,4,8,16,32,64,128,128, - 252,6,12,12,8,1,0,24,96,0,0,252,4,8,16,32, - 64,128,252,6,14,14,8,1,0,32,32,0,0,252,4,4, - 8,16,32,64,128,128,252,6,12,12,8,1,0,32,32,0, - 0,252,4,8,16,32,64,128,252,6,14,14,8,1,0,72, - 48,0,0,252,4,4,8,16,32,64,128,128,252,6,12,12, - 8,1,0,72,48,0,0,252,4,8,16,32,64,128,252,4, - 11,11,8,2,0,48,64,64,64,192,64,64,64,64,64,64, - 7,11,11,8,0,0,64,240,64,92,98,66,66,66,66,98, - 92,7,10,10,8,0,0,124,162,162,34,60,34,34,34,34, - 60,6,10,10,8,1,0,252,128,128,128,248,132,132,132,132, - 248,6,10,10,8,1,0,252,128,128,184,196,132,132,132,196, - 184,6,10,10,8,1,0,192,64,64,64,120,68,68,68,68, - 120,6,8,8,8,1,0,192,64,64,64,120,68,68,120,6, - 10,10,8,1,0,120,132,132,4,4,4,4,132,132,248,7, - 12,12,8,1,0,6,8,120,136,136,128,128,128,128,136,136, - 112,7,10,10,8,1,0,6,8,120,136,128,128,128,128,136, - 112,7,10,10,8,0,0,120,68,66,66,242,66,66,66,68, - 120,7,10,10,8,0,0,120,164,162,34,34,34,34,34,36, - 56,6,10,10,8,1,0,252,4,4,4,124,132,132,132,132, - 124,6,10,10,8,1,0,252,4,4,116,140,132,132,132,140, - 116,6,10,10,8,1,254,120,132,132,132,132,72,48,8,8, - 112,6,10,10,8,1,0,252,4,4,4,124,4,4,4,4, - 252,6,10,10,8,1,0,48,72,132,4,4,252,132,132,72, - 48,6,10,10,8,1,0,120,132,132,128,112,128,128,132,132, - 120,7,11,11,8,1,255,62,32,32,32,60,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,248,32,32,32, - 32,32,32,192,7,11,11,8,1,0,6,120,136,136,128,128, - 184,136,136,152,104,6,10,10,8,1,0,132,132,132,72,72, - 48,48,72,72,48,6,11,11,8,1,0,128,128,128,128,228, - 148,148,148,148,148,136,5,11,11,8,1,0,224,32,32,32, - 32,32,32,32,32,32,24,5,10,10,8,2,0,248,32,32, - 32,248,32,32,32,32,248,6,10,10,8,1,0,140,148,160, - 160,192,192,160,144,136,132,6,11,11,8,1,0,96,144,128, - 136,144,160,192,160,144,136,132,5,11,11,8,2,0,96,32, - 32,32,248,32,32,32,32,32,248,6,10,10,8,1,0,72, - 80,32,96,144,48,72,72,132,132,7,10,10,8,1,0,146, - 146,146,146,146,146,146,146,146,110,7,11,11,8,0,255,34, - 34,50,50,42,42,38,38,34,34,192,6,10,10,8,1,254, - 184,196,132,132,132,132,132,132,4,4,6,10,10,8,1,0, - 120,132,132,132,252,132,132,132,132,120,6,11,11,8,1,0, - 4,116,136,136,136,136,136,136,136,136,112,6,9,9,8,1, - 0,4,116,136,136,136,136,136,136,112,6,12,12,8,1,254, - 108,148,148,148,148,148,148,148,148,100,4,4,6,10,10,8, - 1,254,108,148,148,148,148,148,148,100,4,4,7,10,10,8, - 1,0,124,162,162,34,60,32,32,32,32,32,7,11,11,8, - 1,254,6,184,200,136,136,136,136,200,176,128,128,7,10,10, - 8,1,0,224,64,120,68,68,120,80,72,68,66,6,10,10, - 8,1,0,120,132,132,4,24,96,128,132,132,120,6,8,8, - 8,1,0,120,132,4,24,96,128,132,120,6,10,10,8,1, - 0,252,128,64,32,16,16,32,64,128,252,5,12,12,8,1, - 255,64,160,160,96,32,32,32,32,32,32,32,24,5,12,12, - 8,1,254,32,32,32,248,32,32,32,32,32,24,8,48,7, - 10,10,8,1,0,126,144,144,16,16,16,16,16,16,16,5, - 11,11,8,1,0,24,32,32,32,248,32,32,32,32,32,24, - 7,11,11,8,1,255,254,16,16,16,16,16,16,16,16,16, - 12,7,12,12,8,1,0,2,2,140,136,136,136,136,136,136, - 136,136,112,7,10,10,8,1,0,2,2,140,136,136,136,136, - 136,152,104,6,10,10,8,1,0,132,72,72,132,132,132,132, - 132,72,48,6,10,10,8,1,0,152,132,132,132,132,132,132, - 136,144,96,7,10,10,8,1,0,140,138,136,80,80,32,32, - 32,32,32,7,11,11,8,1,254,6,136,136,136,136,136,72, - 56,8,8,112,6,10,10,8,1,0,252,4,8,16,120,32, - 64,128,128,252,6,8,8,8,1,0,252,8,16,120,32,64, - 128,252,6,10,10,8,1,0,252,8,16,32,56,4,4,4, - 140,120,6,10,10,8,1,0,252,64,32,16,112,128,128,128, - 196,120,6,10,10,8,1,254,248,64,32,16,112,128,128,128, - 132,120,6,10,10,8,1,254,124,8,16,56,4,4,120,128, - 132,120,6,10,10,8,1,0,120,132,132,8,16,252,64,128, - 128,252,6,10,10,8,1,0,252,64,64,64,120,4,4,4, - 132,120,6,8,8,8,1,0,252,64,64,120,4,4,132,120, - 5,10,10,8,1,0,32,32,248,32,32,48,8,8,136,112, - 6,10,10,8,1,254,184,196,132,132,136,144,160,192,128,128, - 1,11,11,8,3,0,128,128,128,128,128,128,128,128,128,128, - 128,3,11,11,8,2,0,160,160,160,160,160,160,160,160,160, - 160,160,5,11,11,8,1,0,32,32,32,32,248,32,248,32, - 32,32,32,1,10,10,8,4,0,128,128,128,128,128,128,128, - 0,128,128,7,14,14,8,1,0,10,4,0,0,206,162,162, - 162,164,164,168,168,168,206,7,12,12,8,1,0,10,4,192, - 160,174,162,162,164,164,168,168,206,7,12,12,8,1,0,10, - 36,32,32,110,162,162,164,164,168,168,110,7,10,10,8,1, - 0,142,130,130,130,130,130,130,146,146,236,7,13,13,8,1, - 254,2,130,128,134,130,130,130,130,130,130,242,4,24,8,13, - 13,8,0,254,97,33,32,35,33,33,33,33,33,33,249,2, - 12,7,10,10,8,1,0,150,146,146,210,210,178,178,154,154, - 148,7,13,13,8,1,254,2,146,144,214,210,210,178,178,178, - 146,146,36,24,7,13,13,8,1,254,2,2,0,166,210,146, - 146,146,146,146,146,36,24,6,14,14,8,1,0,72,48,0, - 0,48,72,72,132,132,252,132,132,132,132,6,12,12,8,1, - 0,72,48,0,0,120,132,4,124,132,132,140,116,5,14,14, - 8,2,0,144,96,0,0,248,32,32,32,32,32,32,32,32, - 248,5,12,12,8,2,0,144,96,0,0,96,32,32,32,32, - 32,32,248,6,14,14,8,1,0,72,48,0,0,120,132,132, - 132,132,132,132,132,132,120,6,12,12,8,1,0,72,48,0, - 0,120,132,132,132,132,132,132,120,6,14,14,8,1,0,72, - 48,0,0,132,132,132,132,132,132,132,132,132,120,6,12,12, - 8,1,0,72,48,0,0,132,132,132,132,132,132,140,116,6, - 14,14,8,1,0,120,0,72,0,132,132,132,132,132,132,132, - 132,132,120,6,13,13,8,1,0,120,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,24,96,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 24,96,0,72,72,0,132,132,132,132,132,132,140,116,6,14, - 14,8,1,0,72,48,0,72,0,132,132,132,132,132,132,132, - 132,120,6,14,14,8,1,0,72,48,0,72,72,0,132,132, - 132,132,132,132,140,116,6,14,14,8,1,0,96,24,0,72, - 0,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 96,24,0,72,72,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,120,132,4,4,252,132,132,120,6,14,14,8, - 1,0,120,0,72,0,48,72,72,132,132,252,132,132,132,132, - 6,13,13,8,1,0,120,0,72,72,0,120,132,4,124,132, - 132,140,116,6,14,14,8,1,0,120,0,48,0,48,72,72, - 132,132,252,132,132,132,132,6,13,13,8,1,0,120,0,32, - 32,0,120,132,4,124,132,132,140,116,7,13,13,8,1,0, - 120,0,0,62,80,144,144,254,144,144,144,144,158,7,11,11, - 8,1,0,120,0,0,124,146,18,126,144,144,146,124,7,10, - 10,8,1,0,120,132,132,128,128,156,132,158,132,124,7,11, - 11,8,1,254,4,116,136,136,136,112,64,120,158,132,120,6, - 14,14,8,1,0,72,48,0,0,120,132,132,128,128,156,132, - 132,140,116,6,14,14,8,1,254,72,48,0,4,116,136,136, - 136,112,64,120,132,132,120,6,14,14,8,1,0,72,48,0, - 0,132,136,144,160,192,192,160,144,136,132,6,14,14,8,1, - 0,72,48,0,128,128,128,136,144,160,192,160,144,136,132,6, - 12,12,8,1,254,120,132,132,132,132,132,132,132,132,120,32, - 24,6,10,10,8,1,254,120,132,132,132,132,132,132,120,32, - 24,6,15,15,8,1,254,120,0,0,120,132,132,132,132,132, - 132,132,132,120,32,24,6,13,13,8,1,254,120,0,0,120, - 132,132,132,132,132,132,120,32,24,6,14,14,8,1,0,72, - 48,0,0,252,8,16,32,56,4,4,4,140,120,6,14,14, - 8,1,254,72,48,0,0,124,8,16,32,56,4,4,4,132, - 120,6,14,14,8,1,254,36,24,0,0,24,8,8,8,8, - 8,8,8,144,96,7,10,10,8,1,0,206,162,162,162,164, - 164,168,168,168,206,7,10,10,8,1,0,192,160,174,162,162, - 164,164,168,168,206,7,11,11,8,1,0,32,32,32,110,162, - 162,164,164,168,168,110,6,14,14,8,1,0,24,96,0,0, - 120,132,132,128,128,156,132,132,140,116,6,14,14,8,1,254, - 24,96,0,4,116,136,136,136,112,64,120,132,132,120,6,10, - 10,8,1,0,144,144,144,148,244,148,148,148,148,136,6,11, - 11,8,1,255,184,196,132,132,136,144,160,192,128,128,128,6, - 13,13,8,1,0,96,24,0,132,196,196,164,164,148,148,140, - 140,132,6,11,11,8,1,0,96,24,0,184,196,132,132,132, - 132,132,132,6,14,14,8,1,0,24,96,48,72,48,48,72, - 72,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 48,72,48,0,120,132,4,124,132,140,116,7,14,14,8,1, - 0,12,48,0,0,62,80,144,144,254,144,144,144,144,158,7, - 12,12,8,1,0,12,48,0,0,124,146,18,126,144,144,146, - 124,6,15,15,8,1,255,24,96,0,4,116,136,140,148,148, - 164,164,196,68,184,128,6,13,13,8,1,255,24,96,0,4, - 120,140,148,148,164,164,196,120,128}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 4 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =12 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_4_5[3791] U8G_FONT_SECTION("u8g_font_unifont_4_5") = { - 0,16,16,0,254,10,4,177,6,164,0,255,0,14,254,12, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,7,12,12,8,0,0,204,34,0, - 0,60,66,2,62,66,66,70,58,6,14,14,8,1,0,120, - 132,132,0,48,72,72,132,132,252,132,132,132,132,6,12,12, - 8,1,0,120,132,132,0,120,132,4,124,132,132,140,116,7, - 14,14,8,0,0,204,34,0,0,126,64,64,64,124,64,64, - 64,64,126,7,12,12,8,0,0,204,34,0,0,60,66,66, - 126,64,64,66,60,6,14,14,8,1,0,120,132,132,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,120, - 132,132,0,120,132,132,252,128,128,132,120,7,14,14,8,0, - 0,204,34,0,0,62,8,8,8,8,8,8,8,8,62,7, - 12,12,8,0,0,204,34,0,0,24,8,8,8,8,8,8, - 62,6,14,14,8,1,0,120,132,132,0,124,16,16,16,16, - 16,16,16,16,124,6,12,12,8,1,0,120,132,132,0,48, - 16,16,16,16,16,16,124,7,14,14,8,0,0,204,34,0, - 0,60,66,66,66,66,66,66,66,66,60,7,12,12,8,0, - 0,204,34,0,0,60,66,66,66,66,66,66,60,6,14,14, - 8,1,0,120,132,132,0,120,132,132,132,132,132,132,132,132, - 120,6,12,12,8,1,0,120,132,132,0,120,132,132,132,132, - 132,132,120,7,14,14,8,0,0,204,34,0,0,124,66,66, - 66,124,72,68,68,66,66,7,12,12,8,0,0,204,34,0, - 0,92,98,66,64,64,64,64,64,6,14,14,8,1,0,120, - 132,132,0,248,132,132,132,248,144,136,136,132,132,6,12,12, - 8,1,0,120,132,132,0,184,196,132,128,128,128,128,128,7, - 14,14,8,0,0,204,34,0,0,66,66,66,66,66,66,66, - 66,66,60,7,12,12,8,0,0,204,34,0,0,66,66,66, - 66,66,66,70,58,6,14,14,8,1,0,120,132,132,0,132, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,120, - 132,132,0,132,132,132,132,132,132,140,116,6,12,12,8,1, - 254,120,132,132,128,96,24,4,132,132,120,16,32,6,10,10, - 8,1,254,120,132,128,96,24,4,132,120,16,32,7,12,12, - 8,1,254,254,16,16,16,16,16,16,16,16,16,4,8,5, - 12,12,8,1,254,32,32,32,248,32,32,32,32,32,24,64, - 128,6,10,10,8,1,0,120,132,132,4,24,104,4,4,4, - 120,6,8,8,8,1,0,120,132,4,24,100,4,24,96,6, - 13,13,8,1,0,72,48,0,132,132,132,132,252,132,132,132, - 132,132,6,13,13,8,1,0,72,48,0,128,128,128,184,196, - 132,132,132,132,132,6,10,10,8,1,254,184,196,132,132,132, - 132,132,132,4,4,7,13,13,8,1,254,4,4,4,116,140, - 132,132,132,132,142,118,4,8,6,10,10,8,1,0,16,72, - 132,132,72,120,132,132,132,120,5,8,8,8,2,0,72,136, - 144,96,144,136,136,112,6,12,12,8,1,254,252,4,4,8, - 16,32,64,128,128,252,4,8,6,10,10,8,1,254,252,4, - 8,16,32,64,128,252,4,8,6,12,12,8,1,0,16,0, - 48,72,72,132,132,252,132,132,132,132,6,10,10,8,1,0, - 16,0,120,132,4,124,132,132,140,116,6,12,12,8,1,254, - 252,128,128,128,248,128,128,128,128,252,16,96,6,10,10,8, - 1,254,120,132,132,252,128,128,132,120,16,96,6,14,14,8, - 1,0,120,0,72,0,120,132,132,132,132,132,132,132,132,120, - 6,12,12,8,1,0,120,0,72,0,120,132,132,132,132,132, - 132,120,6,14,14,8,1,0,120,0,100,152,0,120,132,132, - 132,132,132,132,132,120,6,13,13,8,1,0,120,0,100,152, - 0,120,132,132,132,132,132,132,120,6,12,12,8,1,0,16, - 0,120,132,132,132,132,132,132,132,132,120,6,10,10,8,1, - 0,16,0,120,132,132,132,132,132,132,120,6,14,14,8,1, - 0,120,0,16,0,120,132,132,132,132,132,132,132,132,120,6, - 12,12,8,1,0,120,0,16,0,120,132,132,132,132,132,132, - 120,7,12,12,8,1,0,124,0,130,130,68,68,40,16,16, - 16,16,16,6,12,12,8,1,254,120,0,132,132,132,132,132, - 76,52,4,4,120,4,13,13,8,2,254,96,32,32,32,32, - 32,32,32,32,48,48,64,128,7,10,10,8,1,254,184,196, - 132,132,132,132,134,134,4,8,6,12,12,8,1,254,32,32, - 32,248,32,32,32,32,44,28,16,32,5,10,10,8,1,254, - 24,8,8,8,8,8,8,8,144,96,7,11,11,8,0,0, - 16,16,16,84,186,146,146,146,146,186,84,7,10,10,8,0, - 254,84,186,146,146,146,146,186,84,16,16,7,11,11,8,0, - 0,2,26,36,44,74,82,126,98,66,66,194,7,12,12,8, - 0,255,2,60,70,74,72,80,80,96,98,66,124,128,7,11, - 11,8,0,255,2,4,60,74,80,80,96,96,66,124,128,6, - 10,10,8,1,0,64,64,64,64,240,64,64,64,64,124,7, - 12,12,8,1,0,2,4,254,24,24,16,16,48,48,80,80, - 144,7,10,10,8,1,254,120,132,128,96,24,4,132,120,18, - 12,6,10,10,8,1,254,252,4,8,16,32,64,128,192,32, - 28,6,10,10,8,1,0,120,132,132,4,8,16,16,16,16, - 16,6,8,8,8,1,0,120,132,132,4,8,16,16,16,6, - 10,10,8,1,0,120,68,68,68,120,68,244,68,68,120,7, - 10,10,8,0,0,68,68,68,68,68,254,68,68,68,56,6, - 10,10,8,1,0,48,48,48,72,72,72,72,132,132,132,6, - 14,14,8,1,254,8,8,252,144,144,160,248,160,160,192,192, - 252,128,128,7,10,10,8,0,255,2,60,70,74,126,80,96, - 66,124,128,7,10,10,8,1,0,62,8,8,8,8,62,8, - 136,136,112,7,13,13,8,1,254,8,8,0,24,8,8,62, - 8,8,8,8,144,96,7,12,12,8,1,254,112,136,136,136, - 136,136,136,136,152,104,8,6,7,10,10,8,1,254,104,152, - 136,136,136,136,152,104,8,6,6,10,10,8,1,0,120,68, - 68,68,248,80,72,72,68,68,6,8,8,8,1,0,88,100, - 68,224,64,64,64,64,7,10,10,8,1,0,130,130,68,254, - 40,16,16,16,16,16,7,10,10,8,1,254,68,68,68,254, - 68,36,28,4,4,56,6,8,8,8,1,0,184,196,132,132, - 248,128,132,120,6,8,8,8,1,0,116,140,132,132,132,140, - 148,100,6,8,8,8,1,0,152,164,196,132,132,132,196,184, - 6,11,11,8,1,0,112,128,128,184,196,132,132,132,132,196, - 184,6,8,8,8,1,0,120,132,4,4,4,4,132,120,6, - 9,9,8,1,255,120,132,128,128,128,152,164,120,128,7,12, - 12,8,1,255,8,8,8,104,152,136,136,136,136,152,104,6, - 7,11,11,8,1,0,6,8,8,104,152,136,136,136,136,152, - 104,6,8,8,8,1,0,120,132,132,252,4,4,132,120,6, - 8,8,8,1,0,120,132,4,4,252,132,132,120,7,8,8, - 8,1,0,114,140,8,8,248,136,136,112,6,8,8,8,1, - 0,120,132,128,120,128,128,132,120,6,8,8,8,1,0,120, - 132,4,120,4,4,132,120,7,8,8,8,1,0,114,140,8, - 112,8,8,136,112,6,8,8,8,1,0,120,132,132,184,132, - 132,132,120,7,10,10,8,1,254,24,8,8,8,62,8,8, - 8,144,96,7,11,11,8,1,254,6,104,152,136,136,136,152, - 104,8,136,112,6,10,10,8,1,254,116,140,132,132,132,140, - 116,4,132,120,6,8,8,8,1,0,120,132,128,128,156,132, - 132,124,6,10,10,8,1,254,132,132,132,72,72,48,48,72, - 72,48,6,8,8,8,1,0,132,132,72,72,48,48,72,48, - 6,11,11,8,1,254,132,132,132,132,132,132,140,116,4,4, - 4,6,11,11,8,1,0,112,128,128,184,196,132,132,132,132, - 132,132,6,11,11,8,1,0,112,128,128,184,196,132,132,132, - 132,132,152,5,11,11,8,2,0,32,32,0,96,32,32,248, - 32,32,32,248,3,8,8,8,3,0,128,128,128,128,128,128, - 128,96,5,8,8,8,2,0,248,32,32,32,32,32,32,248, - 6,11,11,8,1,0,48,16,16,16,116,152,16,16,16,16, - 124,6,11,11,8,1,0,48,16,16,112,144,124,16,16,16, - 16,124,4,12,12,8,3,255,192,64,64,64,64,64,64,64, - 64,64,64,48,7,13,13,8,1,254,96,32,32,62,34,36, - 40,44,34,34,250,18,12,7,8,8,8,1,0,146,146,146, - 146,146,146,146,110,7,10,10,8,1,254,146,146,146,146,146, - 146,146,110,2,2,7,9,9,8,1,255,236,146,146,146,146, - 146,146,130,12,7,9,9,8,1,255,44,50,34,34,34,34, - 34,34,192,7,9,9,8,1,255,176,200,136,136,136,136,136, - 136,6,6,8,8,8,1,0,132,132,196,164,148,140,132,132, - 6,8,8,8,1,0,120,132,132,252,132,132,132,120,7,8, - 8,8,1,0,110,144,144,156,144,144,144,110,7,8,8,8, - 1,0,124,130,130,146,146,146,146,108,7,12,12,8,1,254, - 16,16,124,146,146,146,146,146,146,124,16,16,6,8,8,8, - 1,0,4,4,4,4,4,132,140,116,6,10,10,8,1,0, - 4,4,4,4,4,4,4,132,140,116,7,9,9,8,1,255, - 8,8,8,8,8,136,152,104,6,6,10,10,8,1,254,184, - 196,132,128,128,128,128,128,128,128,6,9,9,8,1,255,184, - 196,132,128,128,128,128,128,96,6,8,8,8,1,0,120,132, - 132,128,128,128,128,128,6,8,8,8,1,0,120,132,132,4, - 4,4,4,4,6,8,8,8,1,0,248,132,132,248,136,132, - 132,132,6,8,8,8,1,0,132,132,132,136,248,132,132,248, - 6,10,10,8,1,254,120,132,128,96,24,4,132,248,128,96, - 5,12,12,8,1,255,24,32,32,32,32,32,32,32,32,32, - 32,192,5,12,12,8,1,255,24,32,32,32,32,32,32,248, - 32,32,32,192,5,9,9,8,1,255,192,32,32,32,32,32, - 32,32,24,6,12,12,8,1,255,12,16,16,16,16,16,16, - 16,16,112,156,96,5,10,10,8,1,0,192,32,32,32,32, - 32,32,248,32,32,6,11,11,8,1,255,32,32,32,248,32, - 32,32,32,32,32,28,7,8,8,8,1,0,68,68,68,254, - 68,68,76,52,6,8,8,8,1,0,132,72,132,132,132,132, - 72,48,6,8,8,8,1,0,152,132,132,132,132,136,144,96, - 6,8,8,8,1,0,48,48,72,72,72,132,132,132,7,8, - 8,8,1,0,108,146,146,146,146,146,146,130,6,10,10,8, - 1,254,120,128,128,176,200,132,132,132,132,132,7,8,8,8, - 1,0,130,130,68,40,16,16,16,16,7,10,10,8,1,254, - 248,16,16,32,32,64,64,248,8,6,7,9,9,8,1,255, - 252,4,8,16,32,76,146,252,32,6,10,10,8,1,254,124, - 8,16,32,56,4,4,4,132,120,6,10,10,8,1,254,124, - 8,16,32,56,4,4,100,148,120,6,10,10,8,1,0,120, - 132,132,4,8,16,16,16,16,16,6,10,10,8,1,0,120, - 132,132,128,64,32,32,32,32,32,6,10,10,8,1,0,16, - 16,16,16,16,8,4,132,132,120,6,10,10,8,1,254,120, - 132,128,128,128,128,128,128,132,120,6,8,8,8,1,0,120, - 132,132,180,180,132,132,120,6,8,8,8,1,0,248,132,132, - 248,132,132,132,248,6,8,8,8,1,0,120,132,132,116,132, - 132,132,120,7,8,8,8,1,0,118,136,128,128,152,136,136, - 120,5,8,8,8,2,0,136,136,136,248,136,136,136,136,6, - 13,13,8,1,254,8,8,0,24,8,8,8,8,8,8,124, - 144,96,6,11,11,8,1,254,132,68,36,20,12,20,36,68, - 4,4,4,6,8,8,8,1,0,128,128,128,128,128,128,128, - 252,7,11,11,8,1,254,6,104,152,136,136,136,136,152,104, - 8,8,6,10,10,8,1,0,120,132,132,4,8,16,16,124, - 16,16,6,10,10,8,1,0,120,132,132,128,64,32,32,248, - 32,32,7,11,11,8,1,0,32,32,32,126,162,164,164,168, - 168,176,126,7,13,13,8,1,254,32,32,32,126,162,164,168, - 172,162,162,98,18,12,7,12,12,8,1,255,32,32,32,126, - 162,164,168,176,180,170,124,8,8,10,10,8,0,0,64,64, - 70,248,72,68,66,65,65,62,7,13,13,8,1,254,6,72, - 72,72,248,72,72,72,72,72,56,8,48,8,11,11,8,0, - 255,64,64,70,249,72,72,72,74,77,62,4,7,12,12,8, - 1,254,96,144,128,220,162,162,162,162,162,162,4,24,7,11, - 11,8,1,0,192,64,64,64,78,80,80,76,66,66,124,7, - 11,11,8,0,0,192,64,64,64,64,126,68,72,80,96,126, - 7,11,11,8,1,0,130,146,146,146,108,0,130,146,146,146, - 108,6,10,10,8,1,0,252,132,132,132,0,0,252,132,132, - 132,5,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 8,7,10,10,8,1,254,200,72,72,72,72,72,88,40,8, - 6,5,6,6,8,2,4,128,128,176,200,136,136,5,7,7, - 8,2,4,112,136,128,176,200,136,136,4,7,7,8,2,4, - 16,0,16,16,16,144,96,5,5,5,8,2,5,176,200,128, - 128,128,5,5,5,8,1,5,8,8,8,152,104,7,6,6, - 8,1,4,8,8,8,152,104,6,5,6,6,8,1,4,136, - 144,240,136,136,240,5,4,4,8,1,6,136,168,168,80,5, - 5,5,8,1,5,136,136,120,8,112,3,3,3,8,2,7, - 32,64,128,6,3,3,8,1,7,36,72,144,2,4,4,8, - 3,6,64,128,128,192,2,4,4,8,3,6,192,64,64,128, - 2,4,4,8,3,6,192,128,128,64,4,6,6,8,2,5, - 192,32,16,16,32,192,4,6,6,8,2,5,48,64,128,128, - 64,48,6,7,7,8,1,4,120,132,4,4,56,32,32,6, - 7,7,8,1,4,120,132,128,128,112,16,16,4,7,7,8, - 2,4,16,32,64,128,64,32,16,4,7,7,8,2,4,128, - 64,32,16,32,64,128,7,4,4,8,1,6,16,40,68,130, - 7,4,4,8,1,6,130,68,40,16,4,2,2,8,2,8, - 96,144,4,2,2,8,2,8,144,96,1,3,3,8,4,7, - 128,128,128,4,1,1,8,2,9,240,4,2,2,8,2,8, - 48,192,4,2,2,8,2,8,192,48,1,4,4,8,4,0, - 128,128,128,128,4,1,1,8,2,0,240,4,2,2,8,2, - 255,192,48,4,2,2,8,2,255,48,192,3,6,6,8,2, - 1,224,64,0,0,64,224,3,2,2,8,2,4,224,64,4, - 6,6,8,2,2,192,32,16,16,32,192,4,6,6,8,2, - 2,48,64,128,128,64,48,5,5,5,8,1,2,32,32,32, - 32,248,5,5,5,8,1,2,248,32,32,32,32,5,5,5, - 8,1,2,32,32,248,32,32,5,1,1,8,1,4,248,6, - 3,3,8,1,9,132,132,120,2,2,2,8,3,10,192,192, - 4,3,3,8,2,9,96,144,96,3,2,2,8,4,254,128, - 96,6,2,2,8,1,10,100,152,7,2,2,8,1,10,102, - 136,7,4,4,8,0,3,32,96,162,28,6,5,5,8,1, - 5,132,72,48,72,132,5,6,6,8,1,4,136,80,32,80, - 80,32,3,6,6,8,2,6,192,64,64,64,64,224,5,5, - 5,8,1,5,120,128,112,8,240,5,5,5,8,1,5,136, - 80,32,80,136,5,5,5,8,1,7,120,128,128,112,16,5, - 11,11,8,1,0,248,8,8,8,8,8,8,8,8,8,8, - 5,11,11,8,1,0,8,8,248,8,8,8,8,8,8,8, - 8,5,11,11,8,1,0,8,8,8,8,8,248,8,8,8, - 8,8,5,11,11,8,1,0,8,8,8,8,8,8,8,8, - 248,8,8,5,11,11,8,1,0,8,8,8,8,8,8,8, - 8,8,8,248,5,6,6,8,1,0,128,128,128,128,128,248, - 4,7,7,8,1,0,128,128,128,240,128,128,128,5,3,3, - 8,1,0,136,80,32,6,3,3,8,1,9,252,0,252,6, - 4,4,8,1,8,204,68,68,136,5,3,3,8,1,255,136, - 80,32,5,3,3,8,1,255,32,80,136,3,5,5,8,3, - 255,32,64,128,64,32,3,5,5,8,3,255,128,64,32,64, - 128,4,3,3,8,2,255,96,144,96,3,3,3,8,2,9, - 128,64,32,6,3,3,8,1,9,144,72,36,6,3,3,8, - 1,9,36,72,144,6,2,2,8,1,254,100,152,2,7,7, - 8,3,4,192,192,0,0,0,192,192,3,4,4,8,2,7, - 224,128,128,128,3,4,4,8,2,7,224,32,32,32,3,4, - 4,8,2,0,128,128,128,224,3,4,4,8,2,0,32,32, - 32,224,6,3,3,8,1,254,132,132,252,6,3,3,8,1, - 254,128,128,252,6,5,5,8,1,3,32,64,252,64,32}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 3, '1' Height: 9 - Calculated Max Values w=15 h=16 x= 7 y=12 dx=16 dy= 0 ascent=14 len=16 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 3 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_67_75[3421] U8G_FONT_SECTION("u8g_font_unifont_67_75") = { - 0,16,16,0,254,3,2,188,4,152,16,255,0,14,254,12, - 0,7,5,5,8,1,2,32,64,254,64,32,5,14,14,8, - 2,254,32,112,168,32,32,32,32,32,32,32,32,32,32,32, - 7,5,5,8,0,2,8,4,254,4,8,5,14,14,8,2, - 0,32,32,32,32,32,32,32,32,32,32,32,168,112,32,8, - 5,5,8,0,2,36,66,255,66,36,5,12,12,8,2,0, - 32,112,168,32,32,32,32,32,32,168,112,32,6,6,6,8, - 1,3,240,192,160,144,8,4,6,6,6,8,1,3,60,12, - 20,36,64,128,6,6,6,8,1,3,128,64,36,20,12,60, - 6,6,6,8,1,2,4,8,144,160,192,240,7,9,9,8, - 1,0,8,8,40,72,254,72,40,8,8,7,9,9,8,0, - 0,32,32,40,36,254,36,40,32,32,7,5,5,8,1,2, - 32,76,242,64,32,7,5,5,8,0,2,8,100,158,4,8, - 8,5,5,8,0,3,36,72,255,72,36,5,14,14,8,2, - 254,32,112,168,32,112,168,32,32,32,32,32,32,32,32,8, - 5,5,8,0,2,36,18,255,18,36,5,15,15,8,2,255, - 32,32,32,32,32,32,32,32,32,168,112,32,168,112,32,7, - 5,5,8,1,2,34,68,248,68,34,7,5,5,8,0,2, - 136,68,62,68,136,6,5,5,8,1,2,36,68,252,68,36, - 5,12,12,8,2,0,32,112,168,32,32,32,32,32,32,32, - 32,248,6,5,5,8,1,2,144,136,252,136,144,5,12,12, - 8,2,0,248,32,32,32,32,32,32,32,32,168,112,32,5, - 12,12,8,2,0,32,112,168,32,32,32,32,32,168,112,32, - 248,7,6,6,8,1,2,4,34,66,252,64,32,7,6,6, - 8,1,2,64,136,132,126,4,8,7,6,6,8,1,2,4, - 42,74,252,72,40,7,6,6,8,1,2,64,168,164,126,36, - 40,8,5,5,8,0,2,36,90,231,66,36,8,9,9,8, - 0,0,8,8,44,74,255,74,44,8,8,6,12,12,8,1, - 0,128,128,128,144,176,208,144,16,16,84,56,16,5,9,9, - 8,1,254,32,64,240,72,40,8,8,8,8,5,9,9,8, - 2,254,32,16,120,144,160,128,128,128,128,5,12,12,8,1, - 2,8,8,8,8,8,8,8,40,72,240,64,32,5,12,12, - 8,2,2,128,128,128,128,128,128,128,160,144,120,16,32,8, - 5,5,8,0,0,252,4,21,14,4,5,12,12,8,1,2, - 8,8,8,8,8,8,8,40,72,248,64,32,8,5,5,8, - 0,1,30,33,169,113,32,8,5,5,8,0,1,120,132,149, - 142,4,6,8,8,8,1,3,252,0,240,192,160,144,8,4, - 6,11,11,8,1,0,160,192,252,192,160,0,20,12,252,12, - 20,6,6,6,8,1,1,92,152,148,132,132,120,6,6,6, - 8,1,1,232,100,164,132,132,120,7,3,3,8,1,4,32, - 64,254,7,3,3,8,1,2,254,64,32,3,14,14,8,4, - 254,128,192,160,128,128,128,128,128,128,128,128,128,128,128,3, - 14,14,8,2,254,32,96,160,32,32,32,32,32,32,32,32, - 32,32,32,7,3,3,8,0,4,8,4,254,7,3,3,8, - 0,2,254,4,8,3,14,14,8,4,0,128,128,128,128,128, - 128,128,128,128,128,128,160,192,128,3,14,14,8,2,0,32, - 32,32,32,32,32,32,32,32,32,32,160,96,32,6,11,11, - 8,1,0,16,8,252,8,16,0,32,64,252,64,32,8,12, - 12,8,0,0,36,116,172,36,36,36,36,36,36,53,46,36, - 6,11,11,8,1,0,32,64,252,64,32,0,16,8,252,8, - 16,6,11,11,8,1,0,32,64,252,64,32,0,32,64,252, - 64,32,8,12,12,8,0,0,36,126,165,36,36,36,36,36, - 36,36,36,36,6,11,11,8,1,0,16,8,252,8,16,0, - 16,8,252,8,16,8,12,12,8,0,0,36,36,36,36,36, - 36,36,36,36,165,126,36,6,7,7,8,1,1,32,64,252, - 0,252,8,16,6,7,7,8,1,1,16,8,252,0,252,64, - 32,7,9,9,8,0,0,8,8,40,126,136,126,40,8,8, - 8,9,9,8,0,0,8,8,44,126,137,126,44,8,8,7, - 9,9,8,1,0,32,32,40,252,34,252,40,32,32,6,5, - 5,8,1,2,32,124,128,124,32,5,12,12,8,2,0,32, - 80,216,80,80,80,80,80,80,80,80,80,6,5,5,8,1, - 2,16,248,4,248,16,5,12,12,8,2,0,80,80,80,80, - 80,80,80,80,80,216,80,32,8,5,5,8,0,2,36,126, - 129,126,36,5,12,12,8,2,0,32,80,216,80,80,80,80, - 80,80,216,80,32,6,6,6,8,1,3,240,160,208,168,20, - 8,6,6,6,8,1,3,60,20,44,84,160,64,6,6,6, - 8,1,3,8,20,168,208,160,240,6,6,6,8,1,3,64, - 160,84,44,20,60,7,7,7,8,0,1,16,62,64,254,64, - 62,16,7,7,7,8,1,1,16,248,4,254,4,248,16,8, - 5,5,8,0,2,32,66,245,72,32,8,5,5,8,0,2, - 4,66,175,18,4,5,14,14,8,2,254,32,112,168,32,32, - 32,248,32,248,32,32,32,32,32,5,14,14,8,2,0,32, - 32,32,32,32,248,32,248,32,32,32,168,112,32,7,5,5, - 8,1,2,32,64,238,64,32,5,14,14,8,2,254,32,112, - 168,32,32,0,32,32,32,32,0,32,32,32,8,5,5,8, - 0,2,4,2,239,2,4,5,14,14,8,2,0,32,32,32, - 0,32,32,32,32,0,32,32,168,112,32,7,5,5,8,1, - 2,160,192,254,192,160,7,5,5,8,0,2,10,6,254,6, - 10,8,7,7,8,0,1,16,48,95,129,95,48,16,7,12, - 12,8,1,0,16,40,68,238,40,40,40,40,40,40,40,56, - 8,7,7,8,0,2,8,12,250,129,250,12,8,7,12,12, - 8,1,0,56,40,40,40,40,40,40,40,238,68,40,16,7, - 12,12,8,1,0,16,40,68,238,40,40,40,56,0,56,40, - 56,7,12,12,8,1,0,16,40,68,198,68,68,68,68,68, - 198,130,254,7,12,12,8,1,0,16,40,124,198,68,68,68, - 68,68,198,130,254,7,12,12,8,1,0,16,56,84,214,84, - 84,84,84,84,214,146,254,7,13,13,8,1,0,16,40,84, - 238,68,198,68,68,68,68,68,68,124,7,13,13,8,1,0, - 16,40,84,238,68,198,68,68,68,68,198,130,254,7,7,7, - 8,1,1,16,216,244,130,244,216,16,7,9,9,8,1,0, - 254,128,184,176,168,132,130,128,128,7,9,9,8,1,0,2, - 2,130,66,42,26,58,2,254,5,12,12,8,2,0,32,80, - 216,80,80,80,80,80,80,216,80,32,13,5,10,16,1,2, - 14,32,17,16,255,248,17,16,14,32,8,12,12,8,0,0, - 36,46,53,36,36,36,36,36,36,172,116,36,8,15,15,8, - 0,254,4,2,255,2,4,4,2,255,2,4,4,2,255,2, - 4,8,5,5,8,0,2,36,68,255,68,36,8,5,5,8, - 0,2,36,34,255,34,36,11,5,10,16,2,2,36,128,68, - 64,255,224,68,64,36,128,15,5,10,16,1,2,34,128,66, - 128,255,254,66,128,34,128,15,5,10,16,0,2,2,136,2, - 132,255,254,2,132,2,136,13,5,10,16,1,2,37,32,69, - 16,255,248,69,16,37,32,8,5,5,8,0,2,32,96,191, - 96,32,8,5,5,8,0,2,4,6,253,6,4,12,5,10, - 16,2,2,32,64,96,96,191,208,96,96,32,64,8,8,8, - 8,0,6,255,255,255,255,255,255,255,255,8,2,2,8,0, - 254,255,255,8,4,4,8,0,254,255,255,255,255,8,6,6, - 8,0,254,255,255,255,255,255,255,8,8,8,8,0,254,255, - 255,255,255,255,255,255,255,8,10,10,8,0,254,255,255,255, - 255,255,255,255,255,255,255,8,12,12,8,0,254,255,255,255, - 255,255,255,255,255,255,255,255,255,8,14,14,8,0,254,255, - 255,255,255,255,255,255,255,255,255,255,255,255,255,8,16,16, - 8,0,254,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,255,255,7,16,16,8,0,254,254,254,254,254,254,254,254, - 254,254,254,254,254,254,254,254,254,6,16,16,8,0,254,252, - 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,5, - 16,16,8,0,254,248,248,248,248,248,248,248,248,248,248,248, - 248,248,248,248,248,4,16,16,8,0,254,240,240,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,3,16,16,8,0, - 254,224,224,224,224,224,224,224,224,224,224,224,224,224,224,224, - 224,2,16,16,8,0,254,192,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,1,16,16,8,0,254,128,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,128,4,16,16, - 8,4,254,240,240,240,240,240,240,240,240,240,240,240,240,240, - 240,240,240,7,16,16,8,0,254,136,34,136,34,136,34,136, - 34,136,34,136,34,136,34,136,34,8,16,16,8,0,254,170, - 85,170,85,170,85,170,85,170,85,170,85,170,85,170,85,8, - 16,16,8,0,254,238,187,238,187,238,187,238,187,238,187,238, - 187,238,187,238,187,8,2,2,8,0,12,255,255,1,16,16, - 8,7,254,128,128,128,128,128,128,128,128,128,128,128,128,128, - 128,128,128,4,8,8,8,0,254,240,240,240,240,240,240,240, - 240,4,8,8,8,4,254,240,240,240,240,240,240,240,240,4, - 8,8,8,0,6,240,240,240,240,240,240,240,240,8,16,16, - 8,0,254,240,240,240,240,240,240,240,240,255,255,255,255,255, - 255,255,255,8,16,16,8,0,254,240,240,240,240,240,240,240, - 240,15,15,15,15,15,15,15,15,8,16,16,8,0,254,255, - 255,255,255,255,255,255,255,240,240,240,240,240,240,240,240,8, - 16,16,8,0,254,255,255,255,255,255,255,255,255,15,15,15, - 15,15,15,15,15,4,8,8,8,4,6,240,240,240,240,240, - 240,240,240,8,16,16,8,0,254,15,15,15,15,15,15,15, - 15,240,240,240,240,240,240,240,240,8,16,16,8,0,254,15, - 15,15,15,15,15,15,15,255,255,255,255,255,255,255,255,7, - 7,7,8,1,1,254,254,254,254,254,254,254,7,7,7,8, - 1,1,254,130,130,130,130,130,254,7,7,7,8,1,1,124, - 130,130,130,130,130,124,7,7,7,8,1,1,254,130,186,186, - 186,130,254,7,7,7,8,1,1,254,130,254,130,254,130,254, - 7,7,7,8,1,1,254,170,170,170,170,170,254,7,7,7, - 8,1,1,254,170,254,170,254,170,254,7,7,7,8,1,1, - 254,166,146,202,166,146,254,7,7,7,8,1,1,254,202,146, - 166,202,146,254,7,7,7,8,1,1,254,170,214,170,214,170, - 254,4,4,4,8,2,4,240,240,240,240,4,4,4,8,2, - 4,240,144,144,240,7,4,4,8,1,4,254,254,254,254,7, - 4,4,8,1,4,254,130,130,254,4,7,7,8,2,2,240, - 240,240,240,240,240,240,4,7,7,8,2,2,240,144,144,144, - 144,144,240,8,3,3,8,0,4,63,126,252,8,3,3,8, - 0,4,63,66,252,6,6,6,8,1,3,48,48,120,120,252, - 252,6,6,6,8,1,3,48,48,72,72,132,252,6,3,3, - 8,1,3,48,120,252,6,3,3,8,1,3,48,72,252,6, - 6,6,8,1,3,192,240,252,252,240,192,6,6,6,8,1, - 3,192,176,140,140,176,192,4,4,4,8,2,4,192,240,240, - 192,4,4,4,8,2,4,192,176,176,192,6,5,5,8,1, - 3,192,240,252,240,192,6,5,5,8,1,3,192,176,140,176, - 192,6,6,6,8,1,3,252,252,120,120,48,48,6,6,6, - 8,1,3,252,132,72,72,48,48,6,3,3,8,1,3,252, - 120,48,6,3,3,8,1,3,252,72,48,6,6,6,8,1, - 3,12,60,252,252,60,12,6,6,6,8,1,3,12,52,196, - 196,52,12,4,4,4,8,2,4,48,240,240,48,4,4,4, - 8,2,4,48,208,208,48,6,5,5,8,1,3,12,60,252, - 60,12,6,5,5,8,1,3,12,52,196,52,12,7,7,7, - 8,1,2,16,56,124,254,124,56,16,7,7,7,8,1,2, - 16,40,68,130,68,40,16,7,7,7,8,1,2,16,40,84, - 186,84,40,16,7,7,7,8,1,2,56,68,178,186,154,68, - 56,6,10,10,8,1,1,48,48,72,72,132,132,72,72,48, - 48,7,7,7,8,1,2,56,68,130,130,130,68,56,7,7, - 7,8,1,2,40,0,130,0,130,0,40,7,7,7,8,1, - 2,56,108,170,170,170,108,56,7,7,7,8,1,2,56,68, - 146,170,146,68,56,7,7,7,8,1,2,56,124,254,254,254, - 124,56,7,7,7,8,1,2,56,100,226,226,226,100,56,7, - 7,7,8,1,2,56,76,142,142,142,76,56,7,7,7,8, - 1,2,56,68,130,130,254,124,56,7,7,7,8,1,2,56, - 124,254,130,130,68,56,7,7,7,8,1,2,56,92,158,158, - 130,68,56,7,7,7,8,1,2,56,76,142,142,254,124,56, - 4,7,7,8,1,2,48,112,240,240,240,112,48,4,7,7, - 8,4,2,192,224,240,240,240,224,192,8,16,16,8,0,254, - 255,255,255,255,255,255,231,195,195,231,255,255,255,255,255,255, - 8,16,16,8,0,254,255,255,255,255,255,231,219,189,189,219, - 231,255,255,255,255,255,8,8,8,8,0,6,255,255,255,255, - 255,231,219,189,8,8,8,8,0,254,189,219,231,255,255,255, - 255,255,4,4,4,8,1,5,48,64,128,128,4,4,4,8, - 4,5,192,32,16,16,4,4,4,8,4,2,16,16,32,192, - 4,4,4,8,1,2,128,128,64,48,7,4,4,8,1,5, - 56,68,130,130,7,4,4,8,1,2,130,130,68,56,6,6, - 6,8,1,255,4,12,28,60,124,252,6,6,6,8,1,255, - 128,192,224,240,248,252,6,6,6,8,1,6,252,248,240,224, - 192,128,6,6,6,8,1,6,252,124,60,28,12,4,5,5, - 5,8,1,2,112,136,136,136,112,6,6,6,8,1,3,252, - 228,228,228,228,252,6,6,6,8,1,3,252,156,156,156,156, - 252,6,6,6,8,1,3,252,244,228,196,132,252,6,6,6, - 8,1,3,252,132,140,156,188,252,7,6,6,8,1,3,254, - 146,146,146,146,254,7,7,7,8,1,2,16,40,40,68,84, - 130,254,6,6,6,8,1,2,48,48,104,104,228,252,6,7, - 7,8,1,2,48,48,88,88,156,156,252,8,8,8,8,0, - 2,60,66,129,129,129,129,66,60,6,6,6,8,1,0,252, - 164,228,132,132,252,6,6,6,8,1,0,252,132,132,228,164, - 252,6,6,6,8,1,0,252,132,132,156,148,252,6,6,6, - 8,1,0,252,148,156,132,132,252,8,8,8,8,0,0,60, - 82,145,241,129,129,66,60,8,8,8,8,0,0,60,66,129, - 129,241,145,82,60,8,8,8,8,0,0,60,66,129,129,143, - 137,74,60,8,8,8,8,0,0,60,74,137,143,129,129,66, - 60,6,6,6,8,1,6,252,136,144,160,192,128,6,6,6, - 8,1,6,252,68,36,20,12,4,6,6,6,8,1,255,128, - 192,160,144,136,252,6,6,6,8,1,255,252,132,132,132,132, - 252,6,6,6,8,1,255,252,252,252,252,252,252,4,4,4, - 8,2,0,240,144,144,240,4,4,4,8,2,0,240,240,240, - 240,6,6,6,8,1,255,4,12,20,36,68,252}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 14 - Calculated Max Values w=16 h=16 x= 5 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-1 - X Font ascent =14 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_72_73[7568] U8G_FONT_SECTION("u8g_font_unifont_72_73") = { - 0,16,16,0,254,10,5,238,9,116,0,255,255,14,254,14, - 255,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,14,5,10,16,1,4,115,36,132, - 164,100,188,20,164,227,36,13,5,10,16,1,4,119,72,130, - 72,98,48,18,72,226,72,13,5,10,16,1,4,247,72,130, - 72,242,48,130,72,242,72,14,5,10,16,1,4,243,124,132, - 144,244,144,132,144,243,16,14,5,10,16,1,4,244,152,132, - 164,246,164,133,172,244,156,13,5,10,16,1,4,99,72,148, - 80,244,96,148,80,147,72,14,5,10,16,1,4,231,160,148, - 32,231,160,148,32,231,188,10,5,10,16,3,4,241,192,138, - 0,241,128,136,64,243,128,11,5,10,16,2,4,139,224,136, - 128,248,128,136,128,136,128,11,5,10,16,2,4,131,224,130, - 0,131,224,130,0,250,0,11,5,10,16,2,4,139,224,136, - 128,136,128,80,128,32,128,11,5,10,16,2,4,251,224,130, - 0,251,224,130,0,130,0,11,5,10,16,2,4,123,192,130, - 32,131,192,130,64,122,32,11,5,10,16,2,4,121,192,130, - 32,114,32,10,32,241,192,11,5,10,16,2,4,123,224,128, - 128,112,128,8,128,243,224,12,5,10,16,2,4,228,112,148, - 64,148,112,148,64,231,112,13,5,10,16,1,4,227,16,148, - 48,148,16,148,16,227,56,13,5,10,16,1,4,227,48,148, - 8,148,16,148,32,227,56,13,5,10,16,1,4,227,48,148, - 8,148,48,148,8,227,48,13,5,10,16,1,4,227,8,148, - 24,148,40,148,56,227,8,14,5,10,16,1,4,147,36,212, - 168,212,176,183,168,148,164,14,5,10,16,1,4,104,164,133, - 52,98,44,18,36,226,36,13,5,10,16,1,4,247,112,130, - 72,242,112,130,72,242,112,13,5,10,16,1,4,102,72,137, - 104,143,88,137,72,105,72,11,5,10,16,2,4,250,32,131, - 96,250,160,130,32,250,32,14,5,10,16,1,4,116,184,132, - 164,100,184,20,164,227,56,14,5,10,16,1,4,243,156,132, - 32,243,32,128,160,247,28,9,5,10,16,3,4,243,128,132, - 0,243,0,128,128,135,0,9,5,10,16,3,4,115,128,132, - 0,179,0,144,128,119,0,9,5,10,16,3,4,227,128,148, - 0,227,0,160,128,151,0,9,5,10,16,3,4,147,128,148, - 0,147,0,144,128,103,0,9,5,10,16,1,4,119,0,132, - 128,103,0,20,0,228,0,14,5,10,16,1,4,231,160,148, - 32,151,160,148,32,231,188,6,10,10,8,1,0,40,48,32, - 96,184,36,36,36,36,56,6,2,2,8,1,0,132,252,6, - 9,9,8,1,1,144,208,176,144,0,32,32,32,60,7,7, - 7,8,1,2,2,20,42,84,168,80,128,6,11,11,8,1, - 0,120,132,132,128,64,32,16,16,0,16,16,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,236,195,220,223,188,195,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,156,251,108,195,156,223,108,195,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,251,108,195,140,223,236,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,12,251,108,195,12,223,108, - 195,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,28,251,108,195,28, - 223,108,195,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,140,251,124, - 195,124,223,124,195,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,28, - 251,108,195,108,223,108,195,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,251,124,195,28,223,124,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,251,124,195,28,223,124,195,124,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,108,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,220,251,156,227,220,251,220,199,140, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,236,227,12,251,124, - 199,12,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,236,227,140, - 251,236,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,108,251,108, - 227,12,251,236,199,236,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,12, - 251,124,227,12,251,236,199,12,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,156,251,124,227,28,251,108,199,156,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,236,227,220,251,188,199,188,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,199,156,251,108,227,156,251,108,199,156,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,199,156,251,108,227,140,251,236,199,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,199,12,251,108,227,12,251,108, - 199,108,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,199,28,251,108,227,28, - 251,108,199,28,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,199,140,251,124, - 227,124,251,124,199,140,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,199,28, - 251,108,227,108,251,108,199,28,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 199,12,251,124,227,28,251,124,199,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,199,12,251,124,227,28,251,124,199,124,255,252,5,10, - 10,8,2,0,56,40,40,40,32,32,160,160,160,224,5,10, - 10,8,2,0,8,8,8,8,8,248,136,136,136,136,5,10, - 10,8,2,0,136,136,136,136,136,248,32,32,32,32,5,10, - 10,8,2,0,32,32,32,32,32,248,136,136,136,136,5,10, - 10,8,2,0,248,168,168,168,32,32,168,168,168,248,5,5, - 5,8,2,5,136,216,168,216,136,6,8,8,8,1,1,28, - 220,220,192,192,220,220,28,8,10,10,8,0,0,3,3,3, - 27,24,24,216,192,192,192,7,10,10,8,1,0,14,174,174, - 160,160,160,160,160,160,160,7,9,9,8,1,0,218,218,218, - 218,218,218,218,218,218,8,10,10,8,0,0,160,160,80,40, - 40,20,20,10,5,5,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,219,28,219,108, - 195,28,251,108,251,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,219,140, - 219,124,195,124,251,124,251,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 219,28,219,108,195,108,251,108,251,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,219,12,219,124,195,28,251,124,251,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,219,12,219,124,195,28,251,124,251,124,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,108,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,220,223,156,195,220,251,220, - 195,140,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,236,195,12, - 251,124,195,12,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,236, - 195,140,251,236,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,108, - 223,108,195,12,251,236,195,236,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,12,223,124,195,12,251,236,195,12,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,156,223,124,195,28,251,108,195,156,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,236,195,220,251,188,195,188,255,252, - 14,14,28,16,1,255,255,252,195,108,251,108,195,12,223,236, - 195,236,255,252,255,252,195,156,223,108,195,156,251,108,195,156, - 255,252,14,14,28,16,1,255,255,252,195,108,251,108,195,12, - 223,236,195,236,255,252,255,252,195,156,223,108,195,140,251,236, - 195,156,255,252,14,14,28,16,1,255,255,252,195,108,251,108, - 195,12,223,236,195,236,255,252,255,252,195,12,223,108,195,12, - 251,108,195,108,255,252,14,14,28,16,1,255,255,252,195,108, - 251,108,195,12,223,236,195,236,255,252,255,252,195,28,223,108, - 195,28,251,108,195,28,255,252,14,14,28,16,1,255,255,252, - 195,108,251,108,195,12,223,236,195,236,255,252,255,252,195,140, - 223,124,195,124,251,124,195,140,255,252,14,14,28,16,1,255, - 255,252,195,108,251,108,195,12,223,236,195,236,255,252,255,252, - 195,28,223,108,195,108,251,108,195,28,255,252,14,14,28,16, - 1,255,255,252,195,108,251,108,195,12,223,236,195,236,255,252, - 255,252,195,12,223,124,195,28,251,124,195,12,255,252,14,14, - 28,16,1,255,255,252,195,108,251,108,195,12,223,236,195,236, - 255,252,255,252,195,12,223,124,195,28,251,124,195,124,255,252, - 15,15,30,16,0,255,7,192,24,48,32,8,65,4,67,4, - 133,2,129,2,129,2,129,2,129,2,65,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,128,66,128,130,129,2,130,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,132,68,68,132,66,128,66,129,130,128,66, - 132,66,68,68,67,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,132,65,132,130,130,132,130, - 136,130,143,194,128,130,64,132,64,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,196,68,4, - 132,2,132,2,135,130,128,66,128,66,68,68,67,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,132,66,4,132,2,132,2,135,130,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,128,130,128,130, - 129,2,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 131,130,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,67,132,68,68, - 132,66,132,66,131,194,128,66,128,66,64,132,67,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,146,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,140,194,149,66,132,66,132,66, - 132,66,95,244,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,100,140,146,148,18, - 132,34,132,66,132,130,95,244,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,100, - 140,146,148,18,132,34,132,18,132,146,95,100,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,20,140,50,148,82,132,146,132,250,132,18,95,20, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,244,140,130,148,130,132,226,132,18, - 132,146,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,116,140,130,148,130, - 132,226,132,146,132,146,95,100,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,244, - 140,18,148,18,132,34,132,34,132,66,95,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,68,100,140,146,148,146,132,98,132,146,132,146,95,100, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,100,140,146,148,146,132,114,132,18, - 132,18,95,100,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,76,100,146,146,130,146, - 132,146,136,146,144,146,94,100,64,4,32,8,24,48,7,192, - 14,12,24,16,1,0,32,16,65,8,67,8,133,4,129,4, - 129,4,129,4,129,4,129,4,65,8,71,200,32,16,14,12, - 24,16,1,0,32,16,71,136,72,72,136,68,128,68,129,132, - 130,4,132,4,136,4,72,8,79,200,32,16,14,12,24,16, - 1,0,32,16,71,136,72,72,136,68,128,68,131,132,128,68, - 128,68,136,68,72,72,71,136,32,16,14,12,24,16,1,0, - 32,16,64,136,65,136,130,132,132,132,136,132,136,132,143,196, - 128,132,64,136,64,136,32,16,14,12,24,16,1,0,32,16, - 79,200,72,8,136,4,136,4,143,132,128,68,128,68,128,68, - 72,72,71,136,32,16,14,12,24,16,1,0,32,16,67,136, - 68,8,136,4,136,4,143,132,136,68,136,68,136,68,72,72, - 71,136,32,16,14,12,24,16,1,0,32,16,79,200,64,72, - 128,68,128,132,128,132,128,132,129,4,129,4,65,8,65,8, - 32,16,14,12,24,16,1,0,32,16,71,136,72,72,136,68, - 136,68,135,132,136,68,136,68,136,68,72,72,71,136,32,16, - 14,12,24,16,1,0,32,16,71,136,72,72,136,68,136,68, - 135,196,128,68,128,68,128,68,64,136,71,8,32,16,16,12, - 24,16,0,0,64,2,136,49,152,73,168,133,136,133,136,133, - 136,133,136,133,136,133,136,73,190,49,64,2,16,12,24,16, - 0,0,64,2,136,17,152,49,168,81,136,17,136,17,136,17, - 136,17,136,17,136,17,190,125,64,2,16,12,24,16,0,0, - 64,2,136,121,152,133,168,133,136,5,136,25,136,33,136,65, - 136,129,136,129,190,253,64,2,16,12,24,16,0,0,64,2, - 136,121,152,133,168,133,136,5,136,57,136,5,136,5,136,133, - 136,133,190,121,64,2,16,12,24,16,0,0,64,2,136,9, - 152,25,168,41,136,73,136,137,136,137,136,253,136,9,136,9, - 190,9,64,2,16,12,24,16,0,0,64,2,136,253,152,129, - 168,129,136,129,136,249,136,5,136,5,136,5,136,133,190,121, - 64,2,16,12,24,16,0,0,64,2,136,57,152,65,168,129, - 136,129,136,249,136,133,136,133,136,133,136,133,190,121,64,2, - 16,12,24,16,0,0,64,2,137,249,152,9,168,9,136,17, - 136,17,136,17,136,33,136,33,136,33,190,33,64,2,16,12, - 24,16,0,0,64,2,136,121,152,133,168,133,136,133,136,121, - 136,133,136,133,136,133,136,133,190,121,64,2,16,12,24,16, - 0,0,64,2,136,121,152,133,168,133,136,133,136,125,136,5, - 136,5,136,5,136,9,190,113,64,2,16,12,24,16,0,0, - 64,2,156,49,162,73,162,133,130,133,132,133,136,133,144,133, - 160,133,160,73,190,49,64,2,7,10,10,16,5,0,32,96, - 160,32,32,32,32,32,32,250,8,10,10,16,4,0,120,132, - 132,4,24,32,64,128,128,253,8,10,10,16,4,0,120,132, - 132,4,56,4,4,132,132,121,8,10,10,16,4,0,8,24, - 40,72,136,136,252,8,8,9,8,10,10,16,4,0,252,128, - 128,128,248,4,4,4,132,121,8,10,10,16,4,0,56,64, - 128,128,248,132,132,132,132,121,8,10,10,16,4,0,252,4, - 4,8,8,8,16,16,16,17,8,10,10,16,4,0,120,132, - 132,132,120,132,132,132,132,121,8,10,10,16,4,0,120,132, - 132,132,124,4,4,4,8,113,14,10,20,16,1,0,32,192, - 97,32,162,16,34,16,34,16,34,16,34,16,34,16,33,32, - 248,196,14,10,20,16,1,0,32,64,96,192,161,64,32,64, - 32,64,32,64,32,64,32,64,32,64,249,244,14,10,20,16, - 1,0,33,224,98,16,162,16,32,16,32,96,32,128,33,0, - 34,0,34,0,251,244,14,10,20,16,1,0,33,224,98,16, - 162,16,32,16,32,224,32,16,32,16,34,16,34,16,249,228, - 14,10,20,16,1,0,32,32,96,96,160,160,33,32,34,32, - 34,32,35,240,32,32,32,32,248,36,14,10,20,16,1,0, - 35,240,98,0,162,0,34,0,35,224,32,16,32,16,32,16, - 34,16,249,228,14,10,20,16,1,0,32,224,97,0,162,0, - 34,0,35,224,34,16,34,16,34,16,34,16,249,228,14,10, - 20,16,1,0,35,240,96,16,160,16,32,32,32,32,32,32, - 32,64,32,64,32,64,248,68,14,10,20,16,1,0,33,224, - 98,16,162,16,34,16,33,224,34,16,34,16,34,16,34,16, - 249,228,14,10,20,16,1,0,33,224,98,16,162,16,34,16, - 33,240,32,16,32,16,32,16,32,32,249,196,15,10,20,16, - 1,0,120,96,132,144,133,8,5,8,25,8,33,8,65,8, - 129,8,128,144,252,98,14,12,24,16,1,0,32,16,64,8, - 71,136,136,68,128,68,135,196,136,68,136,68,136,196,71,72, - 64,8,32,16,14,12,24,16,1,0,40,16,72,8,72,8, - 139,132,140,68,136,68,136,68,136,68,136,68,76,72,75,136, - 32,16,14,12,24,16,1,0,32,16,64,8,71,136,136,68, - 136,4,136,4,136,4,136,4,136,68,71,136,64,8,32,16, - 14,12,24,16,1,255,32,80,64,72,64,72,135,68,136,196, - 136,68,136,68,136,68,136,68,72,200,71,72,32,16,14,12, - 24,16,1,0,32,16,64,8,71,136,136,68,136,68,143,196, - 136,4,136,4,136,68,71,136,64,8,32,16,14,12,24,16, - 1,255,33,144,66,8,66,8,130,4,143,132,130,4,130,4, - 130,4,130,4,66,8,66,8,32,16,14,12,24,16,1,0, - 32,16,64,72,71,72,136,132,136,132,136,132,135,4,132,4, - 135,132,72,72,72,72,39,144,14,12,24,16,1,255,40,16, - 72,8,72,8,139,132,140,68,136,68,136,68,136,68,136,68, - 72,72,72,72,32,16,13,12,24,16,1,0,34,32,66,16, - 64,16,134,8,130,8,130,8,130,8,130,8,130,8,66,16, - 79,144,32,32,13,13,26,16,1,255,32,160,64,144,64,16, - 129,136,128,136,128,136,128,136,128,136,128,136,64,144,64,144, - 41,32,6,0,14,12,24,16,1,255,32,16,72,8,72,8, - 136,132,137,4,138,4,140,4,138,4,137,4,72,136,72,72, - 32,16,13,12,24,16,1,0,32,32,70,16,66,16,130,8, - 130,8,130,8,130,8,130,8,130,8,66,16,79,144,32,32, - 15,12,24,16,1,0,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,137,34,73,36,64,4,32,8,14,12, - 24,16,1,255,32,16,64,8,75,136,140,68,136,68,136,68, - 136,68,136,68,136,68,72,72,64,8,32,16,14,12,24,16, - 1,0,32,16,64,8,71,136,136,68,136,68,136,68,136,68, - 136,68,136,68,71,136,64,8,32,16,14,12,24,16,1,0, - 32,16,64,8,75,136,140,68,136,68,136,68,136,68,136,68, - 140,68,75,136,72,8,40,16,14,12,24,16,1,255,32,16, - 64,8,71,72,136,196,136,68,136,68,136,68,136,68,136,196, - 71,72,64,72,32,80,14,12,24,16,1,0,32,16,64,8, - 75,136,140,68,136,68,136,4,136,4,136,4,136,4,72,8, - 64,8,32,16,14,12,24,16,1,0,32,16,64,8,71,136, - 136,68,136,4,134,4,129,132,128,68,136,68,71,136,64,8, - 32,16,14,12,24,16,1,255,32,16,66,8,66,8,143,132, - 130,4,130,4,130,4,130,4,130,4,66,8,65,136,32,16, - 14,12,24,16,1,0,32,16,64,8,72,72,136,68,136,68, - 136,68,136,68,136,68,136,196,71,72,64,8,32,16,14,12, - 24,16,1,255,32,16,64,8,72,72,136,68,136,68,132,132, - 132,132,132,132,131,4,67,8,64,8,32,16,15,12,24,16, - 1,0,32,8,64,4,72,36,137,34,137,34,137,34,137,34, - 137,34,137,34,70,196,64,4,32,8,14,12,24,16,1,255, - 32,16,64,8,72,72,136,68,132,132,131,4,131,4,132,132, - 136,68,72,72,64,8,32,16,14,12,24,16,1,0,32,16, - 64,8,72,72,136,68,136,68,136,68,136,68,132,196,131,68, - 64,72,64,72,39,144,14,12,24,16,1,0,32,16,64,8, - 79,200,128,68,128,132,129,4,130,4,132,4,136,4,79,200, - 64,8,32,16,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,130,130,132,66,132,66,135,194,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,132,66, - 132,66,68,68,71,132,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 132,2,132,2,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,4,68,132, - 132,66,132,66,132,66,132,66,132,66,68,132,71,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,68,4,132,2,132,2,135,130,132,2,132,2,68,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,68,4,132,2,132,2,135,130,132,2, - 132,2,68,4,68,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 133,194,132,66,132,66,68,196,67,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 132,66,132,66,135,194,132,66,132,66,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 71,196,65,4,129,2,129,2,129,2,129,2,129,2,65,4, - 71,196,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,228,64,132,128,130,128,130,128,130,128,130, - 132,130,68,132,67,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,130,133,2, - 134,2,133,2,132,130,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,4,68,4, - 132,2,132,2,132,2,132,2,132,2,68,4,71,196,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,134,194,134,194,133,66,133,66,132,66,68,68, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,134,66,134,66,133,66,133,66, - 132,194,68,196,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,66, - 132,66,132,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,71,132,68,68, - 132,66,132,66,135,130,132,2,132,2,68,4,68,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 67,132,68,68,132,66,132,66,132,66,132,66,133,66,70,196, - 67,132,32,104,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,132,68,68,132,66,132,66,135,130,133,2, - 132,130,68,132,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,67,132,68,68,132,66,132,2, - 131,130,128,66,132,66,68,68,67,132,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,79,228,65,4, - 129,2,129,2,129,2,129,2,129,2,65,4,65,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,68,68,68,132,66,132,66,132,66,132,66,132,66,68,68, - 67,132,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,72,36,72,36,132,66,132,66,132,66,130,130, - 130,130,65,4,65,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,68,68,68,68,132,66,133,66, - 133,66,134,194,134,194,68,68,68,68,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,68,68,68,68, - 130,130,130,130,129,2,130,130,130,130,68,68,68,68,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 72,36,72,36,132,66,132,66,130,130,129,2,129,2,65,4, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,71,196,64,68,128,66,128,130,129,2,130,2, - 132,2,68,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,128,66, - 131,194,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,36,8,68,4,68,4, - 133,130,134,66,132,66,132,66,132,66,70,68,69,132,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,132,2,132,2,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,72,64,68,64,68,131,66,132,194,132,66,132,66, - 132,66,68,196,67,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,132,132,66,132,66, - 135,194,132,2,132,66,67,132,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,196,65,4, - 129,2,129,2,135,194,129,2,129,2,65,4,65,4,33,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,68,67,68,132,130,132,130,131,2,130,2,131,130,68,68, - 68,68,35,136,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,36,8,68,4,68,4,133,130,134,66,132,66,132,66, - 132,66,68,68,68,68,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,33,8,65,4,64,4,131,2,129,2, - 129,2,129,2,129,2,65,4,71,196,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,72,64,68,64,4, - 128,194,128,66,128,66,128,66,128,66,64,68,68,132,35,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 68,4,68,4,132,130,133,2,134,2,134,2,133,2,68,132, - 68,68,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,67,4,65,4,129,2,129,2,129,2,129,2, - 129,2,65,4,71,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,78,196,137,34,137,34, - 137,34,137,34,137,34,73,36,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,66,132,66,132,66,68,68,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,66,132,66,132,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,69,132,134,66,132,66,132,66,132,66, - 134,66,69,132,68,4,36,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,67,68,132,194,132,66, - 132,66,132,66,132,66,68,196,67,68,32,72,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,69,132, - 134,66,132,66,132,2,132,2,132,2,68,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,67,132,132,66,132,2,131,130,128,66,132,66,67,132, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,65,4,65,4,135,194,129,2,129,2,129,2, - 129,2,65,4,64,196,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,132,66,132,194,67,68,64,4,32,8,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,68,68, - 132,66,130,130,130,130,130,130,129,2,65,4,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 64,4,72,36,137,34,137,34,137,34,137,34,137,34,70,196, - 64,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 24,48,32,8,64,4,68,68,132,66,130,130,129,2,130,130, - 132,66,68,68,64,4,32,8,24,48,7,192,15,15,30,16, - 0,255,7,192,24,48,32,8,64,4,68,68,132,66,132,66, - 132,66,130,194,129,66,64,68,64,68,35,136,24,48,7,192, - 15,15,30,16,0,255,7,192,24,48,32,8,64,4,71,196, - 128,66,128,130,129,2,130,2,132,2,71,196,64,4,32,8, - 24,48,7,192,15,15,30,16,0,255,7,192,24,48,32,8, - 65,4,66,132,132,66,132,66,132,66,132,66,132,66,66,132, - 65,4,32,8,24,48,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,188,243,62,234,190,251,190,251,190, - 251,190,96,12,127,252,63,248,31,240,7,192,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,238, - 251,222,251,190,251,126,96,12,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,123,156, - 243,110,235,238,251,222,251,238,251,110,96,156,127,252,63,248, - 31,240,7,192,15,15,30,16,0,255,7,192,31,240,63,248, - 127,252,123,236,243,206,235,174,251,110,251,6,251,238,96,236, - 127,252,63,248,31,240,7,192,15,15,30,16,0,255,7,192, - 31,240,63,248,127,252,123,12,243,126,235,126,251,30,251,238, - 251,110,96,156,127,252,63,248,31,240,7,192,13,13,26,16, - 1,0,15,128,63,224,127,240,119,16,230,248,214,248,246,56, - 246,216,246,216,65,48,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,118,16,231,216,215,216,247,184, - 247,184,247,120,65,112,127,240,63,224,15,128,13,13,26,16, - 1,0,15,128,63,224,127,240,119,48,230,216,214,216,247,56, - 246,216,246,216,65,48,127,240,63,224,15,128,15,15,30,16, - 0,255,7,192,31,240,63,248,127,252,123,156,243,110,235,110, - 251,142,251,238,251,238,96,156,127,252,63,248,31,240,7,192, - 15,15,30,16,0,255,7,192,31,240,63,248,127,252,115,156, - 237,110,253,110,251,110,247,110,239,110,97,156,127,252,63,248, - 31,240,7,192,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,144,137,161,133,160,133,160,133,145,201,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,160,69,160,133,161,5, - 145,201,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,137,160,69, - 161,133,160,69,145,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 146,137,162,133,163,197,160,133,144,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,201,161,5,161,133,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,145,137,162,5,163,133,162,69, - 145,137,80,10,76,50,35,196,24,24,7,224,16,15,30,16, - 0,254,7,224,24,24,35,196,76,50,80,10,145,201,160,69, - 160,69,160,133,144,137,80,10,76,50,35,196,24,24,7,224, - 16,15,30,16,0,254,7,224,24,24,35,196,76,50,80,10, - 145,137,162,69,161,133,162,69,145,137,80,10,76,50,35,196, - 24,24,7,224,16,15,30,16,0,254,7,224,24,24,35,196, - 76,50,80,10,145,137,162,69,161,197,160,69,145,137,80,10, - 76,50,35,196,24,24,7,224,16,15,30,16,0,254,7,224, - 24,24,35,196,76,50,80,10,146,105,166,149,162,149,162,149, - 151,105,80,10,76,50,35,196,24,24,7,224,15,15,30,16, - 0,255,7,192,31,240,63,248,126,252,125,124,251,190,251,190, - 251,190,251,190,251,190,125,124,126,252,63,248,31,240,7,192 - }; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 6, '1' Height: 3 - Calculated Max Values w= 8 h=10 x= 2 y= 4 dx= 8 dy= 0 ascent=11 len=10 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y= 0 dx= 0 dy= 0 - Pure Font ascent = 6 descent= 0 - X Font ascent = 8 descent= 0 - Max Font ascent =11 descent= 0 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_75r[580] U8G_FONT_SECTION("u8g_font_unifont_75r") = { - 0,16,16,0,254,6,1,137,0,0,32,79,0,11,0,8, - 0,7,7,7,8,1,1,254,254,254,254,254,254,254,7,7, - 7,8,1,1,254,130,130,130,130,130,254,7,7,7,8,1, - 1,124,130,130,130,130,130,124,7,7,7,8,1,1,254,130, - 186,186,186,130,254,7,7,7,8,1,1,254,130,254,130,254, - 130,254,7,7,7,8,1,1,254,170,170,170,170,170,254,7, - 7,7,8,1,1,254,170,254,170,254,170,254,7,7,7,8, - 1,1,254,166,146,202,166,146,254,7,7,7,8,1,1,254, - 202,146,166,202,146,254,7,7,7,8,1,1,254,170,214,170, - 214,170,254,4,4,4,8,2,4,240,240,240,240,4,4,4, - 8,2,4,240,144,144,240,7,4,4,8,1,4,254,254,254, - 254,7,4,4,8,1,4,254,130,130,254,4,7,7,8,2, - 2,240,240,240,240,240,240,240,4,7,7,8,2,2,240,144, - 144,144,144,144,240,8,3,3,8,0,4,63,126,252,8,3, - 3,8,0,4,63,66,252,6,6,6,8,1,3,48,48,120, - 120,252,252,6,6,6,8,1,3,48,48,72,72,132,252,6, - 3,3,8,1,3,48,120,252,6,3,3,8,1,3,48,72, - 252,6,6,6,8,1,3,192,240,252,252,240,192,6,6,6, - 8,1,3,192,176,140,140,176,192,4,4,4,8,2,4,192, - 240,240,192,4,4,4,8,2,4,192,176,176,192,6,5,5, - 8,1,3,192,240,252,240,192,6,5,5,8,1,3,192,176, - 140,176,192,6,6,6,8,1,3,252,252,120,120,48,48,6, - 6,6,8,1,3,252,132,72,72,48,48,6,3,3,8,1, - 3,252,120,48,6,3,3,8,1,3,252,72,48,6,6,6, - 8,1,3,12,60,252,252,60,12,6,6,6,8,1,3,12, - 52,196,196,52,12,4,4,4,8,2,4,48,240,240,48,4, - 4,4,8,2,4,48,208,208,48,6,5,5,8,1,3,12, - 60,252,60,12,6,5,5,8,1,3,12,52,196,52,12,7, - 7,7,8,1,2,16,56,124,254,124,56,16,7,7,7,8, - 1,2,16,40,68,130,68,40,16,7,7,7,8,1,2,16, - 40,84,186,84,40,16,7,7,7,8,1,2,56,68,178,186, - 154,68,56,6,10,10,8,1,1,48,48,72,72,132,132,72, - 72,48,48,7,7,7,8,1,2,56,68,130,130,130,68,56, - 7,7,7,8,1,2,40,0,130,0,130,0,40,7,7,7, - 8,1,2,56,108,170,170,170,108,56,7,7,7,8,1,2, - 56,68,146,170,146,68,56,7,7,7,8,1,2,56,124,254, - 254,254,124,56}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 8 - Calculated Max Values w=16 h=16 x= 3 y= 6 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent= 0 - X Font ascent =10 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_76[2540] U8G_FONT_SECTION("u8g_font_unifont_76") = { - 0,16,16,0,254,10,2,62,4,228,32,159,0,14,254,10, - 0,7,12,12,8,1,0,16,146,68,0,56,124,124,56,0, - 68,146,16,8,4,4,8,0,6,32,118,255,126,7,8,8, - 8,1,2,56,124,254,16,16,16,16,32,16,16,32,16,0, - 254,139,200,3,192,47,241,4,36,138,80,40,18,10,80,73, - 148,4,33,71,224,8,16,16,136,120,30,16,136,8,16,7, - 224,7,11,11,8,1,0,68,68,72,72,80,82,4,96,144, - 144,96,7,6,6,8,1,3,16,16,254,56,108,68,7,7, - 7,8,1,3,16,16,238,68,84,108,68,5,9,9,8,2, - 0,8,16,32,64,128,64,40,24,56,6,8,8,8,1,0, - 252,132,136,144,160,148,140,156,8,8,8,8,0,0,60,66, - 129,153,153,129,66,60,8,6,6,8,0,2,24,36,36,102, - 165,66,8,6,6,8,0,2,66,165,102,36,36,24,5,6, - 6,8,1,2,8,16,96,144,144,96,7,9,9,8,1,0, - 12,18,18,12,16,96,144,144,96,7,6,6,8,1,1,124, - 198,0,84,198,254,7,7,7,8,1,1,124,130,186,124,146, - 130,254,7,7,7,8,1,0,254,130,130,130,130,130,254,7, - 8,8,8,1,0,8,254,138,138,202,178,130,254,7,7,7, - 8,1,0,254,130,170,146,170,130,254,5,10,10,8,2,0, - 136,136,80,80,32,32,80,80,136,136,7,12,12,8,1,2, - 10,160,8,130,56,124,254,16,16,16,16,32,12,13,26,16, - 2,0,36,128,73,0,73,0,36,128,36,128,73,0,0,0, - 127,32,255,208,191,80,128,80,128,224,127,0,11,13,26,16, - 2,0,4,0,10,0,17,0,32,128,64,64,128,32,128,32, - 128,32,128,32,128,32,128,32,128,32,255,224,11,13,26,16, - 2,0,4,0,14,0,31,0,63,128,127,192,255,224,255,224, - 255,224,255,224,255,224,255,224,255,224,255,224,13,13,26,16, - 1,255,5,0,15,128,15,128,103,48,242,120,127,240,242,120, - 98,48,4,0,4,0,4,0,8,0,16,0,13,12,24,16, - 1,0,0,8,3,144,71,208,143,208,159,208,255,176,127,184, - 31,200,15,200,7,200,3,136,0,16,7,4,4,8,1,2, - 252,62,62,28,7,4,4,8,1,2,126,248,248,112,7,4, - 4,8,1,2,252,34,50,28,4,7,7,8,2,2,16,16, - 112,208,144,144,96,7,4,4,8,1,2,126,136,152,112,4, - 7,7,8,2,0,96,144,144,208,112,16,16,8,12,12,8, - 0,0,231,165,126,129,165,165,129,90,90,66,189,231,4,10, - 10,8,2,0,224,16,16,32,32,64,64,128,128,112,16,16, - 32,16,0,254,7,224,24,24,36,36,92,58,92,58,190,125, - 190,125,190,125,129,129,129,129,131,193,67,194,71,226,35,196, - 24,24,7,224,15,13,26,16,0,255,4,64,8,32,16,16, - 16,16,19,144,12,96,62,248,68,68,133,66,131,130,2,128, - 4,64,24,48,13,15,30,16,1,254,6,0,2,0,255,248, - 71,16,63,224,2,0,26,192,34,32,31,192,18,64,15,128, - 10,128,7,0,10,128,2,0,5,8,8,8,2,0,112,136, - 80,32,248,32,32,32,5,9,9,8,2,0,32,112,32,248, - 32,96,48,32,32,6,10,10,8,1,0,56,36,36,56,32, - 168,112,32,112,168,5,9,9,8,2,0,32,112,32,248,32, - 32,32,32,32,7,7,7,8,1,0,56,16,146,254,146,16, - 56,8,9,9,8,0,1,30,33,64,194,199,194,64,33,30, - 11,11,22,16,2,0,21,0,27,0,0,0,85,64,164,160, - 164,160,164,160,149,32,78,64,31,0,4,0,11,12,24,16, - 3,255,4,0,21,0,36,128,78,64,213,96,213,96,206,96, - 228,224,223,96,142,32,21,0,4,0,8,8,8,8,0,0, - 12,2,57,121,13,62,99,193,7,8,8,8,1,0,124,146, - 146,146,186,214,146,124,16,16,32,16,0,254,7,224,24,24, - 32,4,64,2,64,2,156,49,190,49,255,3,231,131,231,199, - 255,255,127,254,127,254,63,252,31,248,7,224,13,10,20,16, - 1,0,255,248,255,248,0,0,0,0,255,248,255,248,0,0, - 0,0,255,248,255,248,13,10,20,16,1,0,248,248,248,248, - 0,0,0,0,255,248,255,248,0,0,0,0,255,248,255,248, - 13,10,20,16,1,0,255,248,255,248,0,0,0,0,248,248, - 248,248,0,0,0,0,255,248,255,248,13,10,20,16,1,0, - 248,248,248,248,0,0,0,0,248,248,248,248,0,0,0,0, - 255,248,255,248,13,10,20,16,1,0,255,248,255,248,0,0, - 0,0,255,248,255,248,0,0,0,0,248,248,248,248,13,10, - 20,16,1,0,248,248,248,248,0,0,0,0,255,248,255,248, - 0,0,0,0,248,248,248,248,13,10,20,16,1,0,255,248, - 255,248,0,0,0,0,248,248,248,248,0,0,0,0,248,248, - 248,248,13,10,20,16,1,0,248,248,248,248,0,0,0,0, - 248,248,248,248,0,0,0,0,248,248,248,248,7,7,7,8, - 1,0,146,124,124,238,124,124,146,8,10,10,8,0,1,60, - 66,129,165,129,153,165,129,66,60,8,9,9,8,0,1,60, - 66,129,165,129,165,153,66,60,8,9,9,8,0,1,60,126, - 255,219,255,219,231,126,60,7,7,7,8,1,2,146,84,56, - 238,56,84,146,6,10,10,8,2,0,224,48,24,20,20,20, - 20,24,48,224,6,10,10,8,1,0,28,48,96,160,160,160, - 160,96,48,28,5,11,11,8,2,0,136,136,112,136,136,136, - 112,32,248,32,32,5,9,9,8,2,0,112,136,136,136,112, - 32,248,32,32,5,10,10,8,2,1,32,32,248,32,32,112, - 136,136,136,112,7,8,8,8,1,1,14,6,10,112,136,136, - 136,112,6,10,10,8,1,0,4,4,4,116,140,12,20,252, - 4,4,6,10,10,8,1,0,64,64,224,64,88,100,68,72, - 72,72,7,9,9,8,1,0,214,84,124,84,214,16,56,40, - 56,8,11,11,8,0,255,8,89,203,73,73,73,62,8,62, - 8,8,6,10,10,8,1,0,248,132,132,132,248,128,128,128, - 128,252,7,10,10,8,1,0,68,170,40,40,16,16,16,16, - 16,16,7,7,7,8,1,0,130,68,56,68,68,68,56,7, - 10,10,8,1,0,130,124,40,40,40,40,40,40,124,130,7, - 8,8,8,1,0,124,146,144,96,12,18,146,124,8,9,9, - 8,0,0,28,34,34,18,116,148,148,101,2,7,10,10,8, - 1,0,168,248,170,174,170,170,170,170,12,248,7,6,6,8, - 1,1,56,68,68,238,0,254,7,10,10,8,1,0,168,248, - 168,168,168,168,168,168,170,6,7,7,7,8,1,0,30,6, - 138,82,32,80,136,8,10,10,8,0,0,49,78,132,8,16, - 60,98,162,162,28,6,6,6,8,1,2,84,168,0,0,84, - 168,6,9,9,8,1,0,132,132,72,72,252,72,72,132,132, - 7,13,13,8,1,0,16,56,146,186,198,130,68,68,68,130, - 130,130,254,7,11,11,8,1,0,16,56,198,130,68,68,68, - 130,130,130,254,7,9,9,8,1,0,170,254,130,130,68,68, - 130,130,254,7,10,10,8,1,0,16,40,68,68,68,68,40, - 238,130,254,6,11,11,8,1,0,4,60,68,132,132,116,36, - 68,132,132,252,6,8,8,8,1,0,48,72,72,48,72,72, - 132,252,7,13,13,8,1,0,16,56,146,186,254,254,124,124, - 124,254,254,254,254,7,11,11,8,1,0,16,56,254,238,124, - 124,124,254,254,254,254,7,8,8,8,1,0,170,254,254,124, - 124,254,254,254,7,10,10,8,1,0,16,56,108,68,108,124, - 56,254,254,254,6,11,11,8,1,0,4,60,108,252,252,124, - 60,124,252,252,252,6,8,8,8,1,0,48,120,120,48,120, - 120,252,252,7,10,10,8,1,0,16,16,56,124,254,254,254, - 124,16,56,7,9,9,8,1,0,108,146,130,130,130,68,40, - 16,16,5,10,10,8,2,0,32,32,80,80,136,136,80,80, - 32,32,7,10,10,8,1,0,56,56,56,16,254,254,214,16, - 16,56,7,10,10,8,1,0,16,16,40,68,130,130,130,124, - 16,56,7,9,9,8,1,0,108,254,254,254,254,124,56,16, - 16,5,10,10,8,2,0,32,32,112,112,248,248,112,112,32, - 32,7,10,10,8,1,0,56,40,56,16,238,186,214,16,16, - 56,8,11,11,8,0,0,8,81,146,146,146,73,73,73,82, - 129,126,4,10,10,8,1,0,16,16,16,16,16,16,16,112, - 240,224,6,10,10,8,1,0,16,24,20,20,16,16,16,112, - 240,224,8,11,11,8,0,0,28,23,17,17,17,17,113,241, - 231,15,14,8,11,11,8,0,0,28,23,17,29,23,17,113, - 241,231,15,14,6,12,12,8,1,0,128,128,128,128,128,184, - 204,140,136,144,160,192,6,11,11,8,1,0,128,128,156,252, - 228,132,156,252,228,4,4,6,13,13,8,1,255,8,72,76, - 124,248,200,72,76,124,248,200,72,64,7,10,10,8,1,0, - 40,16,16,146,124,146,16,16,16,40,7,10,10,8,1,0, - 56,40,16,214,186,214,16,16,40,16,16,16,32,16,0,254, - 3,192,5,32,10,152,18,72,10,208,4,48,48,4,72,10, - 140,17,80,9,160,5,174,38,82,88,82,134,30,92,0,32, - 15,16,32,16,0,254,3,128,4,64,4,64,8,32,0,40, - 57,24,27,56,41,0,33,8,67,132,64,4,128,34,128,66, - 126,252,0,64,0,32,15,16,32,16,0,254,3,128,4,64, - 4,64,8,32,0,40,59,24,24,184,41,0,34,8,67,132, - 64,4,128,34,128,66,126,252,0,64,0,32,15,16,32,16, - 0,254,3,128,4,64,4,64,8,32,0,40,57,24,24,184, - 43,0,32,136,67,4,64,4,128,34,128,66,126,252,0,64, - 0,32,15,16,32,16,0,254,3,128,4,64,4,64,8,32, - 0,40,58,152,26,184,43,128,32,136,64,132,64,4,128,34, - 128,66,126,252,0,64,0,32,15,16,32,16,0,254,3,128, - 4,64,4,64,8,32,0,40,59,152,26,56,43,0,32,136, - 67,4,64,4,128,34,128,66,126,252,0,64,0,32,15,16, - 32,16,0,254,3,128,4,64,4,64,8,32,0,40,57,152, - 26,56,43,128,34,72,65,132,64,4,128,34,128,66,126,252, - 0,64,0,32,15,16,32,16,0,254,3,128,4,64,4,64, - 8,32,0,40,59,152,24,184,41,0,33,8,65,4,64,4, - 128,34,128,66,126,252,0,64,0,32,15,16,32,16,0,254, - 3,128,4,64,4,64,8,32,0,40,56,24,24,56,40,0, - 32,8,64,4,64,4,128,34,128,66,126,252,0,64,0,32, - 16,16,32,16,0,254,3,192,5,224,14,248,30,120,14,240, - 4,48,48,4,120,14,252,31,112,15,224,7,238,38,94,120, - 94,254,30,124,0,32,16,16,32,16,0,254,7,224,31,248, - 62,124,125,190,123,222,255,143,247,223,231,255,243,239,247,239, - 239,247,111,182,113,14,63,188,31,248,7,224,16,16,32,16, - 0,254,7,224,24,24,33,132,66,66,68,34,128,113,136,33, - 152,1,140,17,136,17,144,9,80,74,78,242,32,68,24,24, - 7,224,13,12,24,16,0,255,7,0,24,192,32,32,64,16, - 77,144,146,72,146,72,77,144,64,16,32,32,24,192,7,0, - 12,11,22,16,2,0,24,0,24,0,16,0,30,0,16,0, - 95,128,128,128,128,64,129,64,66,48,60,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 11 - Calculated Max Values w=16 h=16 x= 4 y= 4 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 0 - X Font ascent =11 descent=-1 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_77[1657] U8G_FONT_SECTION("u8g_font_unifont_77") = { - 0,16,16,0,254,11,3,133,6,29,32,99,0,14,254,11, - 255,9,9,18,16,3,1,255,128,128,128,128,128,128,128,136, - 128,128,128,128,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,128,128,160,128,128,128,130,128,128,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,160,128,128,128,136, - 128,128,128,130,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,128,128,128,128,162,128,128,128,255, - 128,9,9,18,16,3,1,255,128,128,128,162,128,128,128,136, - 128,128,128,162,128,128,128,255,128,9,9,18,16,3,1,255, - 128,128,128,162,128,128,128,162,128,128,128,162,128,128,128,255, - 128,13,12,24,16,0,255,7,0,24,192,32,32,64,16,64, - 16,128,200,128,200,64,16,64,16,32,32,24,192,7,0,13, - 12,24,16,0,255,7,0,24,192,32,32,64,16,64,16,152, - 200,152,200,64,16,64,16,32,32,24,192,7,0,13,12,24, - 16,0,255,7,0,31,192,63,224,127,240,127,240,255,56,255, - 56,127,240,127,240,63,224,15,128,7,0,13,12,24,16,0, - 255,7,0,31,192,63,224,127,240,127,240,231,56,231,56,127, - 240,127,240,63,224,15,128,7,0,13,2,4,16,1,4,255, - 248,255,248,13,2,4,16,1,4,248,248,248,248,13,6,12, - 16,1,2,255,248,255,248,0,0,0,0,255,248,255,248,13, - 6,12,16,1,2,248,248,248,248,0,0,0,0,255,248,255, - 248,13,6,12,16,1,2,255,248,255,248,0,0,0,0,248, - 248,248,248,13,6,12,16,1,2,248,248,248,248,0,0,0, - 0,248,248,248,248,6,11,11,8,1,0,224,156,132,132,228, - 156,128,128,128,128,128,6,11,11,8,1,0,224,252,252,252, - 252,156,128,128,128,128,128,16,14,28,16,0,255,7,50,95, - 124,62,126,124,31,248,39,116,67,34,129,1,0,2,128,4, - 64,8,32,16,16,32,8,64,4,14,12,24,16,1,0,3, - 128,4,64,4,64,3,128,1,0,7,192,1,0,65,8,225, - 28,65,8,33,16,31,224,13,13,26,16,1,0,128,8,64, - 16,32,32,16,64,8,128,5,0,2,0,5,0,8,128,80, - 80,32,32,80,80,128,8,9,14,28,16,3,255,8,0,8, - 0,127,128,137,128,136,0,126,0,9,0,9,0,62,0,72, - 0,60,0,10,0,28,0,8,0,15,11,22,16,0,0,1, - 0,17,16,127,252,57,56,84,84,84,84,146,146,146,146,254, - 254,124,124,56,56,11,8,16,16,2,0,63,128,95,192,143, - 192,135,128,128,0,15,128,18,64,34,32,11,13,26,16,2, - 255,14,0,17,0,17,0,17,0,14,0,4,0,228,224,245, - 224,117,192,53,128,14,0,4,0,4,0,13,13,26,16,1, - 255,2,0,66,16,47,160,16,64,32,32,32,32,226,56,32, - 32,32,32,16,64,47,160,66,16,2,0,15,13,26,16,0, - 0,1,0,2,128,57,56,127,252,253,126,5,64,3,128,1, - 0,1,0,1,0,1,0,1,0,1,0,16,16,32,16,0, - 254,1,128,2,64,2,64,116,46,142,113,133,161,78,114,53, - 172,53,172,78,114,133,161,142,113,116,46,2,64,2,64,1, - 128,15,16,32,16,0,254,1,0,2,128,4,64,52,88,76, - 100,132,66,178,154,202,166,26,176,16,16,27,176,10,160,58, - 184,38,200,25,48,1,0,15,15,30,16,0,255,1,0,2, - 128,4,64,4,64,8,0,107,252,136,2,136,34,96,36,24, - 16,6,80,0,136,33,8,38,72,24,48,12,15,30,16,2, - 255,192,0,48,0,12,0,3,0,0,192,0,48,0,0,255, - 240,0,0,0,48,0,192,3,0,12,0,48,0,192,0,12, - 15,30,16,2,255,0,48,0,192,3,0,12,0,48,0,192, - 0,0,0,255,240,0,0,192,0,48,0,12,0,3,0,0, - 192,0,48,13,14,28,16,1,255,2,0,5,0,5,0,8, - 128,8,128,18,64,18,64,34,32,34,32,66,16,64,16,130, - 8,128,8,255,248,6,11,11,8,1,255,4,8,16,32,64, - 252,8,16,32,64,128,11,9,18,16,2,0,59,128,68,64, - 138,32,138,32,68,64,59,128,17,0,59,128,17,0,11,11, - 22,16,2,0,7,0,3,0,5,0,56,224,68,96,142,160, - 149,0,104,128,48,128,17,0,14,0,10,14,28,16,3,255, - 1,192,0,192,1,64,14,0,17,0,56,128,84,128,139,0, - 134,0,68,0,56,0,16,0,56,0,16,0,8,12,12,16, - 4,254,7,3,5,56,68,130,130,68,56,16,56,16,11,10, - 20,16,2,0,0,224,0,96,2,160,1,0,58,128,68,0, - 130,0,130,0,68,0,56,0,15,13,26,16,0,254,224,14, - 192,6,168,10,16,16,43,160,4,64,8,32,8,32,4,64, - 3,128,1,0,3,128,1,0,7,12,12,8,0,0,16,56, - 84,16,56,16,56,68,130,130,68,56,14,7,14,16,0,255, - 56,0,68,16,130,136,131,252,130,136,68,16,56,0,7,7, - 7,8,0,255,56,68,130,130,130,68,56,7,7,7,8,0, - 255,56,124,254,254,254,124,56,5,5,5,8,2,0,112,136, - 136,136,112,11,6,12,16,2,0,59,128,68,64,138,32,138, - 32,68,64,59,128,11,7,14,16,3,255,4,0,117,192,142, - 32,142,32,142,32,117,192,4,0,13,5,10,16,1,0,112, - 112,136,136,143,136,136,136,112,112,14,10,20,16,2,0,24, - 0,39,128,64,124,128,0,128,0,128,0,128,0,64,124,39, - 128,24,0,11,13,26,16,2,0,31,0,10,0,63,128,64, - 64,128,32,128,32,64,64,64,64,64,64,32,128,32,128,32, - 128,31,0,7,9,9,8,0,254,56,68,130,130,68,56,16, - 16,16,6,9,9,8,0,254,112,136,4,4,8,48,32,248, - 32,7,10,10,8,0,254,16,40,68,130,68,40,16,16,124, - 16,7,10,10,8,0,254,146,84,56,254,56,84,146,16,124, - 16,13,11,22,16,1,0,2,0,2,0,2,0,2,0,114, - 112,8,128,5,0,242,120,8,128,5,0,2,0,6,11,11, - 8,1,0,36,40,48,40,36,32,112,136,136,136,112,6,10, - 10,8,1,254,56,112,224,224,224,112,56,16,124,16,8,7, - 7,8,0,3,66,36,24,255,24,36,66,7,8,8,8,0, - 0,68,68,68,40,40,40,16,254,7,8,8,8,0,0,254, - 16,40,40,40,68,68,68,6,8,8,8,1,0,252,132,132, - 132,148,252,64,252,13,13,26,16,0,255,7,0,28,192,60, - 224,92,240,64,16,135,8,143,136,231,56,112,112,96,48,39, - 32,31,192,7,0,13,13,26,16,0,255,7,0,24,192,48, - 96,72,144,64,16,133,8,128,8,133,8,64,16,72,144,48, - 96,24,192,7,0,13,13,26,16,1,255,255,248,128,8,135, - 8,136,136,136,136,135,8,130,8,130,8,130,8,131,136,130, - 8,128,8,255,248,12,9,18,16,2,0,31,128,96,96,134, - 16,134,16,224,112,191,208,169,80,105,96,31,128,12,12,24, - 16,2,0,31,128,96,96,134,16,134,16,224,112,191,208,169, - 80,233,112,191,208,169,80,105,96,31,128,14,11,22,16,1, - 255,31,224,112,56,207,204,188,244,188,244,143,196,160,20,171, - 84,203,76,112,56,31,224,14,14,28,16,1,255,31,224,112, - 56,207,204,188,244,188,244,143,196,160,20,171,84,139,68,160, - 20,171,84,203,76,112,56,31,224}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 15, '1' Height: 13 - Calculated Max Values w=16 h=16 x= 7 y= 5 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =15 descent=-2 - X Font ascent =15 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_78_79[7084] U8G_FONT_SECTION("u8g_font_unifont_78_79") = { - 0,16,16,0,254,15,8,41,11,207,1,255,254,14,254,15, - 254,15,11,22,16,0,2,56,0,124,0,108,0,124,0,60, - 0,14,0,127,252,255,254,217,192,248,224,112,0,14,11,22, - 16,0,1,112,12,248,56,216,112,254,224,127,192,7,128,127, - 192,254,224,216,112,248,56,112,12,15,11,22,16,0,255,112, - 0,248,224,217,192,255,254,127,252,14,0,60,0,124,0,108, - 0,124,0,56,0,15,11,22,16,0,1,112,12,136,50,174, - 68,129,136,121,16,6,32,120,80,129,136,174,68,136,50,112, - 12,14,11,22,16,1,255,0,8,0,20,0,36,0,72,64, - 144,161,32,162,64,84,128,73,0,34,0,28,0,15,15,30, - 16,0,255,7,192,24,48,32,8,65,196,71,228,143,242,143, - 114,158,98,156,2,159,2,79,4,70,4,32,8,24,48,7, - 192,15,15,30,16,0,255,7,192,25,48,35,136,67,132,65, - 4,131,130,135,194,135,194,135,194,139,162,92,116,88,52,32, - 8,24,48,7,192,15,14,28,16,0,255,8,0,15,0,6, - 0,7,192,195,128,227,192,127,254,127,254,227,192,195,128,7, - 192,6,0,15,0,8,0,14,7,14,16,1,3,255,252,192, - 12,176,52,140,196,179,52,192,12,255,252,13,11,22,16,1, - 255,6,192,25,32,41,32,107,240,170,8,169,200,169,136,110, - 8,80,16,32,32,31,192,14,13,26,16,1,0,21,0,42, - 128,42,128,106,128,170,128,170,152,170,164,128,68,128,8,128, - 16,64,32,32,32,31,192,15,15,30,16,0,255,24,48,36, - 72,34,136,18,144,17,16,9,32,8,32,124,252,146,130,146, - 114,146,34,146,66,124,4,32,8,31,240,15,13,26,16,1, - 0,0,16,0,56,0,112,7,238,25,234,35,154,71,10,142, - 10,223,202,36,10,95,250,224,10,192,14,12,12,24,16,1, - 0,48,0,76,0,170,0,149,0,226,128,81,64,40,160,20, - 80,10,80,5,144,2,48,1,240,15,7,14,16,0,3,63, - 240,80,40,143,244,168,22,143,244,80,40,63,240,12,12,24, - 16,1,0,1,240,2,48,5,144,10,80,20,80,40,160,81, - 64,226,128,149,0,170,0,76,0,48,0,15,7,14,16,0, - 3,0,240,121,8,134,108,128,254,134,108,121,8,0,240,15, - 7,14,16,0,3,0,224,121,240,255,56,255,14,255,56,121, - 240,0,224,13,10,20,16,1,255,0,8,0,16,0,32,128, - 64,128,128,65,0,66,0,36,0,40,0,16,0,15,11,22, - 16,0,255,0,4,0,14,64,28,224,56,224,112,112,224,113, - 192,59,128,63,0,30,0,12,0,11,11,22,16,2,1,64, - 64,224,224,113,192,59,128,31,0,14,0,31,0,59,128,113, - 192,224,224,64,64,15,15,30,16,0,255,16,16,56,56,124, - 124,254,254,127,252,63,248,31,240,15,224,31,240,63,248,127, - 252,254,254,124,124,56,56,16,16,12,13,26,16,1,0,192, - 48,96,192,99,128,54,0,28,0,28,0,54,0,51,0,97, - 128,96,192,192,96,192,48,64,0,12,14,28,16,1,255,192, - 48,224,224,99,192,119,0,62,0,28,0,62,0,55,0,115, - 128,97,192,224,224,192,112,192,32,64,0,15,15,30,16,0, - 255,7,192,4,64,5,64,5,64,5,64,253,126,129,2,191, - 250,129,2,253,126,5,64,5,64,5,64,4,64,7,192,15, - 15,30,16,0,255,7,192,7,192,7,192,7,192,7,192,255, - 254,255,254,255,254,255,254,255,254,7,192,7,192,7,192,7, - 192,7,192,15,15,30,16,0,255,3,128,3,128,3,128,3, - 128,3,128,3,128,252,126,252,126,252,126,3,128,3,128,3, - 128,3,128,3,128,3,128,15,15,30,16,0,255,7,192,7, - 192,7,192,7,192,7,192,248,62,248,62,248,62,248,62,248, - 62,7,192,7,192,7,192,7,192,7,192,9,11,22,16,3, - 1,28,0,28,0,28,0,255,128,255,128,255,128,28,0,28, - 0,28,0,28,0,28,0,13,15,30,16,1,255,15,0,9, - 128,9,128,9,128,249,240,128,24,128,24,249,248,121,248,9, - 128,9,128,9,128,9,128,15,128,7,128,13,14,28,16,1, - 255,31,192,16,64,247,120,135,8,191,232,191,232,191,232,135, - 8,247,120,23,64,23,64,23,64,16,64,31,192,15,15,30, - 16,0,255,31,240,7,192,3,128,131,130,131,130,195,134,255, - 254,255,254,255,254,195,134,131,130,131,130,3,128,7,192,31, - 240,15,15,30,16,0,255,1,0,1,0,2,128,255,254,68, - 68,40,40,40,40,16,16,40,40,40,40,68,68,255,254,2, - 128,1,0,1,0,15,15,30,16,0,255,3,128,7,192,7, - 192,3,128,3,128,97,12,249,62,255,254,249,62,97,12,3, - 128,3,128,7,192,7,192,3,128,15,15,30,16,0,255,3, - 128,7,192,7,192,7,192,3,128,113,28,249,62,255,254,249, - 62,113,28,3,128,7,192,7,192,7,192,3,128,15,15,30, - 16,0,255,7,192,15,224,15,224,7,192,99,140,243,158,255, - 254,255,254,255,254,243,158,99,140,7,192,15,224,15,224,7, - 192,16,15,30,16,0,255,1,0,3,128,7,192,7,192,1, - 0,49,12,113,14,255,255,113,14,49,12,1,0,7,192,7, - 192,3,128,1,0,15,15,30,16,0,255,1,0,3,128,3, - 128,7,192,7,192,31,240,127,252,255,254,127,252,31,240,7, - 192,7,192,3,128,3,128,1,0,15,15,30,16,0,255,1, - 0,2,128,2,128,4,64,4,64,24,48,96,12,128,2,96, - 12,24,48,4,64,4,64,2,128,2,128,1,0,14,14,28, - 16,1,255,8,0,8,0,20,0,34,0,193,128,34,32,20, - 32,8,80,9,140,0,80,0,32,2,32,5,0,2,0,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,64,4,56, - 56,8,32,16,16,17,16,38,200,40,40,48,24,15,15,30, - 16,0,255,7,192,31,240,62,248,126,252,124,124,192,6,240, - 30,248,62,240,30,241,30,103,204,111,236,63,248,31,240,7, - 192,15,12,24,16,0,1,1,0,3,128,3,128,255,254,124, - 124,56,56,8,32,28,112,31,240,62,248,56,56,48,24,15, - 12,24,16,0,1,1,0,2,128,2,128,252,126,67,132,39, - 200,23,208,19,144,16,16,39,200,40,40,48,24,15,12,24, - 16,0,1,1,0,2,128,28,112,225,14,79,228,35,136,23, - 208,20,80,17,16,34,136,44,104,48,24,15,12,24,16,0, - 1,1,0,2,128,29,112,227,142,95,244,47,232,23,208,22, - 208,21,80,34,136,44,104,48,24,15,13,26,16,0,0,1, - 0,3,128,5,192,249,254,93,140,39,184,19,240,15,208,29, - 144,25,208,50,232,44,120,48,24,16,13,26,16,0,0,1, - 0,2,128,2,192,255,254,68,71,56,62,8,60,22,208,17, - 24,39,200,47,44,60,28,24,12,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,63,252,15,240,63,252,243, - 158,67,132,3,128,3,128,3,128,15,13,26,16,0,0,3, - 128,3,128,3,128,67,132,243,158,60,124,8,48,60,124,243, - 158,67,132,3,128,3,128,3,128,15,15,30,16,0,255,1, - 0,1,0,33,8,17,16,13,96,15,224,7,192,255,254,7, - 192,15,224,13,96,17,16,33,8,1,0,1,0,15,15,30, - 16,0,255,1,0,1,0,33,8,27,176,31,240,15,224,31, - 224,255,254,31,240,15,224,31,240,27,176,33,8,1,0,1, - 0,15,15,30,16,0,255,1,0,2,128,60,248,44,200,38, - 152,50,184,125,76,131,134,77,124,58,152,50,200,38,104,62, - 120,2,128,1,0,13,13,26,16,1,0,2,0,2,0,2, - 0,135,8,119,112,63,224,31,192,63,224,119,112,135,8,2, - 0,2,0,2,0,15,15,30,16,0,255,8,32,8,32,12, - 96,6,192,230,206,59,184,31,240,7,192,31,240,59,184,230, - 206,6,192,12,96,8,32,8,32,15,15,30,16,0,255,8, - 32,12,96,14,224,15,224,255,254,127,252,63,248,31,240,63, - 248,127,252,255,254,15,224,14,224,12,96,8,32,15,15,30, - 16,0,255,1,0,25,48,15,224,79,228,127,252,63,248,63, - 248,255,254,63,248,63,248,127,252,79,228,15,224,25,48,1, - 0,15,15,30,16,0,255,9,32,73,36,37,72,21,80,203, - 166,55,216,15,224,255,254,15,224,55,216,203,166,21,80,37, - 72,73,36,9,32,15,15,30,16,0,255,1,0,3,128,3, - 128,3,128,225,14,113,28,13,96,3,128,13,96,113,28,225, - 14,3,128,3,128,3,128,1,0,15,15,30,16,0,255,3, - 128,7,192,7,192,99,140,241,30,243,158,60,120,8,32,60, - 120,243,158,241,30,99,140,7,192,7,192,3,128,15,15,30, - 16,0,255,3,128,7,192,7,192,99,140,243,158,241,30,61, - 120,7,192,61,120,241,30,243,158,99,140,7,192,7,192,3, - 128,15,15,30,16,0,255,3,128,4,64,4,64,116,92,252, - 126,254,254,127,252,33,8,67,132,135,194,143,226,119,220,7, - 192,7,192,3,128,15,14,28,16,0,0,3,128,7,192,15, - 224,119,220,255,254,252,126,240,30,112,28,24,48,62,248,127, - 252,126,252,126,252,60,120,15,14,28,16,0,0,3,128,4, - 64,9,32,121,60,133,66,179,154,143,226,111,236,23,208,39, - 200,73,36,82,148,66,132,60,120,15,15,30,16,0,255,3, - 128,60,120,69,68,81,20,77,100,111,236,134,194,188,122,134, - 194,111,236,77,100,81,20,69,68,60,120,3,128,15,15,30, - 16,0,255,7,192,30,240,62,248,92,116,103,204,252,126,232, - 46,136,34,232,46,252,126,103,204,92,116,62,248,30,240,7, - 192,15,15,30,16,0,255,3,128,4,192,4,192,116,220,188, - 230,159,158,79,60,63,248,114,100,230,114,206,122,118,92,6, - 64,6,64,3,128,15,13,26,16,0,0,1,0,5,64,3, - 128,201,38,49,24,77,100,3,128,77,100,49,24,201,38,3, - 128,5,64,1,0,15,13,26,16,0,0,1,0,5,64,11, - 160,201,38,49,24,77,100,131,130,77,100,49,24,201,38,11, - 160,5,64,1,0,15,15,30,16,0,255,9,32,13,96,7, - 192,19,144,201,38,49,24,237,110,3,128,237,110,49,24,201, - 38,17,16,7,192,13,96,9,32,14,14,28,16,1,255,7, - 128,71,136,39,144,19,32,11,64,224,28,251,124,251,124,224, - 28,11,64,19,32,39,144,71,136,7,128,15,15,30,16,0, - 255,7,192,71,196,39,200,19,144,11,160,224,14,251,190,251, - 190,251,190,224,14,11,160,19,144,39,200,71,196,7,192,15, - 15,30,16,0,255,3,128,7,192,7,192,119,220,251,190,249, - 62,125,124,7,192,125,124,249,62,251,190,119,220,7,192,7, - 192,3,128,15,15,30,16,0,255,1,0,3,128,51,152,49, - 24,9,32,5,64,99,140,255,254,99,140,5,64,9,32,49, - 24,51,152,3,128,1,0,15,15,30,16,0,255,1,0,3, - 128,51,152,59,184,25,48,7,192,119,220,255,254,119,220,7, - 192,25,48,59,184,51,152,3,128,1,0,11,11,22,16,2, - 1,96,192,241,224,123,192,63,128,31,0,31,0,63,128,123, - 192,241,224,224,224,64,64,13,13,26,16,2,255,15,0,48, - 192,64,32,64,48,128,16,128,24,128,24,128,24,64,56,64, - 48,48,240,15,224,7,128,13,13,26,16,0,0,255,248,223, - 216,143,136,199,24,226,56,240,120,248,248,240,120,226,56,199, - 24,143,136,223,216,255,248,12,12,24,16,3,1,255,192,128, - 64,128,112,128,112,128,112,128,112,128,112,128,112,128,112,255, - 240,63,240,63,240,12,12,24,16,3,1,63,240,63,240,255, - 240,128,112,128,112,128,112,128,112,128,112,128,112,128,112,128, - 64,255,192,12,12,24,16,3,1,255,192,128,96,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,255,240,127,240,63, - 240,12,12,24,16,3,1,63,240,127,240,255,240,128,112,128, - 112,128,112,128,112,128,112,128,112,128,112,128,96,255,192,9, - 15,30,16,3,254,28,0,127,0,243,128,193,128,199,128,15, - 0,28,0,24,0,24,0,24,0,0,0,24,0,60,0,60, - 0,24,0,9,16,32,16,3,254,62,0,65,0,156,128,162, - 128,66,128,4,128,9,0,18,0,20,0,20,0,28,0,0, - 0,28,0,34,0,34,0,28,0,7,15,15,16,4,255,56, - 108,198,130,198,68,108,40,40,56,0,56,68,68,56,13,13, - 26,16,1,0,2,0,7,0,15,128,7,0,34,32,112,112, - 248,248,112,112,34,32,7,0,15,128,7,0,2,0,4,14, - 14,16,6,0,96,240,240,240,240,240,240,96,96,96,96,0, - 96,96,2,15,15,16,7,255,192,192,192,192,192,192,192,192, - 192,192,192,192,192,192,192,4,15,15,16,6,255,240,240,240, - 240,240,240,240,240,240,240,240,240,240,240,240,8,15,15,16, - 4,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - 255,7,10,10,16,4,4,28,112,192,248,252,254,254,254,124, - 56,7,10,10,16,4,4,56,124,254,254,254,126,62,6,28, - 112,15,10,20,16,0,4,28,28,112,112,192,192,248,248,252, - 252,254,254,254,254,254,254,124,124,56,56,15,10,20,16,0, - 4,56,56,124,124,254,254,254,254,254,254,126,126,62,62,6, - 6,28,28,112,112,7,10,10,16,3,0,56,124,254,254,254, - 126,62,6,28,112,15,10,20,16,0,0,56,56,124,124,254, - 254,254,254,254,254,126,126,62,62,6,6,28,28,112,112,14, - 14,28,16,1,255,0,32,0,32,31,252,127,240,252,32,252, - 32,126,32,31,224,0,32,96,96,240,64,240,192,99,128,62, - 0,9,15,30,16,3,255,28,0,127,0,255,128,255,128,255, - 128,127,0,28,0,8,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,9,13,26,16,3,0,119,0,255,128,255, - 128,255,128,127,0,28,0,8,0,0,0,28,0,62,0,62, - 0,62,0,28,0,15,13,26,16,0,255,60,120,126,252,255, - 254,255,254,255,254,127,252,127,252,63,248,31,240,15,224,7, - 192,3,128,1,0,13,15,30,16,1,255,56,0,126,0,255, - 0,255,128,255,192,255,224,127,240,63,248,127,240,255,224,255, - 192,255,128,255,0,126,0,56,0,15,14,28,16,0,255,3, - 0,12,134,56,142,103,248,1,0,57,56,126,252,255,254,255, - 254,127,252,63,248,31,226,7,238,0,248,14,15,30,16,1, - 254,97,152,99,200,55,236,23,228,23,252,19,252,115,252,157, - 248,147,248,83,248,103,240,39,240,55,224,19,192,1,128,4, - 12,12,8,3,255,16,32,96,192,192,192,192,192,192,96,32, - 16,4,12,12,8,2,255,128,64,96,48,48,48,48,48,48, - 96,64,128,5,12,12,8,2,255,24,48,112,224,224,224,224, - 224,224,112,48,24,5,12,12,8,2,255,192,96,112,56,56, - 56,56,56,56,112,96,192,5,12,12,8,2,255,24,48,48, - 96,96,192,192,96,96,48,48,24,5,12,12,8,2,255,192, - 96,96,48,48,24,24,48,48,96,96,192,6,12,12,8,2, - 255,28,56,56,112,112,224,224,112,112,56,56,28,6,12,12, - 8,1,255,224,112,112,56,56,28,28,56,56,112,112,224,7, - 12,12,8,1,255,30,60,60,120,120,240,240,120,120,60,60, - 30,7,12,12,8,0,255,240,120,120,60,60,30,30,60,60, - 120,120,240,3,12,12,8,3,255,32,64,128,128,128,128,128, - 128,128,128,64,32,3,12,12,8,2,255,128,64,32,32,32, - 32,32,32,32,32,64,128,6,12,12,8,1,255,60,112,96, - 96,48,48,224,48,48,96,112,60,6,12,12,8,1,255,240, - 56,24,24,48,48,28,48,48,24,56,240,15,15,30,16,0, - 255,7,192,31,240,63,248,126,252,124,252,250,254,254,254,254, - 254,254,254,254,254,126,252,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,124,124,123,188,251, - 190,255,190,255,126,254,254,253,254,123,252,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,124, - 124,123,188,251,190,255,190,254,126,255,190,251,190,123,188,124, - 124,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,124,126,124,253,126,251,126,247,126,240,62,255, - 126,127,124,127,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,123,252,251,254,251,254,248, - 126,255,190,255,190,123,188,124,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,126,124,125,252,251, - 254,251,254,248,126,251,190,251,190,123,188,124,124,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,127,188,255,190,255,126,255,126,255,126,254,254,126,252,126, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,124,124,123,188,251,190,251,190,252,126,251,190,251, - 190,123,188,124,124,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,124,124,123,188,251,190,251,190,252, - 62,255,190,255,190,127,124,124,252,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,127,252,123,156,243, - 110,235,110,251,110,251,110,251,110,96,156,127,252,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,24,48,32,8,64, - 132,65,132,131,130,129,130,129,130,129,130,129,130,65,132,65, - 132,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,98,128,98,129,194,135,2,140, - 2,79,228,79,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,71,196,79,228,140,98,128,98,129, - 194,128,98,140,98,79,228,71,196,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,64,228,65,228,131, - 98,134,98,140,98,159,242,159,242,64,100,64,100,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,79, - 228,79,228,140,2,143,194,143,226,128,98,140,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,71,196,79,228,140,2,143,194,143,226,140,98,140, - 98,79,228,71,196,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,24,48,32,8,79,228,79,228,128,98,128,98,128, - 194,131,130,134,2,70,4,70,4,32,8,24,48,7,192,15, - 15,30,16,0,255,7,192,24,48,32,8,71,196,79,228,140, - 98,140,98,135,194,140,98,140,98,79,228,71,196,32,8,24, - 48,7,192,15,15,30,16,0,255,7,192,24,48,32,8,71, - 196,79,228,140,98,140,98,143,226,135,226,128,98,79,228,71, - 196,32,8,24,48,7,192,15,15,30,16,0,255,7,192,24, - 48,32,8,68,228,77,244,157,178,141,178,141,178,141,178,141, - 178,77,244,76,228,32,8,24,48,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,127,124,126,124,252,126,254,126,254, - 126,254,126,254,126,126,124,126,124,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 158,255,158,254,62,248,254,243,254,112,28,112,28,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,120, - 60,112,28,243,158,255,158,254,62,255,158,243,158,112,28,120, - 60,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,127,28,126,28,252,158,249,158,243,158,224,14,224, - 14,127,156,127,156,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,112,28,112,28,243,254,240,62,240, - 30,255,158,243,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,120,60,112,28,243, - 254,240,62,240,30,243,158,243,158,112,28,120,60,63,248,31, - 240,7,192,15,15,30,16,0,255,7,192,31,240,63,248,112, - 28,112,28,255,158,255,158,255,62,252,126,249,254,121,252,121, - 252,63,248,31,240,7,192,15,15,30,16,0,255,7,192,31, - 240,63,248,120,60,112,28,243,158,243,158,248,62,243,158,243, - 158,112,28,120,60,63,248,31,240,7,192,15,15,30,16,0, - 255,7,192,31,240,63,248,120,60,112,28,243,158,243,158,240, - 30,248,30,255,158,112,28,120,60,63,248,31,240,7,192,15, - 15,30,16,0,255,7,192,31,240,63,248,123,28,114,12,226, - 78,242,78,242,78,242,78,242,78,114,12,115,28,63,248,31, - 240,7,192,15,13,26,16,0,0,31,128,15,192,7,224,3, - 240,255,248,255,252,255,254,255,252,255,248,3,240,7,224,15, - 192,31,128,11,11,22,16,2,1,14,0,14,0,14,0,14, - 0,255,224,255,224,255,224,14,0,14,0,14,0,14,0,13, - 3,6,16,1,5,255,248,255,248,255,248,13,11,22,16,1, - 1,7,0,7,0,7,0,0,0,255,248,255,248,255,248,0, - 0,7,0,7,0,7,0,11,11,22,16,2,1,32,0,112, - 0,248,0,120,0,60,128,12,128,3,128,3,192,15,192,1, - 192,0,32,15,9,18,16,0,2,1,0,1,128,224,192,252, - 240,255,254,252,240,224,192,1,128,1,0,11,11,22,16,2, - 0,0,32,1,192,15,192,3,192,3,128,12,128,60,128,120, - 0,248,0,112,0,32,0,15,9,18,16,0,2,2,0,1, - 0,1,192,0,240,255,254,0,240,1,192,1,0,2,0,15, - 13,26,16,0,0,0,192,1,224,1,240,0,248,127,252,255, - 254,255,254,255,254,127,252,0,248,1,240,1,224,0,192,15, - 11,22,16,0,1,0,16,0,16,0,24,0,24,255,252,255, - 254,255,252,0,24,0,24,0,16,0,16,15,13,26,16,0, - 0,0,16,0,16,0,24,0,24,255,252,255,252,255,254,255, - 252,255,252,0,24,0,24,0,16,0,16,15,9,18,16,0, - 2,0,32,0,48,0,56,170,252,170,254,170,252,0,56,0, - 48,0,32,15,9,18,16,0,2,0,32,0,48,170,248,170, - 252,170,254,170,252,170,248,0,48,0,32,15,9,18,16,0, - 2,0,32,0,48,0,56,255,252,255,254,255,252,0,56,0, - 48,0,32,14,15,30,16,1,255,128,0,224,0,88,0,70, - 0,33,128,32,96,16,24,15,252,31,248,63,224,63,128,126, - 0,120,0,224,0,128,0,14,15,30,16,1,255,128,0,224, - 0,120,0,126,0,63,128,63,224,31,248,15,252,16,24,32, - 96,33,128,70,0,88,0,224,0,128,0,14,15,30,16,1, - 255,128,0,224,0,120,0,126,0,63,128,63,224,31,248,15, - 252,31,248,63,224,63,128,126,0,120,0,224,0,128,0,15, - 8,16,16,0,3,128,0,128,16,192,24,127,252,127,254,63, - 252,0,24,0,16,15,8,16,16,0,2,0,16,0,24,63, - 252,127,254,127,252,192,24,128,16,128,0,7,13,13,16,5, - 0,16,16,24,248,252,252,254,252,252,248,24,16,16,15,9, - 18,16,0,2,0,64,0,64,255,224,255,240,255,254,255,240, - 255,224,0,64,0,64,14,9,18,16,1,2,0,192,0,224, - 255,176,128,24,128,12,128,24,255,176,0,224,0,192,14,9, - 18,16,1,2,0,192,0,224,255,208,192,8,192,4,192,8, - 255,208,0,224,0,192,15,13,26,16,0,255,0,8,0,24, - 0,36,0,68,63,130,64,2,128,6,255,30,254,124,5,240, - 15,192,15,0,12,0,15,13,26,16,0,0,12,0,15,0, - 15,192,5,240,254,124,255,30,128,6,64,2,63,130,0,68, - 0,36,0,24,0,8,15,12,24,16,0,0,0,128,0,192, - 255,160,128,16,128,8,128,4,128,14,128,28,255,184,127,240, - 0,224,0,64,15,12,24,16,0,1,0,64,0,224,127,240, - 255,184,128,28,128,14,128,4,128,8,128,16,255,160,0,192, - 0,128,16,12,24,16,0,0,0,64,0,96,0,80,255,200, - 64,4,64,2,64,7,255,206,127,220,0,120,0,112,0,32, - 7,6,6,8,1,3,198,56,68,68,68,56,16,12,24,16, - 0,1,0,32,0,112,0,120,127,220,255,206,64,7,64,2, - 64,4,255,200,0,80,0,96,0,64,14,15,30,16,1,255, - 15,128,63,224,126,240,254,120,254,56,0,28,0,12,0,4, - 0,12,0,28,254,56,254,120,126,240,63,224,15,128,15,7, - 14,16,0,3,254,0,73,8,36,140,31,254,36,140,73,8, - 254,0,11,11,22,16,2,1,16,0,24,0,28,0,252,0, - 124,0,60,32,2,32,1,96,0,224,1,224,7,224,14,5, - 10,16,1,4,248,16,124,24,63,252,124,24,248,16,11,11, - 22,16,2,0,7,224,1,224,0,224,1,96,2,32,60,32, - 124,0,252,0,28,0,24,0,16,0,11,11,22,16,2,1, - 8,0,12,0,14,0,14,0,254,32,126,32,63,96,3,224, - 1,224,3,224,15,224,15,9,18,16,0,2,0,32,252,16, - 126,24,63,252,31,254,63,252,126,24,252,16,0,32,11,11, - 22,16,2,0,15,224,3,224,1,224,3,224,63,96,126,32, - 254,32,14,0,14,0,12,0,8,0,15,11,22,16,0,1, - 0,96,0,240,0,240,120,56,255,12,255,254,255,12,120,56, - 0,240,0,240,0,96,15,9,18,16,0,2,0,64,96,224, - 120,240,252,120,255,254,252,120,120,240,96,224,0,64,15,7, - 14,16,0,3,248,16,124,24,62,28,31,254,62,28,124,24, - 248,16,15,9,18,16,0,2,248,96,252,112,126,120,127,252, - 63,254,127,252,126,120,252,112,248,96,15,9,18,16,0,2, - 2,32,1,16,0,136,255,196,0,2,255,196,0,136,1,16, - 2,32,16,6,12,16,0,3,227,199,28,56,34,68,34,68, - 34,68,28,56,6,6,6,8,1,0,128,136,144,160,192,252, - 11,12,24,16,2,0,4,0,10,0,10,0,17,0,17,0, - 36,128,42,128,74,64,81,64,159,32,128,32,255,224,5,6, - 6,8,1,0,32,32,32,32,32,248,10,8,16,16,3,1, - 63,192,64,0,129,128,130,64,130,64,129,128,64,0,63,192, - 10,8,16,16,3,1,255,0,0,128,96,64,144,64,144,64, - 96,64,0,128,255,0,5,10,10,8,2,0,112,136,136,16, - 16,32,32,64,64,56,5,10,10,8,2,0,112,136,136,64, - 64,32,32,16,16,224,7,8,8,8,0,0,130,130,84,68, - 40,40,16,16,14,8,16,16,1,1,129,252,130,0,68,0, - 68,0,36,0,36,0,18,0,17,252,14,8,16,16,1,1, - 254,4,1,4,0,136,0,136,0,144,0,144,1,32,254,32, - 3,10,10,8,2,0,64,64,64,64,224,64,64,64,64,64, - 8,8,8,16,4,1,1,2,4,8,16,32,64,128,12,14, - 28,16,2,254,255,240,128,0,64,0,64,0,32,0,32,0, - 32,0,32,0,32,0,32,0,64,0,64,0,128,0,128,0, - 8,8,8,16,4,1,128,64,32,16,8,4,2,1,13,13, - 26,16,1,0,255,248,130,8,130,8,133,8,133,8,136,136, - 136,136,144,72,144,72,160,40,160,40,192,24,255,248,13,13, - 26,16,1,0,255,248,192,24,160,40,160,40,144,72,144,72, - 136,136,136,136,133,8,133,8,130,8,130,8,255,248,9,9, - 18,16,4,0,8,0,20,0,34,0,65,0,136,128,65,0, - 34,0,20,0,8,0,7,8,8,8,0,0,16,16,40,40, - 68,84,130,130,9,10,20,16,3,0,136,128,136,128,136,128, - 136,128,136,128,136,128,136,128,136,128,73,0,62,0,6,6, - 6,8,1,0,4,4,36,4,4,252,6,6,6,8,1,0, - 252,128,128,144,128,128,12,10,20,16,2,0,224,16,48,48, - 40,80,36,144,35,16,35,16,36,144,40,80,48,48,224,16, - 12,10,20,16,2,0,128,112,192,192,161,64,146,64,140,64, - 140,64,146,64,161,64,192,192,128,112,14,10,20,16,1,0, - 224,28,48,48,40,80,36,144,35,16,35,16,36,144,40,80, - 48,48,224,28,9,12,24,16,3,0,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 255,128,9,12,24,16,3,0,255,128,8,0,8,0,8,0, - 8,0,8,0,8,0,8,0,8,0,8,0,8,0,8,0, - 13,7,14,16,1,2,5,0,5,0,253,248,5,0,253,248, - 5,0,5,0,13,7,14,16,1,2,5,0,5,0,5,0, - 253,248,5,0,5,0,5,0,14,3,6,16,1,4,64,0, - 191,252,64,0,14,3,6,16,1,4,128,0,255,252,128,0, - 14,3,6,16,1,4,0,4,255,252,0,4,3,11,11,16, - 7,255,64,160,64,64,64,64,64,64,64,64,224,7,11,11, - 8,0,0,16,40,40,68,68,254,68,68,40,40,16,13,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,8,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,0,128,1,64,1,64,2,32,4,16,24,12, - 224,2,24,12,4,16,2,32,1,64,1,64,0,128,15,13, - 26,16,1,0,2,0,5,0,5,0,8,128,16,64,96,48, - 128,14,96,48,16,64,8,128,5,0,5,0,2,0,15,13, - 26,16,0,0,31,254,16,2,16,2,16,2,16,2,16,2, - 240,2,16,2,16,2,16,2,16,2,16,2,31,254,15,13, - 26,16,1,0,255,240,128,16,128,16,128,16,128,16,128,16, - 128,30,128,16,128,16,128,16,128,16,128,16,255,240,5,13, - 13,8,2,0,248,160,160,160,160,160,160,160,160,160,160,160, - 248,5,13,13,8,1,0,248,40,40,40,40,40,40,40,40, - 40,40,40,248,4,12,12,8,2,0,16,32,32,64,64,128, - 128,64,64,32,32,16,4,12,12,8,2,0,128,64,64,32, - 32,16,16,32,32,64,64,128,6,12,12,8,1,0,20,40, - 40,80,80,160,160,80,80,40,40,20,6,12,12,8,1,0, - 160,80,80,40,40,20,20,40,40,80,80,160,4,12,12,8, - 3,255,16,32,96,160,160,160,160,160,160,96,32,16,4,12, - 12,8,1,255,128,64,96,80,80,80,80,80,80,96,64,128, - 3,12,12,8,4,255,32,64,128,128,128,128,128,128,128,128, - 64,32,3,12,12,8,1,255,128,64,32,32,32,32,32,32, - 32,32,64,128,11,12,24,16,2,0,4,0,10,0,27,0, - 42,128,106,192,170,160,42,128,42,128,42,128,42,128,42,128, - 42,128,11,12,24,16,2,0,42,128,42,128,42,128,42,128, - 42,128,42,128,170,160,106,192,42,128,27,0,10,0,4,0, - 12,10,20,16,2,0,7,128,8,64,16,32,32,16,168,16, - 112,16,32,16,0,32,8,64,7,128,12,10,20,16,2,0, - 30,0,33,0,64,128,128,64,129,80,128,224,128,64,64,0, - 33,0,30,0,15,7,14,16,0,1,3,128,5,72,9,36, - 255,254,9,36,5,72,3,128,15,5,10,16,1,2,32,0, - 64,0,255,254,64,0,32,0,15,5,10,16,0,2,0,8, - 0,4,255,254,0,4,0,8,14,5,10,16,1,2,32,16, - 64,8,255,252,64,8,32,16,15,7,14,16,0,1,16,0, - 32,0,127,254,128,0,127,254,32,0,16,0,15,7,14,16, - 0,1,0,16,0,8,255,252,0,2,255,252,0,8,0,16, - 14,7,14,16,1,1,16,32,32,16,127,248,128,4,127,248, - 32,16,16,32,14,5,10,16,1,2,32,4,64,4,255,252, - 64,4,32,4,14,5,10,16,1,2,128,16,128,8,255,252, - 128,8,128,16,14,7,14,16,1,1,16,4,32,4,127,252, - 128,4,127,252,32,4,16,4,14,7,14,16,1,1,128,32, - 128,16,255,248,128,4,255,248,128,16,128,32,15,5,10,16, - 0,2,0,8,34,36,213,94,8,132,0,8}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 11, '1' Height: 5 - Calculated Max Values w=15 h=15 x= 3 y= 4 dx=16 dy= 0 ascent=13 len=30 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =11 descent= 2 - X Font ascent =11 descent= 0 - Max Font ascent =13 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_86[1858] U8G_FONT_SECTION("u8g_font_unifont_86") = { - 0,16,16,0,254,11,3,31,5,100,32,116,2,13,254,11, - 0,11,11,22,16,2,0,7,224,4,32,2,32,4,32,8, - 160,17,96,34,0,68,0,136,0,80,0,32,0,11,11,22, - 16,2,0,252,0,132,0,136,0,132,0,162,0,209,0,8, - 128,4,64,2,32,1,64,0,128,11,11,22,16,2,0,32, - 0,80,0,136,0,68,0,34,0,17,96,8,160,4,32,2, - 32,4,32,7,224,11,11,22,16,2,0,0,128,1,64,2, - 32,4,64,8,128,209,0,162,0,132,0,136,0,132,0,252, - 0,14,7,14,16,1,1,16,32,48,48,95,232,128,4,95, - 232,48,48,16,32,13,7,14,16,1,1,16,0,48,0,127, - 248,255,248,127,248,48,0,16,0,7,12,12,8,0,0,16, - 56,124,254,56,56,56,56,56,56,56,56,7,12,12,8,0, - 0,56,56,56,56,56,56,56,56,254,124,56,16,11,11,22, - 16,2,0,7,224,7,224,3,224,7,224,15,224,31,96,62, - 0,124,0,248,0,112,0,32,0,11,11,22,16,2,0,252, - 0,252,0,248,0,252,0,254,0,223,0,15,128,7,192,3, - 224,1,192,0,128,11,11,22,16,2,0,32,0,112,0,248, - 0,124,0,62,0,31,96,15,224,7,224,3,224,7,224,7, - 224,11,11,22,16,2,0,0,128,1,192,3,224,7,192,15, - 128,223,0,254,0,252,0,248,0,252,0,252,0,14,7,14, - 16,1,1,16,32,48,48,127,248,255,252,127,248,48,48,16, - 32,7,12,12,8,0,0,16,56,124,254,56,56,56,56,254, - 124,56,16,15,5,10,16,0,0,255,248,0,8,0,42,0, - 28,0,8,15,5,10,16,0,4,0,8,0,28,0,42,0, - 8,255,248,15,5,10,16,1,0,63,254,32,0,168,0,112, - 0,32,0,15,5,10,16,1,4,32,0,112,0,168,0,32, - 0,63,254,10,10,20,16,3,255,255,192,255,192,255,192,255, - 192,255,192,128,64,128,64,128,64,128,64,255,192,10,10,20, - 16,3,255,255,192,128,64,128,64,128,64,128,64,255,192,255, - 192,255,192,255,192,255,192,10,10,20,16,3,255,255,192,255, - 192,191,192,159,192,143,192,135,192,131,192,129,192,128,192,255, - 192,10,10,20,16,3,255,255,192,192,64,224,64,240,64,248, - 64,252,64,254,64,255,64,255,192,255,192,10,10,20,16,3, - 255,12,0,26,0,57,0,120,128,248,64,248,64,120,128,57, - 0,26,0,12,0,10,10,20,16,3,255,12,0,22,0,39, - 0,71,128,135,192,135,192,71,128,39,0,22,0,12,0,10, - 10,20,16,3,255,12,0,30,0,63,0,127,128,255,192,128, - 64,64,128,33,0,18,0,12,0,10,10,20,16,3,255,12, - 0,18,0,33,0,64,128,128,64,255,192,127,128,63,0,30, - 0,12,0,11,11,22,16,2,0,170,160,0,0,128,32,0, - 0,128,32,0,0,128,32,0,0,128,32,0,0,170,160,14, - 14,28,16,1,255,255,252,255,252,255,252,255,252,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,255,252,255,252,255, - 252,14,14,28,16,1,255,255,252,128,4,128,4,128,4,128, - 4,128,4,128,4,128,4,128,4,128,4,128,4,128,4,128, - 4,255,252,4,4,4,8,2,2,240,240,240,240,4,4,4, - 8,2,2,240,144,144,240,12,11,22,16,2,0,6,0,15, - 0,31,128,63,192,127,224,255,240,127,224,127,224,63,192,63, - 192,31,128,12,11,22,16,2,0,6,0,9,0,16,128,32, - 64,64,32,128,16,64,32,64,32,32,64,32,64,31,128,11, - 11,22,16,2,255,4,0,27,0,96,192,128,32,128,32,128, - 32,128,32,128,32,96,192,27,0,4,0,11,11,22,16,2, - 255,4,0,31,0,127,192,255,224,255,224,255,224,255,224,255, - 224,127,192,31,0,4,0,14,10,20,16,1,0,15,192,31, - 224,63,240,127,248,255,252,255,252,127,248,63,240,31,224,15, - 192,14,13,26,16,1,254,31,224,63,240,127,248,255,252,255, - 252,255,252,255,252,255,252,255,252,255,252,127,248,63,240,31, - 224,7,7,7,8,0,0,16,56,124,254,124,56,16,7,7, - 7,8,0,0,16,40,68,130,68,40,16,7,11,11,8,0, - 0,16,56,56,124,124,254,124,124,56,56,16,7,11,11,8, - 0,0,16,40,40,68,68,130,68,68,40,40,16,5,5,5, - 8,1,3,32,112,248,112,32,5,7,7,8,1,0,32,112, - 112,248,112,112,32,5,7,7,8,1,0,32,80,80,136,80, - 80,32,15,6,12,16,0,0,15,224,127,252,255,254,255,254, - 127,252,15,224,15,6,12,16,0,0,15,224,112,28,128,2, - 128,2,112,28,15,224,6,13,13,8,1,0,48,120,120,120, - 252,252,252,252,252,120,120,120,48,6,13,13,8,1,0,48, - 72,72,72,132,132,132,132,132,72,72,72,48,15,5,10,16, - 1,2,33,192,66,32,255,254,66,32,33,192,14,15,30,16, - 1,254,32,0,64,0,255,252,64,0,32,0,32,0,64,0, - 255,252,64,0,32,0,32,0,64,0,255,252,64,0,32,0, - 15,5,10,16,1,2,33,192,66,160,255,254,66,160,33,192, - 15,5,10,16,1,2,34,32,69,80,245,94,72,128,32,0, - 15,5,10,16,1,2,40,64,80,64,255,254,80,64,40,64, - 15,5,10,16,1,2,40,160,80,160,255,254,80,160,40,160, - 14,5,10,16,1,2,40,4,80,4,255,252,80,4,40,4, - 14,5,10,16,1,2,40,4,80,8,253,176,80,8,40,4, - 14,5,10,16,1,2,32,0,64,0,213,84,64,0,32,0, - 14,5,10,16,1,2,32,132,64,136,255,240,64,136,32,132, - 14,5,10,16,1,2,33,68,65,72,255,240,65,72,33,68, - 14,5,10,16,1,2,40,4,80,8,255,240,80,8,40,4, - 14,5,10,16,1,2,40,132,80,136,255,240,80,136,40,132, - 14,5,10,16,1,2,41,68,81,72,255,240,81,72,41,68, - 15,5,10,16,1,2,40,144,80,96,255,254,80,96,40,144, - 15,5,10,16,1,2,32,120,64,132,255,2,64,0,32,0, - 15,7,14,16,1,2,3,240,0,0,35,240,64,0,255,254, - 64,0,32,0,15,7,14,16,1,2,0,56,4,68,35,128, - 64,0,255,254,64,0,32,0,15,9,18,16,1,254,32,0, - 64,0,255,254,64,56,36,68,3,128,0,56,4,68,3,128, - 14,9,18,16,1,0,224,0,24,0,6,16,1,8,31,252, - 1,8,6,16,24,0,224,0,14,11,22,16,1,255,252,0, - 2,0,1,0,0,144,0,136,255,252,0,136,0,144,1,0, - 2,0,252,0,15,11,22,16,0,255,4,0,8,0,31,254, - 32,0,127,254,128,0,127,254,32,0,31,254,8,0,4,0, - 15,11,22,16,0,255,0,64,0,32,255,240,0,8,255,252, - 0,2,255,252,0,8,255,240,0,32,0,64,15,7,14,16, - 0,2,3,128,68,64,56,8,0,4,255,254,0,4,0,8, - 15,9,18,16,0,254,0,8,0,4,255,254,3,132,68,72, - 56,0,3,128,68,64,56,0,15,7,14,16,1,2,3,128, - 4,68,32,56,64,0,255,254,64,0,32,0,15,9,18,16, - 1,254,32,0,64,0,255,254,67,128,36,68,0,56,3,128, - 4,68,0,56,15,7,14,16,1,0,32,0,64,0,255,254, - 64,0,32,56,4,68,3,128,15,7,14,16,0,0,0,8, - 0,4,255,254,0,4,3,136,68,64,56,0,10,12,24,16, - 3,0,4,0,8,0,16,0,32,0,64,0,255,192,0,128, - 1,0,2,0,20,0,24,0,28,0,4,6,6,8,2,0, - 112,48,80,64,128,128,4,6,6,8,2,0,128,128,64,80, - 48,112,13,13,26,16,1,0,2,0,2,0,5,0,5,0, - 248,248,64,16,32,32,16,64,8,128,16,64,34,32,77,144, - 112,112,11,10,20,16,2,1,4,0,14,0,14,0,255,224, - 127,192,63,128,63,128,123,192,241,224,192,96,11,10,20,16, - 2,1,4,0,10,0,10,0,241,224,64,64,32,128,36,128, - 74,64,177,160,192,96,11,12,24,16,3,0,4,0,30,0, - 127,0,255,128,255,192,255,224,255,224,255,192,255,128,127,0, - 30,0,4,0,11,12,24,16,3,0,4,0,26,0,97,0, - 128,128,128,64,128,32,128,32,128,64,128,128,97,0,26,0, - 4,0}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 8, '1' Height: 12 - Calculated Max Values w=16 h=16 x= 3 y=10 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent = 8 descent= 0 - X Font ascent =12 descent= 0 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont_8_9[4279] U8G_FONT_SECTION("u8g_font_unifont_8_9") = { - 0,16,16,0,254,8,4,67,6,64,0,255,0,14,254,12, - 0,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,6,14,14,8,1,0,72,72,0, - 0,252,128,128,128,248,128,128,128,128,252,7,10,10,8,1, - 0,252,32,32,32,60,34,34,34,34,44,6,14,14,8,1, - 0,24,96,0,0,252,128,128,128,128,128,128,128,128,128,6, - 10,10,8,1,0,56,68,128,128,248,128,128,128,68,56,6, - 10,10,8,1,0,120,132,132,128,96,24,4,132,132,120,5, - 10,10,8,2,0,248,32,32,32,32,32,32,32,32,248,5, - 14,14,8,2,0,144,144,0,0,248,32,32,32,32,32,32, - 32,32,248,6,10,10,8,1,0,28,8,8,8,8,8,8, - 136,136,112,8,10,10,8,0,0,120,72,72,72,78,73,73, - 73,73,142,7,10,10,8,1,0,144,144,144,144,252,146,146, - 146,146,156,7,10,10,8,1,0,252,32,32,32,60,34,34, - 34,34,34,6,14,14,8,1,0,24,96,0,0,128,140,144, - 160,192,192,160,144,136,132,6,13,13,8,1,0,96,24,0, - 132,140,140,148,148,164,164,196,196,132,7,14,14,8,1,0, - 132,132,120,0,130,130,68,68,40,40,16,16,32,96,7,12, - 12,8,1,254,130,130,130,130,130,130,130,130,130,254,16,16, - 6,10,10,8,1,0,48,72,72,132,132,252,132,132,132,132, - 6,10,10,8,1,0,248,128,128,128,248,132,132,132,132,248, - 6,10,10,8,1,0,248,132,132,132,248,132,132,132,132,248, - 6,10,10,8,1,0,252,128,128,128,128,128,128,128,128,128, - 8,12,12,8,0,254,14,18,18,18,34,34,34,66,66,255, - 129,129,6,10,10,8,1,0,252,128,128,128,248,128,128,128, - 128,252,7,10,10,8,1,0,146,146,84,84,56,56,84,84, - 146,146,6,10,10,8,1,0,120,132,4,4,120,8,4,4, - 132,120,6,10,10,8,1,0,132,140,140,148,148,164,164,196, - 196,132,6,13,13,8,1,0,72,48,0,132,140,140,148,148, - 164,164,196,196,132,6,10,10,8,1,0,140,144,144,160,160, - 192,160,144,136,132,6,10,10,8,1,0,60,36,36,36,36, - 36,36,68,68,132,6,10,10,8,1,0,132,132,204,204,180, - 180,132,132,132,132,6,10,10,8,1,0,132,132,132,132,252, - 132,132,132,132,132,6,10,10,8,1,0,120,132,132,132,132, - 132,132,132,132,120,6,10,10,8,1,0,252,132,132,132,132, - 132,132,132,132,132,6,10,10,8,1,0,248,132,132,132,248, - 128,128,128,128,128,6,10,10,8,1,0,120,132,132,128,128, - 128,128,132,132,120,7,10,10,8,1,0,254,16,16,16,16, - 16,16,16,16,16,7,10,10,8,1,0,130,130,68,68,40, - 40,16,16,32,96,7,11,11,8,1,0,16,124,146,146,146, - 146,146,124,16,16,16,6,10,10,8,1,0,132,132,72,72, - 48,48,72,72,132,132,7,12,12,8,1,254,132,132,132,132, - 132,132,132,132,132,254,2,2,6,10,10,8,1,0,132,132, - 132,132,132,252,4,4,4,4,7,10,10,8,1,0,146,146, - 146,146,146,146,146,146,146,254,8,12,12,8,0,254,146,146, - 146,146,146,146,146,146,146,255,1,1,7,10,10,8,1,0, - 224,32,32,32,60,34,34,34,34,60,6,10,10,8,1,0, - 132,132,132,132,228,148,148,148,148,228,6,10,10,8,1,0, - 128,128,128,128,248,132,132,132,132,248,6,10,10,8,1,0, - 112,136,4,4,124,4,4,4,136,112,6,10,10,8,1,0, - 152,164,164,164,228,164,164,164,164,152,6,10,10,8,1,0, - 124,132,132,132,124,36,68,68,132,132,6,8,8,8,1,0, - 120,132,4,124,132,132,140,116,6,12,12,8,1,0,4,56, - 64,128,248,132,132,132,132,132,132,120,6,8,8,8,1,0, - 248,132,132,248,132,132,132,248,6,8,8,8,1,0,252,128, - 128,128,128,128,128,128,7,9,9,8,1,255,60,36,68,68, - 132,132,132,254,130,6,8,8,8,1,0,120,132,132,252,128, - 128,132,120,7,8,8,8,1,0,146,146,84,56,56,84,146, - 146,6,8,8,8,1,0,120,132,4,120,8,4,132,120,6, - 8,8,8,1,0,140,140,148,148,164,164,196,196,6,12,12, - 8,1,0,72,48,0,0,140,140,148,148,164,164,196,196,6, - 8,8,8,1,0,140,144,160,192,160,144,136,132,6,8,8, - 8,1,0,60,36,36,36,36,68,68,132,6,8,8,8,1, - 0,132,204,204,180,180,132,132,132,6,8,8,8,1,0,132, - 132,132,252,132,132,132,132,6,8,8,8,1,0,120,132,132, - 132,132,132,132,120,6,8,8,8,1,0,252,132,132,132,132, - 132,132,132,6,10,10,8,1,254,184,196,132,132,132,132,196, - 184,128,128,6,8,8,8,1,0,120,132,128,128,128,128,132, - 120,7,8,8,8,1,0,254,16,16,16,16,16,16,16,6, - 10,10,8,1,254,132,132,72,72,48,48,32,32,64,192,7, - 13,13,8,1,254,16,16,16,124,146,146,146,146,146,146,124, - 16,16,6,8,8,8,1,0,132,132,72,48,48,72,132,132, - 7,10,10,8,1,254,132,132,132,132,132,132,132,254,2,2, - 6,8,8,8,1,0,132,132,132,132,252,4,4,4,7,8, - 8,8,1,0,146,146,146,146,146,146,146,254,8,10,10,8, - 0,254,146,146,146,146,146,146,146,255,1,1,7,8,8,8, - 1,0,224,32,32,60,34,34,34,60,6,8,8,8,1,0, - 132,132,132,228,148,148,148,228,6,8,8,8,1,0,128,128, - 128,248,132,132,132,248,6,8,8,8,1,0,112,136,4,124, - 4,4,136,112,6,8,8,8,1,0,152,164,164,228,164,164, - 164,152,6,8,8,8,1,0,124,132,132,132,124,36,68,132, - 6,12,12,8,1,0,96,24,0,0,120,132,132,252,128,128, - 132,120,6,12,12,8,1,0,72,72,0,0,120,132,132,252, - 128,128,132,120,7,13,13,8,0,254,64,240,64,92,98,66, - 66,66,66,66,66,2,12,6,12,12,8,1,0,24,96,0, - 0,252,128,128,128,128,128,128,128,6,8,8,8,1,0,56, - 68,128,248,128,128,68,56,6,8,8,8,1,0,120,132,128, - 96,24,4,132,120,5,11,11,8,2,0,32,32,0,96,32, - 32,32,32,32,32,248,5,11,11,8,2,0,144,144,0,96, - 32,32,32,32,32,32,248,5,13,13,8,1,254,8,8,0, - 24,8,8,8,8,8,8,8,144,96,8,8,8,8,0,0, - 120,72,72,78,73,73,73,142,7,8,8,8,1,0,144,144, - 144,252,146,146,146,156,7,11,11,8,0,0,64,240,64,92, - 98,66,66,66,66,66,66,6,12,12,8,1,0,24,96,0, - 0,140,144,160,192,160,144,136,132,6,12,12,8,1,0,96, - 24,0,0,140,140,148,148,164,164,196,196,6,15,15,8,1, - 254,132,132,120,0,0,132,132,72,72,48,48,32,32,64,192, - 5,10,10,8,2,254,136,136,136,136,136,136,136,248,32,32, - 7,10,10,8,1,0,146,146,146,146,146,146,146,146,180,72, - 7,8,8,8,1,0,68,130,130,146,146,146,146,108,7,10, - 10,8,1,0,32,248,32,32,60,34,34,34,34,60,6,10, - 10,8,1,0,64,64,240,64,64,120,68,68,68,120,7,10, - 10,8,1,0,140,146,160,160,252,160,160,160,146,140,7,8, - 8,8,1,0,140,146,160,252,160,160,146,140,7,10,10,8, - 1,0,16,16,40,40,68,108,84,146,146,146,7,8,8,8, - 1,0,16,40,40,68,108,146,146,146,7,10,10,8,1,0, - 144,144,168,168,164,236,212,146,146,146,7,8,8,8,1,0, - 144,168,168,164,236,146,146,146,7,10,10,8,1,0,124,68, - 68,40,16,56,84,146,146,146,7,8,8,8,1,0,124,68, - 40,16,124,146,146,146,7,10,10,8,1,0,190,162,162,148, - 232,156,170,170,170,170,7,8,8,8,1,0,190,162,148,232, - 156,170,170,170,6,14,14,8,1,254,72,48,120,132,4,4, - 120,8,4,4,4,120,128,128,6,13,13,8,1,254,72,48, - 0,120,132,4,120,8,4,4,120,128,128,7,10,10,8,1, - 0,146,146,146,146,146,124,16,16,16,16,7,8,8,8,1, - 254,146,146,146,146,146,124,16,16,6,10,10,8,1,0,120, - 132,132,132,252,132,132,132,132,120,6,8,8,8,1,0,120, - 132,132,252,132,132,132,120,7,10,10,8,1,0,134,136,136, - 136,80,80,80,32,32,32,6,8,8,8,1,0,140,144,144, - 80,80,80,32,32,7,14,14,8,1,0,204,34,0,0,134, - 136,136,136,80,80,80,32,32,32,7,12,12,8,1,0,204, - 34,0,0,140,144,144,80,80,80,32,32,7,12,12,8,1, - 254,64,160,178,178,178,170,172,168,168,72,16,16,7,10,10, - 8,1,254,82,178,178,170,172,168,168,72,16,16,7,12,12, - 8,1,255,16,124,146,130,130,130,130,130,130,146,124,16,7, - 10,10,8,1,255,16,124,146,130,130,130,130,146,124,16,7, - 14,14,8,1,0,120,134,48,8,16,0,108,130,130,146,146, - 146,146,108,7,11,11,8,1,0,120,134,48,8,16,0,108, - 130,146,146,108,7,13,13,8,1,0,254,16,0,146,146,146, - 146,146,146,146,146,180,72,7,10,10,8,1,0,254,16,0, - 146,146,146,146,146,180,72,6,12,12,8,1,254,120,132,132, - 128,128,128,128,128,120,8,8,8,6,10,10,8,1,254,120, - 132,132,128,128,128,120,8,8,8,7,7,7,8,1,1,36, - 24,136,84,34,48,72,4,3,3,8,1,10,16,240,128,5, - 4,4,8,0,9,16,40,72,128,4,3,3,8,1,10,112, - 128,96,4,3,3,8,2,10,224,16,96,8,3,3,8,0, - 10,48,76,131,14,14,28,16,0,254,1,0,2,128,16,16, - 40,40,0,0,0,0,64,8,160,20,0,0,0,0,0,0, - 16,16,41,40,2,128,14,14,28,16,1,254,1,0,33,8, - 19,16,24,96,0,0,0,0,0,16,224,28,32,0,0,0, - 0,0,25,176,17,16,33,8,7,15,15,8,1,254,72,48, - 0,132,140,140,148,148,164,164,196,196,134,4,8,7,14,14, - 8,1,254,72,48,0,0,140,140,148,148,164,164,196,198,4, - 8,6,10,10,8,1,0,64,224,64,64,64,120,68,68,76, - 120,6,7,7,8,1,0,64,224,64,120,68,68,120,6,10, - 10,8,1,0,248,132,148,136,244,128,128,128,128,128,6,10, - 10,8,1,254,184,196,132,132,132,148,200,180,128,128,6,12, - 12,8,1,0,4,4,252,128,128,128,128,128,128,128,128,128, - 6,10,10,8,1,0,4,4,252,128,128,128,128,128,128,128, - 7,10,10,8,1,0,62,32,32,32,32,248,32,32,32,32, - 7,8,8,8,1,0,62,32,32,32,248,32,32,32,6,11, - 11,8,1,255,252,128,128,128,128,248,132,132,132,132,24,6, - 9,9,8,1,255,252,128,128,128,248,132,132,132,24,7,12, - 12,8,1,254,146,146,84,84,56,56,84,84,146,146,2,2, - 7,10,10,8,1,254,146,146,84,56,56,84,146,146,2,2, - 6,12,12,8,1,254,120,132,4,4,120,8,4,4,132,120, - 16,96,6,10,10,8,1,254,120,132,4,120,8,4,132,120, - 16,96,6,12,12,8,1,254,128,140,144,160,192,192,160,144, - 136,132,4,4,6,10,10,8,1,254,140,144,160,192,160,144, - 136,132,4,4,7,10,10,8,1,0,128,134,168,168,240,168, - 168,168,132,130,7,8,8,8,1,0,134,168,168,240,168,168, - 132,130,7,10,10,8,1,0,64,230,72,80,96,96,80,72, - 68,66,7,8,8,8,1,0,70,232,80,96,80,72,68,66, - 8,10,10,8,0,0,224,35,36,40,48,48,40,36,34,33, - 8,8,8,8,0,0,227,36,40,48,40,36,34,33,7,12, - 12,8,1,254,132,132,132,132,252,132,132,132,132,134,2,2, - 7,10,10,8,1,254,132,132,132,252,132,132,132,134,2,2, - 7,10,10,8,1,0,142,136,136,136,248,136,136,136,136,136, - 7,8,8,8,1,0,142,136,136,248,136,136,136,136,7,12, - 12,8,1,254,240,144,144,144,144,156,146,146,146,146,2,12, - 7,10,10,8,1,254,240,144,144,144,156,146,146,146,2,12, - 6,12,12,8,1,255,64,152,164,164,164,164,164,164,164,88, - 48,12,6,9,9,8,1,255,64,152,164,164,164,164,88,48, - 12,6,12,12,8,1,254,120,132,132,128,128,128,128,132,132, - 120,32,24,6,10,10,8,1,254,120,132,132,128,128,132,132, - 120,32,24,7,12,12,8,1,254,254,16,16,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,254,254,16,16,16,16, - 16,16,24,8,8,7,10,10,8,1,0,130,130,68,68,40, - 16,16,16,16,16,5,10,10,8,2,254,136,136,136,80,80, - 32,32,32,32,32,7,10,10,8,1,0,130,130,68,68,40, - 16,16,124,16,16,5,8,8,8,2,0,136,136,136,80,32, - 32,248,32,7,12,12,8,1,254,132,132,72,72,48,48,72, - 72,132,134,2,2,7,10,10,8,1,254,132,132,72,48,48, - 72,132,134,2,2,8,12,12,8,0,254,250,34,34,34,34, - 34,34,34,34,63,1,1,8,10,10,8,0,254,250,34,34, - 34,34,34,34,63,1,1,7,12,12,8,1,254,132,132,132, - 132,132,140,116,4,4,6,2,2,7,10,10,8,1,254,132, - 132,132,132,140,116,4,6,2,2,6,10,10,8,1,0,132, - 132,132,132,164,172,116,36,36,4,6,8,8,8,1,0,132, - 132,132,164,172,116,36,4,6,10,10,8,1,0,128,128,128, - 184,196,132,132,132,132,132,6,8,8,8,1,0,128,128,184, - 196,132,132,132,132,6,10,10,8,1,0,152,164,164,164,124, - 32,32,36,36,24,6,8,8,8,1,0,152,164,164,124,32, - 32,36,24,6,12,12,8,1,254,152,164,164,164,124,32,32, - 36,36,24,16,16,6,12,12,8,1,254,152,164,164,164,124, - 32,32,36,36,24,16,16,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,14,14,8,1,0,130,130,124, - 0,146,146,84,84,56,56,84,84,146,146,7,13,13,8,1, - 0,68,68,56,0,0,146,146,84,56,56,84,146,146,6,12, - 12,8,1,254,128,140,144,160,192,248,132,132,132,132,4,24, - 6,10,10,8,1,254,140,144,160,192,248,132,132,132,4,24, - 7,12,12,8,1,254,60,36,36,36,36,36,36,68,68,134, - 4,8,7,10,10,8,1,254,60,36,36,36,36,68,68,134, - 4,8,6,12,12,8,1,254,132,132,132,132,252,132,132,132, - 132,132,4,24,6,10,10,8,1,254,132,132,132,252,132,132, - 132,132,4,24,7,12,12,8,1,254,132,132,132,132,252,132, - 132,132,132,134,4,8,7,10,10,8,1,254,132,132,132,252, - 132,132,132,134,4,8,6,12,12,8,1,254,132,132,132,132, - 132,140,116,4,4,12,8,8,6,10,10,8,1,254,132,132, - 132,132,140,116,4,12,8,8,7,12,12,8,1,254,132,132, - 204,204,180,180,132,132,132,134,4,8,7,10,10,8,1,254, - 132,204,204,180,180,132,132,134,4,8,3,10,10,8,3,0, - 224,64,64,64,64,64,64,64,64,224,6,14,14,8,1,0, - 132,132,120,0,48,72,72,132,132,252,132,132,132,132,6,13, - 13,8,1,0,132,132,120,0,0,120,132,4,124,132,132,140, - 116,6,14,14,8,1,0,72,72,0,0,48,72,72,132,132, - 252,132,132,132,132,6,12,12,8,1,0,72,72,0,0,120, - 132,4,124,132,132,140,116,7,10,10,8,1,0,62,80,144, - 144,254,144,144,144,144,158,7,8,8,8,1,0,124,146,18, - 126,144,144,146,124,6,14,14,8,1,0,132,132,120,0,252, - 128,128,128,248,128,128,128,128,252,6,12,12,8,1,0,132, - 132,120,0,120,132,132,252,128,128,132,120,6,10,10,8,1, - 0,48,72,132,4,4,252,132,132,72,48,6,8,8,8,1, - 0,120,132,4,4,252,132,132,120,6,14,14,8,1,0,72, - 72,0,0,48,72,132,4,4,252,132,132,72,48,6,12,12, - 8,1,0,72,72,0,0,120,132,4,4,252,132,132,120,7, - 14,14,8,1,0,72,72,0,0,146,146,84,84,56,56,84, - 84,146,146,7,12,12,8,1,0,72,72,0,0,146,146,84, - 56,56,84,146,146,6,14,14,8,1,0,72,72,0,0,120, - 132,4,4,120,8,4,4,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,4,120,8,4,132,120,6,10,10,8,1, - 0,252,8,16,32,56,4,4,4,140,120,6,10,10,8,1, - 254,124,8,16,32,56,4,4,4,132,120,6,13,13,8,1, - 0,120,0,0,132,140,140,148,148,164,164,196,196,132,6,11, - 11,8,1,0,120,0,0,140,140,148,148,164,164,196,196,6, - 14,14,8,1,0,72,72,0,0,132,140,140,148,148,164,164, - 196,196,132,6,12,12,8,1,0,72,72,0,0,140,140,148, - 148,164,164,196,196,6,14,14,8,1,0,72,72,0,0,120, - 132,132,132,132,132,132,132,132,120,6,12,12,8,1,0,72, - 72,0,0,120,132,132,132,132,132,132,120,6,10,10,8,1, - 0,120,132,132,132,252,132,132,132,132,120,6,8,8,8,1, - 0,120,132,132,252,132,132,132,120,6,14,14,8,1,0,72, - 72,0,0,120,132,132,132,252,132,132,132,132,120,6,12,12, - 8,1,0,72,72,0,0,120,132,132,252,132,132,132,120,6, - 12,12,8,1,0,72,0,120,132,4,4,124,4,4,4,132, - 120,6,10,10,8,1,0,72,0,120,132,4,60,4,4,132, - 120,7,13,13,8,1,0,124,0,0,130,130,68,68,40,40, - 16,16,32,96,6,13,13,8,1,254,120,0,0,132,132,72, - 72,48,48,32,32,64,192,7,14,14,8,1,0,72,72,0, - 0,130,130,68,68,40,40,16,16,32,96,6,14,14,8,1, - 254,72,72,0,0,132,132,72,72,48,48,32,32,64,192,7, - 14,14,8,1,0,102,136,0,0,130,130,68,68,40,40,16, - 16,32,96,7,14,14,8,1,254,102,136,0,0,132,132,72, - 72,48,48,32,32,64,192,6,14,14,8,1,0,72,72,0, - 0,132,132,132,132,132,140,116,4,4,4,6,12,12,8,1, - 0,72,72,0,0,132,132,132,132,140,116,4,4,6,12,12, - 8,1,254,252,128,128,128,128,128,128,128,128,224,96,32,6, - 10,10,8,1,254,252,128,128,128,128,128,128,224,96,32,6, - 14,14,8,1,0,72,72,0,0,132,132,132,132,228,148,148, - 148,148,228,6,12,12,8,1,0,72,72,0,0,132,132,132, - 228,148,148,148,228,6,12,12,8,1,254,252,128,128,128,248, - 128,128,128,128,192,64,192,5,10,10,8,1,254,248,128,128, - 240,128,128,128,192,64,192,6,12,12,8,1,254,132,132,72, - 72,48,48,72,72,132,132,4,8,6,10,10,8,1,254,132, - 132,72,48,48,72,132,132,4,8,6,10,10,8,1,0,132, - 132,72,72,48,252,72,72,132,132,6,8,8,8,1,0,132, - 132,72,48,252,72,132,132}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=32 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifont[5551] U8G_FONT_SECTION("u8g_font_unifont") = { - 0,16,16,0,254,10,6,167,8,149,0,255,254,14,254,11, - 254,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,74,81,234,80,90,81,201,158,0,1,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,147,194,82,50,95,138,82,113, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,59,165,193, - 36,49,25,137,36,113,37,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,123,165,193,36,121,25,193,36,121,37,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,121,191,194,72,122,73,194, - 72,121,137,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,122, - 77,194,82,123,83,194,214,122,79,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,49,165,202,40,122,49,202,40,73,165,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,115,209,202,16,115, - 209,202,16,115,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,30,57,145,64,30,49,145,8,30,113,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,34,249,162,32,62,33,162,32,34, - 33,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,32,249,160, - 128,32,249,160,128,62,129,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,34,249,162,32,34,33,148,32,8,33,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,62,249,160,128,62,249,160, - 128,32,129,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,30, - 241,160,136,32,241,160,144,30,137,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,30,113,160,136,28,137,130,136,60,113,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,30,249,160,32,28, - 33,130,32,60,249,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,29,165,16,37,29,165,16,57,221,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,113,137,202,24,74,9,202,8,113, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,153,202, - 4,74,9,202,16,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,113,153,202,4,74,25,202,4,113,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,113,133,202,12,74,21,202, - 28,113,133,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,73, - 147,234,84,106,89,219,212,74,83,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,52,83,194,154,49,23,137,18,113,19,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,123,185,193,36,121, - 57,193,36,121,57,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,51,37,196,180,71,173,196,164,52,165,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,62,137,160,216,62,169,160,136,62, - 137,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,58,93,194, - 82,50,93,138,82,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,121,207,194,16,121,145,192,80,123,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,30,113,144,128,30,97,144, - 16,16,225,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,14, - 113,144,128,22,97,146,16,14,225,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,28,113,146,128,28,97,148,16,18,225,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,18,113,146,128,18, - 97,146,16,12,225,128,0,0,1,128,0,0,1,128,0,85, - 85,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,157,202, - 82,115,211,194,82,66,93,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,73,157,202,82,122,93,202,80,73,145,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,115,147,202,82,115,159,202, - 18,114,19,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,75, - 147,234,82,91,159,202,82,75,147,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,116,185,166,164,37,165,164,164,116,185,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,75,209,234,16,91, - 209,202,16,75,223,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,205,194,18,49,159,136,82,115,147,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,121,205,194,18,121,159,192,82,123, - 147,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,75,157,201, - 32,121,25,201,4,73,57,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,37,221,164,132,60,133,164,132,36,153,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,69,205,196,144,68,137,168, - 132,16,153,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,114, - 29,202,18,114,19,194,18,67,221,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,114,19,202,18,114,19,194,18,67,205,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,14,33,137,32,14, - 33,138,32,9,33,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,57,221,194,2,49,141,136,80,115,159,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,57,221,194,2,49,141,136,66,115, - 157,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,113,207,202, - 16,74,13,202,2,113,221,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,114,69,202,76,114,69,194,68,65,143,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,114,93,202,66,114,77,194, - 80,65,159,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,59, - 157,193,32,49,25,137,4,113,57,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,57,211,194,18,66,31,194,18,57,211,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,34,137,182,136,42, - 169,162,216,34,137,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,59,141,194,82,51,159,138,18,114,19,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,123,141,194,82,123,159,194,18,122, - 19,128,0,0,1,128,0,0,1,128,0,85,85,16,16,32, - 16,0,254,170,170,0,1,128,0,0,1,128,0,57,143,194, - 80,50,77,138,66,113,157,128,0,0,1,128,0,0,1,128, - 0,85,85,16,16,32,16,0,254,170,170,0,1,128,0,0, - 1,128,0,51,155,196,34,37,163,148,162,99,155,128,0,0, - 1,128,0,0,1,128,0,85,85,16,16,32,16,0,254,170, - 170,0,1,128,0,0,1,128,0,57,221,194,8,50,9,138, - 8,113,221,128,0,0,1,128,0,0,1,128,0,85,85,16, - 16,32,16,0,254,170,170,0,1,128,0,0,1,128,0,57, - 221,194,8,65,137,192,72,59,157,128,0,0,1,128,0,0, - 1,128,0,85,85,16,16,32,16,0,254,170,170,0,1,128, - 0,0,1,128,0,14,249,144,32,12,33,130,32,28,33,128, - 0,0,1,128,0,0,1,128,0,85,85,16,16,32,16,0, - 254,170,170,0,1,128,0,0,1,128,0,49,207,202,16,73, - 145,200,80,51,143,128,0,0,1,128,0,0,1,128,0,85, - 85,16,16,32,16,0,254,170,170,0,1,128,0,0,1,128, - 0,28,137,146,216,28,169,144,136,16,137,128,0,0,1,128, - 0,0,1,128,0,85,85,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,51,143,202,80,123,145,202,16,74, - 15,128,0,0,1,128,0,0,1,128,0,85,85,0,0,0, - 8,0,14,1,10,10,8,4,0,128,128,0,128,128,128,128, - 128,128,128,7,10,10,8,1,0,16,16,124,146,144,144,146, - 124,16,16,7,10,10,8,1,0,28,32,32,32,248,32,32, - 32,124,194,6,8,8,8,1,1,132,72,120,72,72,120,72, - 132,7,10,10,8,1,0,130,68,40,16,254,16,254,16,16, - 16,1,10,10,8,4,0,128,128,128,128,0,0,128,128,128, - 128,6,10,10,8,1,0,120,132,128,120,132,132,120,4,132, - 120,4,2,2,8,2,12,144,144,8,10,10,8,0,0,60, - 66,153,165,161,161,165,153,66,60,5,7,7,8,2,5,112, - 8,120,136,120,0,248,6,9,9,8,1,0,36,36,72,72, - 144,72,72,36,36,6,4,4,8,1,0,252,4,4,4,16, - 16,32,16,0,254,170,170,0,1,128,0,58,99,194,84,51, - 201,138,72,114,73,128,0,0,1,128,0,3,193,128,0,0, - 1,128,0,85,85,8,10,10,8,0,0,60,66,185,165,165, - 185,169,165,66,60,6,1,1,8,1,11,252,3,4,4,8, - 2,10,64,160,160,64,7,9,9,8,1,1,16,16,16,254, - 16,16,16,0,254,5,7,7,8,2,5,112,136,8,112,128, - 128,248,5,7,7,8,2,5,112,136,8,112,8,136,112,3, - 3,3,8,3,10,32,64,128,8,10,10,8,0,254,66,66, - 66,66,66,66,102,89,64,128,6,12,12,8,1,255,124,244, - 244,244,244,116,20,20,20,20,20,28,2,2,2,8,3,4, - 192,192,3,2,2,8,2,254,32,192,3,7,7,8,2,5, - 32,96,160,32,32,32,32,5,7,7,8,2,5,112,136,136, - 136,112,0,248,6,9,9,8,1,0,144,144,72,72,36,72, - 72,144,144,6,10,10,8,1,0,68,196,72,80,80,36,44, - 84,156,132,6,10,10,8,1,0,68,196,72,80,80,40,52, - 68,136,156,6,10,10,8,1,0,196,36,72,48,208,36,44, - 84,156,132,6,10,10,8,1,0,16,16,0,16,16,96,132, - 132,132,120,6,14,14,8,1,0,96,24,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,24,96,0, - 0,48,72,72,132,132,252,132,132,132,132,6,14,14,8,1, - 0,48,72,0,0,48,72,72,132,132,252,132,132,132,132,6, - 14,14,8,1,0,100,152,0,0,48,72,72,132,132,252,132, - 132,132,132,6,14,14,8,1,0,72,72,0,0,48,72,72, - 132,132,252,132,132,132,132,6,14,14,8,1,0,48,72,48, - 0,48,72,72,132,132,252,132,132,132,132,7,10,10,8,1, - 0,62,80,144,144,254,144,144,144,144,158,6,12,12,8,1, - 254,120,132,132,128,128,128,128,132,132,120,16,96,6,14,14, - 8,1,0,96,24,0,0,252,128,128,128,248,128,128,128,128, - 252,6,14,14,8,1,0,24,96,0,0,252,128,128,128,248, - 128,128,128,128,252,6,14,14,8,1,0,48,72,0,0,252, - 128,128,128,248,128,128,128,128,252,6,14,14,8,1,0,72, - 72,0,0,252,128,128,128,248,128,128,128,128,252,5,14,14, - 8,2,0,96,24,0,0,248,32,32,32,32,32,32,32,32, - 248,5,14,14,8,2,0,48,192,0,0,248,32,32,32,32, - 32,32,32,32,248,5,14,14,8,2,0,96,144,0,0,248, - 32,32,32,32,32,32,32,32,248,5,14,14,8,2,0,144, - 144,0,0,248,32,32,32,32,32,32,32,32,248,7,10,10, - 8,0,0,120,68,66,66,242,66,66,66,68,120,6,14,14, - 8,1,0,100,152,0,0,132,196,196,164,164,148,148,140,140, - 132,6,14,14,8,1,0,96,24,0,0,120,132,132,132,132, - 132,132,132,132,120,6,14,14,8,1,0,24,96,0,0,120, - 132,132,132,132,132,132,132,132,120,6,14,14,8,1,0,48, - 72,0,0,120,132,132,132,132,132,132,132,132,120,6,14,14, - 8,1,0,100,152,0,0,120,132,132,132,132,132,132,132,132, - 120,6,14,14,8,1,0,72,72,0,0,120,132,132,132,132, - 132,132,132,132,120,6,5,5,8,1,2,132,72,48,72,132, - 6,12,12,8,1,255,4,116,136,140,148,148,164,164,196,68, - 184,128,6,14,14,8,1,0,96,24,0,0,132,132,132,132, - 132,132,132,132,132,120,6,14,14,8,1,0,24,96,0,0, - 132,132,132,132,132,132,132,132,132,120,6,14,14,8,1,0, - 48,72,0,0,132,132,132,132,132,132,132,132,132,120,6,14, - 14,8,1,0,72,72,0,0,132,132,132,132,132,132,132,132, - 132,120,7,14,14,8,1,0,24,96,0,0,130,130,68,68, - 40,16,16,16,16,16,6,11,11,8,1,0,128,128,240,136, - 132,132,136,240,128,128,128,6,10,10,8,1,0,112,136,136, - 144,176,136,132,132,164,152,6,12,12,8,1,0,96,24,0, - 0,120,132,4,124,132,132,140,116,6,12,12,8,1,0,24, - 96,0,0,120,132,4,124,132,132,140,116,6,12,12,8,1, - 0,48,72,0,0,120,132,4,124,132,132,140,116,6,12,12, - 8,1,0,100,152,0,0,120,132,4,124,132,132,140,116,6, - 12,12,8,1,0,72,72,0,0,120,132,4,124,132,132,140, - 116,6,13,13,8,1,0,48,72,48,0,0,120,132,4,124, - 132,132,140,116,7,8,8,8,1,0,124,146,18,126,144,144, - 146,124,6,10,10,8,1,254,120,132,128,128,128,128,132,120, - 16,96,6,12,12,8,1,0,96,24,0,0,120,132,132,252, - 128,128,132,120,6,12,12,8,1,0,24,96,0,0,120,132, - 132,252,128,128,132,120,6,12,12,8,1,0,48,72,0,0, - 120,132,132,252,128,128,132,120,6,12,12,8,1,0,72,72, - 0,0,120,132,132,252,128,128,132,120,5,12,12,8,2,0, - 192,48,0,0,96,32,32,32,32,32,32,248,5,12,12,8, - 2,0,48,192,0,0,96,32,32,32,32,32,32,248,5,12, - 12,8,2,0,96,144,0,0,96,32,32,32,32,32,32,248, - 5,12,12,8,2,0,144,144,0,0,96,32,32,32,32,32, - 32,248,6,12,12,8,1,0,100,24,40,68,4,124,132,132, - 132,132,132,120,6,12,12,8,1,0,100,152,0,0,184,196, - 132,132,132,132,132,132,6,12,12,8,1,0,96,24,0,0, - 120,132,132,132,132,132,132,120,6,12,12,8,1,0,24,96, - 0,0,120,132,132,132,132,132,132,120,6,12,12,8,1,0, - 48,72,0,0,120,132,132,132,132,132,132,120,6,12,12,8, - 1,0,100,152,0,0,120,132,132,132,132,132,132,120,6,12, - 12,8,1,0,72,72,0,0,120,132,132,132,132,132,132,120, - 6,7,7,8,1,1,48,0,0,252,0,0,48,6,10,10, - 8,1,255,4,120,140,148,148,164,164,196,120,128,6,12,12, - 8,1,0,96,24,0,0,132,132,132,132,132,132,140,116,6, - 12,12,8,1,0,24,96,0,0,132,132,132,132,132,132,140, - 116,6,12,12,8,1,0,48,72,0,0,132,132,132,132,132, - 132,140,116,6,12,12,8,1,0,72,72,0,0,132,132,132, - 132,132,132,140,116,6,14,14,8,1,254,24,96,0,0,132, - 132,132,132,132,76,52,4,4,120,5,12,12,8,2,254,128, - 128,240,136,136,136,144,160,192,128,128,128,6,14,14,8,1, - 254,72,72,0,0,132,132,132,132,132,76,52,4,4,120}; -/* - Fontname: -gnu-Unifont-Medium-R-Normal-Sans-16-160-75-75-c-80-iso10646-1 - Copyright: Copyright (C) 2014 Roman Czyborra, Paul Hardy, Qianqian Fang, Andrew Miller, et al. Licensed under the GNU General Public License; either version 2, or (at your option) a later version, with the GNU Font Embedding Exception. - Capital A Height: 10, '1' Height: 10 - Calculated Max Values w=16 h=16 x= 4 y=14 dx=16 dy= 0 ascent=14 len=14 - Font Bounding box w=16 h=16 x= 0 y=-2 - Calculated Min Values x= 0 y=-2 dx= 0 dy= 0 - Pure Font ascent =10 descent=-2 - X Font ascent =11 descent=-2 - Max Font ascent =14 descent=-2 -*/ -#include "u8g.h" -const u8g_fntpgm_uint8_t u8g_font_unifontr[1485] U8G_FONT_SECTION("u8g_font_unifontr") = { - 0,16,16,0,254,10,1,231,3,213,32,127,254,14,254,11, - 254,0,0,0,8,0,14,1,10,10,8,4,0,128,128,128, - 128,128,128,128,0,128,128,5,4,4,8,2,8,136,136,136, - 136,6,10,10,8,1,0,36,36,36,252,72,72,252,144,144, - 144,7,10,10,8,1,0,16,124,146,144,112,28,18,146,124, - 16,7,10,10,8,1,0,98,148,148,104,16,16,44,82,82, - 140,7,10,10,8,1,0,56,68,68,40,48,82,138,132,140, - 114,1,4,4,8,4,8,128,128,128,128,3,12,12,8,3, - 255,32,64,64,128,128,128,128,128,128,64,64,32,3,12,12, - 8,2,255,128,64,64,32,32,32,32,32,32,64,64,128,7, - 7,7,8,1,1,16,146,84,56,84,146,16,7,7,7,8, - 1,1,16,16,16,254,16,16,16,2,4,4,8,3,254,192, - 64,64,128,4,1,1,8,2,4,240,2,2,2,8,3,0, - 192,192,6,10,10,8,1,0,4,4,8,16,16,32,32,64, - 128,128,6,10,10,8,1,0,48,72,132,132,132,132,132,132, - 72,48,5,10,10,8,2,0,32,96,160,32,32,32,32,32, - 32,248,6,10,10,8,1,0,120,132,132,4,24,32,64,128, - 128,252,6,10,10,8,1,0,120,132,132,4,56,4,4,132, - 132,120,6,10,10,8,1,0,8,24,40,72,136,136,252,8, - 8,8,6,10,10,8,1,0,252,128,128,128,248,4,4,4, - 132,120,6,10,10,8,1,0,56,64,128,128,248,132,132,132, - 132,120,6,10,10,8,1,0,252,4,4,8,8,8,16,16, - 16,16,6,10,10,8,1,0,120,132,132,132,120,132,132,132, - 132,120,6,10,10,8,1,0,120,132,132,132,124,4,4,4, - 8,112,2,7,7,8,3,1,192,192,0,0,0,192,192,2, - 9,9,8,3,255,192,192,0,0,0,192,64,64,128,5,9, - 9,8,2,0,8,16,32,64,128,64,32,16,8,6,5,5, - 8,1,2,252,0,0,0,252,5,9,9,8,1,0,128,64, - 32,16,8,16,32,64,128,6,10,10,8,1,0,120,132,132, - 4,8,16,16,0,16,16,6,10,10,8,1,0,56,68,148, - 172,164,164,164,156,64,60,6,10,10,8,1,0,48,72,72, - 132,132,252,132,132,132,132,6,10,10,8,1,0,248,132,132, - 132,248,132,132,132,132,248,6,10,10,8,1,0,120,132,132, - 128,128,128,128,132,132,120,6,10,10,8,1,0,240,136,132, - 132,132,132,132,132,136,240,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,252,6,10,10,8,1,0,252,128,128, - 128,248,128,128,128,128,128,6,10,10,8,1,0,120,132,132, - 128,128,156,132,132,140,116,6,10,10,8,1,0,132,132,132, - 132,252,132,132,132,132,132,5,10,10,8,2,0,248,32,32, - 32,32,32,32,32,32,248,7,10,10,8,1,0,62,8,8, - 8,8,8,8,136,136,112,6,10,10,8,1,0,132,136,144, - 160,192,192,160,144,136,132,6,10,10,8,1,0,128,128,128, - 128,128,128,128,128,128,252,6,10,10,8,1,0,132,132,204, - 204,180,180,132,132,132,132,6,10,10,8,1,0,132,196,196, - 164,164,148,148,140,140,132,6,10,10,8,1,0,120,132,132, - 132,132,132,132,132,132,120,6,10,10,8,1,0,248,132,132, - 132,248,128,128,128,128,128,7,11,11,8,1,255,120,132,132, - 132,132,132,132,180,204,120,6,6,10,10,8,1,0,248,132, - 132,132,248,144,136,136,132,132,6,10,10,8,1,0,120,132, - 132,128,96,24,4,132,132,120,7,10,10,8,1,0,254,16, - 16,16,16,16,16,16,16,16,6,10,10,8,1,0,132,132, - 132,132,132,132,132,132,132,120,7,10,10,8,1,0,130,130, - 130,68,68,68,40,40,16,16,6,10,10,8,1,0,132,132, - 132,132,180,180,204,204,132,132,6,10,10,8,1,0,132,132, - 72,72,48,48,72,72,132,132,7,10,10,8,1,0,130,130, - 68,68,40,16,16,16,16,16,6,10,10,8,1,0,252,4, - 4,8,16,32,64,128,128,252,3,12,12,8,4,255,224,128, - 128,128,128,128,128,128,128,128,128,224,6,10,10,8,1,0, - 128,128,64,32,32,16,16,8,4,4,3,12,12,8,1,255, - 224,32,32,32,32,32,32,32,32,32,32,224,6,3,3,8, - 1,9,48,72,132,7,1,1,8,1,255,254,3,3,3,8, - 2,10,128,64,32,6,8,8,8,1,0,120,132,4,124,132, - 132,140,116,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,196,184,6,8,8,8,1,0,120,132,128,128,128,128, - 132,120,6,11,11,8,1,0,4,4,4,116,140,132,132,132, - 132,140,116,6,8,8,8,1,0,120,132,132,252,128,128,132, - 120,5,11,11,8,1,0,24,32,32,32,248,32,32,32,32, - 32,32,6,11,11,8,1,254,4,116,136,136,136,112,64,120, - 132,132,120,6,11,11,8,1,0,128,128,128,184,196,132,132, - 132,132,132,132,5,11,11,8,2,0,32,32,0,96,32,32, - 32,32,32,32,248,5,13,13,8,1,254,8,8,0,24,8, - 8,8,8,8,8,8,144,96,6,11,11,8,1,0,128,128, - 128,136,144,160,192,160,144,136,132,5,11,11,8,2,0,96, - 32,32,32,32,32,32,32,32,32,248,7,8,8,8,1,0, - 236,146,146,146,146,146,146,146,6,8,8,8,1,0,184,196, - 132,132,132,132,132,132,6,8,8,8,1,0,120,132,132,132, - 132,132,132,120,6,10,10,8,1,254,184,196,132,132,132,132, - 196,184,128,128,6,10,10,8,1,254,116,140,132,132,132,132, - 140,116,4,4,6,8,8,8,1,0,184,196,132,128,128,128, - 128,128,6,8,8,8,1,0,120,132,128,96,24,4,132,120, - 5,10,10,8,1,0,32,32,32,248,32,32,32,32,32,24, - 6,8,8,8,1,0,132,132,132,132,132,132,140,116,6,8, - 8,8,1,0,132,132,132,72,72,72,48,48,7,8,8,8, - 1,0,130,146,146,146,146,146,146,108,6,8,8,8,1,0, - 132,132,72,48,48,72,132,132,6,10,10,8,1,254,132,132, - 132,132,132,76,52,4,4,120,6,8,8,8,1,0,252,4, - 8,16,32,64,128,252,3,12,12,8,3,255,96,128,128,64, - 64,128,128,64,64,128,128,96,1,14,14,8,4,254,128,128, - 128,128,128,128,128,128,128,128,128,128,128,128,3,12,12,8, - 2,255,192,32,32,64,64,32,32,64,64,32,32,192,7,3, - 3,8,1,8,98,146,140,16,16,32,16,0,254,170,170,0, - 1,128,0,0,1,128,0,115,209,202,16,75,209,202,16,115, - 223,128,0,0,1,128,0,0,1,128,0,85,85}; diff --git a/app/u8glib/u8g_line.c b/app/u8glib/u8g_line.c deleted file mode 100644 index 71a20f8591..0000000000 --- a/app/u8glib/u8g_line.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - - u8g_line.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -void u8g_DrawLine(u8g_t *u8g, u8g_uint_t x1, u8g_uint_t y1, u8g_uint_t x2, u8g_uint_t y2) -{ - u8g_uint_t tmp; - u8g_uint_t x,y; - u8g_uint_t dx, dy; - u8g_int_t err; - u8g_int_t ystep; - - uint8_t swapxy = 0; - - /* no BBX intersection check at the moment, should be added... */ - - if ( x1 > x2 ) dx = x1-x2; else dx = x2-x1; - if ( y1 > y2 ) dy = y1-y2; else dy = y2-y1; - - if ( dy > dx ) - { - swapxy = 1; - tmp = dx; dx =dy; dy = tmp; - tmp = x1; x1 =y1; y1 = tmp; - tmp = x2; x2 =y2; y2 = tmp; - } - if ( x1 > x2 ) - { - tmp = x1; x1 =x2; x2 = tmp; - tmp = y1; y1 =y2; y2 = tmp; - } - err = dx >> 1; - if ( y2 > y1 ) ystep = 1; else ystep = -1; - y = y1; - -#ifndef U8G_16BIT - if ( x2 == 255 ) - x2--; -#else - if ( x2 == 0xffff ) - x2--; -#endif - - for( x = x1; x <= x2; x++ ) - { - if ( swapxy == 0 ) - u8g_DrawPixel(u8g, x, y); - else - u8g_DrawPixel(u8g, y, x); - err -= (uint8_t)dy; - if ( err < 0 ) - { - y += (u8g_uint_t)ystep; - err += (u8g_uint_t)dx; - } - } -} diff --git a/app/u8glib/u8g_ll_api.c b/app/u8glib/u8g_ll_api.c deleted file mode 100644 index 6310957408..0000000000 --- a/app/u8glib/u8g_ll_api.c +++ /dev/null @@ -1,581 +0,0 @@ -/* - - u8g_ll_api.c - - low level api - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 -#include "u8g.h" - -uint8_t u8g_call_dev_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - return dev->dev_fn(u8g, dev, msg, arg); -} - -/*====================================================================*/ - -uint8_t u8g_InitLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_INIT, NULL); - u8g->state_cb(U8G_STATE_MSG_BACKUP_U8G); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -void u8g_FirstPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_FIRST, NULL); - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); -} - -uint8_t u8g_NextPageLL(u8g_t *u8g, u8g_dev_t *dev) -{ - uint8_t r; - u8g->state_cb(U8G_STATE_MSG_BACKUP_ENV); - u8g->state_cb(U8G_STATE_MSG_RESTORE_U8G); - r = u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_PAGE_NEXT, NULL); - if ( r != 0 ) - { - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); - } - u8g->state_cb(U8G_STATE_MSG_RESTORE_ENV); - return r; -} - -uint8_t u8g_SetContrastLL(u8g_t *u8g, u8g_dev_t *dev, uint8_t contrast) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_CONTRAST, &contrast); -} - -void u8g_DrawPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_PIXEL, arg); -} - -void u8g_Draw8PixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_8PIXEL, arg); -} - -void u8g_Draw4TPixelLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = dir; - arg->pixel = pixel; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_SET_4TPIXEL, arg); -} - - -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION -uint8_t u8g_IsBBXIntersectionLL(u8g_t *u8g, u8g_dev_t *dev, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_IS_BBX_INTERSECTION, &arg); -} -#endif - - - -u8g_uint_t u8g_GetWidthLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_WIDTH, &r); - return r; -} - -u8g_uint_t u8g_GetHeightLL(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_uint_t r; - u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_HEIGHT, &r); - return r; -} - -u8g_uint_t u8g_GetModeLL(u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_call_dev_fn(u8g, dev, U8G_DEV_MSG_GET_MODE, NULL); -} - - - -/*====================================================================*/ - -void u8g_UpdateDimension(u8g_t *u8g) -{ - u8g->width = u8g_GetWidthLL(u8g, u8g->dev); - u8g->height = u8g_GetHeightLL(u8g, u8g->dev); - u8g->mode = u8g_GetModeLL(u8g, u8g->dev); - /* 9 Dec 2012: u8g_scale.c requires update of current page */ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_GET_PAGE_BOX, &(u8g->current_page)); -} - -static void u8g_init_data(u8g_t *u8g) -{ - u8g->font = NULL; - u8g->cursor_font = NULL; - u8g->cursor_bg_color = 0; - u8g->cursor_fg_color = 1; - u8g->cursor_encoding = 34; - u8g->cursor_fn = (u8g_draw_cursor_fn)0; - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_NONE; - } -#endif - - u8g_SetColorIndex(u8g, 1); - - u8g_SetFontPosBaseline(u8g); - - u8g->font_height_mode = U8G_FONT_HEIGHT_MODE_XTEXT; - u8g->font_ref_ascent = 0; - u8g->font_ref_descent = 0; - u8g->font_line_spacing_factor = 64; /* 64 = 1.0, 77 = 1.2 line spacing factor */ - u8g->line_spacing = 0; - - u8g->state_cb = u8g_state_dummy_cb; - -} - -uint8_t u8g_Begin(u8g_t *u8g) -{ - /* call and init low level driver and com device */ - if ( u8g_InitLL(u8g, u8g->dev) == 0 ) - return 0; - /* fetch width and height from the low level */ - u8g_UpdateDimension(u8g); - return 1; -} - -uint8_t u8g_Init(u8g_t *u8g, u8g_dev_t *dev) -{ - u8g_init_data(u8g); - u8g->dev = dev; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -/* special init for pure ARM systems */ -uint8_t u8g_InitComFn(u8g_t *u8g, u8g_dev_t *dev, u8g_com_fnptr com_fn) -{ - u8g_init_data(u8g); - -#if defined(U8G_WITH_PINLIST) - { - uint8_t i; - for( i = 0; i < U8G_PIN_LIST_LEN; i++ ) - u8g->pin_list[i] = U8G_PIN_DUMMY; - } -#endif - - u8g->dev = dev; - - /* replace the device procedure with a custom communication procedure */ - u8g->dev->com_fn = com_fn; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - - -#if defined(U8G_WITH_PINLIST) -uint8_t u8g_InitSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t sck, uint8_t mosi, uint8_t cs, uint8_t a0, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - u8g->pin_list[U8G_PI_SCK] = sck; - u8g->pin_list[U8G_PI_MOSI] = mosi; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - /* On the Arduino Environment this will lead to two calls to u8g_Begin(), the following line will be called first (by U8glib constructors) */ - /* if - in future releases - this is removed, then still call u8g_UpdateDimension() */ - /* if Arduino call u8g_UpdateDimension else u8g_Begin */ - /* issue 146 */ - return u8g_Begin(u8g); -} - -uint8_t u8g_InitHWSPI(u8g_t *u8g, u8g_dev_t *dev, uint8_t cs, uint8_t a0, uint8_t reset) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - - /* assign user pins */ - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_InitI2C(u8g_t *u8g, u8g_dev_t *dev, uint8_t options) -{ - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - u8g->pin_list[U8G_PI_I2C_OPTION] = options; - - return u8g_Begin(u8g); -} - - -uint8_t u8g_Init8BitFixedPort(u8g_t *u8g, u8g_dev_t *dev, uint8_t en, uint8_t cs, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -uint8_t u8g_Init8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t en, uint8_t cs1, uint8_t cs2, uint8_t di, uint8_t rw, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_EN] = en; - u8g->pin_list[U8G_PI_CS1] = cs1; - u8g->pin_list[U8G_PI_CS2] = cs2; - u8g->pin_list[U8G_PI_DI] = di; - u8g->pin_list[U8G_PI_RW] = rw; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} - -/* - - PIN_D0 8 - PIN_D1 9 - PIN_D2 10 - PIN_D3 11 - PIN_D4 4 - PIN_D5 5 - PIN_D6 6 - PIN_D7 7 - - PIN_CS 14 - PIN_A0 15 - PIN_RESET 16 - PIN_WR 17 - PIN_RD 18 - - u8g_InitRW8Bit(u8g, dev, d0, d1, d2, d3, d4, d5, d6, d7, cs, a0, wr, rd, reset) - u8g_InitRW8Bit(u8g, dev, 8, 9, 10, 11, 4, 5, 6, 7, 14, 15, 17, 18, 16) - -*/ - -uint8_t u8g_InitRW8Bit(u8g_t *u8g, u8g_dev_t *dev, uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3, uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7, - uint8_t cs, uint8_t a0, uint8_t wr, uint8_t rd, uint8_t reset) -{ - - /* fill data structure with some suitable values */ - u8g_init_data(u8g); - u8g->dev = dev; - - /* assign user pins */ - - u8g->pin_list[U8G_PI_D0] = d0; - u8g->pin_list[U8G_PI_D1] = d1; - u8g->pin_list[U8G_PI_D2] = d2; - u8g->pin_list[U8G_PI_D3] = d3; - u8g->pin_list[U8G_PI_D4] = d4; - u8g->pin_list[U8G_PI_D5] = d5; - u8g->pin_list[U8G_PI_D6] = d6; - u8g->pin_list[U8G_PI_D7] = d7; - - u8g->pin_list[U8G_PI_CS] = cs; - u8g->pin_list[U8G_PI_A0] = a0; - u8g->pin_list[U8G_PI_WR] = wr; - u8g->pin_list[U8G_PI_RD] = rd; - u8g->pin_list[U8G_PI_RESET] = reset; - - return u8g_Begin(u8g); -} -#endif /* defined(U8G_WITH_PINLIST) */ - -void u8g_FirstPage(u8g_t *u8g) -{ - u8g_FirstPageLL(u8g, u8g->dev); -} - -uint8_t u8g_NextPage(u8g_t *u8g) -{ - if ( u8g->cursor_fn != (u8g_draw_cursor_fn)0 ) - { - u8g->cursor_fn(u8g); - } - return u8g_NextPageLL(u8g, u8g->dev); -} - -uint8_t u8g_SetContrast(u8g_t *u8g, uint8_t contrast) -{ - return u8g_SetContrastLL(u8g, u8g->dev, contrast); -} - -void u8g_SleepOn(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_ON, NULL); -} - -void u8g_SleepOff(u8g_t *u8g) -{ - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SLEEP_OFF, NULL); -} - - -void u8g_DrawPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y) -{ - u8g_DrawPixelLL(u8g, u8g->dev, x, y); -} - -void u8g_Draw8Pixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw8PixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - -void u8g_Draw4TPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t dir, uint8_t pixel) -{ - u8g_Draw4TPixelLL(u8g, u8g->dev, x, y, dir, pixel); -} - -void u8g_Draw8ColorPixel(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, uint8_t colpixel) -{ - u8g_dev_arg_pixel_t *arg = &(u8g->arg_pixel); - arg->x = x; - arg->y = y; - arg->dir = 0; - arg->pixel = 0x80; - arg->color = colpixel; - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_8PIXEL, arg); -} - -/* u8g_IsBBXIntersection() has been moved to u8g_clip.c */ -#ifdef OBSOLETE_CODE -uint8_t u8g_IsBBXIntersection(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - /* new code */ - u8g_dev_arg_bbx_t arg; - arg.x = x; - arg.y = y; - arg.w = w; - arg.h = h; - return u8g_is_box_bbx_intersection(&(u8g->current_page), &arg); - - /* old code */ - //return u8g_IsBBXIntersectionLL(u8g, u8g->dev, x, y, w, h); -} -#endif - -/* - idx: index for the palette entry (0..255) - r: value for red (0..255) - g: value for green (0..255) - b: value for blue (0..255) -*/ -void u8g_SetColorEntry(u8g_t *u8g, uint8_t idx, uint8_t r, uint8_t g, uint8_t b) -{ - u8g_dev_arg_irgb_t irgb; - irgb.idx = idx; - irgb.r = r; - irgb.g = g; - irgb.b = b; - u8g_call_dev_fn(u8g, u8g->dev, U8G_DEV_MSG_SET_COLOR_ENTRY, &irgb); -} - -void u8g_SetColorIndex(u8g_t *u8g, uint8_t idx) -{ - u8g->arg_pixel.color = idx; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColor(u8g_t *u8g, uint16_t rgb) -{ - u8g->arg_pixel.color = rgb&255; - u8g->arg_pixel.hi_color = rgb>>8; - /*u8g->color_index = idx; */ /* must be removed */ -} - -void u8g_SetHiColorByRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - - r &= ~7; - g >>= 2; - b >>= 3; - u8g->arg_pixel.color = b; - u8g->arg_pixel.color |= (g & 7) << 5; - u8g->arg_pixel.hi_color = r; - u8g->arg_pixel.hi_color |= (g>>3) & 7; - - //u8g_SetHiColor(u8g, U8G_GET_HICOLOR_BY_RGB(r,g,b)); -} - -void u8g_SetRGB(u8g_t *u8g, uint8_t r, uint8_t g, uint8_t b) -{ - if ( u8g->mode == U8G_MODE_R3G3B2 ) - { - r &= 0x0e0; - g &= 0x0e0; - g >>= 3; - b >>= 6; - u8g->arg_pixel.color = r | g | b; - } - else if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g_SetHiColorByRGB(u8g, r,g,b); - } - else - { - u8g->arg_pixel.color = r; - u8g->arg_pixel.hi_color = g; - u8g->arg_pixel.blue = b; - } -} - - -uint8_t u8g_GetColorIndex(u8g_t *u8g) -{ - return u8g->arg_pixel.color; -} - -uint8_t u8g_GetDefaultForegroundColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 255; /* white */ - else if ( u8g_GetMode(u8g) == U8G_MODE_GRAY2BIT ) - return 3; /* max intensity */ - /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ -} - -void u8g_SetDefaultForegroundColor(u8g_t *u8g) -{ - if ( u8g->mode == U8G_MODE_HICOLOR ) - { - u8g->arg_pixel.color = 0x0ff; - u8g->arg_pixel.hi_color = 0x0ff; - } - else - { - u8g_SetColorIndex(u8g, u8g_GetDefaultForegroundColor(u8g)); - } -} - -uint8_t u8g_GetDefaultBackgroundColor(u8g_t *u8g) -{ - return 0; -} - -void u8g_SetDefaultBackgroundColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultBackgroundColor(u8g)); /* pixel on / black */ -} - -uint8_t u8g_GetDefaultMidColor(u8g_t *u8g) -{ - uint8_t mode; - mode = u8g_GetMode(u8g); - if ( mode == U8G_MODE_R3G3B2 ) - return 0x06d; /* gray: 01101101 */ - else if ( mode == U8G_MODE_GRAY2BIT ) - return 1; /* low mid intensity */ - /* if ( u8g.getMode() == U8G_MODE_BW ) */ - return 1; /* pixel on */ -} - -void u8g_SetDefaultMidColor(u8g_t *u8g) -{ - u8g_SetColorIndex(u8g, u8g_GetDefaultMidColor(u8g)); -} - - - - diff --git a/app/u8glib/u8g_page.c b/app/u8glib/u8g_page.c deleted file mode 100644 index 1a3eb21ed5..0000000000 --- a/app/u8glib/u8g_page.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - - u8g_page.c - - page helper functions, only called by the dev handler. - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -/* - setup page count structure - conditions: page_height <= total_height -*/ -void u8g_page_Init(u8g_page_t *p, u8g_uint_t page_height, u8g_uint_t total_height ) -{ - p->page_height = page_height; - p->total_height = total_height; - p->page = 0; - u8g_page_First(p); -} - -void u8g_page_First(u8g_page_t *p) -{ - p->page_y0 = 0; - p->page_y1 = p->page_height; - p->page_y1--; - p->page = 0; -} - -uint8_t u8g_page_Next(u8g_page_t * p) -{ - register u8g_uint_t y1; - p->page_y0 += p->page_height; - if ( p->page_y0 >= p->total_height ) - return 0; - p->page++; - y1 = p->page_y1; - y1 += p->page_height; - if ( y1 >= p->total_height ) - { - y1 = p->total_height; - y1--; - } - p->page_y1 = y1; - - return 1; -} - - - diff --git a/app/u8glib/u8g_pb.c b/app/u8glib/u8g_pb.c deleted file mode 100644 index a946473611..0000000000 --- a/app/u8glib/u8g_pb.c +++ /dev/null @@ -1,191 +0,0 @@ -/* - - u8g_pb.c - - common procedures for the page buffer - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* the following procedure does not work. why? Can be checked with descpic */ -/* -void u8g_pb_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t cnt = b->width; - do - { - *ptr++ = 0; - cnt--; - } while( cnt != 0 ); -} -*/ - -/* - intersection assumptions: - a1 <= a2 is always true -*/ - /* - minimized version - ---1----0 1 b1 <= a2 && b1 > b2 - -----1--0 1 b2 >= a1 && b1 > b2 - ---1-1--- 1 b1 <= a2 && b2 >= a1 - */ -/* -uint8_t u8g_pb8v1_IsYIntersection___Old(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c0, c1, c; - c0 = v0 <= b->p.page_y1; - c1 = v1 >= b->p.page_y0; - c = v0 > v1; - if ( c0 && c1 ) return 1; - if ( c0 && c ) return 1; - if ( c1 && c ) return 1; - return 0; -} -*/ - -uint8_t u8g_pb_IsYIntersection(u8g_pb_t *pb, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t c1, c2, c3, tmp; - c1 = v0 <= pb->p.page_y1; - c2 = v1 >= pb->p.page_y0; - c3 = v0 > v1; - /* - if ( c1 && c2 ) - return 1; - if ( c1 && c3 ) - return 1; - if ( c2 && c3 ) - return 1; - return 0; - */ - - tmp = c1; - c1 &= c2; - c2 &= c3; - c3 &= tmp; - c1 |= c2; - c1 |= c3; - return c1 & 1; -} - - -uint8_t u8g_pb_IsXIntersection(u8g_pb_t *b, u8g_uint_t v0, u8g_uint_t v1) -{ - uint8_t /*c0, c1, */ c2, c3; - /* - conditions: b->p.page_y0 < b->p.page_y1 - there are no restriction on v0 and v1. If v0 > v1, then warp around unsigned is assumed - */ - /* - c0 = v0 < 0; - c1 = v1 < 0; - */ - c2 = v0 > b->width; - c3 = v1 > b->width; - /*if ( c0 && c1 ) return 0;*/ - if ( c2 && c3 ) return 0; - /*if ( c1 && c2 ) return 0;*/ - return 1; -} - -uint8_t u8g_pb_IsIntersection(u8g_pb_t *pb, u8g_dev_arg_bbx_t *bbx) -{ - u8g_uint_t tmp; - - tmp = bbx->y; - tmp += bbx->h; - tmp--; - - if ( u8g_pb_IsYIntersection(pb, bbx->y, tmp) == 0 ) - return 0; - - /* maybe this one can be skiped... probability is very high to have an intersection, so it would be ok to always return 1 */ - tmp = bbx->x; - tmp += bbx->w; - tmp--; - - return u8g_pb_IsXIntersection(pb, bbx->x, tmp); -} - -void u8g_pb_GetPageBox(u8g_pb_t *pb, u8g_box_t *box) -{ - box->x0 = 0; - box->y0 = pb->p.page_y0; - box->x1 = pb->width; - box->x1--; - box->y1 = pb->p.page_y1; -} - - -uint8_t u8g_pb_Is8PixelVisible(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - u8g_uint_t v0, v1; - v0 = arg_pixel->y; - v1 = v0; - switch( arg_pixel->dir ) - { - case 0: - break; - case 1: - v1 += 8; /* this is independent from the page height */ - break; - case 2: - break; - case 3: - v0 -= 8; - break; - } - return u8g_pb_IsYIntersection(b, v0, v1); -} - - - -uint8_t u8g_pb_WriteBuffer(u8g_pb_t *b, u8g_t *u8g, u8g_dev_t *dev) -{ - return u8g_WriteSequence(u8g, dev, b->width, b->buf); -} - diff --git a/app/u8glib/u8g_pb14v1.c b/app/u8glib/u8g_pb14v1.c deleted file mode 100644 index d8667f35a9..0000000000 --- a/app/u8glib/u8g_pb14v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb14v1.c - - 14bit height monochrom (1 bit) page buffer, - byte has vertical orientation, 7 bits per byte - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - - -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb14v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb14v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb14v1_Clear(b); -} - -void u8g_pb14v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 7 ) - { - ptr += b->width; - y -= 7; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb14v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb14v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb14v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb14v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb14v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb14v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb14v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb14v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb14v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb14v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb14v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb16h1.c b/app/u8glib/u8g_pb16h1.c deleted file mode 100644 index d598633fa2..0000000000 --- a/app/u8glib/u8g_pb16h1.c +++ /dev/null @@ -1,213 +0,0 @@ -/* - - u8g_pb16h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb16h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb16h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb16h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb16h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb16h2.c b/app/u8glib/u8g_pb16h2.c deleted file mode 100644 index 2d0523cf81..0000000000 --- a/app/u8glib/u8g_pb16h2.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb16h2.c - - 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - -void u8g_pb16h2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16h2_Clear(b); -} - -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) U8G_NOINLINE; -static void u8g_pb16h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index, uint8_t is_or) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - if ( is_or == 0 ) - { - mask = 3; - mask <<= tmp; - mask = ~mask; - *ptr &= mask; - } - color_index &= 3; - color_index <<= tmp; - *ptr |= color_index; -} - - -void u8g_pb16h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t is_or) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, is_or); -} - - -void u8g_pb16h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16h2_SetPixel(b, arg_pixel, 0); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb16h2_Or4PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - arg_pixel->color = pixel & 0x0c0; - arg_pixel->color >>= 6; - u8g_pb16h2_SetPixel(b, arg_pixel, 1); - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb16h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 0); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pb16h2_Or4PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pb16h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg, 1); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_page_First(&(pb->p)); - u8g_pb16h2_Clear(pb); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16h2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb16v1.c b/app/u8glib/u8g_pb16v1.c deleted file mode 100644 index 3716411c11..0000000000 --- a/app/u8glib/u8g_pb16v1.c +++ /dev/null @@ -1,200 +0,0 @@ -/* - - u8g_pb16v1.c - - 16bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - - -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - - -void u8g_pb16v1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*2; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb16v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v1_Clear(b); -} - -void u8g_pb16v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - if ( y >= 8 ) - { - ptr += b->width; - y &= 0x07; - } - mask = 1; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb16v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb16v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb16v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb16v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb16v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb16v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb16v2.c b/app/u8glib/u8g_pb16v2.c deleted file mode 100644 index 94ef7e28ac..0000000000 --- a/app/u8glib/u8g_pb16v2.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - - u8g_pb16v2.c - - 16 bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" -#include - - -void u8g_pb16v2_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - - /* two bits per pixel, 16 bits height --> 8 pixel --> 4 pixel per byte */ - end_ptr += b->width; - end_ptr += b->width; - - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - -void u8g_pb16v2Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb16v2_Clear(b); -} - -void u8g_pb16v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - if ( y >= 4 ) - { - ptr += b->width; - } - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb16v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb16v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb16v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb16v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb16v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb16v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb16v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb16v2_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb16v2_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb32h1.c b/app/u8glib/u8g_pb32h1.c deleted file mode 100644 index d40f7ce571..0000000000 --- a/app/u8glib/u8g_pb32h1.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - - u8g_pb32h1.c - - 2x 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - - total buffer size is limited to 2*256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -void u8g_pb32h1_Clear(u8g_pb_t *b) -{ - uint8_t *ptr = (uint8_t *)b->buf; - uint8_t *end_ptr = ptr; - end_ptr += b->width*4; - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - - -void u8g_pb32h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb32h1_Clear(b); -} - - -/* limitation: total buffer must not exceed 2*256 bytes */ -void u8g_pb32h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint16_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } - -} - - -void u8g_pb32h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb32h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb32h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb32h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb32h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb32h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb32h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb32h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb32h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb32h1_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb32h1_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb8h1.c b/app/u8glib/u8g_pb8h1.c deleted file mode 100644 index 80dc99b589..0000000000 --- a/app/u8glib/u8g_pb8h1.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - - u8g_pb8h1.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - 23. Sep 2012: Bug with down procedure, see FPS 1st page --> fixed (bug located in u8g_clip.c) - -*/ - -#include "u8g.h" -#include - -#ifdef __unix__ -#include -#endif - -/* NEW_CODE disabled, because the performance increase was too slow and not worth compared */ -/* to the increase of code size */ -/* #define NEW_CODE */ - -#ifdef __unix__ -void *u8g_buf_lower_limit; -void *u8g_buf_upper_limit; -#endif - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -#ifdef NEW_CODE -struct u8g_pb_h1_struct -{ - u8g_uint_t x; - u8g_uint_t y; - uint8_t *ptr; - uint8_t mask; - uint8_t line_byte_len; - uint8_t cnt; -}; - -static uint8_t u8g_pb8h1_bitmask[8] = { 0x080, 0x040, 0x020, 0x010, 0x008, 0x004, 0x002, 0x001 }; - -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) U8G_NOINLINE; -static void u8g_pb8h1_state_right(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x++; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 0 ) - s->ptr++; -} - -static void u8g_pb8h1_state_left(struct u8g_pb_h1_struct *s) -{ - register u8g_uint_t x; - x = s->x; - x--; - s->x = x; - x &= 7; - s->mask = u8g_pb8h1_bitmask[x]; - if ( x == 7 ) - s->ptr--; -} - -static void u8g_pb8h1_state_down(struct u8g_pb_h1_struct *s) -{ - s->y++; - s->ptr += s->line_byte_len; -} - -static void u8g_pb8h1_state_up(struct u8g_pb_h1_struct *s) -{ - s->y--; - s->ptr -= s->line_byte_len; -} - -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) U8G_NOINLINE; -static void u8g_pb8h1_state_init(struct u8g_pb_h1_struct *s, u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y) -{ - u8g_uint_t tmp; - - uint8_t *ptr = b->buf; - - s->x = x; - s->y = y; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 3; - s->line_byte_len = tmp; - - /* assume negative y values, can be down to -7, subtract this from the pointer and add correction of 8 to y */ - ptr -= tmp*8; - y+=8; - /* it is important that the result of tmp*y can be 16 bit value also for 8 bit mode */ - ptr += tmp*y; - - s->mask = u8g_pb8h1_bitmask[x & 7]; - - /* assume negative x values (to -7), subtract 8 pixel from the pointer and add 8 to x */ - ptr--; - x += 8; - x >>= 3; - ptr += x; - s->ptr = ptr; -} - -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h1_state_set_pixel(struct u8g_pb_h1_struct *s, uint8_t color_index) -{ - -#ifdef __unix__ - assert( s->ptr >= u8g_buf_lower_limit ); - assert( s->ptr < u8g_buf_upper_limit ); -#endif - - if ( color_index ) - { - *s->ptr |= s->mask; - } - else - { - uint8_t mask = s->mask; - mask ^=0xff; - *s->ptr &= mask; - } -} -#endif - - -void u8g_pb8h1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes */ -void u8g_pb8h1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ -#ifdef NEW_CODE - struct u8g_pb_h1_struct s; - u8g_pb8h1_state_init(&s, b, x, y); - u8g_pb8h1_state_set_pixel(&s, color_index); - -// u8g_pb8h1_state_up(&s); -// if ( s.y > b->p.page_y1 ) -// return; -// if ( s.x > b->width ) -// return; -// u8g_pb8h1_state_set_pixel(&s, color_index); -#else - register uint8_t mask; - u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width; - tmp >>= 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 0x080; - mask >>= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -#endif -} - - -void u8g_pb8h1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -#ifdef NEW_CODE -static void u8g_pb8h1_Set8PixelState(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - struct u8g_pb_h1_struct s; - uint8_t cnt; - u8g_pb8h1_state_init(&s, b, arg_pixel->x, arg_pixel->y); - cnt = 8; - switch( arg_pixel->dir ) - { - case 0: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_right(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 1: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_down(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 2: - do - { - if ( s.x < b->width ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_left(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - case 3: - do - { - if ( s.y >= b->p.page_y0 ) - if ( s.y <= b->p.page_y1 ) - if ( pixel & 128 ) - u8g_pb8h1_state_set_pixel(&s, arg_pixel->color); - u8g_pb8h1_state_up(&s); - pixel <<= 1; - cnt--; - } while( cnt > 0 && pixel != 0 ); - break; - } -} -#endif - -uint8_t u8g_dev_pb8h1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: -#ifdef NEW_CODE - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelState(pb, (u8g_dev_arg_pixel_t *)arg); -#else - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); -#endif - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb8h1f.c b/app/u8glib/u8g_pb8h1f.c deleted file mode 100644 index c7be1fe10b..0000000000 --- a/app/u8glib/u8g_pb8h1f.c +++ /dev/null @@ -1,194 +0,0 @@ -/* - - u8g_pb8h1f.c - - 8bit height monochrom (1 bit) page buffer - byte has horizontal orientation, same as u8g_pb8h1, but byte is flipped - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - total buffer size is limited to 256 bytes because of the calculation inside the set pixel procedure - - -*/ - -#include "u8g.h" -#include - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -void u8g_pb8h1f_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -/* limitation: total buffer must not exceed 256 bytes, 20 nov 2012: extended to >256 bytes */ -void u8g_pb8h1f_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - /*register uint8_t mask, tmp;*/ - register uint8_t mask; - register u8g_uint_t tmp; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - tmp = b->width >> 3; - tmp *= (uint8_t)y; - ptr += tmp; - - mask = 1; - mask <<= x & 7; - x >>= 3; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8h1f_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h1f_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8h1f_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h1f_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pb8h1f_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h1f_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h1f_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h1f_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h1f_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb8h2.c b/app/u8glib/u8g_pb8h2.c deleted file mode 100644 index aad6e42757..0000000000 --- a/app/u8glib/u8g_pb8h2.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - - u8g_pb8h2.c - - 8bit height 2 bit per pixel page buffer - byte has horizontal orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - -void u8g_pb8h2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -static void u8g_pb8h2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - register uint16_t tmp; - - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - - tmp = b->width; - tmp >>= 2; - tmp *= (uint8_t)y; - ptr += tmp; - - tmp = x; - tmp >>= 2; - ptr += tmp; - - tmp = x; - tmp &= 3; - tmp <<= 1; - mask = 3; - mask <<= tmp; - mask = ~mask; - color_index &= 3; - color_index <<= tmp; - - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8h2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8h2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - - -uint8_t u8g_dev_pb8h2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8h2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb8h8.c b/app/u8glib/u8g_pb8h8.c deleted file mode 100644 index 49dbb86169..0000000000 --- a/app/u8glib/u8g_pb8h8.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - - u8g_pb8h8.c - - 8 lines per page, horizontal, 8 bits per pixel - (22 May 2013: might also support any number of lines --> needs to be checked) - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_8h8_buf[WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_8h8_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_8h8_buff}; -u8g_dev_t name = { dev_fn, &u8g_index_color_8h8_pb, com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - end_ptr += b->width*cnt; - /* - do - { - end_ptr += b->width; - cnt--; - } while( cnt > 0 ); - */ - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pb8h8_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb8h8_Clear(b); -} - -static void u8g_pb8h8_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - ptr += tmp; - *ptr = color_index; -} - -void u8g_pb8h8_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8h8_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8h8_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8h8_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pb8h8_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8h8_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8h8_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb8h8_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb8h8_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_R3G3B2; - } - return 1; -} - diff --git a/app/u8glib/u8g_pb8v1.c b/app/u8glib/u8g_pb8v1.c deleted file mode 100644 index 28ac4e0ea2..0000000000 --- a/app/u8glib/u8g_pb8v1.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pb8v1.c - - 8bit height monochrom (1 bit) page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - - -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) U8G_NOINLINE; -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) U8G_NOINLINE; -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) U8G_NOINLINE ; -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) U8G_NOINLINE; - -/* Obsolete, usually set by the init of the structure */ -void u8g_pb8v1_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v1_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - - y -= b->p.page_y0; - mask = 1; - y &= 0x07; - mask <<= y; - ptr += x; - if ( color_index ) - { - *ptr |= mask; - } - else - { - mask ^=0xff; - *ptr &= mask; - } -} - - -void u8g_pb8v1_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v1_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - -void u8g_pb8v1_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v1_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); -} - - -void u8g_pb8v1_Set8PixelOpt2(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pb8v1_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); - -} - -uint8_t u8g_dev_pb8v1_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pb8v1_Set8PixelOpt2(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v1_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_BW; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pb8v2.c b/app/u8glib/u8g_pb8v2.c deleted file mode 100644 index c8e8926b13..0000000000 --- a/app/u8glib/u8g_pb8v2.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - - u8g_pb8v2.c - - 8bit height 2 bit per pixel page buffer - byte has vertical orientation - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" -#include - -void u8g_pb8v2_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pb_Clear(b); -} - -void u8g_pb8v2_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t color_index) -{ - register uint8_t mask; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - mask = 0x03; - y &= 0x03; - y <<= 1; - mask <<= y; - mask ^=0xff; - color_index &= 3; - color_index <<= y; - ptr += x; - *ptr &= mask; - *ptr |= color_index; -} - - -void u8g_pb8v2_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pb8v2_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color); -} - - -void u8g_pb8v2_Set8PixelStd(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - do - { - if ( pixel & 128 ) - { - u8g_pb8v2_SetPixel(b, arg_pixel); - } - switch( arg_pixel->dir ) - { - case 0: arg_pixel->x++; break; - case 1: arg_pixel->y++; break; - case 2: arg_pixel->x--; break; - case 3: arg_pixel->y--; break; - } - pixel <<= 1; - } while( pixel != 0 ); - -} - - - -uint8_t u8g_dev_pb8v2_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - { - u8g_pb8v2_Set8PixelStd(pb, (u8g_dev_arg_pixel_t *)arg); - } - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pb8v2_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pb_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pb_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_GRAY2BIT; - } - return 1; -} - - diff --git a/app/u8glib/u8g_pbxh16.c b/app/u8glib/u8g_pbxh16.c deleted file mode 100644 index 9e3455346e..0000000000 --- a/app/u8glib/u8g_pbxh16.c +++ /dev/null @@ -1,184 +0,0 @@ -/* - - u8g_pbxh16.c - - x lines per page, horizontal, 16 bits per pixel (hi color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*2; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh16_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh16_Clear(b); -} - -static void u8g_pbxh16_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t low, uint8_t high) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp <<= 1; - ptr += tmp; - *ptr = low; - ptr++; - *ptr = high; -} - -void u8g_pbxh16_SetPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh16_set_pixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color); -} - - -void u8g_pbxh16_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh16_SetPixel(b, arg_pixel); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh16_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh16_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh16_SetPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh16_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh16_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_HICOLOR; - } - return 1; -} - diff --git a/app/u8glib/u8g_pbxh24.c b/app/u8glib/u8g_pbxh24.c deleted file mode 100644 index 61ed011a1f..0000000000 --- a/app/u8glib/u8g_pbxh24.c +++ /dev/null @@ -1,287 +0,0 @@ -/* - - u8g_pbxh24.c - - x lines per page, horizontal, 24 bits per pixel (true color modes) - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - -struct _u8g_pb_t -{ - u8g_page_t p; - u8g_uint_t width; - void *buf; -}; -typedef struct _u8g_pb_t u8g_pb_t; - - -uint8_t u8g_index_color_xh16_buf[2*WIDTH*PAGE_HEIGHT] U8G_NOCOMMON ; -u8g_pb_t u8g_index_color_xh16_pb = { {PAGE_HEIGHT, HEIGHT, 0, 0, 0}, WIDTH, u8g_index_color_xh16_buf}; -u8g_dev_t name = { dev_fn, &u8g_index_color_xh16_pb , com_fn } - -*/ - -#include "u8g.h" - -/* -#define WIDTH_BITS 7 -#define WIDTH (1<buf; - uint8_t *end_ptr = ptr; - uint8_t cnt = b->p.page_height; - do - { - end_ptr += b->width*3; - cnt--; - } while( cnt > 0 ); - do - { - *ptr++ = 0; - } while( ptr != end_ptr ); -} - - -void u8g_pbxh24_Init(u8g_pb_t *b, void *buf, u8g_uint_t width) -{ - b->buf = buf; - b->width = width; - u8g_pbxh24_Clear(b); -} - -#ifdef OBSOLETE -static void u8g_pbxh24_set_pixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t r, uint8_t g, uint8_t b) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - *ptr = r; - ptr++; - *ptr = g; - ptr++; - *ptr = b; -} -#endif - -/* - intensity - 0..3 intensity value - 4 replace color -*/ -static void u8g_pbxh24_set_tpixel(u8g_pb_t *b, u8g_uint_t x, u8g_uint_t y, uint8_t red, uint8_t green, uint8_t blue, uint8_t intensity) -{ - uint16_t tmp; - uint8_t *ptr = b->buf; - - if ( intensity == 0 ) - return; - - y -= b->p.page_y0; - tmp = y; - tmp *= b->width; - tmp += x; - tmp *= 3; - ptr += tmp; - - if ( intensity == 4 ) - { - *ptr = red; - ptr++; - *ptr = green; - ptr++; - *ptr = blue; - return; - } - - if ( intensity == 2 ) - { - /* - red = red/4 + red/2; - green = green/4 + green/2; - blue = blue/4 + blue/2; - */ - red >>= 1; - green >>= 1; - blue >>= 1; - } - else if ( intensity == 1 ) - { - red >>= 2; - green >>= 2; - blue >>= 2; - } - - if ( *ptr >= 255-red ) *ptr = 255; - else *ptr += red; - ptr++; - - if ( *ptr >= 255-green ) *ptr = 255; - else *ptr += green; - ptr++; - - if ( *ptr >= 255-blue ) *ptr = 255; - else *ptr += blue; - - /* - if ( *ptr < red ) *ptr = red; - ptr++; - if ( *ptr < green ) *ptr = green; - ptr++; - if ( *ptr < blue ) *ptr = blue; - */ - - -} - -void u8g_pbxh24_SetTPixel(u8g_pb_t *b, const u8g_dev_arg_pixel_t * const arg_pixel, uint8_t intensity) -{ - if ( arg_pixel->y < b->p.page_y0 ) - return; - if ( arg_pixel->y > b->p.page_y1 ) - return; - if ( arg_pixel->x >= b->width ) - return; - u8g_pbxh24_set_tpixel(b, arg_pixel->x, arg_pixel->y, arg_pixel->color, arg_pixel->hi_color, arg_pixel->blue, intensity); -} - - -void u8g_pbxh24_Set8Pixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - if ( pixel & 128 ) - u8g_pbxh24_SetTPixel(b, arg_pixel, 4); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 1; - } while( pixel != 0 ); -} - -void u8g_pbxh24_Set4TPixel(u8g_pb_t *b, u8g_dev_arg_pixel_t *arg_pixel) -{ - register uint8_t pixel = arg_pixel->pixel; - u8g_uint_t dx = 0; - u8g_uint_t dy = 0; - - switch( arg_pixel->dir ) - { - case 0: dx++; break; - case 1: dy++; break; - case 2: dx--; break; - case 3: dy--; break; - } - - do - { - u8g_pbxh24_SetTPixel(b, arg_pixel, pixel >> 6); - arg_pixel->x += dx; - arg_pixel->y += dy; - pixel <<= 2; - } while( pixel != 0 ); -} - - -uint8_t u8g_dev_pbxh24_base_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_pb_t *pb = (u8g_pb_t *)(dev->dev_mem); - switch(msg) - { - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_pb_Is8PixelVisible(pb, (u8g_dev_arg_pixel_t *)arg) ) - u8g_pbxh24_Set8Pixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_PIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, 4); - break; - case U8G_DEV_MSG_SET_4TPIXEL: - u8g_pbxh24_Set4TPixel(pb, (u8g_dev_arg_pixel_t *)arg); - break; - case U8G_DEV_MSG_SET_TPIXEL: - u8g_pbxh24_SetTPixel(pb, (u8g_dev_arg_pixel_t *)arg, ((u8g_dev_arg_pixel_t *)arg)->pixel&3); - break; - case U8G_DEV_MSG_INIT: - break; - case U8G_DEV_MSG_STOP: - break; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_pbxh24_Clear(pb); - u8g_page_First(&(pb->p)); - break; - case U8G_DEV_MSG_PAGE_NEXT: - if ( u8g_page_Next(&(pb->p)) == 0 ) - return 0; - u8g_pbxh24_Clear(pb); - break; -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - return u8g_pb_IsIntersection(pb, (u8g_dev_arg_bbx_t *)arg); -#endif - case U8G_DEV_MSG_GET_PAGE_BOX: - u8g_pb_GetPageBox(pb, (u8g_box_t *)arg); - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = pb->width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = pb->p.total_height; - break; - case U8G_DEV_MSG_SET_COLOR_ENTRY: - break; - case U8G_DEV_MSG_SET_XY_CB: - break; - case U8G_DEV_MSG_GET_MODE: - return U8G_MODE_TRUECOLOR; - } - return 1; -} - diff --git a/app/u8glib/u8g_polygon.c b/app/u8glib/u8g_polygon.c deleted file mode 100644 index f7e9b65965..0000000000 --- a/app/u8glib/u8g_polygon.c +++ /dev/null @@ -1,334 +0,0 @@ -/* - - u8g_polygon.c - - Implementation of a polygon draw algorithm for "convex" polygons. - - Universal 8bit Graphics Library - - Copyright (c) 2013, 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. - - See also: - http://www.angelfire.com/linux/myp/ConvexPolRas/ConvexPolRas.html - Computer Graphics, Principles and Practice, Foley, van Dam, Feiner, Hughes (pp 92) - Michael Abrash's Graphics Programming Black Book, Special Edition (Chapter 38 and 39) - - Optimized for embedded systems - - static memory usage only - - consistent data types - - low flash ROM consumption - -*/ - - -#include "u8g.h" - - - - -/*===========================================*/ -/* procedures, which should not be inlined (save as much flash ROM as possible */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) PG_NOINLINE; -static uint8_t pg_inc(pg_struct *pg, uint8_t i) PG_NOINLINE; -static uint8_t pg_dec(pg_struct *pg, uint8_t i) PG_NOINLINE; -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) PG_NOINLINE; -static void pg_line_init(pg_struct * const pg, uint8_t pge_index) PG_NOINLINE; - -/*===========================================*/ -/* line draw algorithm */ - -static uint8_t pge_Next(struct pg_edge_struct *pge) -{ - if ( pge->current_y >= pge->max_y ) - return 0; - - pge->current_x += pge->current_x_offset; - pge->error += pge->error_offset; - if ( pge->error > 0 ) - { - pge->current_x += pge->x_direction; - pge->error -= pge->height; - } - - pge->current_y++; - return 1; -} - -/* assumes y2 > y1 */ -static void pge_Init(struct pg_edge_struct *pge, pg_word_t x1, pg_word_t y1, pg_word_t x2, pg_word_t y2) -{ - pg_word_t dx = x2 - x1; - pg_word_t width; - - pge->height = y2 - y1; - pge->max_y = y2; - pge->current_y = y1; - pge->current_x = x1; - - if ( dx >= 0 ) - { - pge->x_direction = 1; - width = dx; - pge->error = 0; - } - else - { - pge->x_direction = -1; - width = -dx; - pge->error = 1 - pge->height; - } - - pge->current_x_offset = dx / pge->height; - pge->error_offset = width % pge->height; -} - -/*===========================================*/ -/* convex polygon algorithm */ - -static uint8_t pg_inc(pg_struct *pg, uint8_t i) -{ - i++; - if ( i >= pg->cnt ) - i = 0; - return i; -} - -static uint8_t pg_dec(pg_struct *pg, uint8_t i) -{ - i--; - if ( i >= pg->cnt ) - i = pg->cnt-1; - return i; -} - -static void pg_expand_min_y(pg_struct *pg, pg_word_t min_y, uint8_t pge_idx) -{ - uint8_t i = pg->pge[pge_idx].curr_idx; - for(;;) - { - i = pg->pge[pge_idx].next_idx_fn(pg, i); - if ( pg->list[i].y != min_y ) - break; - pg->pge[pge_idx].curr_idx = i; - } -} - -static uint8_t pg_prepare(pg_struct *pg) -{ - pg_word_t max_y; - pg_word_t min_y; - uint8_t i; - - /* setup the next index procedures */ - pg->pge[PG_RIGHT].next_idx_fn = pg_inc; - pg->pge[PG_LEFT].next_idx_fn = pg_dec; - - /* search for highest and lowest point */ - max_y = pg->list[0].y; - min_y = pg->list[0].y; - pg->pge[PG_LEFT].curr_idx = 0; - for( i = 1; i < pg->cnt; i++ ) - { - if ( max_y < pg->list[i].y ) - { - max_y = pg->list[i].y; - } - if ( min_y > pg->list[i].y ) - { - pg->pge[PG_LEFT].curr_idx = i; - min_y = pg->list[i].y; - } - } - - /* calculate total number of scan lines */ - pg->total_scan_line_cnt = max_y; - pg->total_scan_line_cnt -= min_y; - - /* exit if polygon height is zero */ - if ( pg->total_scan_line_cnt == 0 ) - return 0; - - /* if the minimum y side is flat, try to find the lowest and highest x points */ - pg->pge[PG_RIGHT].curr_idx = pg->pge[PG_LEFT].curr_idx; - pg_expand_min_y(pg, min_y, PG_RIGHT); - pg_expand_min_y(pg, min_y, PG_LEFT); - - /* check if the min side is really flat (depends on the x values) */ - pg->is_min_y_not_flat = 1; - if ( pg->list[pg->pge[PG_LEFT].curr_idx].x != pg->list[pg->pge[PG_RIGHT].curr_idx].x ) - { - pg->is_min_y_not_flat = 0; - } - else - { - pg->total_scan_line_cnt--; - if ( pg->total_scan_line_cnt == 0 ) - return 0; - } - - return 1; -} - -static void pg_hline(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t x1, x2, y; - x1 = pg->pge[PG_LEFT].current_x; - x2 = pg->pge[PG_RIGHT].current_x; - y = pg->pge[PG_RIGHT].current_y; - - if ( y < 0 ) - return; - if ( y >= u8g_GetHeight(u8g) ) - return; - if ( x1 < x2 ) - { - if ( x2 < 0 ) - return; - if ( x1 >= u8g_GetWidth(u8g) ) - return; - if ( x1 < 0 ) - x1 = 0; - if ( x2 >= u8g_GetWidth(u8g) ) - x2 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x1, y, x2 - x1); - } - else - { - if ( x1 < 0 ) - return; - if ( x2 >= u8g_GetWidth(u8g) ) - return; - if ( x2 < 0 ) - x1 = 0; - if ( x1 >= u8g_GetWidth(u8g) ) - x1 = u8g_GetWidth(u8g); - u8g_DrawHLine(u8g, x2, y, x1 - x2); - } -} - -static void pg_line_init(pg_struct * pg, uint8_t pge_index) -{ - struct pg_edge_struct *pge = pg->pge+pge_index; - uint8_t idx; - pg_word_t x1; - pg_word_t y1; - pg_word_t x2; - pg_word_t y2; - - idx = pge->curr_idx; - y1 = pg->list[idx].y; - x1 = pg->list[idx].x; - idx = pge->next_idx_fn(pg, idx); - y2 = pg->list[idx].y; - x2 = pg->list[idx].x; - pge->curr_idx = idx; - - pge_Init(pge, x1, y1, x2, y2); -} - -static void pg_exec(pg_struct *pg, u8g_t *u8g) -{ - pg_word_t i = pg->total_scan_line_cnt; - - /* first line is skipped if the min y line is not flat */ - pg_line_init(pg, PG_LEFT); - pg_line_init(pg, PG_RIGHT); - - if ( pg->is_min_y_not_flat != 0 ) - { - pge_Next(&(pg->pge[PG_LEFT])); - pge_Next(&(pg->pge[PG_RIGHT])); - } - - do - { - pg_hline(pg, u8g); - while ( pge_Next(&(pg->pge[PG_LEFT])) == 0 ) - { - pg_line_init(pg, PG_LEFT); - } - while ( pge_Next(&(pg->pge[PG_RIGHT])) == 0 ) - { - pg_line_init(pg, PG_RIGHT); - } - i--; - } while( i > 0 ); -} - -/*===========================================*/ -/* API procedures */ - -void pg_ClearPolygonXY(pg_struct *pg) -{ - pg->cnt = 0; -} - -void pg_AddPolygonXY(pg_struct *pg, u8g_t *u8g, int16_t x, int16_t y) -{ - if ( pg->cnt < PG_MAX_POINTS ) - { - pg->list[pg->cnt].x = x; - pg->list[pg->cnt].y = y; - pg->cnt++; - } -} - -void pg_DrawPolygon(pg_struct *pg, u8g_t *u8g) -{ - if ( pg_prepare(pg) == 0 ) - return; - pg_exec(pg, u8g); -} - -pg_struct u8g_pg; - -void u8g_ClearPolygonXY(void) -{ - pg_ClearPolygonXY(&u8g_pg); -} - -void u8g_AddPolygonXY(u8g_t *u8g, int16_t x, int16_t y) -{ - pg_AddPolygonXY(&u8g_pg, u8g, x, y); -} - -void u8g_DrawPolygon(u8g_t *u8g) -{ - pg_DrawPolygon(&u8g_pg, u8g); -} - -void u8g_DrawTriangle(u8g_t *u8g, int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2) -{ - u8g_ClearPolygonXY(); - u8g_AddPolygonXY(u8g, x0, y0); - u8g_AddPolygonXY(u8g, x1, y1); - u8g_AddPolygonXY(u8g, x2, y2); - u8g_DrawPolygon(u8g); -} - diff --git a/app/u8glib/u8g_rect.c b/app/u8glib/u8g_rect.c deleted file mode 100644 index 139a43a24a..0000000000 --- a/app/u8glib/u8g_rect.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - - u8g_rect.c - - U8G high level interface for horizontal and vertical things - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -void u8g_draw_hline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - uint8_t pixel = 0x0ff; - while( w >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - w-=8; - x+=8; - } - if ( w != 0 ) - { - w ^=7; - w++; - pixel <<= w&7; - u8g_Draw8Pixel(u8g, x, y, 0, pixel); - } -} - -void u8g_draw_vline(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t h) -{ - uint8_t pixel = 0x0ff; - while( h >= 8 ) - { - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - h-=8; - y+=8; - } - if ( h != 0 ) - { - h ^=7; - h++; - pixel <<= h&7; - u8g_Draw8Pixel(u8g, x, y, 1, pixel); - } -} - -void u8g_DrawHLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, 1) == 0 ) - return; - u8g_draw_hline(u8g, x, y, w); -} - -void u8g_DrawVLine(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, 1, w) == 0 ) - return; - u8g_draw_vline(u8g, x, y, w); -} - -/* restrictions: w > 0 && h > 0 */ -void u8g_DrawFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - u8g_uint_t xtmp = x; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - - u8g_draw_hline(u8g, x, y, w); - u8g_draw_vline(u8g, x, y, h); - x+=w; - x--; - u8g_draw_vline(u8g, x, y, h); - y+=h; - y--; - u8g_draw_hline(u8g, xtmp, y, w); -} - -void u8g_draw_box(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - do - { - u8g_draw_hline(u8g, x, y, w); - y++; - h--; - } while( h != 0 ); -} - -/* restrictions: h > 0 */ -void u8g_DrawBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h) -{ - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - u8g_draw_box(u8g, x, y, w, h); -} - - -void u8g_DrawRFrame(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - { - u8g_uint_t yl, xr; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_circle(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_circle(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_circle(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_circle(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - } - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - w--; - u8g_draw_hline(u8g, xl, y, ww); - u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_vline(u8g, x, yu, hh); - u8g_draw_vline(u8g, x+w, yu, hh); - } -} - -void u8g_DrawRBox(u8g_t *u8g, u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, u8g_uint_t r) -{ - u8g_uint_t xl, yu; - u8g_uint_t yl, xr; - - if ( u8g_IsBBXIntersection(u8g, x, y, w, h) == 0 ) - return; - - xl = x; - xl += r; - yu = y; - yu += r; - - xr = x; - xr += w; - xr -= r; - xr -= 1; - - yl = y; - yl += h; - yl -= r; - yl -= 1; - - u8g_draw_disc(u8g, xl, yu, r, U8G_DRAW_UPPER_LEFT); - u8g_draw_disc(u8g, xr, yu, r, U8G_DRAW_UPPER_RIGHT); - u8g_draw_disc(u8g, xl, yl, r, U8G_DRAW_LOWER_LEFT); - u8g_draw_disc(u8g, xr, yl, r, U8G_DRAW_LOWER_RIGHT); - - { - u8g_uint_t ww, hh; - - ww = w; - ww -= r; - ww -= r; - ww -= 2; - hh = h; - hh -= r; - hh -= r; - hh -= 2; - - xl++; - yu++; - h--; - u8g_draw_box(u8g, xl, y, ww, r+1); - u8g_draw_box(u8g, xl, yl, ww, r+1); - //u8g_draw_hline(u8g, xl, y+h, ww); - u8g_draw_box(u8g, x, yu, w, hh); - //u8g_draw_vline(u8g, x+w, yu, hh); - } -} diff --git a/app/u8glib/u8g_rot.c b/app/u8glib/u8g_rot.c deleted file mode 100644 index 6df32834a3..0000000000 --- a/app/u8glib/u8g_rot.c +++ /dev/null @@ -1,409 +0,0 @@ -/* - - u8g_rot.c - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - -uint8_t u8g_dev_rot_dummy_fn(u8g_t *u8g, u8g_dev_t*dev, uint8_t msg, void *arg) -{ - return 0; -} - -u8g_dev_t u8g_dev_rot = { u8g_dev_rot_dummy_fn, NULL, NULL }; - - -void u8g_UndoRotation(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - return; - u8g->dev = u8g_dev_rot.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot90(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot90_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot180(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot180_fn; - u8g_UpdateDimension(u8g); -} - -void u8g_SetRot270(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_rot ) - { - u8g_dev_rot.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_rot; - } - u8g_dev_rot.dev_fn = u8g_dev_rot270_fn; - u8g_UpdateDimension(u8g); -} - -uint8_t u8g_dev_rot90_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - y = bbx->x; - x = u8g->height; - /* x = u8g_GetWidthLL(u8g, rotation_chain); */ - x -= bbx->y; - x--; - - /* adjust point to be the uppler left corner again */ - x -= bbx->h; - x++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - //new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - //new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - - new_box.x0 = ((u8g_box_t *)arg)->y0; - new_box.x1 = ((u8g_box_t *)arg)->y1; - new_box.y0 = ((u8g_box_t *)arg)->x0; - new_box.y1 = ((u8g_box_t *)arg)->x1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - //uint16_t x,y; - y = ((u8g_dev_arg_pixel_t *)arg)->x; - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=1; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot180_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y; - - /* transform the reference point */ - //y = u8g_GetHeightLL(u8g, rotation_chain); - y = u8g->height; - y -= bbx->y; - y--; - - //x = u8g_GetWidthLL(u8g, rotation_chain); - x = u8g->width; - x -= bbx->x; - x--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->h; - y++; - - x -= bbx->w; - x++; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.x1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - new_box.y0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.y1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->y; - y--; - - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->x; - x--; - - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=2; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - -uint8_t u8g_dev_rot270_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *rotation_chain = (u8g_dev_t *)(dev->dev_mem); - switch(msg) - { - default: - /* - case U8G_DEV_MSG_INIT: - case U8G_DEV_MSG_STOP: - case U8G_DEV_MSG_PAGE_FIRST: - case U8G_DEV_MSG_PAGE_NEXT: - case U8G_DEV_MSG_SET_COLOR_ENTRY: - case U8G_DEV_MSG_SET_XY_CB: - */ - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#ifdef U8G_DEV_MSG_IS_BBX_INTERSECTION - case U8G_DEV_MSG_IS_BBX_INTERSECTION: - { - u8g_dev_arg_bbx_t *bbx = (u8g_dev_arg_bbx_t *)arg; - u8g_uint_t x, y, tmp; - - /* transform the reference point */ - x = bbx->y; - - y = u8g->width; - /* y = u8g_GetHeightLL(u8g, rotation_chain); */ - y -= bbx->x; - y--; - - /* adjust point to be the uppler left corner again */ - y -= bbx->w; - y++; - - /* swap box dimensions */ - tmp = bbx->w; - bbx->w = bbx->h; - bbx->h = tmp; - - /* store x,y */ - bbx->x = x; - bbx->y = y; - } - return u8g_call_dev_fn(u8g, rotation_chain, msg, arg); -#endif /* U8G_DEV_MSG_IS_BBX_INTERSECTION */ - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - //printf("pre x: %3d..%3d y: %3d..%3d ", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - { - u8g_box_t new_box; - - new_box.x0 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y1 - 1; - new_box.x1 = u8g_GetHeightLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->y0 - 1; - new_box.y0 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x1 - 1; - new_box.y1 = u8g_GetWidthLL(u8g,rotation_chain) - ((u8g_box_t *)arg)->x0 - 1; - *((u8g_box_t *)arg) = new_box; - //printf("post x: %3d..%3d y: %3d..%3d\n", ((u8g_box_t *)arg)->x0, ((u8g_box_t *)arg)->x1, ((u8g_box_t *)arg)->y0, ((u8g_box_t *)arg)->y1); - } - break; - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g,rotation_chain); - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, rotation_chain); - break; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - case U8G_DEV_MSG_SET_4TPIXEL: - { - u8g_uint_t x, y; - x = ((u8g_dev_arg_pixel_t *)arg)->y; - - y = u8g_GetHeightLL(u8g, rotation_chain); - y -= ((u8g_dev_arg_pixel_t *)arg)->x; - y--; - - /* - x = u8g_GetWidthLL(u8g, rotation_chain); - x -= ((u8g_dev_arg_pixel_t *)arg)->y; - x--; - */ - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir+=3; - ((u8g_dev_arg_pixel_t *)arg)->dir &= 3; - } - u8g_call_dev_fn(u8g, rotation_chain, msg, arg); - break; - } - return 1; -} - diff --git a/app/u8glib/u8g_scale.c b/app/u8glib/u8g_scale.c deleted file mode 100644 index e5b4b634fb..0000000000 --- a/app/u8glib/u8g_scale.c +++ /dev/null @@ -1,188 +0,0 @@ -/* - - u8g_scale.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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. - - Scale screen by some constant factors. Usefull for making bigger fonts wiht less - memory consumption - -*/ - -#include "u8g.h" - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg); - - -u8g_dev_t u8g_dev_scale = { u8g_dev_scale_2x2_fn, NULL, NULL }; - -void u8g_UndoScale(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - return; - u8g->dev = u8g_dev_scale.dev_mem; - u8g_UpdateDimension(u8g); -} - -void u8g_SetScale2x2(u8g_t *u8g) -{ - if ( u8g->dev != &u8g_dev_scale ) - { - u8g_dev_scale.dev_mem = u8g->dev; - u8g->dev = &u8g_dev_scale; - } - u8g_dev_scale.dev_fn = u8g_dev_scale_2x2_fn; - u8g_UpdateDimension(u8g); -} - - -uint8_t u8g_dev_scale_2x2_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - u8g_dev_t *chain = (u8g_dev_t *)(dev->dev_mem); - uint8_t pixel; - uint16_t scaled_pixel; - uint8_t i; - uint8_t dir; - u8g_uint_t x, y, xx,yy; - - switch(msg) - { - default: - return u8g_call_dev_fn(u8g, chain, msg, arg); - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_GetWidthLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_GetHeightLL(u8g, chain) / 2; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - /* get page size from next device in the chain */ - u8g_call_dev_fn(u8g, chain, msg, arg); - ((u8g_box_t *)arg)->x0 /= 2; - ((u8g_box_t *)arg)->x1 /= 2; - ((u8g_box_t *)arg)->y0 /= 2; - ((u8g_box_t *)arg)->y1 /= 2; - return 1; - case U8G_DEV_MSG_SET_PIXEL: - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - y++; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - x--; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - case U8G_DEV_MSG_SET_8PIXEL: - pixel = ((u8g_dev_arg_pixel_t *)arg)->pixel; - dir = ((u8g_dev_arg_pixel_t *)arg)->dir; - scaled_pixel = 0; - for( i = 0; i < 8; i++ ) - { - scaled_pixel<<=2; - if ( pixel & 128 ) - { - scaled_pixel |= 3; - } - pixel<<=1; - } - x = ((u8g_dev_arg_pixel_t *)arg)->x; - x *= 2; - xx = x; - y = ((u8g_dev_arg_pixel_t *)arg)->y; - y *= 2; - yy = y; - if ( ((u8g_dev_arg_pixel_t *)arg)->dir & 1 ) - { - xx++; - } - else - { - yy++; - } - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel>>8; - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->pixel = scaled_pixel&255; - //((u8g_dev_arg_pixel_t *)arg)->pixel = 0x00; - switch(dir) - { - case 0: - x+=8; - xx+=8; - break; - case 1: - y+=8; - yy+=8; - break; - case 2: - x-=8; - xx-=8; - break; - case 3: - y-=8; - yy-=8; - break; - } - ((u8g_dev_arg_pixel_t *)arg)->x = x; - ((u8g_dev_arg_pixel_t *)arg)->y = y; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - - ((u8g_dev_arg_pixel_t *)arg)->x = xx; - ((u8g_dev_arg_pixel_t *)arg)->y = yy; - ((u8g_dev_arg_pixel_t *)arg)->dir = dir; - u8g_call_dev_fn(u8g, chain, msg, arg); - break; - } - return 1; -} - diff --git a/app/u8glib/u8g_state.c b/app/u8glib/u8g_state.c deleted file mode 100644 index 3621d933db..0000000000 --- a/app/u8glib/u8g_state.c +++ /dev/null @@ -1,159 +0,0 @@ -/* - - u8g_state.c - - backup and restore hardware state - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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. - - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - device callback: DEV_MSG_INIT - state callback: backup u8g U8G_STATE_MSG_BACKUP_U8G - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - - state callback: backup env U8G_STATE_MSG_BACKUP_ENV - state callback: retore u8g U8G_STATE_MSG_RESTORE_U8G - DEV_MSG_PAGE_FIRST or DEV_MSG_PAGE_NEXT - state callback: restore env U8G_STATE_MSG_RESTORE_ENV - -*/ - -#include -#include "u8g.h" - -void u8g_state_dummy_cb(uint8_t msg) -{ - /* the dummy procedure does nothing */ -} - -void u8g_SetHardwareBackup(u8g_t *u8g, u8g_state_cb backup_cb) -{ - u8g->state_cb = backup_cb; - /* in most cases the init message was already sent, so this will backup the */ - /* current u8g state */ - backup_cb(U8G_STATE_MSG_BACKUP_U8G); -} - - -/*===============================================================*/ -/* register variable for restoring interrupt state */ - -#if defined(__AVR__) -uint8_t global_SREG_backup; -#endif - - - -/*===============================================================*/ -/* AVR */ - -#if defined(__AVR_XMEGA__) -#elif defined(__AVR__) -#define U8G_ATMEGA_HW_SPI - -/* remove the definition for attiny */ -#if __AVR_ARCH__ == 2 -#undef U8G_ATMEGA_HW_SPI -#endif -#if __AVR_ARCH__ == 25 -#undef U8G_ATMEGA_HW_SPI -#endif -#endif - -#if defined(U8G_ATMEGA_HW_SPI) -#include -static uint8_t u8g_state_avr_spi_memory[2]; - -void u8g_backup_spi(uint8_t msg) -{ - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)] = SPCR; - } - else - { - uint8_t tmp = SREG; - cli(); - SPCR = 0; - SPCR = u8g_state_avr_spi_memory[U8G_STATE_MSG_GET_IDX(msg)]; - SREG = tmp; - } -} - -#elif defined (U8G_RASPBERRY_PI) - -#include - -void u8g_backup_spi(uint8_t msg) { - printf("u8g_backup_spi %d\r\n",msg); -} - -#elif defined(ARDUINO) && defined(__SAM3X8E__) // Arduino Due, maybe we should better check for __SAM3X8E__ - -#include "sam.h" - -struct sam_backup_struct -{ - uint32_t mr; - uint32_t sr; - uint32_t csr[4]; -} sam_backup[2]; - -void u8g_backup_spi(uint8_t msg) -{ - uint8_t idx = U8G_STATE_MSG_GET_IDX(msg); - if ( U8G_STATE_MSG_IS_BACKUP(msg) ) - { - sam_backup[idx].mr = SPI0->SPI_MR; - sam_backup[idx].sr = SPI0->SPI_SR; - sam_backup[idx].csr[0] = SPI0->SPI_CSR[0]; - sam_backup[idx].csr[1] = SPI0->SPI_CSR[1]; - sam_backup[idx].csr[2] = SPI0->SPI_CSR[2]; - sam_backup[idx].csr[3] = SPI0->SPI_CSR[3]; - } - else - { - SPI0->SPI_MR = sam_backup[idx].mr; - SPI0->SPI_CSR[0] = sam_backup[idx].csr[0]; - SPI0->SPI_CSR[1] = sam_backup[idx].csr[1]; - SPI0->SPI_CSR[2] = sam_backup[idx].csr[2]; - SPI0->SPI_CSR[3] = sam_backup[idx].csr[3]; - } -} - -#else - -void u8g_backup_spi(uint8_t msg) -{ -} - -#endif - diff --git a/app/u8glib/u8g_u16toa.c b/app/u8glib/u8g_u16toa.c deleted file mode 100644 index f1d1803cfa..0000000000 --- a/app/u8glib/u8g_u16toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u16toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -const char *u8g_u16toap(char * dest, uint16_t v) -{ - uint8_t pos; - uint8_t d; - uint16_t c; - c = 10000; - for( pos = 0; pos < 5; pos++ ) - { - d = '0'; - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - c /= 10; - } - dest[5] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u16toa(uint16_t v, uint8_t d) -{ - static char buf[6]; - d = 5-d; - return u8g_u16toap(buf, v) + d; -} - diff --git a/app/u8glib/u8g_u8toa.c b/app/u8glib/u8g_u8toa.c deleted file mode 100644 index f3a2c06faf..0000000000 --- a/app/u8glib/u8g_u8toa.c +++ /dev/null @@ -1,68 +0,0 @@ -/* - - u8g_u8toa.c - - - Universal 8bit Graphics Library - - Copyright (c) 2011, 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 "u8g.h" - -static const unsigned char u8g_u8toa_tab[3] = { 100, 10, 1 } ; -const char *u8g_u8toap(char * dest, uint8_t v) -{ - uint8_t pos; - uint8_t d; - uint8_t c; - for( pos = 0; pos < 3; pos++ ) - { - d = '0'; - c = *(u8g_u8toa_tab+pos); - while( v >= c ) - { - v -= c; - d++; - } - dest[pos] = d; - } - dest[3] = '\0'; - return dest; -} - -/* v = value, d = number of digits */ -const char *u8g_u8toa(uint8_t v, uint8_t d) -{ - static char buf[4]; - d = 3-d; - return u8g_u8toap(buf, v) + d; -} - diff --git a/app/u8glib/u8g_virtual_screen.c b/app/u8glib/u8g_virtual_screen.c deleted file mode 100644 index 799fa95f49..0000000000 --- a/app/u8glib/u8g_virtual_screen.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - - u8g_virtual_screen.c - - Universal 8bit Graphics Library - - Copyright (c) 2012, 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 "u8g.h" - -struct _u8g_vs_t -{ - u8g_uint_t x; - u8g_uint_t y; - u8g_t *u8g; -}; -typedef struct _u8g_vs_t u8g_vs_t; - -#define U8g_VS_MAX 4 -uint8_t u8g_vs_cnt = 0; -u8g_vs_t u8g_vs_list[U8g_VS_MAX]; -uint8_t u8g_vs_current; -u8g_uint_t u8g_vs_width; -u8g_uint_t u8g_vs_height; - -uint8_t u8g_dev_vs_fn(u8g_t *u8g, u8g_dev_t *dev, uint8_t msg, void *arg) -{ - switch(msg) - { - default: - { - uint8_t i; - for( i = 0; i < u8g_vs_cnt; i++ ) - { - u8g_call_dev_fn(u8g_vs_list[i].u8g, u8g_vs_list[i].u8g->dev, msg, arg); - } - } - return 1; - case U8G_DEV_MSG_PAGE_FIRST: - u8g_vs_current = 0; - if ( u8g_vs_cnt != 0 ) - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - return 0; - case U8G_DEV_MSG_PAGE_NEXT: - { - uint8_t ret = 0; - if ( u8g_vs_cnt != 0 ) - ret = u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - if ( ret != 0 ) - return ret; - u8g_vs_current++; /* next device */ - if ( u8g_vs_current >= u8g_vs_cnt ) /* reached end? */ - return 0; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, U8G_DEV_MSG_PAGE_FIRST, arg); - } - case U8G_DEV_MSG_GET_WIDTH: - *((u8g_uint_t *)arg) = u8g_vs_width; - break; - case U8G_DEV_MSG_GET_HEIGHT: - *((u8g_uint_t *)arg) = u8g_vs_height; - break; - case U8G_DEV_MSG_GET_PAGE_BOX: - if ( u8g_vs_current < u8g_vs_cnt ) - { - u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - ((u8g_box_t *)arg)->x0 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->x1 += u8g_vs_list[u8g_vs_current].x; - ((u8g_box_t *)arg)->y0 += u8g_vs_list[u8g_vs_current].y; - ((u8g_box_t *)arg)->y1 += u8g_vs_list[u8g_vs_current].y; - } - else - { - ((u8g_box_t *)arg)->x0 = 0; - ((u8g_box_t *)arg)->x1 = 0; - ((u8g_box_t *)arg)->y0 = 0; - ((u8g_box_t *)arg)->y1 = 0; - } - return 1; - case U8G_DEV_MSG_SET_PIXEL: - case U8G_DEV_MSG_SET_8PIXEL: - if ( u8g_vs_current < u8g_vs_cnt ) - { - ((u8g_dev_arg_pixel_t *)arg)->x -= u8g_vs_list[u8g_vs_current].x; - ((u8g_dev_arg_pixel_t *)arg)->y -= u8g_vs_list[u8g_vs_current].y; - return u8g_call_dev_fn(u8g_vs_list[u8g_vs_current].u8g, u8g_vs_list[u8g_vs_current].u8g->dev, msg, arg); - } - break; - } - return 1; -} - - - -u8g_dev_t u8g_dev_vs = { u8g_dev_vs_fn, NULL, NULL }; - -void u8g_SetVirtualScreenDimension(u8g_t *vs_u8g, u8g_uint_t width, u8g_uint_t height) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return; /* abort if there is no a virtual screen device */ - u8g_vs_width = width; - u8g_vs_height = height; -} - -uint8_t u8g_AddToVirtualScreen(u8g_t *vs_u8g, u8g_uint_t x, u8g_uint_t y, u8g_t *child_u8g) -{ - if ( vs_u8g->dev != &u8g_dev_vs ) - return 0; /* abort if there is no a virtual screen device */ - if ( u8g_vs_cnt >= U8g_VS_MAX ) - return 0; /* maximum number of child u8g's reached */ - u8g_vs_list[u8g_vs_cnt].u8g = child_u8g; - u8g_vs_list[u8g_vs_cnt].x = x; - u8g_vs_list[u8g_vs_cnt].y = y; - u8g_vs_cnt++; - return 1; -} - diff --git a/docs/en/modules/u8g.md b/docs/en/modules/u8g.md deleted file mode 100644 index 8d022f31c9..0000000000 --- a/docs/en/modules/u8g.md +++ /dev/null @@ -1,472 +0,0 @@ -# u8g Module -| Since | Origin / Contributor | Maintainer | Source | -| :----- | :-------------------- | :---------- | :------ | -| 2015-01-30 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8glib](../../../app/u8glib/)| - -U8glib is a graphics library developed at [olikraus/u8glib](https://github.com/olikraus/u8glib) with support for many different displays. The NodeMCU firmware supports a subset of these. - -I²C and SPI mode: - -- sh1106_128x64 -- ssd1306 - 128x32, 128x64, and 64x48 variants -- ssd1309_128x64 -- ssd1327_96x96_gr -- uc1611 - dogm240 and dogxl240 variants - -SPI only: - -- ld7032_60x32 -- pcd8544_84x48 -- pcf8812_96x65 -- ssd1322_nhd31oled - bw and gr variants -- ssd1325_nhd27oled - bw and gr variants -- ssd1351_128x128 - gh and hicolor variants -- st7565_64128n - variants 64128n, dogm128/132, lm6059/lm6063, c12832/c12864 -- uc1601_c128032 -- uc1608 - 240x128 and 240x64 variants -- uc1610_dogxl160 - bw and gr variants -- uc1611 - dogm240 and dogxl240 variants -- uc1701 - dogs102 and mini12864 variants - -This integration is based on [v1.19.1](https://github.com/olikraus/U8glib_Arduino/releases/tag/1.19.1). - -## Overview -### I²C Connection -Hook up SDA and SCL to any free GPIOs. Eg. [u8g_graphics_test.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_graphics_test.lua) expects SDA=5 (GPIO14) and SCL=6 (GPIO12). They are used to set up nodemcu's I²C driver before accessing the display: -```lua -sda = 5 -scl = 6 -i2c.setup(0, sda, scl, i2c.SLOW) -``` -### SPI connection -The HSPI module is used ([more information](http://d.av.id.au/blog/esp8266-hardware-spi-hspi-general-info-and-pinout/)), so certain pins are fixed: - -- HSPI CLK = GPIO14 -- HSPI MOSI = GPIO13 -- HSPI MISO = GPIO12 (not used) - -All other pins can be assigned to any available GPIO: - -- CS -- D/C -- RES (optional for some displays) - -Also refer to the initialization sequence eg in [u8g_graphics_test.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_graphics_test.lua): -```lua -spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) -``` - -### Library Usage -The Lua bindings for this library closely follow u8glib's object oriented C++ API. Based on the u8g class, you create an object for your display type. - -SSD1306 via I²C: -```lua -sla = 0x3c -disp = u8g.ssd1306_128x64_i2c(sla) -``` - -SSD1306 via SPI: -```lua -cs = 8 -- GPIO15, pull-down 10k to GND -dc = 4 -- GPIO2 -res = 0 -- GPIO16, RES is optional YMMV -disp = u8g.ssd1306_128x64_hw_spi(cs, dc, res) -``` - -This object provides all of u8glib's methods to control the display. Again, refer to [u8g_graphics_test.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8glib homepage](https://github.com/olikraus/u8glib) for technical details. - -### Displays -I²C and HW SPI based displays with support in u8glib can be enabled. To get access to the respective constructors, add the desired entries to the I²C or SPI display tables in [app/include/u8g_config.h](https://github.com/nodemcu/nodemcu-firmware/blob/master/app/include/u8g_config.h): -```c -#define U8G_DISPLAY_TABLE_I2C \ - U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_i2c) \ - -#define U8G_DISPLAY_TABLE_SPI \ - U8G_DISPLAY_TABLE_ENTRY(ssd1306_128x64_hw_spi) \ - U8G_DISPLAY_TABLE_ENTRY(pcd8544_84x48_hw_spi) \ - U8G_DISPLAY_TABLE_ENTRY(pcf8812_96x65_hw_spi) \ -``` - -### Fonts -u8glib comes with a wide range of fonts for small displays. Since they need to be compiled into the firmware image, you'd need to include them in [app/include/u8g_config.h](https://github.com/nodemcu/nodemcu-firmware/blob/master/app/include/u8g_config.h) and recompile. Simply add the desired fonts to the font table: -```c -#define U8G_FONT_TABLE \ - U8G_FONT_TABLE_ENTRY(font_6x10) \ - U8G_FONT_TABLE_ENTRY(font_chikita) -``` - -They'll become available as `u8g.` in Lua. - -### Bitmaps -Bitmaps and XBMs are supplied as strings to `drawBitmap()` and `drawXBM()`. This off-loads all data handling from the u8g module to generic methods for binary files. See [u8g_bitmaps.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_bitmaps.lua). -In contrast to the source code based inclusion of XBMs into u8glib, it's required to provide precompiled binary files. This can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result with [nodemcu-uploader.py](https://github.com/kmpm/nodemcu-uploader). - -## I²C Display Drivers -Initialize a display via I²C. - -The init sequence would insert delays to match the display specs. These can destabilize the overall system if wifi service is blocked for too long. It is therefore advisable to disable such delays unless the specific use case can exclude wifi traffic while initializing the display driver. - -- `u8g.sh1106_128x64_i2c()` -- `u8g.ssd1306_128x32_i2c()` -- `u8g.ssd1306_128x64_i2c()` -- `u8g.ssd1306_64x48_i2c()` -- `u8g.ssd1309_128x64_i2c()` -- `u8g.ssd1327_96x96_gr_i2c()` -- `u8g.uc1611_dogm240_i2c()` -- `u8g.uc1611_dogxl240_i2c()` - -####Syntax -`u8g.ssd1306_128x64_i2c(address[, use_delay])` - -####Parameters -- `address` I²C slave address of display -- `use_delay` '1': use delays in init sequence, '0' if omitted - -####Returns -u8g display object - -####Example -```lua -sda = 5 -scl = 6 -i2c.setup(0, sda, scl, i2c.SLOW) - -sla = 0x3c -disp = u8g.ssd1306_128x64_i2c(sla) -``` - -####See also -[SPI Display Drivers](#spi-display-drivers) - -## SPI Display Drivers -Initialize a display via Hardware SPI. - -The init sequence would insert delays to match the display specs. These can destabilize the overall system if wifi service is blocked for too long. It is therefore advisable to disable such delays unless the specific use case can exclude wifi traffic while initializing the display driver. - -- `u8g.ld7032_60x32_hw_spi()` -- `u8g.pcd8544_84x48_hw_spi()` -- `u8g.pcf8812_96x65_hw_spi()` -- `u8g.sh1106_128x64_hw_spi()` -- `u8g.ssd1306_128x32_hw_spi()` -- `u8g.ssd1306_128x64_hw_spi()` -- `u8g.ssd1306_64x48_hw_spi()` -- `u8g.ssd1309_128x64_hw_spi()` -- `u8g.ssd1322_nhd31oled_bw_hw_spi()` -- `u8g.ssd1322_nhd31oled_gr_hw_spi()` -- `u8g.ssd1325_nhd27oled_bw_hw_spi()` -- `u8g.ssd1325_nhd27oled_gr_hw_spi()` -- `u8g.ssd1327_96x96_gr_hw_spi()` -- `u8g.ssd1351_128x128_332_hw_spi()` -- `u8g.ssd1351_128x128gh_332_hw_spi()` -- `u8g.ssd1351_128x128_hicolor_hw_spi()` -- `u8g.ssd1351_128x128gh_hicolor_hw_spi()` -- `u8g.ssd1353_160x128_332_hw_spi()` -- `u8g.ssd1353_160x128_hicolor_hw_spi()` -- `u8g.st7565_64128n_hw_spi()` -- `u8g.st7565_dogm128_hw_spi()` -- `u8g.st7565_dogm132_hw_spi()` -- `u8g.st7565_lm6059_hw_spi()` -- `u8g.st7565_lm6063_hw_spi()` -- `u8g.st7565_nhd_c12832_hw_spi()` -- `u8g.st7565_nhd_c12864_hw_spi()` -- `u8g.uc1601_c128032_hw_spi()` -- `u8g.uc1608_240x128_hw_spi()` -- `u8g.uc1608_240x64_hw_spi()` -- `u8g.uc1610_dogxl160_bw_hw_spi()` -- `u8g.uc1610_dogxl160_gr_hw_spi()` -- `u8g.uc1611_dogm240_hw_spi()` -- `u8g.uc1611_dogxl240_hw_spi()` -- `u8g.uc1701_dogs102_hw_spi()` -- `u8g.uc1701_mini12864_hw_spi()` - -#### Syntax -`u8g.ssd1306_128x64_spi(cs, dc[, res[, use_delay]])` - -#### Parameters -- `cs` GPIO pin for /CS -- `dc` GPIO pin for DC -- `res` GPIO pin for /RES, none if omitted -- `use_delay` '1': use delays in init sequence, '0' if omitted - -#### Returns -u8g display object - -#### Example -```lua -spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) - -cs = 8 -- GPIO15, pull-down 10k to GND -dc = 4 -- GPIO2 -res = 0 -- GPIO16, RES is optional YMMV -disp = u8g.ssd1306_128x64_hw_spi(cs, dc, res) -``` - -#### See also -[I²C Display Drivers](#i2c-display-drivers) - -## u8g.fb_rle -Initialize a virtual display that provides run-length encoded framebuffer contents to a Lua callback. - -The callback function can be used to process the framebuffer line by line. It's called with either `nil` as parameter to indicate the start of a new frame or with a string containing a line of the framebuffer with run-length encoding. First byte in the string specifies how many pairs of (x, len) follow, while each pair defines the start (leftmost x-coordinate) and length of a sequence of lit pixels. All other pixels in the line are dark. - -```lua -n = struct.unpack("B", rle_line) -print(n.." pairs") -for i = 0,n-1 do - print(string.format(" x: %d len: %d", struct.unpack("BB", rle_line, 1+1 + i*2))) -end -``` - -#### Syntax -`u8g.fb_rle(cb_fn, width, height)` - -#### Parameters -- `cb_fn([rle_line])` callback function. `rle_line` is a string containing a run-length encoded framebuffer line, or `nil` to indicate start of frame. -- `width` of display. Must be a multiple of 8, less than or equal to 248. -- `height` of display. Must be a multiple of 8, less than or equal to 248. - -#### Returns -u8g display object - -___ - -## Constants -Constants for various functions. - -`u8g.DRAW_UPPER_RIGHT`, `u8g.DRAW_UPPER_LEFT`, `u8g.DRAW_LOWER_RIGHT`, `u8g.DRAW_LOWER_LEFT`, `u8g.DRAW_ALL`, -`u8g.MODE_BW`, `u8g.MODE_GRAY2BIT` - -`u8g.font_6x10`, ... - -# u8g.disp Sub-Module - -## u8g.disp:begin() -See [u8glib begin()](https://github.com/olikraus/u8glib/wiki/userreference#begin). - -## u8g.disp:drawBitmap() -Draw a bitmap at the specified x/y position (upper left corner of the bitmap). -Parts of the bitmap may be outside the display boundaries. The bitmap is specified by the array bitmap. A cleared bit means: Do not draw a pixel. A set bit inside the array means: Write pixel with the current color index. For a monochrome display, the color index 0 will usually clear a pixel and the color index 1 will set a pixel. - -#### Syntax -`disp:drawBitmap(x, y, cnt, h, bitmap)` - -#### Parameters -- `x` X-position (left position of the bitmap) -- `y` Y-position (upper position of the bitmap) -- `cnt` number of bytes of the bitmap in horizontal direction. The width of the bitmap is cnt*8. -- `h` height of the bitmap -- `bitmap` bitmap data supplied as string - -#### Returns -`nil` - -#### See also -- [u8glib drawBitmap()](https://github.com/olikraus/u8glib/wiki/userreference#drawbitmap) -- [lua_examples/u8glib/u8g_bitmaps.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_bitmaps.lua) -- [u8g.disp:drawXBM()](#u8gdispdrawxbm) - -## u8g.disp:drawBox() -See [u8glib drawBox()](https://github.com/olikraus/u8glib/wiki/userreference#drawbox). - -## u8g.disp:drawCircle() -See [u8glib drawCircle()](https://github.com/olikraus/u8glib/wiki/userreference#drawcircle). - -## u8g.disp:drawDisc() -See [u8glib drawDisc()](https://github.com/olikraus/u8glib/wiki/userreference#drawdisc). - -## u8g.disp:drawEllipse() -See [u8glib drawEllipse()](https://github.com/olikraus/u8glib/wiki/userreference#drawellipse). - -## u8g.disp:drawFilledEllipse() -See [u8glib drawFilledEllipse](https://github.com/olikraus/u8glib/wiki/userreference#drawfilledellipse). - -## u8g.disp:drawFrame() -See [u8glib drawFrame()](https://github.com/olikraus/u8glib/wiki/userreference#drawframe). - -## u8g.disp:drawHLine() -See [u8glib drawHLine()](https://github.com/olikraus/u8glib/wiki/userreference#drawhline). - -## u8g.disp:drawLine() -See [u8glib drawLine()](https://github.com/olikraus/u8glib/wiki/userreference#drawline). - -## u8g.disp:drawPixel() -See [u8glib drawPixel()](https://github.com/olikraus/u8glib/wiki/userreference#drawpixel). - -## u8g.disp:drawRBox() -See [u8glib drawRBox()](https://github.com/olikraus/u8glib/wiki/userreference#drawrbox). - -## u8g.disp:drawRFrame() -See [u8glib drawRFrame()](https://github.com/olikraus/u8glib/wiki/userreference#drawrframe). - -## u8g.disp:drawStr() -See [u8glib drawStr()](https://github.com/olikraus/u8glib/wiki/userreference#drawstr). - -## u8g.disp:drawStr90() -See [u8glib drawStr90](https://github.com/olikraus/u8glib/wiki/userreference#drawstr90). - -## u8g.disp:drawStr180() -See [u8glib drawStr180()](https://github.com/olikraus/u8glib/wiki/userreference#drawstr180). - -## u8g.disp:drawStr270() -See [u8glib drawStr270()](https://github.com/olikraus/u8glib/wiki/userreference#drawstr270). - -## u8g.disp:drawTriangle() -See [u8glib drawTriangle()](https://github.com/olikraus/u8glib/wiki/userreference#drawtriangle). - -## u8g.disp:drawVLine() -See [u8glib drawVLine()](https://github.com/olikraus/u8glib/wiki/userreference#drawvline). - -## u8g.disp:drawXBM() -Draw a XBM Bitmap. Position (x,y) is the upper left corner of the bitmap. -XBM contains monochrome, 1-bit bitmaps. This procedure only draws pixel values 1. The current color index is used for drawing (see setColorIndex). Pixel with value 0 are not drawn (transparent). - -Bitmaps and XBMs are supplied as strings to `drawBitmap()` and `drawXBM()`. This off-loads all data handling from the u8g module to generic methods for binary files. In contrast to the source code based inclusion of XBMs into u8glib, it's required to provide precompiled binary files. This can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result with [nodemcu-uploader.py](https://github.com/kmpm/nodemcu-uploader) or [ESPlorer](http://esp8266.ru/esplorer/). - -#### Syntax -`disp:drawXBM(x, y, w, h, bitmap)` - -#### Parameters -- `x` X-position (left position of the bitmap) -- `y` Y-position (upper position of the bitmap) -- `w` width of the bitmap -- `h` height of the bitmap -- `bitmap` XBM data supplied as string - -#### Returns -`nil` - -#### See also -- [u8glib drawXBM()](https://github.com/olikraus/u8glib/wiki/userreference#drawxbm) -- [lua_examples/u8glib/u8g_bitmaps.lua](https://github.com/nodemcu/nodemcu-firmware/blob/master/lua_examples/u8glib/u8g_bitmaps.lua) -- [u8g.disp:drawBitmap()](#u8gdispdrawbitmap) - -## u8g.disp:firstPage() -See [u8glib firstPage()](https://github.com/olikraus/u8glib/wiki/userreference#firstpage). - -## u8g.disp:getColorIndex() -See [u8glib getColorIndex()](https://github.com/olikraus/u8glib/wiki/userreference#getcolorindex). - -## u8g.disp:getFontAscent() -See [u8glib getFontAscent()](https://github.com/olikraus/u8glib/wiki/userreference#getfontascent). - -## u8g.disp:getFontDescent() -See [u8glib getFontDescent()](https://github.com/olikraus/u8glib/wiki/userreference#getfontdescent). - -## u8g.disp:getFontLineSpacing() -See [u8glib getFontLineSpacing()](https://github.com/olikraus/u8glib/wiki/userreference#getfontlinespacing). - -## u8g.disp:getHeight() -See [u8glib getHeight()](https://github.com/olikraus/u8glib/wiki/userreference#getheight). - -## u8g.disp:getMode() -See [u8glib getMode()](https://github.com/olikraus/u8glib/wiki/userreference#getmode). - -## u8g.disp:getWidth() -See [u8glib getWidth()](https://github.com/olikraus/u8glib/wiki/userreference#getwidth). - -## u8g.disp:getStrWidth() -See [u8glib getStrWidth](https://github.com/olikraus/u8glib/wiki/userreference#getstrwidth). - -## u8g.disp:nextPage() -See [u8glib nextPage()](https://github.com/olikraus/u8glib/wiki/userreference#nextpage). - -## u8g.disp:setColorIndex() -See [u8glib setColorIndex()](https://github.com/olikraus/u8glib/wiki/userreference#setcolortndex). - -## u8g.disp:setContrast() -See [u8glib setContrast()](https://github.com/olikraus/u8glib/wiki/userreference#setcontrast). - -## u8g.disp:setDefaultBackgroundColor() -See [u8glib setDefaultBackgroundColor()](https://github.com/olikraus/u8glib/wiki/userreference#setdefaultbackgroundcolor). - -## u8g.disp:setDefaultForegroundColor() -See [u8glib setDefaultForegroundColor()](https://github.com/olikraus/u8glib/wiki/userreference#setdefaultforegroundcolor). - -## u8g.disp:setFont() -u8glib comes with a wide range of fonts for small displays. -Since they need to be compiled into the firmware image, you'd need to include them in `app/include/u8g_config.h` and recompile. Simply add the desired fonts to the font table: -```c -#define U8G_FONT_TABLE \ - U8G_FONT_TABLE_ENTRY(font_6x10) \ - U8G_FONT_TABLE_ENTRY(font_chikita) -``` -They'll be available as `u8g.` in Lua. - -#### Syntax -`disp:setFont(font)` - -#### Parameters -`font` Constant to indentify pre-compiled font - -#### Returns -`nil` - -#### Example -```lua -disp:setFont(u8g.font_6x10) -``` - -#### See also -- [u8glib setFont()](https://github.com/olikraus/u8glib/wiki/userreference#setfont) - -## u8g.disp:setFontLineSpacingFactor() -See [u8glib setFontLineSpacingFactor()](https://github.com/olikraus/u8glib/wiki/userreference#setfontlinespacingfactor). - -## u8g.disp:setFontPosBaseline() -See [u8glib setFontPosBaseline()](https://github.com/olikraus/u8glib/wiki/userreference#setfontposbaseline). - -## u8g.disp:setFontPosBottom() -See [u8glib setFontPosBottom()](https://github.com/olikraus/u8glib/wiki/userreference#setfontposbottom). - -## u8g.disp:setFontPosCenter() -See [u8glib setFontPosCenter()](https://github.com/olikraus/u8glib/wiki/userreference#setfontposcenter). - -## u8g.disp:setFontPosTop() -See [u8glib setFontPosTop()](https://github.com/olikraus/u8glib/wiki/userreference#setfontpostop). - -## u8g.disp:setFontRefHeightAll() -See [u8glib setFontRefHeightAll()](https://github.com/olikraus/u8glib/wiki/userreference#setfontrefheightall). - -## u8g.disp:setFontRefHeightExtendedText() -See [u8glib setFontRefHeightExtendedText()](https://github.com/olikraus/u8glib/wiki/userreference#setfontrefheightextendedtext). - -## u8g.disp:setFontRefHeightText() -See [u8glib setFontRefHeightText()](https://github.com/olikraus/u8glib/wiki/userreference#setfontrefheighttext). - -## u8g.disp:setRot90() -See [u8glib setRot90()](https://github.com/olikraus/u8glib/wiki/userreference#setrot90). - -## u8g.disp:setRot180() -See [u8glib setRot180()](https://github.com/olikraus/u8glib/wiki/userreference#setrot180). - -## u8g.disp:setRot270() -See [u8glib setRot270()](https://github.com/olikraus/u8glib/wiki/userreference#setrot270). - -## u8g.disp:setScale2x2() -See [u8glib setScale2x2()](https://github.com/olikraus/u8glib/wiki/userreference#setscale2x2). - -## u8g.disp:sleepOn() -See [u8glib sleepOn()](https://github.com/olikraus/u8glib/wiki/userreference#sleepon). - -## u8g.disp:sleepOff() -See [u8glib sleepOff()](https://github.com/olikraus/u8glib/wiki/userreference#sleepoff). - -## u8g.disp:undoRotation() -See [u8glib undoRotation()](https://github.com/olikraus/u8glib/wiki/userreference#undorotation). - -## u8g.disp:undoScale() -See [u8glib undoScale()](https://github.com/olikraus/u8glib/wiki/userreference#undoscale). - -## Unimplemented Functions -- Cursor handling - - disableCursor() - - enableCursor() - - setCursorColor() - - setCursorFont() - - setCursorPos() - - setCursorStyle() -- General functions - - setPrintPos() - - setHardwareBackup() - - setRGB() - - setDefaultMidColor() diff --git a/mkdocs.yml b/mkdocs.yml index 3cc955ffd2..542df3c0a7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,7 +93,6 @@ pages: - 'tm1829': 'en/modules/tm1829.md' - 'tmr': 'en/modules/tmr.md' - 'tsl2561': 'en/modules/tsl2561.md' - - 'u8g': 'en/modules/u8g.md' - 'uart': 'en/modules/uart.md' - 'ucg': 'en/modules/ucg.md' - 'websocket': 'en/modules/websocket.md' From 7d04636689b589d97a4e0bc9d2d1035533833419 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sat, 18 Nov 2017 21:38:05 +0100 Subject: [PATCH 26/61] submodule u8g2 2.19.8 --- .gitmodules | 3 +++ app/u8g2lib/u8g2 | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 app/u8g2lib/u8g2 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..b9d60a3991 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "app/u8g2lib/u8g2"] + path = app/u8g2lib/u8g2 + url = https://github.com/olikraus/U8g2_Arduino.git diff --git a/app/u8g2lib/u8g2 b/app/u8g2lib/u8g2 new file mode 160000 index 0000000000..7f2fc42af3 --- /dev/null +++ b/app/u8g2lib/u8g2 @@ -0,0 +1 @@ +Subproject commit 7f2fc42af3d01fdfe2cc19320bdcfe693dd2b20d From 87bb96dfbef93d80d0f682cc98fa02ef80f12e0e Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sat, 18 Nov 2017 21:29:57 +0100 Subject: [PATCH 27/61] port u8g2 module from esp32 platform --- Makefile | 12 +- app/Makefile | 2 + app/include/u8g2_displays.h | 14 + app/include/u8g2_fonts.h | 12 + app/include/user_modules.h | 1 + app/modules/Makefile | 1 + app/modules/u8g2.c | 805 ++++++++++++++++++++++ app/platform/Makefile | 1 + app/platform/u8x8_nodemcu_hal.c | 283 ++++++++ app/platform/u8x8_nodemcu_hal.h | 26 + app/u8g2lib/Makefile | 50 ++ app/u8g2lib/u8x8_d_fbrle.c | 185 +++++ lua_examples/u8g2/graphics_test.lua | 263 +++++++ lua_examples/u8glib/u8g_bitmaps.lua | 115 ---- lua_examples/u8glib/u8g_drawloop.lua | 73 -- lua_examples/u8glib/u8g_graphics_test.lua | 177 ----- lua_examples/u8glib/u8g_rook.bm | Bin 8 -> 0 bytes lua_examples/u8glib/u8g_rotation.lua | 97 --- lua_examples/u8glib/u8glib_logo.xbm | Bin 120 -> 0 bytes 19 files changed, 1649 insertions(+), 468 deletions(-) create mode 100644 app/include/u8g2_displays.h create mode 100644 app/include/u8g2_fonts.h create mode 100644 app/modules/u8g2.c create mode 100644 app/platform/u8x8_nodemcu_hal.c create mode 100644 app/platform/u8x8_nodemcu_hal.h create mode 100644 app/u8g2lib/Makefile create mode 100644 app/u8g2lib/u8x8_d_fbrle.c create mode 100644 lua_examples/u8g2/graphics_test.lua delete mode 100644 lua_examples/u8glib/u8g_bitmaps.lua delete mode 100644 lua_examples/u8glib/u8g_drawloop.lua delete mode 100644 lua_examples/u8glib/u8g_graphics_test.lua delete mode 100644 lua_examples/u8glib/u8g_rook.bm delete mode 100644 lua_examples/u8glib/u8g_rotation.lua delete mode 100644 lua_examples/u8glib/u8glib_logo.xbm diff --git a/Makefile b/Makefile index 9709d97a70..425780b821 100644 --- a/Makefile +++ b/Makefile @@ -308,11 +308,11 @@ endif $(OBJODIR)/%.o: %.c - @mkdir -p $(OBJODIR); + @mkdir -p $(dir $@); $(CC) $(if $(findstring $<,$(DSRCS)),$(DFLAGS),$(CFLAGS)) $(COPTS_$(*F)) -o $@ -c $< $(OBJODIR)/%.d: %.c - @mkdir -p $(OBJODIR); + @mkdir -p $(dir $@); @echo DEPEND: $(CC) -M $(CFLAGS) $< @set -e; rm -f $@; \ $(CC) -M $(CFLAGS) $< > $@.$$$$; \ @@ -331,22 +331,22 @@ $(OBJODIR)/%.d: %.cpp rm -f $@.$$$$ $(OBJODIR)/%.o: %.s - @mkdir -p $(OBJODIR); + @mkdir -p $(dir $@); $(CC) $(CFLAGS) -o $@ -c $< $(OBJODIR)/%.d: %.s - @mkdir -p $(OBJODIR); \ + @mkdir -p $(dir $@); \ set -e; rm -f $@; \ $(CC) -M $(CFLAGS) $< > $@.$$$$; \ sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$ $(OBJODIR)/%.o: %.S - @mkdir -p $(OBJODIR); + @mkdir -p $(dir $@); $(CC) $(CFLAGS) -D__ASSEMBLER__ -o $@ -c $< $(OBJODIR)/%.d: %.S - @mkdir -p $(OBJODIR); \ + @mkdir -p $(dir $@); \ set -e; rm -f $@; \ $(CC) -M $(CFLAGS) $< > $@.$$$$; \ sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ diff --git a/app/Makefile b/app/Makefile index 711cf7a2bd..9ba4c24413 100644 --- a/app/Makefile +++ b/app/Makefile @@ -38,6 +38,7 @@ SUBDIRS= \ lua \ lwip \ task \ + u8g2lib \ smart \ modules \ spiffs \ @@ -68,6 +69,7 @@ COMPONENTS_eagle.app.v6 = \ libc/liblibc.a \ lua/liblua.a \ lwip/liblwip.a \ + u8g2lib/u8g2lib.a \ smart/smart.a \ spiffs/spiffs.a \ fatfs/libfatfs.a \ diff --git a/app/include/u8g2_displays.h b/app/include/u8g2_displays.h new file mode 100644 index 0000000000..915f0eed56 --- /dev/null +++ b/app/include/u8g2_displays.h @@ -0,0 +1,14 @@ + +#ifndef _U8G2_DISPLAYS_H +#define _U8G2_DISPLAYS_H + +#define U8G2_DISPLAY_TABLE_ENTRY(function, binding) + +#define U8G2_DISPLAY_TABLE_I2C \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ + +#define U8G2_DISPLAY_TABLE_SPI \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ + + +#endif /* _U8G2_DISPLAYS_H */ diff --git a/app/include/u8g2_fonts.h b/app/include/u8g2_fonts.h new file mode 100644 index 0000000000..b72e88eaf7 --- /dev/null +++ b/app/include/u8g2_fonts.h @@ -0,0 +1,12 @@ + +#ifndef _U8G2_FONTS_H +#define _U8G2_FONTS_H + +#define U8G2_FONT_TABLE_ENTRY(font) + +#define U8G2_FONT_TABLE \ + U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \ + U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ + + +#endif /* _U8G2_FONTS_H */ diff --git a/app/include/user_modules.h b/app/include/user_modules.h index 8f8c03274a..009accd9e0 100644 --- a/app/include/user_modules.h +++ b/app/include/user_modules.h @@ -65,6 +65,7 @@ #define LUA_USE_MODULES_TMR //#define LUA_USE_MODULES_TSL2561 #define LUA_USE_MODULES_UART +//#define LUA_USE_MODULES_U8G2 //#define LUA_USE_MODULES_UCG //#define LUA_USE_MODULES_WEBSOCKET #define LUA_USE_MODULES_WIFI diff --git a/app/modules/Makefile b/app/modules/Makefile index 37a5c1d805..cf80b63ccf 100644 --- a/app/modules/Makefile +++ b/app/modules/Makefile @@ -43,6 +43,7 @@ INCLUDES += -I ./ INCLUDES += -I ../libc INCLUDES += -I ../coap INCLUDES += -I ../mqtt +INCLUDES += -I ../u8g2lib/u8g2/src/clib INCLUDES += -I ../ucglib INCLUDES += -I ../lua INCLUDES += -I ../pcm diff --git a/app/modules/u8g2.c b/app/modules/u8g2.c new file mode 100644 index 0000000000..3d7c5e09d6 --- /dev/null +++ b/app/modules/u8g2.c @@ -0,0 +1,805 @@ +// Module for binding the u8g2 library +// Note: This file is intended to be shared between esp8266 and esp32 platform + +#include "module.h" +#include "lauxlib.h" + +#define U8X8_USE_PINS +#include "u8g2.h" +#include "u8x8_nodemcu_hal.h" + +#include "u8g2_displays.h" +#include "u8g2_fonts.h" + +#ifdef ESP_PLATFORM +#include "spi_common.h" + +#include "sdkconfig.h" +#endif + +#ifndef CONFIG_LUA_MODULE_U8G2 +// ignore unused functions if u8g2 module will be skipped anyhow +#pragma GCC diagnostic ignored "-Wunused-function" +#endif + + +typedef struct { + int font_ref; + int host_ref; + u8g2_nodemcu_t u8g2; +} u8g2_ud_t; + +#define GET_U8G2() \ + u8g2_ud_t *ud = (u8g2_ud_t *)luaL_checkudata( L, 1, "u8g2.display" ); \ + u8g2_t *u8g2 = (u8g2_t *)(&(ud->u8g2)); + +static int lu8g2_clearBuffer( lua_State *L ) +{ + GET_U8G2(); + + u8g2_ClearBuffer( u8g2 ); + + return 0; +} + +static int lu8g2_drawBox( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + + u8g2_DrawBox( u8g2, x, y, w, h ); + + return 0; +} + +static int lu8g2_drawCircle( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int rad = luaL_checkint( L, ++stack ); + int opt = luaL_optint( L, ++stack, U8G2_DRAW_ALL ); + + u8g2_DrawCircle( u8g2, x0, y0, rad, opt ); + + return 0; +} + +static int lu8g2_drawDisc( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int rad = luaL_checkint( L, ++stack ); + int opt = luaL_optint( L, ++stack, U8G2_DRAW_ALL ); + + u8g2_DrawDisc( u8g2, x0, y0, rad, opt ); + + return 0; +} + +static int lu8g2_drawEllipse( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int rx = luaL_checkint( L, ++stack ); + int ry = luaL_checkint( L, ++stack ); + int opt = luaL_optint( L, ++stack, U8G2_DRAW_ALL ); + + u8g2_DrawEllipse( u8g2, x0, y0, rx, ry, opt ); + + return 0; +} + +static int lu8g2_drawFilledEllipse( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int rx = luaL_checkint( L, ++stack ); + int ry = luaL_checkint( L, ++stack ); + int opt = luaL_optint( L, ++stack, U8G2_DRAW_ALL ); + + u8g2_DrawFilledEllipse( u8g2, x0, y0, rx, ry, opt ); + + return 0; +} + +static int lu8g2_drawFrame( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + + u8g2_DrawFrame( u8g2, x, y, w, h ); + + return 0; +} + +static int lu8g2_drawGlyph( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int enc = luaL_checkint( L, ++stack ); + + u8g2_DrawGlyph( u8g2, x, y, enc ); + + return 0; +} + +static int lu8g2_drawHLine( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + + u8g2_DrawHLine( u8g2, x, y, w ); + + return 0; +} + +static int lu8g2_drawLine( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int x1 = luaL_checkint( L, ++stack ); + int y1 = luaL_checkint( L, ++stack ); + + u8g2_DrawLine( u8g2, x0, y0, x1, y1 ); + + return 0; +} + +static int lu8g2_drawPixel( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + + u8g2_DrawPixel( u8g2, x, y ); + + return 0; +} + +static int lu8g2_drawRBox( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + int r = luaL_checkint( L, ++stack ); + + u8g2_DrawRBox( u8g2, x, y, w, h, r ); + + return 0; +} + +static int lu8g2_drawRFrame( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + int r = luaL_checkint( L, ++stack ); + + u8g2_DrawRFrame( u8g2, x, y, w, h, r ); + + return 0; +} + +static int lu8g2_drawStr( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + const char *str = luaL_checkstring( L, ++stack ); + + u8g2_DrawStr( u8g2, x, y, str ); + + return 0; +} + +static int lu8g2_drawTriangle( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x0 = luaL_checkint( L, ++stack ); + int y0 = luaL_checkint( L, ++stack ); + int x1 = luaL_checkint( L, ++stack ); + int y1 = luaL_checkint( L, ++stack ); + int x2 = luaL_checkint( L, ++stack ); + int y2 = luaL_checkint( L, ++stack ); + + u8g2_DrawTriangle( u8g2, x0, y0, x1, y1, x2, y2 ); + + return 0; +} + +static int lu8g2_drawUTF8( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + const char *str = luaL_checkstring( L, ++stack ); + + u8g2_DrawUTF8( u8g2, x, y, str ); + + return 0; +} + +static int lu8g2_drawVLine( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + + u8g2_DrawVLine( u8g2, x, y, h ); + + return 0; +} + +static int lu8g2_drawXBM( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int x = luaL_checkint( L, ++stack ); + int y = luaL_checkint( L, ++stack ); + int w = luaL_checkint( L, ++stack ); + int h = luaL_checkint( L, ++stack ); + size_t len; + const char *bitmap = luaL_checklstring( L, ++stack, &len ); + + u8g2_DrawXBM( u8g2, x, y, w, h, (uint8_t *)bitmap ); + + return 0; +} + +static int lu8g2_getAscent( lua_State *L ) +{ + GET_U8G2(); + + lua_pushinteger( L, u8g2_GetAscent( u8g2 ) ); + return 1; +} + +static int lu8g2_getDescent( lua_State *L ) +{ + GET_U8G2(); + + lua_pushinteger( L, u8g2_GetDescent( u8g2 ) ); + return 1; +} + +static int lu8g2_getStrWidth( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + const char *s = luaL_checkstring( L, ++stack ); + + lua_pushinteger( L, u8g2_GetStrWidth( u8g2, s ) ); + return 1; +} + +static int lu8g2_getUTF8Width( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + const char *s = luaL_checkstring( L, ++stack ); + + lua_pushinteger( L, u8g2_GetUTF8Width( u8g2, s ) ); + return 1; +} + +static int lu8g2_sendBuffer( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SendBuffer( u8g2 ); + + return 0; +} + +static int lu8g2_setBitmapMode( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int is_transparent = luaL_checkint( L, ++stack ); + + u8g2_SetBitmapMode( u8g2, is_transparent ); + + return 0; +} + +static int lu8g2_setContrast( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int value = luaL_checkint( L, ++stack ); + + u8g2_SetContrast( u8g2, value ); + + return 0; +} + +static int lu8g2_setDisplayRotation( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + const u8g2_cb_t *u8g2_cb = (u8g2_cb_t *)lua_touserdata( L, ++stack ); + + u8g2_SetDisplayRotation( u8g2, u8g2_cb ); + + return 0; +} + +static int lu8g2_setDrawColor( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int col = luaL_checkint( L, ++stack ); + + u8g2_SetDrawColor( u8g2, col ); + + return 0; +} + +static int lu8g2_setFlipMode( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int is_enable = luaL_checkint( L, ++stack ); + + u8g2_SetFlipMode( u8g2, is_enable ); + + return 0; +} + +static int lu8g2_setFont( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + const uint8_t *font = NULL; + + luaL_unref( L, LUA_REGISTRYINDEX, ud->font_ref ); + ud->font_ref = LUA_NOREF; + + if (lua_islightuserdata( L, ++stack )) { + font = (const uint8_t *)lua_touserdata( L, stack ); + + } else if (lua_isstring( L, stack )) { + // ref the font string to safe it in case the string variable gets gc'ed + lua_pushvalue( L, stack ); + ud->font_ref = luaL_ref( L, LUA_REGISTRYINDEX ); + + size_t len; + font = (const uint8_t *)luaL_checklstring( L, stack, &len ); + + } + luaL_argcheck( L, font != NULL, stack, "invalid font" ); + + u8g2_SetFont( u8g2, font ); + + return 0; +} + +static int lu8g2_setFontDirection( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int dir = luaL_checkint( L, ++stack ); + + u8g2_SetFontDirection( u8g2, dir ); + + return 0; +} + +static int lu8g2_setFontMode( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int is_transparent = luaL_checkint( L, ++stack ); + + u8g2_SetFontMode( u8g2, is_transparent ); + + return 0; +} + +static int lu8g2_setFontPosBaseline( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontPosBaseline( u8g2 ); + + return 0; +} + +static int lu8g2_setFontPosBottom( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontPosBottom( u8g2 ); + + return 0; +} + +static int lu8g2_setFontPosTop( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontPosTop( u8g2 ); + + return 0; +} + +static int lu8g2_setFontPosCenter( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontPosCenter( u8g2 ); + + return 0; +} + +static int lu8g2_setFontRefHeightAll( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontRefHeightAll( u8g2 ); + + return 0; +} + +static int lu8g2_setFontRefHeightExtendedText( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontRefHeightExtendedText( u8g2 ); + + return 0; +} + +static int lu8g2_setFontRefHeightText( lua_State *L ) +{ + GET_U8G2(); + + u8g2_SetFontRefHeightText( u8g2 ); + + return 0; +} + +static int lu8g2_setPowerSave( lua_State *L ) +{ + GET_U8G2(); + int stack = 1; + + int is_enable = luaL_checkint( L, ++stack ); + + u8g2_SetPowerSave( u8g2, is_enable ); + + return 0; +} + + +static const LUA_REG_TYPE lu8g2_display_map[] = { + { LSTRKEY( "clearBuffer" ), LFUNCVAL( lu8g2_clearBuffer ) }, + { LSTRKEY( "drawBox" ), LFUNCVAL( lu8g2_drawBox ) }, + { LSTRKEY( "drawCircle" ), LFUNCVAL( lu8g2_drawCircle ) }, + { LSTRKEY( "drawDisc" ), LFUNCVAL( lu8g2_drawDisc ) }, + { LSTRKEY( "drawEllipse" ), LFUNCVAL( lu8g2_drawEllipse ) }, + { LSTRKEY( "drawFilledEllipse" ), LFUNCVAL( lu8g2_drawFilledEllipse ) }, + { LSTRKEY( "drawFrame" ), LFUNCVAL( lu8g2_drawFrame ) }, + { LSTRKEY( "drawGlyph" ), LFUNCVAL( lu8g2_drawGlyph ) }, + { LSTRKEY( "drawHLine" ), LFUNCVAL( lu8g2_drawHLine ) }, + { LSTRKEY( "drawLine" ), LFUNCVAL( lu8g2_drawLine ) }, + { LSTRKEY( "drawPixel" ), LFUNCVAL( lu8g2_drawPixel ) }, + { LSTRKEY( "drawRBox" ), LFUNCVAL( lu8g2_drawRBox ) }, + { LSTRKEY( "drawRFrame" ), LFUNCVAL( lu8g2_drawRFrame ) }, + { LSTRKEY( "drawStr" ), LFUNCVAL( lu8g2_drawStr ) }, + { LSTRKEY( "drawTriangle" ), LFUNCVAL( lu8g2_drawTriangle ) }, + { LSTRKEY( "drawUTF8" ), LFUNCVAL( lu8g2_drawUTF8 ) }, + { LSTRKEY( "drawVLine" ), LFUNCVAL( lu8g2_drawVLine ) }, + { LSTRKEY( "drawXBM" ), LFUNCVAL( lu8g2_drawXBM ) }, + { LSTRKEY( "getAscent" ), LFUNCVAL( lu8g2_getAscent ) }, + { LSTRKEY( "getDescent" ), LFUNCVAL( lu8g2_getDescent ) }, + { LSTRKEY( "getStrWidth" ), LFUNCVAL( lu8g2_getStrWidth ) }, + { LSTRKEY( "getUTF8Width" ), LFUNCVAL( lu8g2_getUTF8Width ) }, + { LSTRKEY( "sendBuffer" ), LFUNCVAL( lu8g2_sendBuffer ) }, + { LSTRKEY( "setBitmapMode" ), LFUNCVAL( lu8g2_setBitmapMode ) }, + { LSTRKEY( "setContrast" ), LFUNCVAL( lu8g2_setContrast ) }, + { LSTRKEY( "setDisplayRotation" ), LFUNCVAL( lu8g2_setDisplayRotation ) }, + { LSTRKEY( "setDrawColor" ), LFUNCVAL( lu8g2_setDrawColor ) }, + { LSTRKEY( "setFlipMode" ), LFUNCVAL( lu8g2_setFlipMode ) }, + { LSTRKEY( "setFont" ), LFUNCVAL( lu8g2_setFont ) }, + { LSTRKEY( "setFontDirection" ), LFUNCVAL( lu8g2_setFontDirection ) }, + { LSTRKEY( "setFontMode" ), LFUNCVAL( lu8g2_setFontMode ) }, + { LSTRKEY( "setFontPosBaseline" ), LFUNCVAL( lu8g2_setFontPosBaseline ) }, + { LSTRKEY( "setFontPosBottom" ), LFUNCVAL( lu8g2_setFontPosBottom ) }, + { LSTRKEY( "setFontPosTop" ), LFUNCVAL( lu8g2_setFontPosTop ) }, + { LSTRKEY( "setFontPosCenter" ), LFUNCVAL( lu8g2_setFontPosCenter ) }, + { LSTRKEY( "setFontRefHeightAll" ), LFUNCVAL( lu8g2_setFontRefHeightAll ) }, + { LSTRKEY( "setFontRefHeightExtendedText" ), LFUNCVAL( lu8g2_setFontRefHeightExtendedText ) }, + { LSTRKEY( "setFontRefHeightText" ), LFUNCVAL( lu8g2_setFontRefHeightText ) }, + { LSTRKEY( "setPowerSave" ), LFUNCVAL( lu8g2_setPowerSave ) }, + //{ LSTRKEY( "__gc" ), LFUNCVAL( lu8g2_display_free ) }, + { LSTRKEY( "__index" ), LROVAL( lu8g2_display_map ) }, + {LNILKEY, LNILVAL} +}; + + +uint8_t u8x8_d_overlay(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); + +typedef void (*display_setup_fn_t)(u8g2_t *u8g2, const u8g2_cb_t *rotation, u8x8_msg_cb byte_cb, u8x8_msg_cb gpio_and_delay_cb); + +// *************************************************************************** +// Device constructors +// +// I2C based devices will use this function template to implement the Lua binding. +// +static int ldisplay_i2c( lua_State *L, display_setup_fn_t setup_fn ) +{ + int stack = 0; + + int id = -1; + int i2c_addr = -1; + int rfb_cb_ref = LUA_NOREF; + + if (lua_type( L, ++stack) == LUA_TNUMBER) { + /* hardware display connected */ + id = luaL_checkint( L, stack ); + i2c_addr = luaL_checkint( L, ++stack ); + luaL_argcheck( L, i2c_addr >= 0 && i2c_addr <= 0x7f, stack, "invalid i2c address" ); + } else + stack--; + if (lua_isfunction( L, ++stack )) { + lua_pushvalue( L, stack ); + rfb_cb_ref = luaL_ref( L, LUA_REGISTRYINDEX ); + } + if (id < 0 && rfb_cb_ref == LUA_NOREF) + return luaL_error( L, "wrong args" ); + + u8g2_ud_t *ud = (u8g2_ud_t *)lua_newuserdata( L, sizeof( u8g2_ud_t ) ); + u8g2_nodemcu_t *ext_u8g2 = &(ud->u8g2); + ud->font_ref = LUA_NOREF; + ud->host_ref = LUA_NOREF; + /* the i2c driver id is forwarded in the hal member */ + ext_u8g2->hal = id >= 0 ? (void *)id : NULL; + + u8g2_t *u8g2 = (u8g2_t *)ext_u8g2; + u8x8_t *u8x8 = (u8x8_t *)u8g2; + + setup_fn( u8g2, U8G2_R0, u8x8_byte_nodemcu_i2c, u8x8_gpio_and_delay_nodemcu ); + + /* prepare overlay data */ + if (rfb_cb_ref != LUA_NOREF) { + ext_u8g2->overlay.template_display_cb = u8x8->display_cb; + ext_u8g2->overlay.hardware_display_cb = NULL; + ext_u8g2->overlay.rfb_cb_ref = LUA_NOREF; + u8x8->display_cb = u8x8_d_overlay; + } + if (id >= 0) { + /* hardware device specific initialization */ + u8x8_SetI2CAddress( u8x8, i2c_addr ); + ext_u8g2->overlay.hardware_display_cb = ext_u8g2->overlay.template_display_cb; + } + + u8g2_InitDisplay( (u8g2_t *)u8g2 ); + u8g2_ClearDisplay( (u8g2_t *)u8g2 ); + u8g2_SetPowerSave( (u8g2_t *)u8g2, 0 ); + + if (rfb_cb_ref != LUA_NOREF) { + /* finally enable rfb display driver */ + ext_u8g2->overlay.rfb_cb_ref = rfb_cb_ref; + } + + /* set its metatable */ + luaL_getmetatable(L, "u8g2.display"); + lua_setmetatable(L, -2); + + return 1; +} +// +// SPI based devices will use this function template to implement the Lua binding. +// +static int ldisplay_spi( lua_State *L, display_setup_fn_t setup_fn ) +{ + int stack = 0; + +#ifndef ESP_PLATFORM + typedef struct { + int host; + } lspi_host_t; + lspi_host_t host_elem; + lspi_host_t *host = &host_elem; +#else + lspi_host_t *host = NULL; +#endif + int host_ref = LUA_NOREF; + int cs = -1; + int dc = -1; + int res = -1; + int rfb_cb_ref = LUA_NOREF; + int get_spi_pins; + + + if (lua_type( L, ++stack ) == LUA_TUSERDATA) { + host = (lspi_host_t *)luaL_checkudata( L, stack, "spi.master" ); + /* reference host object to avoid automatic gc */ + lua_pushvalue( L, stack ); + host_ref = luaL_ref( L, LUA_REGISTRYINDEX ); + get_spi_pins = TRUE; + } else if (lua_type( L, stack ) == LUA_TNUMBER) { + host->host = luaL_checkint( L, stack ); + get_spi_pins = TRUE; + } else { + get_spi_pins = FALSE; + stack--; + } + + if (get_spi_pins) { + cs = luaL_checkint( L, ++stack ); + dc = luaL_checkint( L, ++stack ); + res = luaL_optint( L, ++stack, -1 ); + } + + if (lua_isfunction( L, ++stack )) { + lua_pushvalue( L, stack ); + rfb_cb_ref = luaL_ref( L, LUA_REGISTRYINDEX ); + } + if (!host && rfb_cb_ref == LUA_NOREF) + return luaL_error( L, "wrong args" ); + + u8g2_ud_t *ud = (u8g2_ud_t *)lua_newuserdata( L, sizeof( u8g2_ud_t ) ); + u8g2_nodemcu_t *ext_u8g2 = &(ud->u8g2); + ud->font_ref = LUA_NOREF; + ud->host_ref = host_ref; + /* the spi host id is forwarded in the hal member */ + ext_u8g2->hal = host ? (void *)(host->host) : NULL; + + u8g2_t *u8g2 = (u8g2_t *)ext_u8g2; + u8x8_t *u8x8 = (u8x8_t *)u8g2; + + setup_fn( u8g2, U8G2_R0, u8x8_byte_nodemcu_spi, u8x8_gpio_and_delay_nodemcu ); + + /* prepare overlay data */ + if (rfb_cb_ref != LUA_NOREF) { + ext_u8g2->overlay.template_display_cb = u8x8->display_cb; + ext_u8g2->overlay.hardware_display_cb = NULL; + ext_u8g2->overlay.rfb_cb_ref = LUA_NOREF; + u8x8->display_cb = u8x8_d_overlay; + } + if (host) { + /* hardware specific device initialization */ + u8x8_SetPin( u8x8, U8X8_PIN_CS, cs ); + u8x8_SetPin( u8x8, U8X8_PIN_DC, dc ); + if (res >= 0) + u8x8_SetPin( u8x8, U8X8_PIN_RESET, res ); + ext_u8g2->overlay.hardware_display_cb = ext_u8g2->overlay.template_display_cb; + } + + u8g2_InitDisplay( (u8g2_t *)u8g2 ); + u8g2_ClearDisplay( (u8g2_t *)u8g2 ); + u8g2_SetPowerSave( (u8g2_t *)u8g2, 0 ); + + if (rfb_cb_ref != LUA_NOREF) { + /* finally enable rfb display driver */ + ext_u8g2->overlay.rfb_cb_ref = rfb_cb_ref; + } + + /* set its metatable */ + luaL_getmetatable(L, "u8g2.display"); + lua_setmetatable(L, -2); + + return 1; +} +// +// +#undef U8G2_DISPLAY_TABLE_ENTRY +#define U8G2_DISPLAY_TABLE_ENTRY(function, binding) \ + static int l ## binding( lua_State *L ) \ + { \ + return ldisplay_i2c( L, function ); \ + } +// +// Unroll the display table and insert binding functions for I2C based displays. +U8G2_DISPLAY_TABLE_I2C +// +// +#undef U8G2_DISPLAY_TABLE_ENTRY +#define U8G2_DISPLAY_TABLE_ENTRY(function, binding) \ + static int l ## binding( lua_State *L ) \ + { \ + return ldisplay_spi( L, function ); \ + } +// +// Unroll the display table and insert binding functions for SPI based displays. +U8G2_DISPLAY_TABLE_SPI +// + + +#undef U8G2_FONT_TABLE_ENTRY +#undef U8G2_DISPLAY_TABLE_ENTRY +#define U8G2_DISPLAY_TABLE_ENTRY(function, binding) \ + { LSTRKEY( #binding ), LFUNCVAL( l ## binding ) }, + +static const LUA_REG_TYPE lu8g2_map[] = { + U8G2_DISPLAY_TABLE_I2C + U8G2_DISPLAY_TABLE_SPI + // + // Register fonts +#define U8G2_FONT_TABLE_ENTRY(font) \ + { LSTRKEY( #font ), LUDATA( (void *)(u8g2_ ## font) ) }, + U8G2_FONT_TABLE + // + { LSTRKEY( "DRAW_UPPER_RIGHT" ), LNUMVAL( U8G2_DRAW_UPPER_RIGHT ) }, + { LSTRKEY( "DRAW_UPPER_LEFT" ), LNUMVAL( U8G2_DRAW_UPPER_LEFT ) }, + { LSTRKEY( "DRAW_LOWER_RIGHT" ), LNUMVAL( U8G2_DRAW_LOWER_RIGHT ) }, + { LSTRKEY( "DRAW_LOWER_LEFT" ), LNUMVAL( U8G2_DRAW_LOWER_LEFT ) }, + { LSTRKEY( "DRAW_ALL" ), LNUMVAL( U8G2_DRAW_ALL ) }, + { LSTRKEY( "R0" ), LUDATA( (void *)U8G2_R0 ) }, + { LSTRKEY( "R1" ), LUDATA( (void *)U8G2_R1 ) }, + { LSTRKEY( "R2" ), LUDATA( (void *)U8G2_R2 ) }, + { LSTRKEY( "R3" ), LUDATA( (void *)U8G2_R3 ) }, + { LSTRKEY( "MIRROR" ), LUDATA( (void *)U8G2_MIRROR ) }, + {LNILKEY, LNILVAL} +}; + +int luaopen_u8g2( lua_State *L ) { + luaL_rometatable(L, "u8g2.display", (void *)lu8g2_display_map); + return 0; +} + +NODEMCU_MODULE(U8G2, "u8g2", lu8g2_map, luaopen_u8g2); diff --git a/app/platform/Makefile b/app/platform/Makefile index 18efcabe56..00485dcba0 100644 --- a/app/platform/Makefile +++ b/app/platform/Makefile @@ -43,6 +43,7 @@ INCLUDES += -I ./ INCLUDES += -I ../spiffs INCLUDES += -I ../libc INCLUDES += -I ../lua +INCLUDES += -I ../u8g2lib/u8g2/src/clib PDIR := ../$(PDIR) sinclude $(PDIR)Makefile diff --git a/app/platform/u8x8_nodemcu_hal.c b/app/platform/u8x8_nodemcu_hal.c new file mode 100644 index 0000000000..fee13381a9 --- /dev/null +++ b/app/platform/u8x8_nodemcu_hal.c @@ -0,0 +1,283 @@ + +#include +#include "c_stdlib.h" + +#include "platform.h" + +#define U8X8_USE_PINS +#include "u8x8_nodemcu_hal.h" + + +uint8_t u8x8_gpio_and_delay_nodemcu(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + uint32_t temp; + + switch(msg) + { + case U8X8_MSG_GPIO_AND_DELAY_INIT: // called once during init phase of u8g2/u8x8 + // can be used to setup pins + for (int idx = 0; idx < U8X8_PIN_OUTPUT_CNT; idx++) { + if (u8x8->pins[idx] != U8X8_PIN_NONE) { + // configure pin as output + if (idx == U8X8_PIN_I2C_CLOCK || idx == U8X8_PIN_I2C_DATA) { + platform_gpio_mode( u8x8->pins[idx], PLATFORM_GPIO_OPENDRAIN, PLATFORM_GPIO_PULLUP ); + } else { + platform_gpio_mode( u8x8->pins[idx], PLATFORM_GPIO_OUTPUT, PLATFORM_GPIO_FLOAT ); + } + } + } + break; + + case U8X8_MSG_DELAY_NANO: // delay arg_int * 1 nano second + os_delay_us( 1 ); + break; + + case U8X8_MSG_DELAY_100NANO: // delay arg_int * 100 nano seconds + temp = arg_int * 100; + temp /= 1000; + os_delay_us( temp > 0 ? temp : 1 ); + break; + + case U8X8_MSG_DELAY_10MICRO: // delay arg_int * 10 micro seconds + os_delay_us( arg_int * 10 ); + break; + + case U8X8_MSG_DELAY_MILLI: // delay arg_int * 1 milli second + os_delay_us( arg_int * 1000 ); + break; + + case U8X8_MSG_DELAY_I2C: // arg_int is the I2C speed in 100KHz, e.g. 4 = 400 KHz + temp = 5000 / arg_int; // arg_int=1: delay by 5us, arg_int = 4: delay by 1.25us + temp /= 1000; + os_delay_us( temp > 0 ? temp : 1 ); + break; + + case U8X8_MSG_GPIO_D0: // D0 or SPI clock pin: Output level in arg_int + //case U8X8_MSG_GPIO_SPI_CLOCK: + break; + case U8X8_MSG_GPIO_D1: // D1 or SPI data pin: Output level in arg_int + //case U8X8_MSG_GPIO_SPI_DATA: + break; + case U8X8_MSG_GPIO_D2: // D2 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_D3: // D3 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_D4: // D4 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_D5: // D5 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_D6: // D6 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_D7: // D7 pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_E: // E/WR pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_CS: // CS (chip select) pin: Output level in arg_int + platform_gpio_write( u8x8_GetPinValue( u8x8, msg ), arg_int ); + break; + case U8X8_MSG_GPIO_DC: // DC (data/cmd, A0, register select) pin: Output level in arg_int + platform_gpio_write( u8x8_GetPinValue( u8x8, msg ), arg_int ); + break; + case U8X8_MSG_GPIO_RESET: // Reset pin: Output level in arg_int + if (u8x8_GetPinValue( u8x8, msg ) != U8X8_PIN_NONE) + platform_gpio_write( u8x8_GetPinValue(u8x8, msg), arg_int ); + break; + case U8X8_MSG_GPIO_CS1: // CS1 (chip select) pin: Output level in arg_int + break; + case U8X8_MSG_GPIO_CS2: // CS2 (chip select) pin: Output level in arg_int + break; + + case U8X8_MSG_GPIO_I2C_CLOCK: // arg_int=0: Output low at I2C clock pin + // arg_int=1: Input dir with pullup high for I2C clock pin + // for SW comm routine + platform_gpio_write( u8x8_GetPinValue( u8x8, msg ), arg_int ); + break; + + case U8X8_MSG_GPIO_I2C_DATA: // arg_int=0: Output low at I2C data pin + // arg_int=1: Input dir with pullup high for I2C data pin + // for SW comm routine + platform_gpio_write( u8x8_GetPinValue( u8x8, msg ), arg_int ); + break; + + case U8X8_MSG_GPIO_MENU_SELECT: + case U8X8_MSG_GPIO_MENU_NEXT: + case U8X8_MSG_GPIO_MENU_PREV: + case U8X8_MSG_GPIO_MENU_HOME: + u8x8_SetGPIOResult( u8x8, /* get menu select pin state */ 0 ); + break; + default: + u8x8_SetGPIOResult( u8x8, 1 ); // default return value + break; + } + return 1; +} + + +// static variables containing info about the i2c link +// TODO: move to user space in u8x8_t once available +typedef struct { + uint8_t id; +} hal_i2c_t; + +uint8_t u8x8_byte_nodemcu_i2c(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + uint8_t *data; + hal_i2c_t *hal = ((u8g2_nodemcu_t *)u8x8)->hal; + + switch(msg) { + case U8X8_MSG_BYTE_SEND: + if (hal->id == 0) { + data = (uint8_t *)arg_ptr; + + while( arg_int > 0 ) { + platform_i2c_send_byte( 0, *data ); + data++; + arg_int--; + } + + } else { + // invalid id + return 0; + } + + break; + + case U8X8_MSG_BYTE_INIT: + { + // the hal member initially contains the i2c id + int id = (int)hal; + if (!(hal = c_malloc( sizeof ( hal_i2c_t ) ))) + return 0; + hal->id = id; + ((u8g2_nodemcu_t *)u8x8)->hal = hal; + } + break; + + case U8X8_MSG_BYTE_SET_DC: + break; + + case U8X8_MSG_BYTE_START_TRANSFER: + if (hal->id == 0) { + platform_i2c_send_start( 0 ); + platform_i2c_send_address( 0, u8x8_GetI2CAddress(u8x8), PLATFORM_I2C_DIRECTION_TRANSMITTER ); + + } else { + // invalid id + return 0; + } + break; + + case U8X8_MSG_BYTE_END_TRANSFER: + if (hal->id == 0) { + platform_i2c_send_stop( 0 ); + + } else { + // invalid id + return 0; + } + break; + + default: + return 0; + } + + return 1; +} + + +// static variables containing info about the spi link +// TODO: move to user space in u8x8_t once available +typedef struct { + uint8_t host; + //spi_device_handle_t device; + uint8_t last_dc; + struct { + uint8_t *data; + size_t size, used; + } buffer; +} hal_spi_t; + +static void flush_buffer_spi( hal_spi_t *hal ) +{ + if (hal->buffer.used > 0) { + platform_spi_blkwrite( hal->host, hal->buffer.used, hal->buffer.data ); + + hal->buffer.used = 0; + } +} + +uint8_t u8x8_byte_nodemcu_spi(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + hal_spi_t *hal = ((u8g2_nodemcu_t *)u8x8)->hal; + + switch(msg) { + case U8X8_MSG_BYTE_INIT: + { + /* disable chipselect */ + u8x8_gpio_SetCS( u8x8, u8x8->display_info->chip_disable_level ); + + // the hal member initially contains the spi host id + int host = (int)hal; + if (!(hal = c_malloc( sizeof ( hal_spi_t ) ))) + return 0; + hal->host = host; + ((u8g2_nodemcu_t *)u8x8)->hal = hal; + + hal->last_dc = 0; + } + break; + + case U8X8_MSG_BYTE_SET_DC: + if (hal->last_dc != arg_int) + flush_buffer_spi( hal ); + + u8x8_gpio_SetDC( u8x8, arg_int ); + hal->last_dc = arg_int; + break; + + case U8X8_MSG_BYTE_START_TRANSFER: + hal->buffer.size = 256; + if (!(hal->buffer.data = (uint8_t *)c_malloc( hal->buffer.size ))) + return 0; + hal->buffer.used = 0; + + u8x8_gpio_SetCS( u8x8, u8x8->display_info->chip_enable_level ); + break; + + case U8X8_MSG_BYTE_SEND: + if (!hal->buffer.data) + return 0; + + while (hal->buffer.size - hal->buffer.used < arg_int) { + hal->buffer.size *= 2; + uint8_t *tmp; + if (!(tmp = (uint8_t *)c_malloc( hal->buffer.size ))) { + c_free( hal->buffer.data ); + hal->buffer.data = NULL; + return 0; + } + os_memcpy( tmp, hal->buffer.data, hal->buffer.used ); + c_free( hal->buffer.data ); + hal->buffer.data = tmp; + } + os_memcpy( hal->buffer.data + hal->buffer.used, arg_ptr, arg_int ); + hal->buffer.used += arg_int; + break; + + case U8X8_MSG_BYTE_END_TRANSFER: + if (!hal->buffer.data) + return 0; + + flush_buffer_spi( hal ); + + u8x8_gpio_SetCS( u8x8, u8x8->display_info->chip_disable_level ); + + c_free( hal->buffer.data ); + break; + + default: + return 0; + } + + return 1; +} diff --git a/app/platform/u8x8_nodemcu_hal.h b/app/platform/u8x8_nodemcu_hal.h new file mode 100644 index 0000000000..22a17402bc --- /dev/null +++ b/app/platform/u8x8_nodemcu_hal.h @@ -0,0 +1,26 @@ + +#ifndef _U8X8_NODEMCU_HAL_H +#define _U8X8_NODEMCU_HAL_H + +#include "u8g2.h" + + +// extend standard u8g2_t struct with info that's needed in the communication callbacks +typedef struct { + u8g2_t u8g2; + void *hal; + + // elements for the overlay display driver + struct { + u8x8_msg_cb hardware_display_cb, template_display_cb; + int rfb_cb_ref; + uint8_t fb_update_ongoing; + } overlay; +} u8g2_nodemcu_t; + + +uint8_t u8x8_gpio_and_delay_nodemcu(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); +uint8_t u8x8_byte_nodemcu_i2c(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); +uint8_t u8x8_byte_nodemcu_spi(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr); + +#endif /* _U8X8_NODEMCU_HAL_H */ diff --git a/app/u8g2lib/Makefile b/app/u8g2lib/Makefile new file mode 100644 index 0000000000..3916564f02 --- /dev/null +++ b/app/u8g2lib/Makefile @@ -0,0 +1,50 @@ + +############################################################# +# Required variables for each makefile +# Discard this section from all parent makefiles +# Expected variables (with automatic defaults): +# CSRCS (all "C" files in the dir) +# SUBDIRS (all subdirs with a Makefile) +# GEN_LIBS - list of libs to be generated () +# GEN_IMAGES - list of images to be generated () +# COMPONENTS_xxx - a list of libs/objs in the form +# subdir/lib to be extracted and rolled up into +# a generated lib/image xxx.a () +# +ifndef PDIR +GEN_LIBS = u8g2lib.a +endif + +STD_CFLAGS=-std=gnu11 -Wimplicit + +############################################################# +# Configuration i.e. compile options etc. +# Target specific stuff (defines etc.) goes in here! +# Generally values applying to a tree are captured in the +# makefile at its root level - these are then overridden +# for a subtree within the makefile rooted therein +# +DEFINES += -DU8X8_USE_PINS + +############################################################# +# Recursion Magic - Don't touch this!! +# +# Each subtree potentially has an include directory +# corresponding to the common APIs applicable to modules +# rooted at that subtree. Accordingly, the INCLUDE PATH +# of a module can only contain the include directories up +# its parent path, and not its siblings +# +# Required for each makefile to inherit from the parent +# + +CSRCS := $(wildcard u8g2/src/clib/*.c *.c) + +INCLUDES := $(INCLUDES) -I $(PDIR)include +INCLUDES += -I u8g2/src/clib +INCLUDES += -I ../libc +INCLUDES += -I ../lua +INCLUDES += -I ../platform +PDIR := ../$(PDIR) +sinclude $(PDIR)Makefile + diff --git a/app/u8g2lib/u8x8_d_fbrle.c b/app/u8g2lib/u8x8_d_fbrle.c new file mode 100644 index 0000000000..b6abf6631c --- /dev/null +++ b/app/u8g2lib/u8x8_d_fbrle.c @@ -0,0 +1,185 @@ + +// Note: This file is intended to be shared between esp8266 and esp32 platform + +#include "u8x8.h" +#include "lauxlib.h" + +#include "u8x8_nodemcu_hal.h" + +#include +#include + + +static const u8x8_display_info_t u8x8_fbrle_display_info = +{ + /* chip_enable_level = */ 0, + /* chip_disable_level = */ 1, + + /* post_chip_enable_wait_ns = */ 0, + /* pre_chip_disable_wait_ns = */ 0, + /* reset_pulse_width_ms = */ 0, + /* post_reset_wait_ms = */ 0, + /* sda_setup_time_ns = */ 0, + /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 0, + /* spi_mode = */ 0, + /* i2c_bus_clock_100kHz = */ 4, + /* data_setup_time_ns = */ 0, + /* write_pulse_width_ns = */ 0, + /* tile_width = */ 16, + /* tile_hight = */ 8, + /* default_x_offset = */ 0, + /* flipmode_x_offset = */ 0, + /* pixel_width = */ 128, + /* pixel_height = */ 64 +}; + +static int bit_at( uint8_t *buf, int line, int x ) +{ + return buf[x] & (1 << line) ? 1 : 0; +} + +struct fbrle_item +{ + uint8_t start_x; + uint8_t len; +}; + +struct fbrle_line +{ + uint8_t num_valid; + struct fbrle_item items[0]; +}; + +static uint8_t u8x8_d_fbrle(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + u8g2_nodemcu_t *ext_u8g2 = (u8g2_nodemcu_t *)u8x8; + + switch(msg) + { + case U8X8_MSG_DISPLAY_SETUP_MEMORY: + // forward to template display driver + return ext_u8g2->overlay.template_display_cb(u8x8, msg, arg_int, arg_ptr); + + case U8X8_MSG_DISPLAY_INIT: + //u8x8_d_helper_display_init(u8x8); + ext_u8g2->overlay.fb_update_ongoing = 0; + break; + + case U8X8_MSG_DISPLAY_SET_POWER_SAVE: + case U8X8_MSG_DISPLAY_SET_FLIP_MODE: + break; + +#ifdef U8X8_WITH_SET_CONTRAST + case U8X8_MSG_DISPLAY_SET_CONTRAST: + break; +#endif + + case U8X8_MSG_DISPLAY_REFRESH: + ext_u8g2->overlay.fb_update_ongoing = 0; + break; + + case U8X8_MSG_DISPLAY_DRAW_TILE: + if (ext_u8g2->overlay.fb_update_ongoing == 0) { + // tell rfb callback that a new framebuffer starts + if (ext_u8g2->overlay.rfb_cb_ref != LUA_NOREF) { + // fire callback with nil argument + lua_State *L = lua_getstate(); + lua_rawgeti( L, LUA_REGISTRYINDEX, ext_u8g2->overlay.rfb_cb_ref ); + lua_pushnil( L ); + lua_call( L, 1, 0 ); + } + // and note ongoing framebuffer update + ext_u8g2->overlay.fb_update_ongoing = 1; + } + + { + // TODO: transport tile_y, needs structural change! + uint8_t tile_x = ((u8x8_tile_t *)arg_ptr)->x_pos; + tile_x *= 8; + tile_x += u8x8->x_offset; + uint8_t tile_w = ((u8x8_tile_t *)arg_ptr)->cnt * 8; + + size_t fbrle_line_size = sizeof( struct fbrle_line ) + sizeof( struct fbrle_item ) * (tile_w/2); + int num_lines = 8; /*arg_val / (xwidth/8);*/ + uint8_t *buf = ((u8x8_tile_t *)arg_ptr)->tile_ptr; + + struct fbrle_line *fbrle_line; + if (!(fbrle_line = (struct fbrle_line *)malloc( fbrle_line_size ))) { + break; + } + + for (int line = 0; line < num_lines; line++) { + int start_run = -1; + fbrle_line->num_valid = 0; + + for (int x = tile_x; x < tile_x+tile_w; x++) { + if (bit_at( buf, line, x ) == 0) { + if (start_run >= 0) { + // inside run, end it and enter result + fbrle_line->items[fbrle_line->num_valid].start_x = start_run; + fbrle_line->items[fbrle_line->num_valid++].len = x - start_run; + //NODE_ERR( " line: %d x: %d len: %d\n", line, start_run, x - start_run ); + start_run = -1; + } + } else { + if (start_run < 0) { + // outside run, start it + start_run = x; + } + } + + if (fbrle_line->num_valid >= tile_w/2) break; + } + + // active run? + if (start_run >= 0 && fbrle_line->num_valid < tile_w/2) { + fbrle_line->items[fbrle_line->num_valid].start_x = start_run; + fbrle_line->items[fbrle_line->num_valid++].len = tile_w - start_run; + } + + // line done, trigger callback + if (ext_u8g2->overlay.rfb_cb_ref != LUA_NOREF) { + lua_State *L = lua_getstate(); + + lua_rawgeti( L, LUA_REGISTRYINDEX, ext_u8g2->overlay.rfb_cb_ref ); + lua_pushlstring( L, (const char *)fbrle_line, fbrle_line_size ); + lua_call( L, 1, 0 ); + } + } + + free( fbrle_line ); + } + break; + + default: + return 0; + break; + } + + return 1; +} + +uint8_t u8x8_d_overlay(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *arg_ptr) +{ + uint8_t res = 1; + u8g2_nodemcu_t *ext_u8g2 = (u8g2_nodemcu_t *)u8x8; + + switch(msg) + { + case U8X8_MSG_DISPLAY_SETUP_MEMORY: + // only call for hardware display + if (ext_u8g2->overlay.hardware_display_cb) + return ext_u8g2->overlay.hardware_display_cb(u8x8, msg, arg_int, arg_ptr); + break; + + default: + // forward all messages first to hardware display and then to fbrle + if (ext_u8g2->overlay.hardware_display_cb) + res = ext_u8g2->overlay.hardware_display_cb(u8x8, msg, arg_int, arg_ptr); + u8x8_d_fbrle(u8x8, msg, arg_int, arg_ptr); + break; + } + + return res; +} diff --git a/lua_examples/u8g2/graphics_test.lua b/lua_examples/u8g2/graphics_test.lua new file mode 100644 index 0000000000..2e39468256 --- /dev/null +++ b/lua_examples/u8g2/graphics_test.lua @@ -0,0 +1,263 @@ +-- *************************************************************************** +-- Graphics Test +-- +-- This script executes several features of u8glib to test their Lua bindings. +-- +-- Note: It is prepared for SSD1306-based displays. Select your connectivity +-- type by calling either init_i2c_display() or init_spi_display() at +-- the bottom of this file. +-- +-- *************************************************************************** + +-- setup I2c and connect display +function init_i2c_display() + -- SDA and SCL can be assigned freely to available GPIOs + local sda = 5 -- GPIO14 + local scl = 6 -- GPIO12 + local sla = 0x3c + i2c.setup(0, sda, scl, i2c.SLOW) + disp = u8g2.ssd1306_i2c_128x64_noname(0, sla) +end + +-- setup SPI and connect display +function init_spi_display() + -- Hardware SPI CLK = GPIO14 + -- Hardware SPI MOSI = GPIO13 + -- Hardware SPI MISO = GPIO12 (not used) + -- Hardware SPI /CS = GPIO15 (not used) + -- CS, D/C, and RES can be assigned freely to available GPIOs + local cs = 8 -- GPIO15, pull-down 10k to GND + local dc = 4 -- GPIO2 + local res = 0 -- GPIO16 + + spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) + -- we won't be using the HSPI /CS line, so disable it again + gpio.mode(8, gpio.INPUT, gpio.PULLUP) + + disp = u8g2.ssd1306_128x64_noname(1, cs, dc, res) +end + + +function u8g2_prepare() + disp:setFont(u8g2.font_6x10_tf) + disp:setFontRefHeightExtendedText() + disp:setDrawColor(1) + disp:setFontPosTop() + disp:setFontDirection(0) +end + + +function u8g2_box_frame(a) + disp:drawStr( 0, 0, "drawBox") + disp:drawBox(5,10,20,10) + disp:drawBox(10+a,15,30,7) + disp:drawStr( 0, 30, "drawFrame") + disp:drawFrame(5,10+30,20,10) + disp:drawFrame(10+a,15+30,30,7) +end + +function u8g2_disc_circle(a) + disp:drawStr( 0, 0, "drawDisc") + disp:drawDisc(10,18,9) + disp:drawDisc(24+a,16,7) + disp:drawStr( 0, 30, "drawCircle") + disp:drawCircle(10,18+30,9) + disp:drawCircle(24+a,16+30,7) +end + +function u8g2_r_frame(a) + disp:drawStr( 0, 0, "drawRFrame/Box") + disp:drawRFrame(5, 10,40,30, a+1) + disp:drawRBox(50, 10,25,40, a+1) +end + +function u8g2_string(a) + disp:setFontDirection(0) + disp:drawStr(30+a,31, " 0") + disp:setFontDirection(1) + disp:drawStr(30,31+a, " 90") + disp:setFontDirection(2) + disp:drawStr(30-a,31, " 180") + disp:setFontDirection(3) + disp:drawStr(30,31-a, " 270") +end + +function u8g2_line(a) + disp:drawStr( 0, 0, "drawLine") + disp:drawLine(7+a, 10, 40, 55) + disp:drawLine(7+a*2, 10, 60, 55) + disp:drawLine(7+a*3, 10, 80, 55) + disp:drawLine(7+a*4, 10, 100, 55) +end + +function u8g2_triangle(a) + local offset = a + disp:drawStr( 0, 0, "drawTriangle") + disp:drawTriangle(14,7, 45,30, 10,40) + disp:drawTriangle(14+offset,7-offset, 45+offset,30-offset, 57+offset,10-offset) + disp:drawTriangle(57+offset*2,10, 45+offset*2,30, 86+offset*2,53) + disp:drawTriangle(10+offset,40+offset, 45+offset,30+offset, 86+offset,53+offset) +end + +function u8g2_ascii_1() + disp:drawStr( 0, 0, "ASCII page 1") + for y = 0, 5 do + for x = 0, 15 do + disp:drawStr(x*7, y*10+10, string.char(y*16 + x + 32)) + end + end +end + +function u8g2_ascii_2() + disp:drawStr( 0, 0, "ASCII page 2") + for y = 0, 5 do + for x = 0, 15 do + disp:drawStr(x*7, y*10+10, string.char(y*16 + x + 160)) + end + end +end + +function u8g2_extra_page(a) + disp:drawStr( 0, 0, "Unicode") + disp:setFont(u8g2.font_unifont_t_symbols) + disp:setFontPosTop() + disp:drawUTF8(0, 24, "☀ ☁") + if a <= 3 then + disp:drawUTF8(a*3, 36, "☂") + else + disp:drawUTF8(a*3, 36, "☔") + end +end + +cross_width = 24 +cross_height = 24 +cross_bits = string.char( + 0x00, 0x18, 0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00, 0x42, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x42, 0x00, 0x00, 0x81, 0x00, 0x00, 0x81, 0x00, + 0xC0, 0x00, 0x03, 0x38, 0x3C, 0x1C, 0x06, 0x42, 0x60, 0x01, 0x42, 0x80, + 0x01, 0x42, 0x80, 0x06, 0x42, 0x60, 0x38, 0x3C, 0x1C, 0xC0, 0x00, 0x03, + 0x00, 0x81, 0x00, 0x00, 0x81, 0x00, 0x00, 0x42, 0x00, 0x00, 0x42, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x24, 0x00, 0x00, 0x24, 0x00, 0x00, 0x18, 0x00) + +cross_fill_width = 24 +cross_fill_height = 24 +cross_fill_bits = string.char( + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x64, 0x00, 0x26, + 0x84, 0x00, 0x21, 0x08, 0x81, 0x10, 0x08, 0x42, 0x10, 0x10, 0x3C, 0x08, + 0x20, 0x00, 0x04, 0x40, 0x00, 0x02, 0x80, 0x00, 0x01, 0x80, 0x18, 0x01, + 0x80, 0x18, 0x01, 0x80, 0x00, 0x01, 0x40, 0x00, 0x02, 0x20, 0x00, 0x04, + 0x10, 0x3C, 0x08, 0x08, 0x42, 0x10, 0x08, 0x81, 0x10, 0x84, 0x00, 0x21, + 0x64, 0x00, 0x26, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00) + +cross_block_width = 14 +cross_block_height = 14 +cross_block_bits = string.char( + 0xFF, 0x3F, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, + 0xC1, 0x20, 0xC1, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, 0x01, 0x20, + 0x01, 0x20, 0xFF, 0x3F) + +function u8g2_bitmap_overlay(a) + local frame_size = 28 + + disp:drawStr(0, 0, "Bitmap overlay") + + disp:drawStr(0, frame_size + 12, "Solid / transparent") + disp:setBitmapMode(0) -- solid + disp:drawFrame(0, 10, frame_size, frame_size) + disp:drawXBM(2, 12, cross_width, cross_height, cross_bits) + if bit.band(a, 4) > 0 then + disp:drawXBM(7, 17, cross_block_width, cross_block_height, cross_block_bits) + end + + disp:setBitmapMode(1) -- transparent + disp:drawFrame(frame_size + 5, 10, frame_size, frame_size) + disp:drawXBM(frame_size + 7, 12, cross_width, cross_height, cross_bits) + if bit.band(a, 4) then + disp:drawXBM(frame_size + 12, 17, cross_block_width, cross_block_height, cross_block_bits) + end +end + +function u8g2_bitmap_modes(transparent) + local frame_size = 24 + + disp:drawBox(0, frame_size * 0.5, frame_size * 5, frame_size) + disp:drawStr(frame_size * 0.5, 50, "Black") + disp:drawStr(frame_size * 2, 50, "White") + disp:drawStr(frame_size * 3.5, 50, "XOR") + + if transparent == 0 then + disp:setBitmapMode(0) -- solid + disp:drawStr(0, 0, "Solid bitmap") + else + disp:setBitmapMode(1) -- transparent + disp:drawStr(0, 0, "Transparent bitmap") + end + disp:setDrawColor(0) -- Black + disp:drawXBM(frame_size * 0.5, 24, cross_width, cross_height, cross_bits) + disp:setDrawColor(1) -- White + disp:drawXBM(frame_size * 2, 24, cross_width, cross_height, cross_bits) + disp:setDrawColor(2) -- XOR + disp:drawXBM(frame_size * 3.5, 24, cross_width, cross_height, cross_bits) +end + + +function draw() + u8g2_prepare() + + local d3 = bit.rshift(draw_state, 3) + local d7 = bit.band(draw_state, 7) + + if d3 == 0 then + u8g2_box_frame(d7) + elseif d3 == 1 then + u8g2_disc_circle(d7) + elseif d3 == 2 then + u8g2_r_frame(d7) + elseif d3 == 3 then + u8g2_string(d7) + elseif d3 == 4 then + u8g2_line(d7) + elseif d3 == 5 then + u8g2_triangle(d7) + elseif d3 == 6 then + u8g2_ascii_1() + elseif d3 == 7 then + u8g2_ascii_2() + elseif d3 == 8 then + u8g2_extra_page(d7) + elseif d3 == 9 then + u8g2_bitmap_modes(0) + elseif d3 == 10 then + u8g2_bitmap_modes(1) + elseif d3 == 11 then + u8g2_bitmap_overlay(d7) + end +end + + +function loop() + -- picture loop + disp:clearBuffer() + draw() + disp:sendBuffer() + + -- increase the state + draw_state = draw_state + 1 + if draw_state >= 12*8 then + draw_state = 0 + end + + -- delay between each frame + loop_tmr:start() +end + + +draw_state = 0 +loop_tmr = tmr.create() +loop_tmr:register(100, tmr.ALARM_SEMI, loop) + +init_i2c_display() +--init_spi_display() + +print("--- Starting Graphics Test ---") +loop_tmr:start() diff --git a/lua_examples/u8glib/u8g_bitmaps.lua b/lua_examples/u8glib/u8g_bitmaps.lua deleted file mode 100644 index 300aa9bb5f..0000000000 --- a/lua_examples/u8glib/u8g_bitmaps.lua +++ /dev/null @@ -1,115 +0,0 @@ --- *************************************************************************** --- Bitmaps Test --- --- This script executes the bitmap features of u8glib to test their Lua --- integration. --- --- Note: It is prepared for SSD1306-based displays. Select your connectivity --- type by calling either init_i2c_display() or init_spi_display() at --- the bottom of this file. --- --- *************************************************************************** - --- setup I2c and connect display -function init_i2c_display() - -- SDA and SCL can be assigned freely to available GPIOs - local sda = 5 -- GPIO14 - local scl = 6 -- GPIO12 - local sla = 0x3c - i2c.setup(0, sda, scl, i2c.SLOW) - disp = u8g.ssd1306_128x64_i2c(sla) -end - --- setup SPI and connect display -function init_spi_display() - -- Hardware SPI CLK = GPIO14 - -- Hardware SPI MOSI = GPIO13 - -- Hardware SPI MISO = GPIO12 (not used) - -- Hardware SPI /CS = GPIO15 (not used) - -- CS, D/C, and RES can be assigned freely to available GPIOs - local cs = 8 -- GPIO15, pull-down 10k to GND - local dc = 4 -- GPIO2 - local res = 0 -- GPIO16 - - spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) - -- we won't be using the HSPI /CS line, so disable it again - gpio.mode(8, gpio.INPUT, gpio.PULLUP) - - disp = u8g.ssd1306_128x64_hw_spi(cs, dc, res) -end - - -function xbm_picture() - disp:setFont(u8g.font_6x10) - disp:drawStr( 0, 10, "XBM picture") - - disp:drawXBM( 0, 20, 38, 24, xbm_data ) -end - -function bitmap_picture(state) - disp:setFont(u8g.font_6x10) - disp:drawStr( 0, 10, "Bitmap picture") - - disp:drawBitmap( 0 + (state * 10), 20 + (state * 4), 1, 8, bm_data ) -end - --- the draw() routine -function draw(draw_state) - local component = bit.rshift(draw_state, 3) - - if (component == 0) then - xbm_picture(bit.band(draw_state, 7)) - elseif (component == 1) then - bitmap_picture(bit.band(draw_state, 7)) - end -end - - -function draw_loop() - -- Draws one page and schedules the next page, if there is one - local function draw_pages() - draw(draw_state) - if disp:nextPage() then - node.task.post(draw_pages) - else - node.task.post(bitmap_test) - end - end - -- Restart the draw loop and start drawing pages - disp:firstPage() - node.task.post(draw_pages) -end - -function bitmap_test() - - if (draw_state <= 7 + 1*8) then - draw_state = draw_state + 1 - else - print("--- Restarting Bitmap Test ---") - draw_state = 1 - end - - print("Heap: " .. node.heap()) - -- retrigger draw_loop - node.task.post(draw_loop) - -end - -draw_state = 1 - -init_i2c_display() ---init_spi_display() - --- read XBM picture -file.open("u8glib_logo.xbm", "r") -xbm_data = file.read() -file.close() - --- read Bitmap picture -file.open("u8g_rook.bm", "r") -bm_data = file.read() -file.close() - - -print("--- Starting Bitmap Test ---") -node.task.post(draw_loop) diff --git a/lua_examples/u8glib/u8g_drawloop.lua b/lua_examples/u8glib/u8g_drawloop.lua deleted file mode 100644 index a8184fd1ba..0000000000 --- a/lua_examples/u8glib/u8g_drawloop.lua +++ /dev/null @@ -1,73 +0,0 @@ ------------------------------------------------------------------------------- --- u8glib example which shows how to implement the draw loop without causing --- timeout issues with the WiFi stack. This is done by drawing one page at --- a time, allowing the ESP SDK to do its house keeping between the page --- draws. --- --- This example assumes you have an SSD1306 display connected to pins 4 and 5 --- using I2C and that the profont22r is compiled into the firmware. --- Please edit the init_display function to match your setup. --- --- Example: --- dofile("u8g_drawloop.lua") ------------------------------------------------------------------------------- - -local disp -local font - -function init_display() - local sda = 4 - local sdl = 5 - local sla = 0x3c - i2c.setup(0,sda,sdl, i2c.SLOW) - disp = u8g.ssd1306_128x64_i2c(sla) - font = u8g.font_profont22r -end - -local function setLargeFont() - disp:setFont(font) - disp:setFontRefHeightExtendedText() - disp:setDefaultForegroundColor() - disp:setFontPosTop() -end - --- Start the draw loop with the draw implementation in the provided function callback -function updateDisplay(func) - -- Draws one page and schedules the next page, if there is one - local function drawPages() - func() - if (disp:nextPage() == true) then - node.task.post(drawPages) - end - end - -- Restart the draw loop and start drawing pages - disp:firstPage() - node.task.post(drawPages) -end - -function drawHello() - setLargeFont() - disp:drawStr(30,22, "Hello") -end - -function drawWorld() - setLargeFont() - disp:drawStr(30,22, "World") -end - -local drawDemo = { drawHello, drawWorld } - -function demoLoop() - -- Start the draw loop with one of the demo functions - local f = table.remove(drawDemo,1) - updateDisplay(f) - table.insert(drawDemo,f) -end - --- Initialise the display -init_display() - --- Draw demo page immediately and then schedule an update every 5 seconds. --- To test your own drawXYZ function, disable the next two lines and call updateDisplay(drawXYZ) instead. -demoLoop() -tmr.alarm(4, 5000, 1, demoLoop) diff --git a/lua_examples/u8glib/u8g_graphics_test.lua b/lua_examples/u8glib/u8g_graphics_test.lua deleted file mode 100644 index 640e56aed6..0000000000 --- a/lua_examples/u8glib/u8g_graphics_test.lua +++ /dev/null @@ -1,177 +0,0 @@ --- *************************************************************************** --- Graphics Test --- --- This script executes several features of u8glib to test their Lua bindings. --- --- Note: It is prepared for SSD1306-based displays. Select your connectivity --- type by calling either init_i2c_display() or init_spi_display() at --- the bottom of this file. --- --- *************************************************************************** - --- setup I2c and connect display -function init_i2c_display() - -- SDA and SCL can be assigned freely to available GPIOs - local sda = 5 -- GPIO14 - local scl = 6 -- GPIO12 - local sla = 0x3c - i2c.setup(0, sda, scl, i2c.SLOW) - disp = u8g.ssd1306_128x64_i2c(sla) -end - --- setup SPI and connect display -function init_spi_display() - -- Hardware SPI CLK = GPIO14 - -- Hardware SPI MOSI = GPIO13 - -- Hardware SPI MISO = GPIO12 (not used) - -- Hardware SPI /CS = GPIO15 (not used) - -- CS, D/C, and RES can be assigned freely to available GPIOs - local cs = 8 -- GPIO15, pull-down 10k to GND - local dc = 4 -- GPIO2 - local res = 0 -- GPIO16 - - spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) - -- we won't be using the HSPI /CS line, so disable it again - gpio.mode(8, gpio.INPUT, gpio.PULLUP) - - disp = u8g.ssd1306_128x64_hw_spi(cs, dc, res) -end - - --- graphic test components -function prepare() - disp:setFont(u8g.font_6x10) - disp:setFontRefHeightExtendedText() - disp:setDefaultForegroundColor() - disp:setFontPosTop() -end - -function box_frame(a) - disp:drawStr(0, 0, "drawBox") - disp:drawBox(5, 10, 20, 10) - disp:drawBox(10+a, 15, 30, 7) - disp:drawStr(0, 30, "drawFrame") - disp:drawFrame(5, 10+30, 20, 10) - disp:drawFrame(10+a, 15+30, 30, 7) -end - -function disc_circle(a) - disp:drawStr(0, 0, "drawDisc") - disp:drawDisc(10, 18, 9) - disp:drawDisc(24+a, 16, 7) - disp:drawStr(0, 30, "drawCircle") - disp:drawCircle(10, 18+30, 9) - disp:drawCircle(24+a, 16+30, 7) -end - -function r_frame(a) - disp:drawStr(0, 0, "drawRFrame/Box") - disp:drawRFrame(5, 10, 40, 30, a+1) - disp:drawRBox(50, 10, 25, 40, a+1) -end - -function stringtest(a) - disp:drawStr(30+a, 31, " 0") - disp:drawStr90(30, 31+a, " 90") - disp:drawStr180(30-a, 31, " 180") - disp:drawStr270(30, 31-a, " 270") -end - -function line(a) - disp:drawStr(0, 0, "drawLine") - disp:drawLine(7+a, 10, 40, 55) - disp:drawLine(7+a*2, 10, 60, 55) - disp:drawLine(7+a*3, 10, 80, 55) - disp:drawLine(7+a*4, 10, 100, 55) -end - -function triangle(a) - local offset = a - disp:drawStr(0, 0, "drawTriangle") - disp:drawTriangle(14,7, 45,30, 10,40) - disp:drawTriangle(14+offset,7-offset, 45+offset,30-offset, 57+offset,10-offset) - disp:drawTriangle(57+offset*2,10, 45+offset*2,30, 86+offset*2,53) - disp:drawTriangle(10+offset,40+offset, 45+offset,30+offset, 86+offset,53+offset) -end - -function ascii_1() - local x, y, s - disp:drawStr(0, 0, "ASCII page 1") - for y = 0, 5, 1 do - for x = 0, 15, 1 do - s = y*16 + x + 32 - disp:drawStr(x*7, y*10+10, string.char(s)) - end - end -end - -function extra_page(a) - disp:drawStr(0, 12, "setScale2x2") - disp:setScale2x2() - disp:drawStr(0, 6+a, "setScale2x2") - disp:undoScale() -end - - --- the draw() routine -function draw(draw_state) - local component = bit.rshift(draw_state, 3) - - prepare() - - if (component == 0) then - box_frame(bit.band(draw_state, 7)) - elseif (component == 1) then - disc_circle(bit.band(draw_state, 7)) - elseif (component == 2) then - r_frame(bit.band(draw_state, 7)) - elseif (component == 3) then - stringtest(bit.band(draw_state, 7)) - elseif (component == 4) then - line(bit.band(draw_state, 7)) - elseif (component == 5) then - triangle(bit.band(draw_state, 7)) - elseif (component == 6) then - ascii_1() - elseif (component == 7) then - extra_page(bit.band(draw_state, 7)) - end -end - -function draw_loop() - -- Draws one page and schedules the next page, if there is one - local function draw_pages() - draw(draw_state) - if disp:nextPage() then - node.task.post(draw_pages) - else - node.task.post(graphics_test) - end - end - -- Restart the draw loop and start drawing pages - disp:firstPage() - node.task.post(draw_pages) -end - -function graphics_test() - - if (draw_state <= 7 + 8*8) then - draw_state = draw_state + 1 - else - print("--- Restarting Graphics Test ---") - draw_state = 0 - end - - print("Heap: " .. node.heap()) - -- retrigger draw_loop - node.task.post(draw_loop) - -end - -draw_state = 0 - -init_i2c_display() ---init_spi_display() - -print("--- Starting Graphics Test ---") -node.task.post(draw_loop) diff --git a/lua_examples/u8glib/u8g_rook.bm b/lua_examples/u8glib/u8g_rook.bm deleted file mode 100644 index 9dd93966f264609e124d1438e97c63b29a56c805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8 NcmZPwt+xY$dH@MH0!#n^ diff --git a/lua_examples/u8glib/u8g_rotation.lua b/lua_examples/u8glib/u8g_rotation.lua deleted file mode 100644 index 5ee4b1c39e..0000000000 --- a/lua_examples/u8glib/u8g_rotation.lua +++ /dev/null @@ -1,97 +0,0 @@ --- *************************************************************************** --- Rotation Test --- --- This script executes the rotation features of u8glib to test their Lua --- integration. --- --- Note: It is prepared for SSD1306-based displays. Select your connectivity --- type by calling either init_i2c_display() or init_spi_display() at --- the bottom of this file. --- --- *************************************************************************** - --- setup I2c and connect display -function init_i2c_display() - -- SDA and SCL can be assigned freely to available GPIOs - local sda = 5 -- GPIO14 - local scl = 6 -- GPIO12 - local sla = 0x3c - i2c.setup(0, sda, scl, i2c.SLOW) - disp = u8g.ssd1306_128x64_i2c(sla) -end - --- setup SPI and connect display -function init_spi_display() - -- Hardware SPI CLK = GPIO14 - -- Hardware SPI MOSI = GPIO13 - -- Hardware SPI MISO = GPIO12 (not used) - -- Hardware SPI /CS = GPIO15 (not used) - -- CS, D/C, and RES can be assigned freely to available GPIOs - local cs = 8 -- GPIO15, pull-down 10k to GND - local dc = 4 -- GPIO2 - local res = 0 -- GPIO16 - - spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) - -- we won't be using the HSPI /CS line, so disable it again - gpio.mode(8, gpio.INPUT, gpio.PULLUP) - - disp = u8g.ssd1306_128x64_hw_spi(cs, dc, res) -end - - --- the draw() routine -function draw() - disp:setFont(u8g.font_6x10) - disp:drawStr( 0+0, 20+0, "Hello!") - disp:drawStr( 0+2, 20+16, "Hello!") - - disp:drawBox(0, 0, 3, 3) - disp:drawBox(disp:getWidth()-6, 0, 6, 6) - disp:drawBox(disp:getWidth()-9, disp:getHeight()-9, 9, 9) - disp:drawBox(0, disp:getHeight()-12, 12, 12) -end - - -function rotate() - if (next_rotation < tmr.now() / 1000) then - if (dir == 0) then - disp:undoRotation() - elseif (dir == 1) then - disp:setRot90() - elseif (dir == 2) then - disp:setRot180() - elseif (dir == 3) then - disp:setRot270() - end - - dir = dir + 1 - dir = bit.band(dir, 3) - -- schedule next rotation step in 1000ms - next_rotation = tmr.now() / 1000 + 1000 - end -end - -function rotation_test() - print("--- Starting Rotation Test ---") - dir = 0 - next_rotation = 0 - - local loopcnt - for loopcnt = 1, 100, 1 do - rotate() - - disp:firstPage() - repeat - draw(draw_state) - until disp:nextPage() == false - - tmr.delay(100000) - tmr.wdclr() - end - - print("--- Rotation Test done ---") -end - ---init_i2c_display() -init_spi_display() -rotation_test() diff --git a/lua_examples/u8glib/u8glib_logo.xbm b/lua_examples/u8glib/u8glib_logo.xbm deleted file mode 100644 index 876c4b7ca11b4f3da9e39271fc9facbf40c5491d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmezW|Nnn`ApURv-~o_${18Zd{s<=i?Kl4{C?jw1nUSMM;WHz{0n5*g#}8V5K6w13 z#pi>EC2byeGS09+F2TTI$8S?0V_^UPPrKp&|ND Date: Sun, 19 Nov 2017 22:42:20 +0100 Subject: [PATCH 28/61] add docs --- app/include/u8g2_displays.h | 86 +++++++ app/include/u8g2_fonts.h | 6 + docs/en/modules/u8g2.md | 500 ++++++++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 4 files changed, 593 insertions(+) create mode 100644 docs/en/modules/u8g2.md diff --git a/app/include/u8g2_displays.h b/app/include/u8g2_displays.h index 915f0eed56..c9fe107b25 100644 --- a/app/include/u8g2_displays.h +++ b/app/include/u8g2_displays.h @@ -4,11 +4,97 @@ #define U8G2_DISPLAY_TABLE_ENTRY(function, binding) +// *************************************************************************** +// Enable display drivers +// +// Uncomment the U8G2_DISPLAY_TABLE_ENTRY for the device(s) you want to +// compile into the firmware. +// Stick to the assignments to *_I2C and *_SPI tables. +// +// I2C based displays go into here: +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1610_i2c_ea_dogxl160_f, uc1610_i2c_ea_dogxl160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1325_i2c_nhd_128x64_f, ssd1325_i2c_nhd_128x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_64x48_er_f, ssd1306_i2c_64x48_er) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1608_i2c_erc24064_f, uc1608_i2c_erc24064) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7588_i2c_jlx12864_f, st7588_i2c_jlx12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_i2c_128x64_noname0_f, ssd1309_i2c_128x64_noname0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_i2c_ea_dogxl240_f, uc1611_i2c_ea_dogxl240) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1305_i2c_128x32_noname_f, ssd1305_i2c_128x32_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x32_univision_f, ssd1306_i2c_128x32_univision) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1608_i2c_240x128_f, uc1608_i2c_240x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ld7032_i2c_60x32_f, ld7032_i2c_60x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_i2c_ew50850_f, uc1611_i2c_ew50850) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1604_i2c_jlx19264_f, uc1604_i2c_jlx19264) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1601_i2c_128x32_f, uc1601_i2c_128x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_i2c_128x64_vcomh0_f, sh1106_i2c_128x64_vcomh0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_96x16_er_f, ssd1306_i2c_96x16_er) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_i2c_128x64_noname_f, sh1106_i2c_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_vcomh0_f, ssd1306_i2c_128x64_vcomh0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_i2c_128x64_noname2_f, ssd1309_i2c_128x64_noname2) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_i2c_ea_dogm240_f, uc1611_i2c_ea_dogm240) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_i2c_seeed_96x96_f, ssd1327_i2c_seeed_96x96) \ + #define U8G2_DISPLAY_TABLE_I2C \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ +// SPI based displays go into here: +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1606_172x72_f, ssd1606_172x72) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1608_240x128_f, uc1608_240x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_erc12864_f, st7565_erc12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_128x64_noname0_f, ssd1309_128x64_noname0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1601_128x32_f, uc1601_128x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1608_erc24064_f, uc1608_erc24064) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_lm6059_f, st7565_lm6059) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_ea_dogxl240_f, uc1611_ea_dogxl240) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_nhd_c12864_f, st7565_nhd_c12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_vcomh0_f, ssd1306_128x64_vcomh0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1305_128x32_noname_f, ssd1305_128x32_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_max7219_32x8_f, max7219_32x8) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ls013b7dh03_128x128_f, ls013b7dh03_128x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_il3820_v2_296x128_f, il3820_v2_296x128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1610_ea_dogxl160_f, uc1610_ea_dogxl160) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_ea_dogm240_f, uc1611_ea_dogm240) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1604_jlx19264_f, uc1604_jlx19264) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7920_s_192x32_f, st7920_s_192x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1325_nhd_128x64_f, ssd1325_nhd_128x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sed1520_122x32_f, sed1520_122x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_ea_dogm128_f, st7565_ea_dogm128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ld7032_60x32_f, ld7032_60x32) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1607_200x200_f, ssd1607_200x200) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1309_128x64_noname2_f, ssd1309_128x64_noname2) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_128x64_noname_f, sh1106_128x64_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x32_univision_f, ssd1306_128x32_univision) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7920_s_128x64_f, st7920_s_128x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_64128n_f, st7565_64128n) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1701_ea_dogs102_f, uc1701_ea_dogs102) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1611_ew50850_f, uc1611_ew50850) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1322_nhd_256x64_f, ssd1322_nhd_256x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_ea_dogm132_f, st7565_ea_dogm132) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1329_128x96_noname_f, ssd1329_128x96_noname) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_zolen_128x64_f, st7565_zolen_128x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx256128_f, st75256_jlx256128) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_96x16_er_f, ssd1306_96x16_er) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ist3020_erc19264_f, ist3020_erc19264) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7588_jlx12864_f, st7588_jlx12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1327_seeed_96x96_f, ssd1327_seeed_96x96) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st75256_jlx172104_f, st75256_jlx172104) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7565_nhd_c12832_f, st7565_nhd_c12832) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_64x48_er_f, ssd1306_64x48_er) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcf8812_96x65_f, pcf8812_96x65) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_pi_132x64_f, st7567_pi_132x64) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_st7567_jlx12864_f, st7567_jlx12864) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_sh1106_128x64_vcomh0_f, sh1106_128x64_vcomh0) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_nt7534_tg12864r_f, nt7534_tg12864r) \ +// U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1701_mini12864_f, uc1701_mini12864) \ + #define U8G2_DISPLAY_TABLE_SPI \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ +// +// *************************************************************************** + #endif /* _U8G2_DISPLAYS_H */ diff --git a/app/include/u8g2_fonts.h b/app/include/u8g2_fonts.h index b72e88eaf7..99bc333175 100644 --- a/app/include/u8g2_fonts.h +++ b/app/include/u8g2_fonts.h @@ -4,9 +4,15 @@ #define U8G2_FONT_TABLE_ENTRY(font) +// *************************************************************************** +// Configure U8glib fonts +// +// Add a U8G2_FONT_TABLE_ENTRY for each font you want to compile into the image #define U8G2_FONT_TABLE \ U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \ U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ +// +// *************************************************************************** #endif /* _U8G2_FONTS_H */ diff --git a/docs/en/modules/u8g2.md b/docs/en/modules/u8g2.md new file mode 100644 index 0000000000..88896bd7cc --- /dev/null +++ b/docs/en/modules/u8g2.md @@ -0,0 +1,500 @@ +# u8g2 Module +| Since | Origin / Contributor | Maintainer | Source | +| :----- | :-------------------- | :---------- | :------ | +| 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../../apps/modules/u8g2.c)| + +U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. + +The NodeMCU firmware supports the following displays in I²C and SPI mode: + +- ld7032 60x32 +- sh1106 128x64 +- ssd1305 128x32 +- ssd1306 - variants 128x32, 128x64, 64x48, and 96x16 +- ssd1309 128x64 +- ssd1325 128x63 +- ssd1327 96x96 +- st7588 jlx12864 +- uc1601 128x32 +- uc1604 jlx19264 +- uc1608 - 240x180 and erc24064 variants +- ux1610 dogxl160 +- uc1611 - variants dogm240, dogxl240, and ew50850 + +SPI only: + +- il3820 v2 296x128 +- ist3020 erc19264 +- ls013b7dh03 128x128 +- max7219 32x8 +- nt7534 tg12864r +- pcd8544 84x48 +- pcf8812 96x65 +- sed1520 122x32 +- ssd1322 nhd 256x64 +- ssd1329 128x96 +- ssd1606 172x72 +- ssd1607 200x200 +- st7565 - variants 64128n, dogm128/132, erc12864, lm6059, c12832/c12864, and zolen 128x64 +- st7567 - 132x64 and jlx12864 variants +- st75256 - jlx172104 and jlx256128 variants +- uc1701 - dogs102 and mini12864 variants + +This integration is based on [v2.19.8](https://github.com/olikraus/U8g2_Arduino/releases/tag/2.19.8). + +## Overview + +### Library Usage +The Lua bindings for this library closely follow u8g2's object oriented C++ API. Based on the u8g2 class, you create an object for your display type. The communication interface has to be initialized up front, refer to the examples below on how to do this. + +SSD1306 via I²C: +```lua +sla = 0x3c +disp = u8g2.ssd1306_i2c_128x64_noname(id, sla) +``` + +SSD1306 via SPI: +```lua +cs = 22 +dc = 16 +res = 0 -- RES is optional YMMV +disp = u8g2.ssd1306_128x64_noname(bus, cs, dc, res) +``` + +This object provides all of u8g2's methods to control the display. Refer to [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua) to get an impression how this is achieved with Lua code. Visit the [u8g2 homepage](https://github.com/olikraus/u8g2) for technical details. + +### Displays selection +I²C and HW SPI based displays with support in u8g2 can be enabled. + +The procedure is different for ESP8266 and ESP32 platforms. + +#### ESP8266 +Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_displays.h](../../../app/include/u8g2_displays.h): +```c +#define U8G2_DISPLAY_TABLE_I2C \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ + +#define U8G2_DISPLAY_TABLE_SPI \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcd8544_84x48_f, pcd8544_84x48) \ + U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcf8812_96x65_f, pcf8812_96x65) \ +``` + +#### ESP32 +Enable the desired entries for I²C and SPI displays in u8g2's sub-menu (run `make menuconfig`). + +### Fonts selection +U8g2 comes with a wide range of fonts for small displays. Fonts can be supplied as strings or compiled into the firmware image to decrease the RAM footprint. If compiled into the firmware they become available as `u8g2.` in Lua. + +The procedure is different for ESP8266 and ESP32 platforms. + +#### ESP8266 +Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../../app/include/u8g2_fonts.h): +```c +#define U8G2_FONT_TABLE \ + U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \ + U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ +``` + +#### ESP32 +Add the desired fonts to the font selection sub-entry via `make menuconfig`. + +### Bitmaps +XBM bitmaps are supplied as strings to `drawXBM()` in contrast to the source code based inclusion of XBMs in upstream u8g2 library. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8g2/graphics_test.lua). + +Conversion of XBM bitmaps can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result. + +## I²C Display Drivers +Initialize a display via I²C. + +- `u8g2.ld7032_i2c_60x32()` +- `u8g2.sh1106_i2c_128x64_noname()` +- `u8g2.sh1106_i2c_128x64_vcomh0()` +- `u8g2.ssd1305_i2c_128x32_noname()` +- `u8g2.ssd1306_i2c_128x32_univision()` +- `u8g2.ssd1306_i2c_128x64_noname()` +- `u8g2.ssd1306_i2c_128x64_vcomh0()` +- `u8g2.ssd1309_i2c_128x64_noname0()` +- `u8g2.ssd1309_i2c_128x64_noname2()` +- `u8g2.ssd1306_i2c_64x48_er()` +- `u8g2.ssd1306_i2c_96x16_er()` +- `u8g2.ssd1325_i2c_nhd_128x64()` +- `u8g2.ssd1327_i2c_seeed_96x96()` +- `u8g2.st7588_i2c_jlx12864()` +- `u8g2.uc1602_i2c_128X32()` +- `u8g2.uc1604_i2c_jlx19264()` +- `u8g2.uc1608_i2c_erc24064()` +- `u8g2.uc1608_i2c_240x128()` +- `u8g2.uc1610_i2c_ea_dogxl160()` +- `u8g2.uc1611_i2c_ea_dogm240()` +- `u8g2.uc1611_i2c_ea_dogxl240()` +- `u8g2.uc1611_i2c_ew50850()` + +#### Syntax +`u8g2.ssd1306_i2c_128x64_noname(id, address[, cb_fn])` + +#### Parameters +- `id` i2c interface id, see [i2c module](i2c.md) +- `address` I²C slave address of display (unshifted) +- `cb_fn` optional callback function, see [Framebuffer callback](#framebuffer-callback) + +#### Returns +u8g2 display object + +#### Example for ESP8266 +```lua +id = 0 +sda = 5 -- GPIO14 +scl = 6 -- GPIO12 +sla = 0x3c +i2c.setup(id, sda, scl, i2c.SLOW) +disp = u8g2.ssd1306_i2c_128x64_noname(id, sla) +``` + +#### Example for ESP32 +```lua +id = i2c.HW0 +sda = 16 +scl = 17 +sla = 0x3c +i2c.setup(id, sda, scl, i2c.FAST) +disp = u8g2.ssd1306_i2c_128x64_noname(id, sla) +``` + +## SPI Display Drivers +Initialize a display via Hardware SPI. + +- `u8g2.il3820_v2_296x128()` +- `u8g2.ist3020_erc19264()` +- `u8g2.ld7032_60x32()` +- `u8g2.ls013b7dh03_128x128()` +- `u8g2.max7219_32x8()` +- `u8g2.nt7534_tg12864r()` +- `u8g2.pcd8544_84x48()` +- `u8g2.pcf8812_96x65()` +- `u8g2.sh1106_128x64_noname()` +- `u8g2.sh1106_128x64_vcomh0()` +- `u8g2.ssd1305_128x32_noname()` +- `u8g2.ssd1306_128x32_univision()` +- `u8g2.ssd1306_128x64_noname()` +- `u8g2.ssd1306_128x64_vcomh0()` +- `u8g2.ssd1306_64x48_er()` +- `u8g2.ssd1306_96x16_er()` +- `u8g2.ssd1309_128x64_noname0()` +- `u8g2.ssd1309_128x64_noname2()` +- `u8g2.sed1520_122x32()` +- `u8g2.ssd1322_nhd_256x64()` +- `u8g2.ssd1325_nhd_128x64()` +- `u8g2.ssd1327_seeed_96x96()` +- `u8g2.ssd1329_128x96_noname()` +- `u8g2.ssd1606_172x72()` +- `u8g2.ssd1607_200x200()` +- `u8g2.st7565_64128n()` +- `u8g2.st7565_ea_dogm128()` +- `u8g2.st7565_ea_dogm132()` +- `u8g2.st7565_erc12864()` +- `u8g2.st7565_lm6059()` +- `u8g2.st7565_nhd_c12832()` +- `u8g2.st7565_nhd_c12864()` +- `u8g2.st7565_zolen_128x64()` +- `u8g2.st7567_jxl12864()` +- `u8g2.st7567_pi_132x64()` +- `u8g2.st7588_jlx12864()` +- `u8g2.st7920_s_128x64()` +- `u8g2.st7920_s_192x32()` +- `u8g2.st75256_jlx172104()` +- `u8g2.st75256_jlx256128()` +- `u8g2.uc1601_128X32()` +- `u8g2.uc1604_jlx19264()` +- `u8g2.uc1608_240x128()` +- `u8g2.uc1608_erc24064()` +- `u8g2.uc1610_ea_dogxl160()` +- `u8g2.uc1611_ea_dogm240()` +- `u8g2.uc1611_ea_dogxl240()` +- `u8g2.uc1611_ew50850()` +- `u8g2.uc1701_ea_dogs102()` +- `u8g2.uc1701_mini12864()` + +#### Syntax +`u8g2.ssd1306_128x64_noname(bus, cs, dc[, [res][, cb_fn]])` + +#### Parameters +- `bus` SPI master bus +- `cs` GPIO pin for CS +- `dc` GPIO pin for DC +- `res` GPIO pin for RES, none if omitted +- `cb_fn` optional callback function, see [Framebuffer callback](#framebuffer-callback) + +#### Returns +u8g2 display object + +#### Example for ESP8266 +```lua +-- Hardware SPI CLK = GPIO14 +-- Hardware SPI MOSI = GPIO13 +-- Hardware SPI MISO = GPIO12 (not used) +-- Hardware SPI /CS = GPIO15 (not used) +cs = 8 -- GPIO15, pull-down 10k to GND +dc = 4 -- GPIO2 +res = 0 -- GPIO16 +bus = 1 +spi.setup(bus, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8) +-- we won't be using the HSPI /CS line, so disable it again +gpio.mode(8, gpio.INPUT, gpio.PULLUP) +disp = u8g2.ssd1306_128x64_noname(bus, cs, dc, res) +``` + +#### Example for ESP32 +```lua +sclk = 19 +mosi = 23 +cs = 22 +dc = 16 +res = 17 +bus = spi.master(spi.HSPI, {sclk=sclk, mosi=mosi}) +disp = u8g2.ssd1306_128x64_noname(bus, cs, dc, res) +``` + +## Framebuffer callback +Each display type can be initialized to provide the framebuffer contents in run-length encoded format to a Lua callback. This mode is enabled when a callback function is specified for the setup function. Hardware display and framebuffer callback can be operated in parallel. If the callback function is the only parameter then no signals for a hardware display are generated, leaving a virtual display. + +The callback function can be used to process the framebuffer line by line. It's called with either `nil` as parameter to indicate the start of a new frame or with a string containing a line of the framebuffer with run-length encoding. First byte in the string specifies how many pairs of (x, len) follow, while each pair defines the start (leftmost x-coordinate) and length of a sequence of lit pixels. All other pixels in the line are dark. + +```lua +n = struct.unpack("B", rle_line) +print(n.." pairs") +for i = 0,n-1 do + print(string.format(" x: %d len: %d", struct.unpack("BB", rle_line, 1+1 + i*2))) +end +``` + +#### Syntax +```lua +u8g2.ssd1306_i2c_128x64_noname(id, address[, cb_fn]) +u8g2.ssd1306_i2c_128x64_noname(cb_fn) +u8g2.ssd1306_128x64_noname(bus, cs, dc[, [res][, cb_fn]]) +u8g2.ssd1306_128x64_noname(cb_fn) +``` + +#### Parameters +- `id`, `address`, `bus`, `cs`, `dc`, `res` see above +- `cb_fn([rle_line])` callback function. `rle_line` is a string containing a run-length encoded framebuffer line, or `nil` to indicate start of frame. + +## Constants +Constants for various functions. + +`u8g2.DRAW_UPPER_RIGHT`, `u8g2.DRAW_UPPER_LEFT`, `u8g2.DRAW_LOWER_RIGHT`, `u8g2.DRAW_LOWER_LEFT`, `u8g2.DRAW_ALL`, + +`u8g2.R0`, `u8g2.R1`, `u8g2.R2`, `u8g2.R3`, `u8g2.MIRROR`, + +`u8g2.font_6x10`, ... + + +# u8g2.disp Sub-Module + +## u8g2.disp:clearBuffer() +Clears all pixel in the memory frame buffer. + +See [u8g2 clearBuffer()](https://github.com/olikraus/u8g2/wiki/u8g2reference#clearbuffer). + +## u8g2.disp:drawBox() +Draw a box (filled frame). + +See [u8g2 drawBox()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawbox). + +## u8g2.disp:drawCircle() +Draw a circle. + +See [u8g2 drawCircle()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawcircle). + +Note that parameter `opt` is optional and defaults to `u8g2.DRAW_ALL` if omitted. + +## u8g2.disp:drawDisc() +Draw a filled circle. + +See [u8g2 drawDisc()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawdisc). + +Note that parameter `opt` is optional and defaults to `u8g2.DRAW_ALL` if omitted. + +## u8g2.disp:drawEllipse() +Draw an ellipse. + +See [u8g2 drawEllipse()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawellipse). + +Note that parameter `opt` is optional and defaults to `u8g2.DRAW_ALL` if omitted. + +## u8g2.disp:drawFilledEllipse() +Draw a filled ellipse. + +See [u8g2 drawFilledEllipse()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawfilledellipse). + +Note that parameter `opt` is optional and defaults to `u8g2.DRAW_ALL` if omitted. + +## u8g2.disp:drawFrame() +Draw a frame (empty box). + +See [u8g2 drawFrame()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawframe). + +## u8g2.disp:drawGlyph() +Draw a single character. + +See [u8g2 drawGlyph()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawglyph). + +## u8g2.disp:drawHLine() +Draw a horizontal line. + +See [u8g2 drawHLine()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawhline). + +## u8g2.disp:drawLine() +Draw a line between two points. + +See [u8g2 drawLine()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawline). + +## u8g2.disp:drawPixel() +Draw a pixel. + +See [u8g2 drawPixel()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawpixel). + +## u8g2.disp:drawRBox() +Draw a box with round edges. + +See [u8g2 drawRBox()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawrbox). + +## u8g2.disp:drawRFrame() +Draw a frame with round edges. + +See [u8g2 drawRFrame()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawrframe). + +## u8g2.disp:drawStr() +Draw a string. + +See [u8g2 drawStr()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawstr). + +## u8g2.disp:drawTriangle() +Draw a triangle (filled polygon). + +See [u8g2 drawTriangle()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawtriangle). + +## u8g2.disp:drawUTF8() +Draw a string which is encoded as UTF-8. + +See [u8g2 drawUTF8()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawutf8). + +## u8g2.disp:drawVLine() +Draw a vertical line. + +See [u8g2 drawVLine()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawvline). + +## u8g2.disp:drawXBM() +Draw a XBM Bitmap. + +See [u8g2 drawXBM()](https://github.com/olikraus/u8g2/wiki/u8g2reference#drawxbm). + +XBM bitmaps are supplied as strings to `drawXBM()`. This off-loads all data handling from the u8g2 module to generic methods for binary files. See [graphics_test.lua](../../../lua_examples/u8glib/u8g_graphics_test.lua). + +In contrast to the source code based inclusion of XBMs in upstream u8g2 library, it's required to provide precompiled binary files. This can be performed online with [Online-Utility's Image Converter](http://www.online-utility.org/image_converter.jsp): Convert from XBM to MONO format and upload the binary result. + +## u8g2.disp:getAscent() +Returns the reference height of the glyphs above the baseline (ascent). + +See [u8g2 getAscent()](https://github.com/olikraus/u8g2/wiki/u8g2reference#getascent). + +## u8g2.disp:getDescent() +Returns the reference height of the glyphs below the baseline (descent). + +See [u8g2 getDescent()](https://github.com/olikraus/u8g2/wiki/u8g2reference#getdescent). + +## u8g2.disp:getStrWidth() +Return the pixel width of string. + +See [u8g2 getStrWidth()](https://github.com/olikraus/u8g2/wiki/u8g2reference#getstrwidth). + +## u8g2.disp:getUTF8Width() +Return the pixel width of an UTF-8 encoded string. + +See [u8g2 getUTF8Width()](https://github.com/olikraus/u8g2/wiki/u8g2reference#getutf8width). + +## u8g2.disp:sendBuffer() +Send the content of the memory frame buffer to the display. + +See [u8g2 sendBuffer()](https://github.com/olikraus/u8g2/wiki/u8g2reference#sendbuffer). + +## u8g2.disp:setBitmapMode() +Define bitmap background color mode. + +See [u8g2 setBitmapMode()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setbitmapmode). + +## u8g2.disp:setContrast() +Set the contrast or brightness. + +See [u8g2 setContrast()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setconstrast). + +## u8g2.disp:setDisplayRotation() +Changes the display rotation. + +See [u8g2 setDisplayRotation()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setdisplayrotation). + +## u8g2.disp:setDrawColor() +Defines the bit value (color index) for all drawing functions. + +See [u8g2 setDrawColor()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setdrawcolor). + +## u8g2.disp:setFlipMode() +Set flip (180 degree rotation) mode. + +See [u8g2 setFlipMode()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setflipmode). + +## u8g2.disp:setFont() +Define a u8g2 font for the glyph and string drawing functions. They can be supplied as strings or compiled into the firmware image. They are available as `u8g2.` in Lua. + +See [u8g2 setFont()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfont). + +## u8g2.disp:setFontDirection() +Set the drawing direction of all strings or glyphs. + +See [u8g2 setFontDirection()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontdirection). + +## u8g2.disp:setFontMode() +Define font background color mode. + +See [u8g2 setFontMode()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontmode). + +## u8g2.disp:setFontPosBaseline() +Change the reference position for the glyph and string draw functions to "baseline". + +See [u8g2 setFontPosBaseline()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontposbaseline). + +## u8g2.disp:setFontPosBottom() +Change the reference position for the glyph and string draw functions to "bottom". + +See [u8g2 setFontPosBottom()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontposbottom). + +## u8g2.disp:setFontPosTop() +Change the reference position for the glyph and string draw functions to "top". + +See [u8g2 setFontPosTop()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontpostop). + +## u8g2.disp:setFontPosCenter() +Change the reference position for the glyph and string draw functions to "center". + +See [u8g2 setFontPosCenter()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontposcenter). + +## u8g2.disp:setFontRefHeightAll() +Set ascent and descent calculation mode to "highest and lowest glyph". + +See [u8g2 setFontRefHeightAll()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontrefheightall). + +## u8g2.disp:setFontRefHeightExtendedText() +Set ascent and descent calculation mode to "highest of [A1(], lowest of [g(]". + +See [u8g2 setFontRefHeightExtendedText()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontrefheightextendedtext). + +## u8g2.disp:setFontRefHeightText() +Set ascent and descent calculation mode to "highest of [A1], lowest of [g]". + +See [u8g2 setFontRefHeightText()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setfontrefheighttext). + +## u8g2.disp:setPowerSave() +Activate or disable power save mode of the display. + +See [u8g2 setPowerSave()](https://github.com/olikraus/u8g2/wiki/u8g2reference#setpowersave). diff --git a/mkdocs.yml b/mkdocs.yml index 542df3c0a7..2c25146334 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -93,6 +93,7 @@ pages: - 'tm1829': 'en/modules/tm1829.md' - 'tmr': 'en/modules/tmr.md' - 'tsl2561': 'en/modules/tsl2561.md' + - 'u8g2': 'en/modules/u8g2.md' - 'uart': 'en/modules/uart.md' - 'ucg': 'en/modules/ucg.md' - 'websocket': 'en/modules/websocket.md' From e2d770627ec07cebf8fc6dd32a06631434404069 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Mon, 20 Nov 2017 21:45:11 +0100 Subject: [PATCH 29/61] use git clone --recurse-submodules for local builds --- docs/en/build.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/docs/en/build.md b/docs/en/build.md index fd1ba0773f..67f343e2ef 100644 --- a/docs/en/build.md +++ b/docs/en/build.md @@ -11,6 +11,13 @@ Occasional NodeMCU firmware hackers don't need full control over the complete to ### Linux Build Environment NodeMCU firmware developers commit or contribute to the project on GitHub and might want to build their own full fledged build environment with the complete tool chain. There is a [post in the esp8266.com Wiki](http://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain) that describes this. +### git +If you decide to build with either the Docker image or the native environment then use git to clone the firmware sources instead of downloading the zip file from GitHub. Only cloning with git will retrieve the referenced submodules: +``` +git clone --recurse-submodules -b https://github.com/nodemcu/nodemcu-firmware.git +``` +Omitting the optional `-b ` will clone master. + ## Build Options The following sections explain some of the options you have if you want to build your own NodeMCU firmware. @@ -24,7 +31,6 @@ Edit `app/include/user_modules.h` and comment-out the `#define` statement for mo ... #define LUA_USE_MODULES_MQTT // #define LUA_USE_MODULES_COAP -// #define LUA_USE_MODULES_U8G ... ``` @@ -81,8 +87,8 @@ Identify your firmware builds by editing `app/include/user_version.h` #endif ``` -### u8g Module Configuration -Display drivers and embedded fonts are compiled into the firmware image based on the settings in `app/include/u8g_config.h`. See the [`u8g` documentation](modules/u8g.md#displays) for details. +### u8g2 Module Configuration +Display drivers and embedded fonts are compiled into the firmware image based on the settings in `app/include/u8g2_displays.h` and `app/include/u8g2_fonts.h`. See the [`u8g2` documentation](modules/u8g2.md#displays) for details. ### ucg Module Configuration Display drivers and embedded fonts are compiled into the firmware image based on the settings in `app/include/ucg_config.h`. See the [`ucg` documentation](modules/ucg.md#displays) for details. From adc08d17c3d32b43db7b817a20aca959206b111a Mon Sep 17 00:00:00 2001 From: devsaurus Date: Tue, 21 Nov 2017 18:31:44 +0100 Subject: [PATCH 30/61] fix malloc/free from stdlib --- app/u8g2lib/u8x8_d_fbrle.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/u8g2lib/u8x8_d_fbrle.c b/app/u8g2lib/u8x8_d_fbrle.c index b6abf6631c..49d7077b5a 100644 --- a/app/u8g2lib/u8x8_d_fbrle.c +++ b/app/u8g2lib/u8x8_d_fbrle.c @@ -6,8 +6,7 @@ #include "u8x8_nodemcu_hal.h" -#include -#include +#include "c_stdlib.h" static const u8x8_display_info_t u8x8_fbrle_display_info = @@ -105,7 +104,7 @@ static uint8_t u8x8_d_fbrle(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *ar uint8_t *buf = ((u8x8_tile_t *)arg_ptr)->tile_ptr; struct fbrle_line *fbrle_line; - if (!(fbrle_line = (struct fbrle_line *)malloc( fbrle_line_size ))) { + if (!(fbrle_line = (struct fbrle_line *)c_malloc( fbrle_line_size ))) { break; } @@ -148,7 +147,7 @@ static uint8_t u8x8_d_fbrle(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void *ar } } - free( fbrle_line ); + c_free( fbrle_line ); } break; From 5f3e210f986f625b0061a48ce61e72f82ce167a0 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Tue, 21 Nov 2017 19:14:57 +0100 Subject: [PATCH 31/61] doc clarifications, code alignment with esp32 --- app/modules/u8g2.c | 9 ++++++--- docs/en/modules/u8g2.md | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/modules/u8g2.c b/app/modules/u8g2.c index 3d7c5e09d6..9bdf8496b1 100644 --- a/app/modules/u8g2.c +++ b/app/modules/u8g2.c @@ -12,6 +12,7 @@ #include "u8g2_fonts.h" #ifdef ESP_PLATFORM +// ESP32 #include "spi_common.h" #include "sdkconfig.h" @@ -659,12 +660,14 @@ static int ldisplay_spi( lua_State *L, display_setup_fn_t setup_fn ) int stack = 0; #ifndef ESP_PLATFORM + // ESP8266 typedef struct { int host; } lspi_host_t; lspi_host_t host_elem; lspi_host_t *host = &host_elem; #else + // ESP32 lspi_host_t *host = NULL; #endif int host_ref = LUA_NOREF; @@ -680,12 +683,12 @@ static int ldisplay_spi( lua_State *L, display_setup_fn_t setup_fn ) /* reference host object to avoid automatic gc */ lua_pushvalue( L, stack ); host_ref = luaL_ref( L, LUA_REGISTRYINDEX ); - get_spi_pins = TRUE; + get_spi_pins = 1; } else if (lua_type( L, stack ) == LUA_TNUMBER) { host->host = luaL_checkint( L, stack ); - get_spi_pins = TRUE; + get_spi_pins = 1; } else { - get_spi_pins = FALSE; + get_spi_pins = 0; stack--; } diff --git a/docs/en/modules/u8g2.md b/docs/en/modules/u8g2.md index 88896bd7cc..1f2b43bf66 100644 --- a/docs/en/modules/u8g2.md +++ b/docs/en/modules/u8g2.md @@ -3,7 +3,7 @@ | :----- | :-------------------- | :---------- | :------ | | 2017-06-02 | [Oli Kraus](https://github.com/olikraus/u8glib), [Arnim Läuger](https://github.com/devsaurus) | [Arnim Läuger](https://github.com/devsaurus) | [u8g2.c](../../../apps/modules/u8g2.c)| -U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. +U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. Please see [How to port U8g code](https://github.com/olikraus/u8g2/wiki/u8gvsu8g2) for generic porting instructions. The NodeMCU firmware supports the following displays in I²C and SPI mode: @@ -40,7 +40,7 @@ SPI only: - st75256 - jlx172104 and jlx256128 variants - uc1701 - dogs102 and mini12864 variants -This integration is based on [v2.19.8](https://github.com/olikraus/U8g2_Arduino/releases/tag/2.19.8). +This integration uses full "RAM" memory buffer without picture loop and calls u8g2's `begin()` internally when creating a display object. It is based on [v2.19.8](https://github.com/olikraus/U8g2_Arduino/releases/tag/2.19.8). ## Overview From eba5d57db74671337cc5f50f35ec4efec0f431cb Mon Sep 17 00:00:00 2001 From: devsaurus Date: Thu, 4 Jan 2018 22:25:56 +0100 Subject: [PATCH 32/61] allow definition of font and display tables in an external file --- app/include/u8g2_displays.h | 23 ++++++++++++++++++++++- app/include/u8g2_fonts.h | 9 +++++++++ docs/en/modules/u8g2.md | 10 ++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/app/include/u8g2_displays.h b/app/include/u8g2_displays.h index c9fe107b25..1935b7f161 100644 --- a/app/include/u8g2_displays.h +++ b/app/include/u8g2_displays.h @@ -10,7 +10,9 @@ // Uncomment the U8G2_DISPLAY_TABLE_ENTRY for the device(s) you want to // compile into the firmware. // Stick to the assignments to *_I2C and *_SPI tables. -// + +#ifndef U8G2_DISPLAY_TABLE_I2C_EXTRA + // I2C based displays go into here: // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1610_i2c_ea_dogxl160_f, uc1610_i2c_ea_dogxl160) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1325_i2c_nhd_128x64_f, ssd1325_i2c_nhd_128x64) \ @@ -38,6 +40,17 @@ #define U8G2_DISPLAY_TABLE_I2C \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_i2c_128x64_noname_f, ssd1306_i2c_128x64_noname) \ +#else + +// I2C displays can be defined in an external file. +#define U8G2_DISPLAY_TABLE_I2C \ + U8G2_DISPLAY_TABLE_I2C_EXTRA + +#endif + + +#ifndef U8G2_DISPLAY_TABLE_SPI_EXTRA + // SPI based displays go into here: // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1606_172x72_f, ssd1606_172x72) \ // U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_uc1608_240x128_f, uc1608_240x128) \ @@ -93,6 +106,14 @@ #define U8G2_DISPLAY_TABLE_SPI \ U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_ssd1306_128x64_noname_f, ssd1306_128x64_noname) \ +#else + +// SPI displays can be defined in an external file. +#define U8G2_DISPLAY_TABLE_SPI \ + U8G2_DISPLAY_TABLE_SPI_EXTRA + +#endif + // // *************************************************************************** diff --git a/app/include/u8g2_fonts.h b/app/include/u8g2_fonts.h index 99bc333175..d0d263798d 100644 --- a/app/include/u8g2_fonts.h +++ b/app/include/u8g2_fonts.h @@ -7,11 +7,20 @@ // *************************************************************************** // Configure U8glib fonts // +#ifndef U8G2_FONT_TABLE_EXTRA +// // Add a U8G2_FONT_TABLE_ENTRY for each font you want to compile into the image #define U8G2_FONT_TABLE \ U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \ U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ + +#else // +// The font table can be defined in an external file. +#define U8G2_FONT_TABLE \ + U8G2_FONT_TABLE_EXTRA + +#endif // *************************************************************************** diff --git a/docs/en/modules/u8g2.md b/docs/en/modules/u8g2.md index 1f2b43bf66..b07d075e7a 100644 --- a/docs/en/modules/u8g2.md +++ b/docs/en/modules/u8g2.md @@ -80,6 +80,11 @@ Add the desired entries to the I²C or SPI display tables in [app/include/u8g2_d U8G2_DISPLAY_TABLE_ENTRY(u8g2_Setup_pcf8812_96x65_f, pcf8812_96x65) \ ``` +Alternatively, you can define them as `U8G2_DISPLAY_TABLE_I2C_EXTRA` and `U8G2_DISPLAY_TABLE_SPI_EXTRA` in an external file to avoid changing the source tree. Include the extra file on the `make` command line: +``` +make EXTRA_CCFLAGS='-include $(TOP_DIR)/my_extras.h' +``` + #### ESP32 Enable the desired entries for I²C and SPI displays in u8g2's sub-menu (run `make menuconfig`). @@ -96,6 +101,11 @@ Add the desired fonts to the font table in [app/include/u8g2_fonts.h](../../../a U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ ``` +Alternatively, you can define this as `U8G2_FONT_TABLE_EXTRA` in an external file to avoid changing the source tree. Include the extra file on the `make` command line: +``` +make EXTRA_CCFLAGS='-include $(TOP_DIR)/my_extras.h' +``` + #### ESP32 Add the desired fonts to the font selection sub-entry via `make menuconfig`. From 44120d415714282ef5a62c4bb5a258d5a763e9e2 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sun, 22 Jul 2018 13:23:11 +0200 Subject: [PATCH 33/61] add copyright notice for BSD license --- docs/en/modules/u8g2.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/en/modules/u8g2.md b/docs/en/modules/u8g2.md index b07d075e7a..fbe1db02c0 100644 --- a/docs/en/modules/u8g2.md +++ b/docs/en/modules/u8g2.md @@ -5,6 +5,38 @@ U8g2 is a graphics library developed at [olikraus/u8g2](https://github.com/olikraus/u8g2) with support for many different displays. It is the successor of [U8glib](https://github.com/olikraus/u8glib) which is not developed any further. Please see [How to port U8g code](https://github.com/olikraus/u8g2/wiki/u8gvsu8g2) for generic porting instructions. +!!! note "BSD License for U8g2lib Code" + Universal 8bit Graphics Library (http://code.google.com/p/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. + The NodeMCU firmware supports the following displays in I²C and SPI mode: - ld7032 60x32 From c03df2b4bd545d0640a6aa089a77278a447d3f81 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sun, 22 Jul 2018 13:49:48 +0200 Subject: [PATCH 34/61] adapt to new optional build strategy --- app/Makefile | 4 +--- app/u8g2lib/Makefile | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Makefile b/app/Makefile index 9ba4c24413..400b530a0a 100644 --- a/app/Makefile +++ b/app/Makefile @@ -21,7 +21,7 @@ ifndef PDIR # { GEN_IMAGES= eagle.app.v6.out GEN_BINS= eagle.app.v6.bin OPT_MKTARGETS := coap crypto dht http mqtt pcm sjson sqlite3 tsl2561 websocket -OPT_MKLIBTARGETS := u8g ucg +OPT_MKLIBTARGETS := u8g2 ucg SEL_MKTARGETS := $(shell $(CC) -E -dM include/user_modules.h | sed -n '/^\#define LUA_USE_MODULES_/{s/.\{24\}\(.*\)/\L\1/; p}') OPT_SEL_MKLIBTARGETS := $(foreach tgt,$(OPT_MKLIBTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) OPT_SEL_MKTARGETS := $(foreach tgt,$(OPT_MKTARGETS),$(findstring $(tgt), $(SEL_MKTARGETS))) \ @@ -38,7 +38,6 @@ SUBDIRS= \ lua \ lwip \ task \ - u8g2lib \ smart \ modules \ spiffs \ @@ -69,7 +68,6 @@ COMPONENTS_eagle.app.v6 = \ libc/liblibc.a \ lua/liblua.a \ lwip/liblwip.a \ - u8g2lib/u8g2lib.a \ smart/smart.a \ spiffs/spiffs.a \ fatfs/libfatfs.a \ diff --git a/app/u8g2lib/Makefile b/app/u8g2lib/Makefile index 3916564f02..4e1fa79c9b 100644 --- a/app/u8g2lib/Makefile +++ b/app/u8g2lib/Makefile @@ -12,7 +12,7 @@ # a generated lib/image xxx.a () # ifndef PDIR -GEN_LIBS = u8g2lib.a +GEN_LIBS = libu8g2lib.a endif STD_CFLAGS=-std=gnu11 -Wimplicit From 2e202796b8b8d72140f2921f4611c058bb3b0869 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 23 Jul 2018 23:00:11 +0200 Subject: [PATCH 35/61] Fix LFS Markdown syntax Contributes to #2432 --- docs/en/lfs.md | 115 ++++++++++++++++++++++++++----------------------- mkdocs.yml | 4 +- 2 files changed, 63 insertions(+), 56 deletions(-) diff --git a/docs/en/lfs.md b/docs/en/lfs.md index c22a7a0ee6..bc8ebf93ab 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -4,70 +4,77 @@ LFS is a way how to execute your Lua code out of ESP8266 flash memory so more RAM is available for variables and data structures. This way large Lua files can be run on ESP8266. There would not be enough RAM to execute such files in a "normal" (out of SPIFFS) way. -The tutorial assumes that you are able to build a nodemcu-firmware on a Windows 10 host. +The tutorial assumes that you are able to build a NodeMCU firmware on a Windows 10 host. -This is a simple step-by-step how to use the LFS feature: -1. Get and flash LFS enabled firmware +This is a simple step-by-step recipe how to use the LFS feature. - Either you get it from [NodeMCU Build](https://nodemcu-build.com/). In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. +### Get and flash LFS enabled firmware + +Get the firmware from [NodeMCU Build](https://nodemcu-build.com/). In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. - Another possibility is to compile own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. This file includes explanation of how to configure LFS in its comments. +Another possibility is to compile your own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. This file includes explanations for how to configure LFS in its comments. - For details see section [Selecting the firmware](###Selecting-the-firmware) of the LFS documentation. +For details see section [Selecting the firmware](#selecting-the-firmware) of the LFS documentation below. - Flash the firmware to ESP8266. +[Flash the firmware](flash.md) to ESP8266. -2. Select Lua files to be run from LFS +### Select Lua files to be run from LFS - The easest way is to maintain Lua files of your project in its own directory tree on your host. Project files will be compiled by `luac.cross` to build the LFS image in next step. +The easiest way is to maintain Lua files of your project in its own directory tree on your host. Project files will be compiled by `luac.cross` to build the LFS image in next step. - Nice example is to run telnet and ftp client from LFS. In order to do this put the following files in 1 directory: - * [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) - * [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) - * [lua_examples/telnet/telnet.lua](../../lua_examples/telnet/telnet.lua) - * [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) - - 3. Build the LFS image - - Windows 10 users can use the Windows Subsystem for Linux. From the directory with Lua files from the previous section run `bash` and execute the command (adjust the path as needed): - ```bash - /mnt/c/GitHub/nodemcu-firmware/luac.cross -f *.lua - ``` - or the following command which includes all Lua files except `init.lua` into LFS image can be used (`init.lua` needs to be in SPIFFS so it does not make sense to include it in the LFS image) - ```bash - /mnt/c/GitHub/nodemcu-firmware/luac.cross -f `find *.lua -not -name 'init.lua'` - ``` - As a result the `luac.out` file is created. - - 4. Upload the LFS image - - Now it's time to upload the generate LFS image file (`luac.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. - - One way is to use the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, button "Upload...". - - 5. Flash the LFS image to LFS partition - - Run the following command on ESP - ```Lua - node.flashreload("luac.out") - ``` - The firmware will reboot the ESP8266 and modules will be available after reboot. - - 6. Adjust the `init.lua` file - - `init.lua` is the file that is first executed by the NodeMCU firmware. Usually it setups the wifi connection and executes the main Lua file. +A nice example is to run Telnet and FTP servers from LFS. In order to do this put the following files in 1 directory: + +* [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) +* [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) +* [lua_examples/telnet/telnet.lua](../../lua_examples/telnet/telnet.lua) +* [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) + +### Build the LFS image + +Windows 10 users can use the Windows Subsystem for Linux. From the directory with Lua files from the previous section run `bash` and execute the command (adjust the path as needed): + +```bash +/mnt/c/GitHub/nodemcu-firmware/luac.cross -f *.lua +``` + +Or the following command which includes all Lua files except `init.lua` (`init.lua` needs to be in SPIFFS so it does not make sense to include it in the LFS image) + +```bash +/mnt/c/GitHub/nodemcu-firmware/luac.cross -f `find *.lua -not -name 'init.lua'` +``` + +As a result the `luac.out` file is created. + +### Upload the LFS image + +Now upload the generate LFS image file (`luac.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. - Add the following lines: - - ```Lua - -- Execute the LFS init - node.flashindex("_init")() - -- Start telnet server - require("telnet"):open() - -- Start ftp serer - require("ftpserver").createServer('user', 'password') - ``` +One way is to use the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, button "Upload...". + +### Flash the LFS image to LFS partition + +Run the following command on ESP + +```lua +node.flashreload("luac.out") +``` + +The firmware will reboot the ESP8266 and modules will be available after reboot. + +### Adjust the `init.lua` file + +`init.lua` is the file that is first executed by the NodeMCU firmware. Usually it setups the wifi connection and executes the main Lua file. +Add the following lines: +```lua +-- Execute the LFS init +node.flashindex("_init")() +-- Start Telnet server +require("telnet"):open() +-- Start FTP serer +require("ftpserver").createServer('user', 'password') +``` + ## Background An IoT device such as the ESP8266 has very different processor characteristics from the CPU in a typical PC: diff --git a/mkdocs.yml b/mkdocs.yml index 3cc955ffd2..c2b91bdea4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,8 +33,8 @@ pages: - Whitepapers: - Filesystem on SD card: 'en/sdcard.md' - Internal filesystem: 'en/spiffs.md' - - Lua Compact Debug(LCD): 'en/lcd.md' - - Lua Flash Store(LFS): 'en/lfs.md' + - Lua Compact Debug (LCD): 'en/lcd.md' + - Lua Flash Store (LFS): 'en/lfs.md' - Modules: - 'adc': 'en/modules/adc.md' - 'ads1115' : 'en/modules/ads1115.md' From 8505362f2aa47c9d311f927602b6d55778fd24a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Tue, 24 Jul 2018 23:06:24 +0200 Subject: [PATCH 36/61] Rewrite intro for README Fixes #2418 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5a20f07b7e..aa99adee43 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ ### A Lua based firmware for ESP8266 WiFi SOC -NodeMCU is an [eLua](http://www.eluaproject.net/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/). The firmware is based on the [Espressif NON-OS SDK 2.2.1](https://github.com/espressif/ESP8266_NONOS_SDK/releases/tag/v2.2.1) and uses a file system based on [spiffs](https://github.com/pellepl/spiffs). The code repository consists of 98.1% C-code that glues the thin Lua veneer to the SDK. +NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https://github.com/espressif/ESP8266_NONOS_SDK). -The NodeMCU *firmware* is a companion project to the popular [NodeMCU dev kits](https://github.com/nodemcu/nodemcu-devkit-v1.0), ready-made open source development boards with ESP8266-12E chips. +The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules]((https://github.com/nodemcu/nodemcu-devkit-v1.0)), but the project is now community-supported, and the firmware can now be run on _any_ ESP module. # Summary From 4c6c9d338094236638ac91bd377249aa23af696f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Tue, 24 Jul 2018 23:16:58 +0200 Subject: [PATCH 37/61] Mention LFS in intro Contributes to #2431 --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index aa99adee43..d7a7d5ce26 100644 --- a/README.md +++ b/README.md @@ -14,12 +14,15 @@ The firmware was initially developed as is a companion project to the popular ES # Summary - Easy to program wireless node and/or access point -- Based on Lua 5.1.4 (without *debug, os* modules) +- Based on Lua 5.1.4 (without `debug` & `os` modules) - Asynchronous event-driven programming model -- more than 65 built-in modules +- more than **65 built-in modules** - Firmware available with or without floating point support (integer-only uses less memory) - Up-to-date documentation at [https://nodemcu.readthedocs.io](https://nodemcu.readthedocs.io) +### LFS support +In July 2018 support for a Lua Flash Store (LFS) was introduced. LFS allows Lua code and its associated constant data to be executed directly out of flash-memory; just as the firmware itself is executed. This now enables NodeMCU developers to create **Lua applications with up to 256Kb** Lua code and read-only constants executing out of flash. All of the RAM is available for read-write data! + # Programming Model The NodeMCU programming model is similar to that of [Node.js](https://en.wikipedia.org/wiki/Node.js), only in Lua. It is asynchronous and event-driven. Many functions, therefore, have parameters for callback functions. To give you an idea what a NodeMCU program looks like study the short snippets below. For more extensive examples have a look at the [`/lua_examples`](lua_examples) folder in the repository on GitHub. From 62f48fe17079dab4dd4e12897cb128a9524caff8 Mon Sep 17 00:00:00 2001 From: devsaurus Date: Sun, 29 Jul 2018 12:43:42 +0200 Subject: [PATCH 38/61] unbreak firmware build without u8g2 submodule --- app/modules/u8g2.c | 8 ++++++++ app/platform/u8x8_nodemcu_hal.c | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/app/modules/u8g2.c b/app/modules/u8g2.c index 9bdf8496b1..b613b5ea47 100644 --- a/app/modules/u8g2.c +++ b/app/modules/u8g2.c @@ -1,6 +1,12 @@ // Module for binding the u8g2 library // Note: This file is intended to be shared between esp8266 and esp32 platform +// Do not use the code from u8g2 submodule and skip the complete source here +// if the u8g2 module is not selected. +// Reason: The whole u8g2 submodule code tree might not even exist in this case. +#include "user_modules.h" +#if defined(LUA_USE_MODULES_U8G2) || defined(ESP_PLATFORM) + #include "module.h" #include "lauxlib.h" @@ -806,3 +812,5 @@ int luaopen_u8g2( lua_State *L ) { } NODEMCU_MODULE(U8G2, "u8g2", lu8g2_map, luaopen_u8g2); + +#endif /* defined(LUA_USE_MODULES_U8G2) || defined(ESP_PLATFORM) */ diff --git a/app/platform/u8x8_nodemcu_hal.c b/app/platform/u8x8_nodemcu_hal.c index fee13381a9..ab78bf36f3 100644 --- a/app/platform/u8x8_nodemcu_hal.c +++ b/app/platform/u8x8_nodemcu_hal.c @@ -1,4 +1,10 @@ +// Do not use the code from u8g2 submodule and skip the complete source here +// if the u8g2 module is not selected. +// Reason: The whole u8g2 submodule code tree might not even exist in this case. +#include "user_modules.h" +#ifdef LUA_USE_MODULES_U8G2 + #include #include "c_stdlib.h" @@ -281,3 +287,5 @@ uint8_t u8x8_byte_nodemcu_spi(u8x8_t *u8x8, uint8_t msg, uint8_t arg_int, void * return 1; } + +#endif /* LUA_USE_MODULES_U8G2 */ From cddefbcae9e86420f4f98646a49ea4ff2fa1a6b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 30 Jul 2018 23:25:55 +0200 Subject: [PATCH 39/61] Add comment for font list --- app/include/u8g2_fonts.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/include/u8g2_fonts.h b/app/include/u8g2_fonts.h index d0d263798d..c16784aad4 100644 --- a/app/include/u8g2_fonts.h +++ b/app/include/u8g2_fonts.h @@ -10,6 +10,8 @@ #ifndef U8G2_FONT_TABLE_EXTRA // // Add a U8G2_FONT_TABLE_ENTRY for each font you want to compile into the image +// See https://github.com/olikraus/u8g2/wiki/fntlistall for a complete list of +// available fonts. Drop the 'u8g2_' prefix when you add them here. #define U8G2_FONT_TABLE \ U8G2_FONT_TABLE_ENTRY(font_6x10_tf) \ U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) \ From 8e8b5df02004c18eaf66010d65a532394702e3bf Mon Sep 17 00:00:00 2001 From: devsaurus Date: Wed, 1 Aug 2018 22:18:53 +0200 Subject: [PATCH 40/61] use ar from esp toolchain instead of host --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 425780b821..47a93f107f 100644 --- a/Makefile +++ b/Makefile @@ -227,8 +227,8 @@ $(TOP_DIR)/sdk/.patched-$(SDK_VER): $(TOP_DIR)/cache/$(SDK_PATCH_VER).patch $(TOP_DIR)/sdk/.pruned-$(SDK_VER): rm -f $(SDK_DIR)/lib/liblwip.a $(SDK_DIR)/lib/libssl.a $(SDK_DIR)/lib/libmbedtls.a - ar d $(SDK_DIR)/lib/libmain.a time.o - ar d $(SDK_DIR)/lib/libc.a lib_a-time.o + $(AR) d $(SDK_DIR)/lib/libmain.a time.o + $(AR) d $(SDK_DIR)/lib/libc.a lib_a-time.o touch $@ $(TOP_DIR)/cache/v$(SDK_FILE_VER).zip: From eb79f1e79ac2a921ac013dccb6137e45c6a452cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sun, 5 Aug 2018 17:58:04 +0200 Subject: [PATCH 41/61] Improve documentation for wifi.monitor Fixes #2433, #2434 --- docs/en/modules/wifi_monitor.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/en/modules/wifi_monitor.md b/docs/en/modules/wifi_monitor.md index 8257dc422b..c7ea1d90f1 100644 --- a/docs/en/modules/wifi_monitor.md +++ b/docs/en/modules/wifi_monitor.md @@ -12,7 +12,7 @@ This module is not for casual use -- it requires an understanding of IEEE802.11 This registers a callback function to be called whenever a management frame is received. Note that this can be at quite a high rate, so some limited filtering is provided before the callback is invoked. Only the first 110 bytes or so of the frame are returned -- this is an SDK restriction. -Any connected ap/station will be disconnected. +Any connected AP/station will be disconnected. Calling this function sets the channel back to 1. #### Syntax `wifi.monitor.start([filter parameters,] mgmt_frame_callback)` @@ -29,10 +29,10 @@ nothing. #### Example ``` -wifi.monitor.channel(6) wifi.monitor.start(13, 0x80, function(pkt) print ('Beacon: ' .. pkt.bssid_hex .. " '" .. pkt[0] .. "' ch " .. pkt[3]:byte(1)) end) +wifi.monitor.channel(6) ``` ## wifi.monitor.stop() @@ -46,6 +46,7 @@ This disables the monitor mode and returns to normal operation. There are no par This sets the channel number to monitor. Note that in many applications you will want to step through the channel numbers at regular intervals. Beacon frames (in particular) are typically sent every 102 milliseconds, so a switch time of (say) 150 milliseconds seems to work well. +Note that this function should be called after starting to monitor, since `wifi.monitor.start` resets the channel back to 1. #### Syntax `wifi.monitor.channel(channel)` From 7d86fef59890139a1585aa7a82b11644bf11322f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 6 Aug 2018 21:27:14 +0200 Subject: [PATCH 42/61] Add LFS links Contributes to #2431 --- docs/en/modules/node.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/modules/node.md b/docs/en/modules/node.md index 76ef92cad6..fec5ae2c3b 100644 --- a/docs/en/modules/node.md +++ b/docs/en/modules/node.md @@ -174,7 +174,7 @@ flash ID (number) ## node.flashindex() -Returns the function reference for a function in the LFS (Lua Flash Store). +Returns the function reference for a function in the [LFS (Lua Flash Store)](../lfs.md). #### Syntax `node.flashindex(modulename)` @@ -193,7 +193,7 @@ The `node.flashindex()` is a low level API call that is normally wrapped using s ## node.flashreload() -Reload the LFS (Lua Flash Store) with the flash image provided. Flash images are generated on the host machine using the `luac.cross`commnad. +Reload the [LFS (Lua Flash Store)](../lfs.md) with the flash image provided. Flash images are generated on the host machine using the `luac.cross`commnad. #### Syntax `node.flashreload(imageName)` From 5d7a46aec1ae0ebf4af5fe2eb37954e7b58f8958 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 6 Aug 2018 21:40:07 +0200 Subject: [PATCH 43/61] Add LFS chapter Contributes to #2431 --- docs/en/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/en/index.md b/docs/en/index.md index 8000df91d7..8b76c4a77f 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -1,8 +1,8 @@ # NodeMCU Documentation -NodeMCU is an [eLua](http://www.eluaproject.net/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/). The firmware is based on the Espressif NON-OS SDK and uses a file system based on [spiffs](https://github.com/pellepl/spiffs). The code repository consists of 98.1% C-code that glues the thin Lua veneer to the SDK. +NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https://github.com/espressif/ESP8266_NONOS_SDK). -The NodeMCU *firmware* is a companion project to the popular [NodeMCU dev kits](https://github.com/nodemcu/nodemcu-devkit-v1.0), ready-made open source development boards with ESP8266-12E chips. +The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules]((https://github.com/nodemcu/nodemcu-devkit-v1.0)), but the project is now community-supported, and the firmware can now be run on _any_ ESP module. ## Programming Model The NodeMCU programming model is similar to that of [Node.js](https://en.wikipedia.org/wiki/Node.js), only in Lua. It is asynchronous and event-driven. Many functions, therefore, have parameters for callback functions. To give you an idea what a NodeMCU program looks like study the short snippets below. For more extensive examples have a look at the `/lua_examples` folder in the repository on GitHub. @@ -42,6 +42,8 @@ gpio.mode(pin, gpio.OUTPUT) gpio.write(pin, gpio.HIGH) print(gpio.read(pin)) ``` +### Lua Flash Store (LFS) +In July 2018 support for a [Lua Flash Store (LFS)](lfs.md) was introduced. LFS allows Lua code and its associated constant data to be executed directly out of flash-memory; just as the firmware itself is executed. This now enables NodeMCU developers to create Lua applications with up to 256Kb Lua code and read-only constants executing out of flash. All of the RAM is available for read-write data! ## Getting Started 1. [Build the firmware](build.md) with the modules you need. From fd12be996688cea675e39b2ba99ce4b2baea4993 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Fri, 10 Aug 2018 16:38:48 +0100 Subject: [PATCH 44/61] file: list now takes optional pattern for filtering (#2452) Thanks to @TerryE for many useful suggestions --- app/modules/file.c | 53 ++++++++++++++++++++++++++++++++++------- docs/en/modules/file.md | 8 +++++-- 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/app/modules/file.c b/app/modules/file.c index 26a91d9474..8ccb492405 100644 --- a/app/modules/file.c +++ b/app/modules/file.c @@ -214,18 +214,53 @@ static int file_open( lua_State* L ) static int file_list( lua_State* L ) { vfs_dir *dir; + const char *pattern; + struct vfs_stat stat; + int pcres; + + lua_settop(L, 1); + pattern = luaL_optstring(L, 1, NULL); /* Pattern (arg) or nil (not) at 1 */ + + dir = vfs_opendir(""); + if (dir == NULL) { + return 0; + } + + lua_newtable( L ); /* Table at 2 */ + + if (pattern) { + /* + * We know that pattern is a string, and so the "match" method will always + * exist. No need to check return value here + */ + luaL_getmetafield( L, 1, "match" ); /* Function at 3 */ + } - if (dir = vfs_opendir("")) { - lua_newtable( L ); - struct vfs_stat stat; - while (vfs_readdir(dir, &stat) == VFS_RES_OK) { - lua_pushinteger(L, stat.size); - lua_setfield(L, -2, stat.name); + while (vfs_readdir(dir, &stat) == VFS_RES_OK) { + if (pattern) { + lua_settop( L, 3 ); /* Ensure nothing else on stack */ + + /* Construct and pcall(string.match,name,pattern) */ + lua_pushvalue( L, 3 ); + lua_pushstring( L, stat.name ); + lua_pushvalue( L, 1 ); + pcres = lua_pcall( L, 2, 1, 0 ); + if (pcres != 0) { + vfs_closedir(dir); + lua_error( L ); + } + if (lua_isnil( L, -1 )) { + continue; + } } - vfs_closedir(dir); - return 1; + lua_pushinteger( L, stat.size ); + lua_setfield( L, 2, stat.name ); } - return 0; + + /* Shed everything back to Table */ + lua_settop( L, 2 ); + vfs_closedir(dir); + return 1; } static int get_file_obj( lua_State *L, int *argpos ) diff --git a/docs/en/modules/file.md b/docs/en/modules/file.md index 7f144b7670..966e596333 100644 --- a/docs/en/modules/file.md +++ b/docs/en/modules/file.md @@ -144,13 +144,17 @@ print("\nFile system info:\nTotal : "..total.." (k)Bytes\nUsed : "..used.." (k)B Lists all files in the file system. #### Syntax -`file.list()` +`file.list([pattern])` #### Parameters none #### Returns -a Lua table which contains the {file name: file size} pairs +a Lua table which contains all {file name: file size} pairs, if no pattern +given. If a pattern is given, only those file names matching the pattern +(interpreted as a traditional [Lua pattern](https://www.lua.org/pil/20.2.html), +not, say, a UNIX shell glob) will be included in the resulting table. +`file.list` will throw any errors encountered during pattern matching. #### Example ```lua From e896face0ca0dc1cf3b1b8d82baf99c060093397 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Sat, 11 Aug 2018 12:48:46 +0100 Subject: [PATCH 45/61] LFS: small tweaks to docs and examples (#2454) --- docs/en/lfs.md | 34 +++++++++++++----------------- lua_examples/lfs/_init.lua | 11 ++++------ lua_examples/lfs/lfs_fragments.lua | 6 +++--- 3 files changed, 22 insertions(+), 29 deletions(-) diff --git a/docs/en/lfs.md b/docs/en/lfs.md index bc8ebf93ab..43422213e3 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -22,7 +22,7 @@ For details see section [Selecting the firmware](#selecting-the-firmware) of the The easiest way is to maintain Lua files of your project in its own directory tree on your host. Project files will be compiled by `luac.cross` to build the LFS image in next step. -A nice example is to run Telnet and FTP servers from LFS. In order to do this put the following files in 1 directory: +A nice example is to run Telnet and FTP servers from LFS. In order to do this put the following files in one directory: * [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) * [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) @@ -63,7 +63,7 @@ The firmware will reboot the ESP8266 and modules will be available after reboot. ### Adjust the `init.lua` file -`init.lua` is the file that is first executed by the NodeMCU firmware. Usually it setups the wifi connection and executes the main Lua file. +`init.lua` is the file that is first executed by the NodeMCU firmware. Usually it sets up the wifi connection and executes the main Lua file. Add the following lines: ```lua @@ -75,6 +75,8 @@ require("telnet"):open() require("ftpserver").createServer('user', 'password') ``` +See [lua_examples/lfs/lfs_fragments.lua](../../lua_examples/lfs/lfs_fragments.lua) for another example. + ## Background An IoT device such as the ESP8266 has very different processor characteristics from the CPU in a typical PC: @@ -177,19 +179,23 @@ do local fn, ba = index(module) return ba and "Module not in LFS" or fn end - package.loaders[3] = loader_flash + table.insert(package.loaders, loader_flash) end ``` +This code is also conveniently packaged in [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua). + Once this has been executed, if you have a function module `func1` in LFS, then `LFS.func1(x,y,z)` just works as you would expect. The LFS properties `_time`, `_config` and `_list` can be used to access the other LFS metadata that you need. -Of course, if you use Lua modules to build your application then `require "some_module"` will automatically path in and load your modules from LFS. Note that SPIFFS is still ahead of LFS in this search list, so if you have a dev version in SPIFFS, say, then this will be loaded first. However, if you want to want to swap this search order so that the LFS is searched first, then set `package.loaders[1] = loader_flash` in your `_init` code. If you need to swap the search order temporarily for development or debugging, then do this after you've run the `_init` code: +Of course, if you use Lua modules to build your application then `require "some_module"` will automatically path in and load your modules from LFS. Note that SPIFFS is still ahead of LFS in this search list, so if you have a dev version in SPIFFS, say, then this will be loaded first. However, if you want to want to swap this search order so that the LFS is searched first, then run `table.insert(package.loaders,2,loader_flash)` in your `_init` code. If you need to swap the search order temporarily for development or debugging, then do this after you've run the `_init` code: ```Lua -do local pl = package.loaders; pl[1],pl[3] = pl[3],pl[1]; end +do local pl = package.loaders; pl[2],pl[5] = pl[5],pl[2]; end ``` +(The indexes 2 and 5 come from the value of the `loaders` array in [app/lua/loadlib.c](../../app/lua/loadlib.c)). + Whilst LFS is primarily used to store compiled modules, it also includes its own string table and any strings loaded into this can be used in your Lua application without taking any space in RAM. Hence, you might also want to preload any other frequently used strings into LFS as this will both save RAM use and reduced the Lua-custom Garbage Collector (**LGC**) overheads. The patch adds an extra debug function `getstrings()` function to help you determine what strings are worth adding to LFS. This takes an optional string argument `'RAM'` (the default) or `'ROM'`, and returns a list of the strings in the corresponding table. So the following example can be used to get a listing of the strings in RAM. You can enter the following Lua at the interactive prompt or call it as a debug function during a running application in order to generate this string list. @@ -202,18 +208,8 @@ do end ``` -If you then create a file, say `LFS_dummy_strings.lua`, and put these `local preload` lines in it, and include this file in your `luac.cross -f`, then the cross compiler will generate a ROM string table that includes all strings referenced in this dummy module. You never need to call this module; just it's inclusion in the LFS build is enough to add the strings to the ROM table. Once in the ROM table, then you can use them subsequently in your application without incurring any RAM or LGC overhead. The following example is a useful starting point, but if needed then you can add to this -for your application. - -```Lua -local preload = "?.lc;?.lua", "@init.lua", "_G", "_LOADED", "_LOADLIB", "__add", -"__call", "__concat", "__div", "__eq", "__gc", "__index", "__le", "__len", "__lt", -"__mod", "__mode", "__mul", "__newindex", "__pow", "__sub", "__tostring", "__unm", -"collectgarbage", "cpath", "debug", "file", "file.obj", "file.vol", "flash", -"getstrings", "index", "ipairs", "list", "loaded", "loader", "loaders", "loadlib", -"module", "net.tcpserver", "net.tcpsocket", "net.udpsocket", "newproxy", "package", -"pairs", "path", "preload", "reload", "require", "seeall", "wdclr" -``` +If you then create a file, say `LFS_dummy_strings.lua`, and put these `local preload` lines in it, and include this file in your `luac.cross -f`, then the cross compiler will generate a ROM string table that includes all strings referenced in this dummy module. You never need to call this module; just it's inclusion in the LFS build is enough to add the strings to the ROM table. Once in the ROM table, then you can use them subsequently in your application without incurring any RAM or LGC overhead. +A useful starting point may be found in [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua). ## Technical Issues @@ -281,7 +277,7 @@ The deep cross-copy of the `Proto` hierarchy is also complicated because current With this patch, the `luac.cross` build has been moved into the overall application hierarchy and is now simply a part of the NodeMCU make. The old Lua script has been removed from the `tools` directory, together with the need to have Lua preinstalled on the host. -The LFS image is by default position independent, so is independent of the actual NodeMCU target image. You just have to copy it to the target file system and execute a `reload` to copy this to the correct location, relocating all address to the correct base. (See `app/lua/lflash.c` for the details.) This process is fast. However, -a `luac.cross -a` also allows absolute address images to be built for direct flashing into the LFS store during provisioning. +The LFS image is by default position independent, so is independent of the actual NodeMCU target image. You just have to copy it to the target file system and execute a `reload` to copy this to the correct location, relocating all address to the correct base. (See `app/lua/lflash.c` for the details.) This process is fast. However, `luac.cross -a` also allows absolute address images to be built for direct flashing into the LFS store during provisioning. ### Impact of the Lua Garbage Collector @@ -294,7 +290,7 @@ section provides further detail on how this was achieved. The **mark** phase walks collectable objects by a recursive walk starting at at the LGC roots. (This is referred to as _traverse_.) Any object that is visited in this walk has its colour flipped from *white* to *grey* to denote that it is in use, and it is relinked into a grey list. The grey list is iteratively processed, removing one grey object at a time. Such objects can reference other objects (e.g. a table has many keys and values which can also be collectable objects), so each one is then also traversed and all objects reachable from it are marked, as above. After an object has been traversed, it's turned from grey to black. The LGC will walks all RW collectable objects, traversing the dependents of each in turn. As RW objects can now refer to RO ones, the traverse routines has additinal tests to skip trying to mark any RO LFS references. -The white flavour is flipped just before entering the **sweep** phase. This phase then loops over all collectable objects. Any objects found with previous white are no longer in user, and so can be freed. The 'current' white are kept; this prevents any new objected created during a paused sweep from being accidentally collected before being marked, but this means that it takes two sweeps to free all unused objects. There are other subtleties introduced in this 3-colour algorithm such as barriers and back-tracking to maintain integrity of the LGC, and these also needed extra rules to handle RO GCObjects correclty, but detailed explanation of these is really outside the scope of this paper. +The white flavour is flipped just before entering the **sweep** phase. This phase then loops over all collectable objects. Any objects found with previous white are no longer in use, and so can be freed. The 'current' white are kept; this prevents any new objects created during a paused sweep from being accidentally collected before being marked, but this means that it takes two sweeps to free all unused objects. There are other subtleties introduced in this 3-colour algorithm such as barriers and back-tracking to maintain integrity of the LGC, and these also needed extra rules to handle RO GCObjects correclty, but detailed explanation of these is really outside the scope of this paper. As well as standard collectable GCOobjets: diff --git a/lua_examples/lfs/_init.lua b/lua_examples/lfs/_init.lua index 3a6f406253..e4911d4765 100644 --- a/lua_examples/lfs/_init.lua +++ b/lua_examples/lfs/_init.lua @@ -21,7 +21,7 @@ gives you the parameter to use in the luac.cross -a option. LFS._list This returns a table of the LFS modules, hence - print(table.concat(LFS._list),'\n') + print(table.concat(LFS._list,'\n')) gives you a single column listing of all modules in the LFS. ---------------------------------------------------------------------------------]] @@ -62,17 +62,14 @@ G.LFS = setmetatable(lfs_t,lfs_t) have jean.lc or jean.lua in SPIFFS, then this SPIFFS version will get loaded into RAM instead of using. (Useful, for development). - Note that if you want LFS to take a higher priority than SPIFFS, the use the [2] - slot for loaders. If you want to reverse these in your init.lua or interactively - for debugging, then use + See docs/en/lfs.md and the 'loaders' array in app/lua/loadlib.c for more details. - do local pl = package.loaders; pl[2],pl[4] = pl[4],pl[2]; end ---------------------------------------------------------------------------------]] -package.loaders[4] = function(module) -- loader_flash +table.insert(package.loaders,function(module) -- loader_flash local fn, ba = index(module) return ba and "Module not in LFS" or fn -end +end) --[[------------------------------------------------------------------------------- You can add any other initialisation here, for example a couple of the globals diff --git a/lua_examples/lfs/lfs_fragments.lua b/lua_examples/lfs/lfs_fragments.lua index 8863b2302f..b35d31f3ea 100644 --- a/lua_examples/lfs/lfs_fragments.lua +++ b/lua_examples/lfs/lfs_fragments.lua @@ -47,10 +47,10 @@ $ESPTOOL --port $USB --baud 460800 write_flash -fm dio 0x100000 \ -- delay or a GPIO pin during development, so that you as developer can break into -- the boot sequence if there is a problem with the _init bootstrap that is causing -- a panic loop. Here is one example of how you might do this. You have a second --- to inject tmr.stop(0) into UART0. Extend this dealy if your reactions can't --- meet this. +-- to inject tmr.stop(0) into UART0. Extend this delay if needed. -- --- You also want to do autoload the LFS, for example by adding the following: +-- This example will also attempt to automatically load the LFS block from a SPIFFS +-- file named 'flash.img'. -- if node.flashindex() == nil then node.flashreload('flash.img') From a57fe552e8109a25a10bf5cad510e467b0d39519 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Sat, 11 Aug 2018 12:50:12 +0100 Subject: [PATCH 46/61] app/lua/luac_cross: WRAPCC CC here, too (#2453) Not that Lua takes very long to compile, but allowing for ccache here should still help the builder(s) consume a little less time and power. --- app/lua/luac_cross/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lua/luac_cross/Makefile b/app/lua/luac_cross/Makefile index fe66c8b2a2..22f8a6844e 100644 --- a/app/lua/luac_cross/Makefile +++ b/app/lua/luac_cross/Makefile @@ -47,7 +47,7 @@ DEPS := $(SRC:%.c=$(ODIR)/%.d) CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(STD_CFLAGS) $(INCLUDES) DFLAGS = $(CCFLAGS) $(DDEFINES) $(EXTRA_CCFLAGS) $(STD_CFLAGS) $(INCLUDES) -CC := gcc +CC := $(WRAPCC) gcc ECHO := echo From 91656c3d7638c94c474cad1ed3af747aa5a3ccc8 Mon Sep 17 00:00:00 2001 From: Gregor Hartmann Date: Sat, 11 Aug 2018 19:28:01 +0200 Subject: [PATCH 47/61] create luac.cross.{integer|float} (#2450) Use separate names for the integer and float `luac.cross` binaries. Also adds local/lua directory which is already supported by tools makefile to build LFS image. --- app/lua/luac_cross/Makefile | 12 +++++++++--- local/lua/.gitignore | 4 ++++ tools/Makefile | 15 +++++++++++---- 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 local/lua/.gitignore diff --git a/app/lua/luac_cross/Makefile b/app/lua/luac_cross/Makefile index 22f8a6844e..c1f08cc160 100644 --- a/app/lua/luac_cross/Makefile +++ b/app/lua/luac_cross/Makefile @@ -1,7 +1,7 @@ # -# This Make file is called from the core Makefile hierarchy with is a hierarchical -# make wwhich uses parent callbacks to implement inheritance. However is luac_cross -# build stands outside this and uses the host toolchain to implement a separate +# This Make file is called from the core Makefile hierarchy which is a hierarchical +# make which uses parent callbacks to implement inheritance. However if luac_cross +# build stands outside this it uses the host toolchain to implement a separate # host build of the luac.cross image. # .NOTPARALLEL: @@ -51,7 +51,12 @@ CC := $(WRAPCC) gcc ECHO := echo +BUILD_TYPE := $(shell $(CC) $(EXTRA_CCFLAGS) -E -dM - <../../../app/include/user_config.h | grep LUA_NUMBER_INTEGRAL | wc -l) +ifeq ($(BUILD_TYPE),0) IMAGE := ../../../luac.cross +else +IMAGE := ../../../luac.cross.int +endif .PHONY: test clean all @@ -65,6 +70,7 @@ test : @echo SRC: $(SRC) @echo OBJS: $(OBJS) @echo DEPS: $(DEPS) + @echo IMAGE: $(IMAGE) clean : $(RM) -r $(ODIR) diff --git a/local/lua/.gitignore b/local/lua/.gitignore new file mode 100644 index 0000000000..ffcaad4ce6 --- /dev/null +++ b/local/lua/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything +* +# But not this file itself. +!.gitignore diff --git a/tools/Makefile b/tools/Makefile index b00f7a32bc..8a784ce3f9 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -2,8 +2,8 @@ # Options # -FSSOURCE ?= ../local/fs/ -LUASOURCE ?= ../local/lua/ +FSSOURCE ?= ../local/fs +LUASOURCE ?= ../local/lua FLASHSIZE ?= 4mb 32mb 8mb FLASH_SW = -S SUBDIRS = @@ -14,7 +14,7 @@ OBJDUMP = $(or $(shell which objdump),xtensa-lx106-elf-objdump) # Get the files to pack into the spiffs image # -SPIFFSFILES ?= $(patsubst $(FSSOURCE)%,%,$(shell find $(FSSOURCE) -name '*' '!' -name .gitignore )) +SPIFFSFILES ?= $(patsubst $(FSSOURCE)/%,%,$(shell find $(FSSOURCE)/ -name '*' '!' -name .gitignore )) ################################################################# # Get the filesize of /bin/0x10000.bin and SPIFFS sizing @@ -36,6 +36,13 @@ endif LFSSOURCES := $(wildcard $(LUASOURCE)/*.lua) +BUILD_TYPE := $(shell $(CC) $(EXTRA_CCFLAGS) -E -dM - <../app/include/user_config.h | grep LUA_NUMBER_INTEGRAL | wc -l) +ifeq ($(BUILD_TYPE),0) +LUAC_CROSS := ../luac.cross +else +LUAC_CROSS := ../luac.cross.int +endif + ############################################################# # Rules base # @@ -72,7 +79,7 @@ spiffsscript: remove-image LFSimage spiffsimg/spiffsimg ifneq ($(LFSSOURCES),) LFSimage: $(LFSSOURCES) - ../luac.cross -f -o $(FSSOURCE)flash.img $(LFSSOURCES) + $(LUAC_CROSS) -f -o $(FSSOURCE)flash.img $(LFSSOURCES) else LFSimage: rm -f $(FSSOURCE)flash.img From 4d87e890597e670711630d94c994abab3f418c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Mon, 13 Aug 2018 14:56:21 +0200 Subject: [PATCH 48/61] Fix Git spelling and add LFS --- docs/en/build.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/en/build.md b/docs/en/build.md index 67f343e2ef..719de6822c 100644 --- a/docs/en/build.md +++ b/docs/en/build.md @@ -11,8 +11,8 @@ Occasional NodeMCU firmware hackers don't need full control over the complete to ### Linux Build Environment NodeMCU firmware developers commit or contribute to the project on GitHub and might want to build their own full fledged build environment with the complete tool chain. There is a [post in the esp8266.com Wiki](http://www.esp8266.com/wiki/doku.php?id=toolchain#how_to_setup_a_vm_to_host_your_toolchain) that describes this. -### git -If you decide to build with either the Docker image or the native environment then use git to clone the firmware sources instead of downloading the zip file from GitHub. Only cloning with git will retrieve the referenced submodules: +### Git +If you decide to build with either the Docker image or the native environment then use Git to clone the firmware sources instead of downloading the ZIP file from GitHub. Only cloning with Git will retrieve the referenced submodules: ``` git clone --recurse-submodules -b https://github.com/nodemcu/nodemcu-firmware.git ``` @@ -50,6 +50,9 @@ To enable runtime debug messages to serial console edit `app/include/user_config #define DEVELOP_VERSION ``` +### LFS +LFS is turned off by default. See the [LFS documentation](./lfs.md) for supported config options (e.g. how to enable it). + ### Set UART Bit Rate The initial baud rate at boot time is 115200bps. You can change this by editing `BIT_RATE_DEFAULT` in `app/include/user_config.h`: From 3fd4b4047f32a6b8a607156749a3a9c58a7ee0c3 Mon Sep 17 00:00:00 2001 From: Gregor Hartmann Date: Wed, 15 Aug 2018 10:47:21 +0200 Subject: [PATCH 49/61] Mention GitHub Desktop (#2460) --- CONTRIBUTING.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5222dfc83a..a0dedd1975 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -63,7 +63,9 @@ Avoid intermediate merge commits. [Rebase](https://www.atlassian.com/git/tutoria 1. `git push` 1. [Create a pull request](https://help.github.com/articles/creating-a-pull-request/) (PR) on GitHub. -This is just one way of doing things. If you're proficient in Git matters you're free to choose your own. If you want to read more then the [GitHub chapter in the Git book](http://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project#The-GitHub-Flow) is a way to start. [GitHub's own documentation](https://help.github.com/categories/collaborating/) contains a wealth of information as well. +This is just one way of doing things. If you're proficient in Git matters you're free to choose your own. If you want to read more then the [GitHub chapter in the Git book](http://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project#The-GitHub-Flow) is a way to start. [GitHub's own documentation](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/) contains a wealth of information as well. + +As a Windows or Mac user you could also resort to [GitHub Desktop](https://desktop.github.com/). It's a mature GUI application that supports most of the tasks outlined above. ### Keeping your fork in sync You need to sync your fork with the NodeMCU upstream repository from time to time, latest before you rebase (see flow above). From 0a248cdfd75b326d401aa770e4ee09a0ba6976b1 Mon Sep 17 00:00:00 2001 From: Gregor Hartmann Date: Wed, 15 Aug 2018 10:48:23 +0200 Subject: [PATCH 50/61] Fix output filename of LFS image built in tools (#2459) --- tools/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/Makefile b/tools/Makefile index 8a784ce3f9..38c23e1372 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -73,16 +73,16 @@ spiffsimg/spiffsimg: spiffsscript: remove-image LFSimage spiffsimg/spiffsimg rm -f ./spiffsimg/spiffs.lst @echo "" >> ./spiffsimg/spiffs.lst - @$(foreach f, $(SPIFFSFILES), echo "import $(FSSOURCE)$(f) $(f)" >> ./spiffsimg/spiffs.lst ;) + @$(foreach f, $(SPIFFSFILES), echo "import $(FSSOURCE)/$(f) $(f)" >> ./spiffsimg/spiffs.lst ;) $(foreach sz, $(FLASHSIZE), spiffsimg/spiffsimg -f ../bin/0x%x-$(sz).img $(FLASH_SW) $(sz) -U $(FLASH_FS_LOC) -r ./spiffsimg/spiffs.lst -d; ) @$(foreach sz, $(FLASHSIZE), if [ -r ../bin/spiffs-$(sz).dat ]; then echo Built $$(cat ../bin/spiffs-$(sz).dat)-$(sz).bin; fi; ) ifneq ($(LFSSOURCES),) LFSimage: $(LFSSOURCES) - $(LUAC_CROSS) -f -o $(FSSOURCE)flash.img $(LFSSOURCES) + $(LUAC_CROSS) -f -o $(FSSOURCE)/LFS.img $(LFSSOURCES) else LFSimage: - rm -f $(FSSOURCE)flash.img + rm -f $(FSSOURCE)/LFS.img endif remove-image: From 470bad0d9d223fc45b1ad46508b70589817bb8dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Fri, 17 Aug 2018 21:48:35 +0200 Subject: [PATCH 51/61] Enable MkDocs strict mode again --- mkdocs.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 1e112ddead..2e4579e948 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,8 +2,9 @@ site_name: NodeMCU Documentation site_description: Description of the NodeMCU documentation repo_url: https://github.com/nodemcu/nodemcu-firmware/ -theme: readthedocs -strict: false # mustn't be true due to https://github.com/rtfd/readthedocs.org/issues/4314 +theme: + name: "readthedocs" +strict: true markdown_extensions: #http://pythonhosted.org/Markdown/extensions/admonition.html From fe40323ec49a0169ab2ca9a8722f623665b5e5ec Mon Sep 17 00:00:00 2001 From: Tim Godfrey <37b95tfuwa@snkmail.com> Date: Sat, 18 Aug 2018 12:26:18 -0500 Subject: [PATCH 52/61] FAQ update for io.write clarification (#2463) --- docs/en/lua-developer-faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/lua-developer-faq.md b/docs/en/lua-developer-faq.md index 497a95186d..58bbd763dc 100644 --- a/docs/en/lua-developer-faq.md +++ b/docs/en/lua-developer-faq.md @@ -43,7 +43,7 @@ Whilst the Lua standard distribution includes a stand-alone Lua interpreter, Lua The ESP8266 was designed and is fabricated in China by [Espressif Systems](http://espressif.com/new-sdk-release/). Espressif have also developed and released a companion software development kit (SDK) to enable developers to build practical IoT applications for the ESP8266. The SDK is made freely available to developers in the form of binary libraries and SDK documentation. However this is in a *closed format*, with no developer access to the source files, so anyone developing ESP8266 applications must rely solely on the SDK API (and the somewhat Spartan SDK API documentation). (Note that for the ESP32, Espressif have moved to an open-source approach for its ESP-IDF.) -The NodeMCU Lua firmware is an ESP8266 application and must therefore be layered over the ESP8266 SDK. However, the hooks and features of Lua enable it to be seamlessly integrated without losing any of the standard Lua language features. The firmware has replaced some standard Lua modules that don't align well with the SDK structure with ESP8266-specific versions. For example, the standard `io` and `os` libraries don't work, but have been largely replaced by the NodeMCU `node` and `file` libraries. The `debug` and `math` libraries have also been omitted to reduce the runtime footprint (`modulo` can be done via `%`, `power` via `^`). +The NodeMCU Lua firmware is an ESP8266 application and must therefore be layered over the ESP8266 SDK. However, the hooks and features of Lua enable it to be seamlessly integrated without losing any of the standard Lua language features. The firmware has replaced some standard Lua modules that don't align well with the SDK structure with ESP8266-specific versions. For example, the standard `io` and `os` libraries don't work, but have been largely replaced by the NodeMCU `node` and `file` libraries. The `debug` and `math` libraries have also been omitted to reduce the runtime footprint (`modulo` can be done via `%`, `power` via `^`). Note that the `io.write()` function described in Lua's [Simple I/O Model](https://www.lua.org/pil/21.1.html) is not replaced by the `file` library. To write to the same serial port that the `print(string)` function uses by default, use `uart.write(0,string)`. NodeMCU Lua is based on [eLua](http://www.eluaproject.net/overview), a fully featured implementation of Lua 5.1 that has been optimized for embedded system development and execution to provide a scripting framework that can be used to deliver useful applications within the limited RAM and Flash memory resources of embedded processors such as the ESP8266. One of the main changes introduced in the eLua fork is to use read-only tables and constants wherever practical for library modules. On a typical build this approach reduces the RAM footprint by some 20-25KB and this makes a Lua implementation for the ESP8266 feasible. This technique is called LTR and this is documented in detail in an eLua technical paper: [Lua Tiny RAM](http://www.eluaproject.net/doc/master/en_arch_ltr.html). From add0938d819ebc95e28a46f172a8a5a3a8282376 Mon Sep 17 00:00:00 2001 From: Terry Ellison Date: Wed, 22 Aug 2018 11:09:04 +0100 Subject: [PATCH 53/61] LFS documentation and example updates (#2458) Updates to LFS documentation and the LFS HTTP_OTA module before release to master --- docs/en/lfs.md | 262 +++++++++++++--------------------- lua_examples/lfs/HTTP_OTA.lua | 77 ++++++++++ lua_examples/lfs/_init.lua | 4 +- 3 files changed, 182 insertions(+), 161 deletions(-) create mode 100644 lua_examples/lfs/HTTP_OTA.lua diff --git a/docs/en/lfs.md b/docs/en/lfs.md index 43422213e3..580f36362a 100644 --- a/docs/en/lfs.md +++ b/docs/en/lfs.md @@ -1,205 +1,138 @@ # Lua Flash Store (LFS) -## LFS Quick Start +## Background -LFS is a way how to execute your Lua code out of ESP8266 flash memory so more RAM is available for variables and data structures. This way large Lua files can be run on ESP8266. There would not be enough RAM to execute such files in a "normal" (out of SPIFFS) way. +Lua was originally designed as a general purpose embedded extension language for use in applications run on a conventional computer such as a PC, where the processor is mounted on a motherboard together with multiple Gb of RAM and a lot of other chips providing CPU and I/O support to connect to other devices. -The tutorial assumes that you are able to build a NodeMCU firmware on a Windows 10 host. +ESP8266 modules are on a very different scale: they cost a few dollars; they are postage stamp-sized and only mount two main components, an ESP [SoC](https://en.wikipedia.org/wiki/System_on_a_chip) and a flash memory chip. The SoC includes limited on-chip RAM, but also provides hardware support to map part of the external flash memory into a separate memory address region so that firmware can be executed directly out of this flash memory — a type of [modified Harvard architecture](https://en.wikipedia.org/wiki/Modified_Harvard_architecture) found on many [IoT](https://en.wikipedia.org/wiki/Internet_of_things) devices. Even so, Lua's design goals of speed, portability, small kernel size, extensibility and ease-of-use have made it a good choice for embedded use on an IoT platform, but with one major limitaton: the standard Lua core runtime system (**RTS**) assumes that both Lua data _and_ code are stored in RAM; this isn't a material constraint with a conventional computer, but it can be if your system only has some 48Kb RAM available for application use. -This is a simple step-by-step recipe how to use the LFS feature. +The Lua Flash Store (**LFS**) patch modifies the Lua RTS to support a modified Harvard architecture by allowing the Lua code and its associated constant data to be executed directly out of flash-memory (just as the NoceMCU firmware is itself executed). This now allows NodeMCU Lua developers to create Lua applications with up to 256Kb Lua code and read-only (**RO**) constants executing out of flash, with all of the RAM is available for read-write (**RW**) data. -### Get and flash LFS enabled firmware +Unfortunately, the ESP architecture provides very restricted write operations to flash memory (writing to NAND flash involves bulk erasing complete 4Kb memory pages, before overwriting each erased page with any new content). Whilst it is possible to develop a R/W file system within this constraint (as SPIFFS demonstrates), this makes impractical to modify Lua code pages on the fly. Hence the LFS patch works within a reflash-and-restart paradigm for reloading the LFS, and does this by adding two API new calls: one to reflash the LFS and restart the processor, and one to access LFS stored functions. The patch also addresses all of the technical issues 'under the hood' to make this magic happen. -Get the firmware from [NodeMCU Build](https://nodemcu-build.com/). In the section "LFS options (currently just for dev)" choose the size of the LFS partition (64 KB should be fine). SPIFFS default settings should be fine. - -Another possibility is to compile your own firmware and enable LFS in [user_config.h](../../app/include/user_config.h), setting `#define LUA_FLASH_STORE 0x10000`. This file includes explanations for how to configure LFS in its comments. +The remainder of this paper is split into two parts. The first provides an overview for Lua developers wanting to use LFS effectively at an application programming level, and as most of our developers use a Windows platform, it gives a quick start for these developers before covering some of application issues in more detail. The second part is for those who want to understand a little of how this magic happens, and gives more details on the technical issues that were addressed in order to implement the patch. -For details see section [Selecting the firmware](#selecting-the-firmware) of the LFS documentation below. -[Flash the firmware](flash.md) to ESP8266. +## Using LFS -### Select Lua files to be run from LFS +### A Quick Start for Windows Developers -The easiest way is to maintain Lua files of your project in its own directory tree on your host. Project files will be compiled by `luac.cross` to build the LFS image in next step. - -A nice example is to run Telnet and FTP servers from LFS. In order to do this put the following files in one directory: - -* [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua) -* [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua) -* [lua_examples/telnet/telnet.lua](../../lua_examples/telnet/telnet.lua) -* [lua_modules/ftp/ftpserver.lua](../../lua_modules/ftp/ftpserver.lua) +This is a simple step-by-step guide for ESP8266 Lua developers who want to start to use `luac.cross` on a Windows development environment. -### Build the LFS image +#### Get and flash LFS enabled firmware -Windows 10 users can use the Windows Subsystem for Linux. From the directory with Lua files from the previous section run `bash` and execute the command (adjust the path as needed): - -```bash -/mnt/c/GitHub/nodemcu-firmware/luac.cross -f *.lua -``` - -Or the following command which includes all Lua files except `init.lua` (`init.lua` needs to be in SPIFFS so it does not make sense to include it in the LFS image) - -```bash -/mnt/c/GitHub/nodemcu-firmware/luac.cross -f `find *.lua -not -name 'init.lua'` -``` - -As a result the `luac.out` file is created. +Use the [NodeMCU Build](https://nodemcu-build.com/) service to build the firmware. In the "LFS options" section choose the size of the LFS partition (64 KB should be fine). The SPIFFS default settings will be fine. See section [selecting the firmware](#selecting-the-firmware) for further details. Once you have received the build confirmation email and downloaded the flash image, you can then [flash the firmware](flash.md) to your ESP8266. -### Upload the LFS image +#### Build or download your local copy of `luac.cross` -Now upload the generate LFS image file (`luac.out`) as a normal SPIFFS file. Several tools can be used to upload the files from host to SPIFFS. - -One way is to use the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, button "Upload...". +Windows 10 users can install and use the Windows Subsystem for Linux (WSL). Alternatively all Windows users can [install Cygwin](https://www.cygwin.com/install.html). (You will only need the Cygwin core). Either way, you will need a copy of the `luac.cross` compiler: +- You can either download this from my fileserver. The [ELF variant](http://files.ellisons.org.uk/esp8266/luac.cross) is used for all recent Linux and WSL flavours, or the [cygwin binary](http://files.ellisons.org.uk/esp8266/luac.cross.cygwin)) for the Cygwin environment. +- Or you can compile it yourself by downloading the current NodeMCU sources (this [ZIPfile](https://github.com/nodemcu/nodemcu-firmware/archive/master.zip)); edit the `app/includes/user_config.h` file and the `cd` to the `app/lua/luac_cross` and run make to build the compiler in the NodeMCU firmware root directory. Note that the `luac.cross` make only needs the host toolchain which is installed by default in WSL, but in Cygwin you will need to tick the _gcc-core_ + _gnu make_ options during setup. -### Flash the LFS image to LFS partition +#### Select Lua files to be run from LFS -Run the following command on ESP - -```lua -node.flashreload("luac.out") -``` +The easiest approach is to maintain all the Lua files for your project in a single directory on your host. (These files will be compiled by `luac.cross` to build the LFS image in next step.) + +For example to run the Telnet and FTP servers from LFS, put the following files in your project directory: -The firmware will reboot the ESP8266 and modules will be available after reboot. +* [lua_examples/lfs/_init.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/_init.lua). LFS helper routines and functions. +* [lua_examples/lfs/dummy_strings.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/dummy_strings.lua). Moving common strings into LFS. +* [lua_examples/telnet/telnet.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/telnet/telnet.lua). A simple **telnet** server. +* [lua_modules/ftp/ftpserver.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_modules/ftp/ftpserver.lua). A simple **FTP** server. -### Adjust the `init.lua` file +You should always include the first two modules, but the remaining files would normally be replaced by your own project files. Also remember that these are examples and that you are entirely free to modify or to replace them for your own application needs. -`init.lua` is the file that is first executed by the NodeMCU firmware. Usually it sets up the wifi connection and executes the main Lua file. - -Add the following lines: -```lua --- Execute the LFS init -node.flashindex("_init")() --- Start Telnet server -require("telnet"):open() --- Start FTP serer -require("ftpserver").createServer('user', 'password') -``` - -See [lua_examples/lfs/lfs_fragments.lua](../../lua_examples/lfs/lfs_fragments.lua) for another example. - -## Background +#### Compile the LFS image -An IoT device such as the ESP8266 has very different processor characteristics from the CPU in a typical PC: - -- Conventional CPUs have a lot of RAM, typically more than 1 Gb, that is used to store both code and data. IoT processors like the ESP variants use a [modified Harvard architecture](https://en.wikipedia.org/wiki/Modified_Harvard_architecture) where code can also be executed out of flash memory that is mapped into a address region separate from the limited RAM. +You will do this from within the WSL or Cygwin command window, both of which use the `bash` shell; do a `cd` to the project directory, and execute the command: + +```bash +luac.cross -o lfs.img -f *.lua +``` -- Conventional CPU motherboards include RAM and a lot of support chips. ESP modules are postage stamp-sized and typically comprise one ESP [SoC](https://en.wikipedia.org/wiki/System_on_a_chip) and a flash memory chip used to store firmware and a limited file system. +You will need to adjust the `img` and `lua` paths according to their location, and ensure that `luac.cross` is in your `$PATH` search list. For example if you are using WSL and your project files are in `D:\myproject` then the Lua path would be `/mnt/d/myproject/*.lua` (For cygwin replace `mnt` by `cygwin`). This will create the `lfs.img` file if there are no Lua compile errors (again specify an explicit directory path if needed). -Lua was originally designed as a general embeddable extension language for applications that would typically run on systems such as a PC, but its design goals of speed, portability, small kernel size, extensibility and ease-of-use also make Lua a good choice for embedded use on an IoT platform. Our NodeMCU firmware implementation was therefore constrained by the standard Lua core runtime system (**RTS**) that assumes a conventional CPU architecture with both Lua code and data in RAM; however ESP8266 modules only have approximately 48Kb RAM for application use, even though the firmware itself executes out of the larger flash-based program memory. +You might also want to add a simple one-line script file to your ~/bin directory to wrap this command up. -This Lua Flash Store (**LFS**) patch modifies the NodeMCU Lua RTS to allow Lua code and its associated constant data to be executed directly out of flash-memory, just as the firmware itself is executed. This now enables NodeMCU Lua developers to create Lua applications with up to 256Kb Lua code and read-only (**RO**) constants executing out of flash, so that all of the RAM is available for read-write (**RW**) data. +#### Upload the LFS image and flash it to the LFS region -Though the ESP architecture does allow RW operations to flash, these are constrained by the write limitations of NAND flash architecture, as writing involves the block erasing of 4Kb pages and then overwriting each pach with new content. Whilst it is possible (as with SPIFFS) to develop R/W file systems working within this constraint, memory-mapped read access to flash is cached through a RAM cache in order to accelerate code execution, and this makes it practically impossible to modify executable code pages on the fly. Hence the LFS patch must work within a reflash-and-restart paradigm for reloading the LFS. +Now upload the compiled LFS image file (`lfs.img` in this case) as a normal SPIFFS file. Several tools are available to upload the files from host to SPIFFS, including [ESPlorer](https://github.com/4refr0nt/ESPlorer). There is also a new example, [HTTP_OTA.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/HTTP_OTA.lua), in `lua_examples` that can retrieve images from a standard web service. + +Once the LFS image file is on SPIFFS, you can execute the [node.flashreload()](/en/dev/en/modules/node/#nodeflashreload) command and the loader will then load it into flash and immediately restart the ESP module with the new LFS loaded, if the image file is valid. However, the call will return with an error _if_ the file is found to be invalid, so your reflash code should include logic to handle such an error return. -The LFS patch does this by adding two API new calls to the `node` module: one to reflash the LFS and restart the processor, and one to access the LFS store once loaded. Under the hood, it also addresses all of the technical issues to make this magic happen. +#### Edit your `init.lua` file -The remainder of this paper is split into two sections: +`init.lua` is the file that is first executed by the NodeMCU firmware. Usually it setups the WiFi connection and executes the main Lua application. Assuming that you have included the `_init` file discussed above, then executing this will add a simple API for LFS module access: -- The first section provides an overview the issues that a Lua developer needs to understand at an application level to use LFS effectively. +- Individual functions can be executed directly, e.g. `LFS.myfunc(a,b)` +- LFS is now in the require path, so `require 'myModule'` works as expected. -- The second gives more details on the technical issues that were addressed in order to implement the patch. This is a good overview for those that are interested, but many application programmers won't care how the magic happens, just that it does. +Do a protected call of this `_init` code: `pcall(node.flashindex("_init"))` and check the error status. See [Programming Techniques and Approachs](#programming-techniques-and-approachs) below for a more detailed description. - -## Using LFS +The remainder of this section describes how to use LFS in further detail. ### Selecting the firmware Power developers might want to use Docker or their own build environment as per our [Building the firmware](https://nodemcu.readthedocs.io/en/master/en/build/) documentation, and so `app/include/user_config.h` has now been updated to include the necessary documentation on how to select the configuration options to make an LFS firmware build. -However, most Lua developers seem to prefer the convenience of our [Cloud Build Service](https://nodemcu-build.com/), so we will add two extra menu options to facilitate building LFS images: +However, most Lua developers seem to prefer the convenience of our [Cloud Build Service](https://nodemcu-build.com/), so we have added extra LFS menu options to facilitate building LFS images: Variable | Option ---------|------------ -LFS size | (none, 32Kb, 64Kb, 94Kb) The default is none. Selecting a numeric value builds in the corresponding LFS. -SPIFFS size | (default or a multiple of 64Kb) The cloud build will base the SPIFFS at 1Mb if an explicit size is specified. - -You must choose an explicit (non-default) LFS size to enable the use of LFS. Whilst you can use a default (maximal) SPIFFS configuration, most developers find it more useful to work with a fixed SPIFFS that has been sized to match their application reqirements. +LFS size | (none, 32, 64, 96 or 128Kb) The default is none. The default is none, in which case LFS is disabled. Selecting a numeric value enables LFS with the LFS region sized at this value. +SPIFFS base | If you have a 4Mb flash module then I suggest you choose the 1024Kb option as this will preserve the SPIFFS even if you reflash with a larger firmware image; otherwise leave this at the default 0. +SPIFFS size | (default or various multiples of 64Kb) Choose the size that you need. Larger FS require more time to format on first boot. -### Choosing your development lifecycle +You must choose an explicit (non-default) LFS size to enable the use of LFS. Most developers find it more useful to work with a fixed SPIFFS size matched to their application requirements. - The build environment for generating the firmware images is Linux-based, but as you can use our cloud build service to generate these, you can develop NodeMCU applications on pretty much any platform including Windows and MacOS. Unfortunately LFS images must be built off-ESP on a host platform, so you must be able to run the `luac.cross` cross compiler on your development machine to build LFS images. +### Choosing your development life-cycle -- For Windows 10 developers, the easiest method of achieving this is to install the [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux). Most WSL users install the Ubuntu Bash shell as well; note that this is just a shell and some core GNU utilities (somewhat similar to Cygwin) rather than a full Ubuntu OS, as WSL extends the NT kernel to support the direct execution of Linux ELF images. WSL can directly run the `luac.cross` and `spiffsimg` that are build as part of the firmware. You will also need the `esptool.py` tool but `python.org` already provides Python releases for Windows. + The build environment for generating the firmware images is Linux-based, but you can still develop NodeMCU applications on pretty much any platform including Windows and MacOS, as you can use our cloud build service to generate these images. Unfortunately LFS images must be built off-ESP on a host platform, so you must be able to run the `luac.cross` cross compiler on your development machine to build LFS images. -- Linux users can just use these tools natively. +- For Windows 10 developers, one method of achieving this is to install the [Windows Subsystem for Linux](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux). The default installation uses the GNU `bash` shell and includes the core GNU utilities. WSL extends the NT kernel to support the direct execution of Linux ELF images, and it can directly run the `luac.cross` and `spiffsimg` that are build as part of the firmware. You will also need the `esptool.py` tool but `python.org` already provides Python releases for Windows. Of course all Windows developers can use the Cygwin environment as this runs on all Windows versions and it also takes up less than ½Gb HDD (WSL takes up around 5Gb). -- In principle, only the build environment components needed to support `luac.cross` and `spiffsimg` are the `app/lua/lua_cross` and `tools/spifsimg` subdirectory makes. It should be straight forward to get these working under any environment which provides POSIX runtime support, including MacOS and Cygwin (for windows versions prior to Win10), but suitable developer effort is required to generate suitable executables; any volunteers? +- Linux users can just use these tools natively. Windows users can also to do this in a linux VM or use our standard Docker image. Another alternaive is to get yourself a Raspberry Pi or equivalent SBC and use a package like [DietPi](http://www.dietpi.com/) which makes it easy to install the OS, a Webserver and Samba and make the RPi look like a NAS to your PC. It is also straightforward to write a script to automatically recompile a Samba folder after updates and to make the LFS image available on the webservice so that your ESP modules can update themselves OTA using the new `HTTP_OTA.lua` example. -Most Lua developers seem to start with the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, a 'simple to use' IDE that enables beginning Lua developers to get started. However, ESPlorer relies on a UART connection and this can be slow and cumbersome, and it doesn't scale well for larger ESP application. +- In principle, only the environment component needed to support applicatin development is `luac.cross`, built by the `app/lua/lua_cross` make. (Some developers might also use the `spiffsimg` exectable, made in the `tools/spifsimg` subdirectory). Both of these components use the host toolchain (that is the compiler and associated utilities), rather than the Xtensa cross-compiler toolchain, so it is therefore straightforward to make under any environment which provides POSIX runtime support, including WSL, MacOS and Cygwin. -So many experienced Lua developers switch to a rapid development cycle where they use a development machine to maintain your master Lua source. Going this route will allow you use your favourite program editor and source control, with one of various techniques for compiling the lua on-host and downloading the compiled code to the ESP: +Most Lua developers seem to start with the [ESPlorer](https://github.com/4refr0nt/ESPlorer) tool, a 'simple to use' IDE that enables beginning Lua developers to get started. ESPlorer can be slow cumbersome for larger ESP application, and it requires a direct UART connection. So many experienced Lua developers switch to a rapid development cycle where they use a development machine to maintain your master Lua source. Going this route will allow you use your favourite program editor and source control, with one of various techniques for compiling the lua on-host and downloading the compiled code to the ESP: -- If you use a fixed SPIFFS image (I find 128Kb is enough for most of my applications), then you can script recompiling your LC files, rebuilding a SPIFFS image and loading it onto the ESP using `esptool.py` in less than 60 sec. You can either embed the LFS.img in the SPIFFS, or you can use the `luac.cross -a` option to directly load the new LFS image into the LFS region within the firmware. +- If you use a fixed SPIFFS image (I find 128Kb is enough for most of my applications) and are developing on a UART-attached ESP module, then you can also recompile any LC files and LFS image, then rebuild a SPIFFS file system image before loading it onto the ESP using `esptool.py`; if you script this you will find that this cycle takes less than a minute. You can either embed the LFS.img in the SPIFFS. You can also use the `luac.cross -a` option to build an absolute address format image that you can directly flash into the LFS region within the firmware. -- I now have an LFS aware version of my LuaOTA provisioning system (see `lua_examples/luaOTA`). This handles all of the incremental compiling and LFS reloads transparently. This is typically integrated into the ESP application. +- If you only need to update the Lua components, then you can work over-the-air (OTA). For example see my +[HTTP_OTA.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/HTTP_OTA.lua), which pulls a new LFS image from a webservice and reloads it into the LFS region. This only takes seconds, so I often use this in preference to UART-attached loading. - Another option would be to include the FTP and Telnet modules in the base LFS image and to use telnet and FTP to update your system. (Given that a 64Kb LFS can store thousands of lines of Lua, doing this isn't much of an issue.) -My current practice is to use a small bootstrap `init.lua` file in SPIFFS to load the `_init` module from LFS, and this does all of the actual application initialisation. My `init.lua`: - -- Is really a Lua binary (`.lc`) file renamed to a `.lua` extension. Using a binary init file avoids loading the Lua compiler. This works because even though the firmware looks for `init.lua`, the file extension itself is a just a convention; it is treated as a Lua binary if it has the correct Lua binary header. +My current practice is to use a small bootstrap `init.lua` file in SPIFFS to connect to WiFi, and also load the `_init` module from LFS to do all of the actual application initialisation. There is a few sec delay whilst connecting to the Wifi, and this delay also acts as a "just in case" when I am developing, as it is enough to allow me to paste a `file.remove('init.lua')` into the UART if my test applicaiton is stuck into a panic loop, or set up a different development path for debugging. -- Includes a 1 sec delay before connecting to the Wifi. This is a "just in case" when I am developing. This is enough to allow me to paste a `file.remove'init.lua'` into the UART if I want to do different development paths. +Under rare circumstances, for example a power fail during the flashing process, the flash can be left in a part-written state following a `flashreload()`. The Lua RTS start-up sequence will detect this and take the failsafe opton of resetting the LFS to empty, and if this happens then the LFS `_init` function will be unavailable. Your `init.lua` should therefore not assume that the LFS contains any modules (such as `_init`), and should contain logic to detect if LFS reset has occurred and if necessary reload the LFS again. Calling `node.flashindex("_init")()` directly will result in a panic loop in these circumstances. Therefore first check that `node.flashindex("_init")` returns a function or protect the call, `pcall(node.flashindex("_init"))`, and decode the error status to validate that initialisation was successful. No doubt some standard usecase / templates will be developed by the community over the next six months. ### Programming Techniques and approachs -I have found that moving code into LFS has changed my coding style, as I tend to use larger modules and I don't worry about in-memory code size. This facilitates a more 'keep it simple stupid' coding style, so my ESP Lua code now looks more similar to host-based Lua code. I still prefer to keep the module that I am currently testing in SPIFFS, and only move modules into LFS once they are stable. However if you use `require` to load modules then this can all be handled by the require loader. +I have found that moving code into LFS has changed my coding style, as I tend to use larger modules and I don't worry about in-memory code size. This make it a lot easier to adopt a clearer coding style, so my ESP Lua code now looks more similar to host-based Lua code. Lua code can still be loaded from SPIFFS, so you still have the option to keep code under test in SPIFFS, and only move modules into LFS once they are stable. -Here is the code fragment that I use in my `_init` module to do this magic: +#### Accessing LFS functions and loading LFS modules -```Lua -do - local index = node.flashindex - -- Setup the LFS object - local lfs_t = { - __index = function(_, name) - local fn_ut, ba, ma, size, modules = index(name) - if not ba then - return fn_ut - elseif name == '_time' then - return fn_ut - elseif name == '_config' then - local fs_ma, fs_size = file.fscfg() - return {ba, ma, fs_ma, size, fs_size} - elseif name == '_list' then - return modules - else - return nil - end - end, - __newindex = function(_, name, value) - error("LFS is readonly. Invalid write to LFS." .. name, 2) - end - } - rawset(getfenv(),'LFS', setmetatable(lfs_t,lfs_t)) - -- And add LFS to the require path list - local function loader_flash(module) - local fn, ba = index(module) - return ba and "Module not in LFS" or fn - end - table.insert(package.loaders, loader_flash) +See [lua_examples/lfs/_init.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/_init.lua) for the code that I use in my `_init` module to do create a simple access API for LFS. There are two parts to this. -end -``` - -This code is also conveniently packaged in [lua_examples/lfs/_init.lua](../../lua_examples/lfs/_init.lua). +The first sets up a table in the global variable `LFS` with the `__index` and `__newindex` metamethods. The main purpose of the `__index()` is to resolve any names against the LFS using a `node.flashindex()` call, so that `LFS.someFunc(params)` does exactly what you would expect it to do: this will call `someFunc` with the specified parameters, if it exists in in the LFS. The LFS properties `_time`, `_config` and `_list` can be used to access the other LFS metadata that you need. See the code to understand what they do, but `LFS._list` is the array of all module names in the LFS. The `__newindex` method makes `LFS` readonly. -Once this has been executed, if you have a function module `func1` in LFS, then `LFS.func1(x,y,z)` just works as you would expect. The LFS properties `_time`, `_config` and `_list` can be used to access the other LFS metadata that you need. +The second part uses standard Lua functionality to add the LFS to the require [package.loaders](http://pgl.yoyo.org/luai/i/package.loaders) list. (Read the link if you want more detail). There are four standard loaders, which the require loader searches in turn. NodeMCU only uses the second of these (the Lua loader from the file system), and since loaders 1,3 and 4 aren't used, we can simply replace the 1st or the 3rd by code to use `node.flashindex()` to return the LFS module. The supplied `_init` puts the LFS loader at entry 3, so if the module is in both SPIFFS and LFS, then the SPIFFS version will be loaded. One result of this has burnt me during development: if there is an out of date version in SPIFFS, then it will still get loaded instead of the one if LFS. -Of course, if you use Lua modules to build your application then `require "some_module"` will automatically path in and load your modules from LFS. Note that SPIFFS is still ahead of LFS in this search list, so if you have a dev version in SPIFFS, say, then this will be loaded first. However, if you want to want to swap this search order so that the LFS is searched first, then run `table.insert(package.loaders,2,loader_flash)` in your `_init` code. If you need to swap the search order temporarily for development or debugging, then do this after you've run the `_init` code: +If you want to swap this search order so that the LFS is searched first, then SET `package.loaders[1] = loader_flash` in your `_init` code. If you need to swap the search order temporarily for development or debugging, then do this after you've run the `_init` code: ```Lua -do local pl = package.loaders; pl[2],pl[5] = pl[5],pl[2]; end +do local pl = package.loaders; pl[1],pl[3] = pl[3],pl[1]; end ``` -(The indexes 2 and 5 come from the value of the `loaders` array in [app/lua/loadlib.c](../../app/lua/loadlib.c)). +#### Moving common string constants into LFS -Whilst LFS is primarily used to store compiled modules, it also includes its own string table and any strings loaded into this can be used in your Lua application without taking any space in RAM. Hence, you might also want to preload any other frequently used strings into LFS as this will both save RAM use and reduced the Lua-custom Garbage Collector (**LGC**) overheads. - -The patch adds an extra debug function `getstrings()` function to help you determine what strings are worth adding to LFS. This takes an optional string argument `'RAM'` (the default) or `'ROM'`, and returns a list of the strings in the corresponding table. So the following example can be used to get a listing of the strings in RAM. You can enter the following Lua at the interactive prompt or call it as a debug function during a running application in order to generate this string list. +LFS is mainly used to store compiled modules, but it also includes its own string table and any strings loaded into this can be used in your Lua application without taking any space in RAM. Hence, you might also want to preload any other frequently used strings into LFS as this will both save RAM use and reduced the Lua Garbage Collector (**LGC**) overheads. +The new debug function `debug.getstrings()` can help you determine what strings are worth adding to LFS. It takes an optional string argument `'RAM'` (the default) or `'ROM'`, and returns a list of the strings in the corresponding table. So the following example can be used to get a listing of the strings in RAM. ```Lua do local a=debug.getstrings'RAM' @@ -208,12 +141,18 @@ do end ``` -If you then create a file, say `LFS_dummy_strings.lua`, and put these `local preload` lines in it, and include this file in your `luac.cross -f`, then the cross compiler will generate a ROM string table that includes all strings referenced in this dummy module. You never need to call this module; just it's inclusion in the LFS build is enough to add the strings to the ROM table. Once in the ROM table, then you can use them subsequently in your application without incurring any RAM or LGC overhead. -A useful starting point may be found in [lua_examples/lfs/dummy_strings.lua](../../lua_examples/lfs/dummy_strings.lua). +You can do this at the interactive prompt or call it as a debug function during a running application in order to generate this string list, (but note that calling this still creates the overhead of an array in RAM, so you do need to have enough "head room" to do the call). + +You can then create a file, say `LFS_dummy_strings.lua`, and insert these `local preload` lines into it. By including this file in your `luac.cross` compile, then the cross compiler will also include all strings referenced in this dummy module in the generated ROM string table. Note that you don''t need to call this module; it's inclusion in the LFS build is enough to add the strings to the ROM table. Once in the ROM table, then you can use them subsequently in your application without incurring any RAM or LGC overhead. -## Technical Issues +A useful starting point may be found in [lua_examples/lfs/dummy_strings.lua](https://github.com/nodemcu/nodemcu-firmware/tree/dev/lua_examples/lfs/dummy_strings.lua); this saves about 4Kb of RAM by moving a lot of common compiler and Lua VM strings into ROM. -Whilst memory capacity isn't a material constraint on most conventional machines, the Lua RTS still embeds some features to minimise overall memory usage. In particular: +Another good use of this technique is when you have resources such as CSS, HTML and JS fragments that you want to output over the internet. Instead of having lots of small resource files, you can just use string assignments in an LFS module and this will keep these constants in LFS instead. + + +## Technical issues + +Whilst memory capacity isn't a material constraint on most conventional machines, the Lua RTS still includes some features to minimise overall memory usage. In particular: - The more resource intensive data types are know as _collectable objects_, and the RTS includes a LGC which regularly scans these collectable resources to determine which are no longer in use, so that their associated memory can be reclaimed and reused. @@ -221,22 +160,24 @@ Whilst memory capacity isn't a material constraint on most conventional machines The compiled code, as executed by Lua RTS, internally comprises one or more function prototypes (which use a `Proto` structure type) plus their associated vectors (constants, instructions and meta data for debug). Most of these compiled constant types are basic (e.g. numbers) and the only collectable constant data type are strings. The other collectable types such as arrays are actually created at runtime by executing Lua compiled instructions to build each resource dynamically. -Currently, when any Lua file is loaded into an ESP application, the RTS loads the corresponding compiled version into RAM. Each compiled function has its own Proto structure hierarchy, but this hierarchy is not exposed directly to the running application; instead the compiler generate `CLOSURE` instruction which is executed at runtime to bind the Proto to a Lua function value thus creating a [closure](https://en.wikipedia.org/wiki/Closure_(computer_programming)). Since this occurs at runtime, any `Proto` can be bound to multiple closures. A Lua closure can have multiple RW [Upvalues](https://www.lua.org/pil/27.3.3.html) bound to it, and so function value is much like a Lua object in that it is refering to something that can contain RW state, even though the `Proto` hierarchy itself is intrinsically RO. +When any Lua file is loaded without LFS into an ESP application, the RTS loads the corresponding compiled version into RAM. Each compiled function has its own Proto structure hierarchy, but this hierarchy is not exposed directly to the running application; instead the compiler generates `CLOSURE` instruction which is executed at runtime to bind the `Proto` to a Lua function value thus creating a [closure](https://en.wikipedia.org/wiki/Closure_(computer_programming)). Since this occurs at runtime, any `Proto` can be bound to multiple closures. A Lua closure can also have multiple RW [Upvalues](https://www.lua.org/pil/27.3.3.html) bound to it, and so function value is a Lua RW object in that it is referring to something that can contain RW state, even though the `Proto` hierarchy itself is intrinsically RO. -Whilst advanced ESP Lua programmers can use overlay techniques to ensure that only active functions are loaded into RAM and thus increase the effective application size, this adds to runtime and program complexity. Moving Lua "program" resources into ESP Flash addressable memory typically doubles the effective RAM available, and largley removes the need to complicate applications code to facilitate overlaying. +Whilst advanced ESP Lua programmers can use overlay techniques to ensure that only active functions are loaded into RAM and thus increase the effective application size, this adds to runtime and program complexity. Moving Lua "program" resources into ESP Flash addressable memory typically at least doubles the effective RAM available, and removes the need to complicate applications code by implementing overlaying. Any RO resources that are relocated to a flash address space: - Must not be collected. Also RW references to RO resources must be robustly handled by the LGC. - Cannot reference to any volatile RW data elements (though RW resources can refer to RO resources). -All strings in Lua are [interned](https://en.wikipedia.org/wiki/String_interning), so that only one copy of any string is kept in memory and most string manipulation uses the address of this single copy as a unique reference. This uniqueness and the LGC of strings is facilitated by using a global string table that is hooked into the Lua Global State. Under standard Lua, any new string is first resolved against RAM string table, with only the string-misses being added to the string table. The LFS patch adds a second RO string table in flash and which contains all strings used in LFS Protos. Maintaining integrity across the two RAM and RO string tables is simple and low-cost, with LFS resolution process extended across both the RAM and ROM string tables. Hence any strings already in the ROM string table will generate a unique string reference without the need to add an additional entry in the RAM table. This both significantly reduces the size of the RAM string table, and removes a lot of strings from the LCG scanning. +All strings in Lua are [interned](https://en.wikipedia.org/wiki/String_interning), so that only one copy of any string is kept in memory, and most string manipulation uses the address of this single copy as a unique reference. This uniqueness and the LGC of strings is facilitated by using a global string table that is hooked into the Lua global state. Within standard Lua VM, any new string is first resolved against RAM string table, so that only the string-misses are added to the string table. + +The LFS patch adds a second RO string table in flash and this contains all strings used in the LFS Protos. Maintaining integrity across the two string tables is simple and low-cost, with LFS resolution process extended across both the RAM and ROM string tables. Hence any strings already in the ROM string table already have a unique string reference avoiding the need to add an additional entry in the RAM table. This both significantly reduces the size of the RAM string table, and removes a lot of strings from the LCG scanning. -Note that early development implementations of the LFS build process allowed on-target ESP builds. Unfortunately, we found in practice that the Lua compiler was so resource hungry that it was impractical to get this to scale to usable application sizes, and we therefore abandoned this approach, moving the LFS build process onto the development host machine by embedding this into `luac.cross`. This approach avoids all of the update integrity issues involved in building a new LFS which might require RO resources already referenced in the RW ones. +Note that my early development implementations of the LFS build process allowed on-target ESP builds, but I found that the Lua compiler was too resource hungry for usable application sizes, and it was impractical to get this approach to scale. So we abandoned this approach and moved the LFS build process onto the development host machine by embedding this into `luac.cross`. This approach also avoids all of the update integrity issues involved in building a new LFS which might require RO resources already referenced in the RW ones. -Any LFS image can be loaded in the LFS store by one of two mechanisms: +A LFS image can be loaded in the LFS store by one of two mechanisms: -- The image can be build on the host and then copied into SPIFFS. Calling the `node.flashreload()` API with this filename will load the image, and then schedule a restart to leave the ESP in normal application mode, but with an updated flash block. This sequence is essentially atomic. Once called, the only exit is the reboot. +- The image can be build on the host and then copied into SPIFFS. Calling the `node.flashreload()` API with this filename will load the image, and then schedule a restart to leave the ESP in normal application mode, but with an updated flash block. This sequence is essentially atomic. Once called, and the format of the LFS image has been valiated, then the only exit is the reboot. - The second option is to build the LFS image using the `-a` option to base it at the correct absolute address of the LFS store for a given firmware image. The LFS can then be flashed to the ESP along with the firmware image. @@ -244,7 +185,7 @@ The LFS store is a fixed size for any given firmware build (configurable by the A separate `node.flashindex()` function creates a new Lua closure based on a module loaded into LFS and more specfically its flash-based prototype; whilst this access function is not transparent at a coding level, this is no different functionally than already having to handle `lua` and `lc` files and the existing range of load functions (`load`,`loadfile`, `loadstring`). Either way, creating a closure on flash-based prototype is _fast_ in terms of runtime. (It is basically a single instruction rather than a compile, and it has minimal RAM impact.) -### Basic approach +### Implementation details This **LFS** patch uses two string tables: the standard Lua RAM-based table (`RWstrt`) and a second RO flash-based one (`ROstrt`). The `RWstrt` is searched first when resolving new string requests, and then the `ROstrt`. Any string not already in either table is then added to the `RWstrt`, so this means that the RAM-based string table only contains application strings that are not already defined in the `ROstrt`. @@ -260,7 +201,7 @@ Any Lua file compiled into the LFS image includes its main function prototype an TString *source String name associated with source file ``` -Such LFS images are created by `luac.cross` using the `-f` option, and this builds a flash image based on the list of modules provided but with a master "main" function of the form: +Such LFS images are created by `luac.cross` using the `-f` option, and this builds a flash image using the list of modules provided but with a master "main" function of the form: ```Lua local n = ...,1518283691 -- The Unix Time of the compile @@ -271,26 +212,28 @@ if n == "moduleN" then return module2 end return 1518283691,"module1","module2", --[[ ... ]] ""moduleN" ``` -You can't actually code this Lua because the modules are in separate compilation units, but the compiler being a compiler can just emit the compiled code directly. (See `app/lua/luac_cross/luac.c` for the details.) +Note that you can't actually code this Lua because the modules are in separate compilation units, but the compiler being a compiler can just emit the compiled code directly. (See `app/lua/luac_cross/luac.c` for the details.) -The deep cross-copy of the `Proto` hierarchy is also complicated because current hosts are typically 64bit whereas the ESPs are 32bit, so the structures need repacking. (See `app/lua/luac_cross/luac.c` for the details.) +The deep cross-copy of the compiled `Proto` hierarchy is also complicated because current hosts are typically 64bit whereas the ESPs are 32bit, so the structures need repacking. (See `app/lua/luac_cross/luac.c` for the details.) -With this patch, the `luac.cross` build has been moved into the overall application hierarchy and is now simply a part of the NodeMCU make. The old Lua script has been removed from the `tools` directory, together with the need to have Lua preinstalled on the host. +This patch moves the `luac.cross` build into the overall application make hierarchy and so it is now simply a part of the NodeMCU make. The old Lua script has been removed from the `tools` directory, together with the need to have Lua pre-installed on the host. -The LFS image is by default position independent, so is independent of the actual NodeMCU target image. You just have to copy it to the target file system and execute a `reload` to copy this to the correct location, relocating all address to the correct base. (See `app/lua/lflash.c` for the details.) This process is fast. However, `luac.cross -a` also allows absolute address images to be built for direct flashing into the LFS store during provisioning. +The LFS image is by default position independent, so is independent of the actual NodeMCU target image. You just have to copy it to the target file system and execute a `flashreload` and this copies the image from SPIFSS to the correct flash location, relocating all address to the correct base. (See `app/lua/lflash.c` for the details.) This process is fast. + +A `luac.cross -a` option also allows absolute address images to be built for direct flashing the LFS store onto the module during provisioning. ### Impact of the Lua Garbage Collector The LGC applies to what the Lua VM classifies as collectable objects (strings, tables, functions, userdata, threads -- known collectively as `GCObjects`). A simple two "colour" LGC was used in previous Lua versions, but Lua 5.1 introduced the Dijkstra's 3-colour (*white*, *grey*, *black*) variant that enabled the LGC to operate in an incremental mode. This permits smaller LGC steps interspersed by LGC pause, and is very useful for larger scale Lua implementations. Whilst this is probably not really needed for IoT devices, NodeMCU follows this standard Lua 5.1 implementation, albeit with the `elua` EGC changes. -In fact, two *white* flavours are used to support incremental working (so this 3-colour algorithm really uses 4). All newly allocated collectable objects are marked as the current *white*, and include a link in their header to enable scanning through all such Lua objects. They may also be referenced directly or indirectly via one of the Lua application's *roots*: the global environment, the Lua registry and the stack. The LGC operates two broad phases: **mark** and **sweep**. +In fact, two *white* flavours are used to support incremental working (so this 3-colour algorithm really uses 4). All newly allocated collectable objects are marked as the current *white*, and a link in `GCObject` header enables scanning through all such Lua objects. Collectable objects can be referenced directly or indirectly via one of the Lua application's *roots*: the global environment, the Lua registry and the stack. -The LGC algorithm is quite complex and assumes that all GCObjects are RW so that a flag byte within each object can be updated during the mark and sweep processing. LFS introduces GCObjects that are actually stored in RO memory and are therefore truly RO. Any attempt to update their content during LGC will result in the firmware crashing with a memory exception, so the LFS patch must therefore modify the LGC processing to avoid such potential updates whilst maintaining its integrity, and the remainder of this -section provides further detail on how this was achieved. +The standard LGC algorithm is quite complex and assumes that all GCObjects are RW so that a flag byte within each object can be updated during the mark and sweep processing. LFS introduces GCObjects that are stored in RO memory and are therefore truly RO. +The LFS patch therefore modifies the LGC processing to avoid such updates to GCObjects in RO memory, whilst still maintaining overall object integrity, as any attempt to update their content during LGC will result in the firmware crashing with a memory exception; the remainder of this section provides further detail on how this was achieved. The LGC operates two broad phases: **mark** and **sweep** -The **mark** phase walks collectable objects by a recursive walk starting at at the LGC roots. (This is referred to as _traverse_.) Any object that is visited in this walk has its colour flipped from *white* to *grey* to denote that it is in use, and it is relinked into a grey list. The grey list is iteratively processed, removing one grey object at a time. Such objects can reference other objects (e.g. a table has many keys and values which can also be collectable objects), so each one is then also traversed and all objects reachable from it are marked, as above. After an object has been traversed, it's turned from grey to black. The LGC will walks all RW collectable objects, traversing the dependents of each in turn. As RW objects can now refer to RO ones, the traverse routines has additinal tests to skip trying to mark any RO LFS references. +- The **mark** phase walks collectable objects by a recursive walk starting at at the LGC roots. (This is referred to as _traverse_.) Any object that is visited in this walk has its colour flipped from *white* to *grey* to denote that it is in use, and it is relinked into a grey list. The grey list is iteratively processed, removing one grey object at a time. Such objects can reference other objects (e.g. a table has many keys and values which can also be collectable objects), so each one is then also traversed and all objects reachable from it are marked, as above. After an object has been traversed, it's turned from grey to black. The LGC will walks all RW collectable objects, traversing the dependents of each in turn. As RW objects can now refer to RO ones, the traverse routines has additinal tests to skip trying to mark any RO LFS references. -The white flavour is flipped just before entering the **sweep** phase. This phase then loops over all collectable objects. Any objects found with previous white are no longer in use, and so can be freed. The 'current' white are kept; this prevents any new objects created during a paused sweep from being accidentally collected before being marked, but this means that it takes two sweeps to free all unused objects. There are other subtleties introduced in this 3-colour algorithm such as barriers and back-tracking to maintain integrity of the LGC, and these also needed extra rules to handle RO GCObjects correclty, but detailed explanation of these is really outside the scope of this paper. +- The white flavour is flipped just before entering the **sweep** phase. This phase then loops over all collectable objects. Any objects found with previous white are no longer in use, and so can be freed. The 'current' white are kept; this prevents any new objects created during a paused sweep from being accidentally collected before being marked, but this means that it takes two sweeps to free all unused objects. There are other subtleties introduced in this 3-colour algorithm such as barriers and back-tracking to maintain integrity of the LGC, and these also needed extra rules to handle RO GCObjects correclty, but detailed explanation of these is really outside the scope of this paper. As well as standard collectable GCOobjets: @@ -306,12 +249,13 @@ As far as the LGC algorithm is concerned, encountering any _flash_ object in a s ### General comments -- **Reboot implementation**. Whilst the application initiated LFS reload might seem an overhead, it typically only adds a few seconds per reboot. We may also consider the future enhancement of the `esptool.py` to enable the inclusion of an LFS image into the unified application flash image. +- **Reboot implementation**. Whilst the application initiated LFS reload might seem an overhead, it typically only adds a few seconds per reboot. - **LGC reduction**. Since the cost of LGC is directly related to the size of the LGC sweep lists, moving RO resources into LFS memory removes them from the LGC scope and therefore reduces LGC runtime accordingly. -- **Typical Usecase**. The rebuilding of a store is an occasional step in the development cycle. (Say up to 10 times a day in a typical intensive development process). Modules and source files under development would typically be executed from SPIFFS in `.lua` format. The developer is free to reorder the `package.loaders` and load any SPIFFS files in preference to Flash ones. And if stable code is moved into Flash, then there is little to be gained in storing development Lua code in SPIFFS in `lc` compiled format. +- **Typical Usecase**. The rebuilding of a store is an occasional step in the development cycle. (Say up to 10-20 times a day in a typical intensive development process). Modules and source files under development can also be executed from SPIFFS in `.lua` format. The developer is free to reorder the `package.loaders` and load any SPIFFS files in preference to Flash ones. And if stable code is moved into Flash, then there is little to be gained in storing development Lua code in SPIFFS in `lc` compiled format. - **Flash caching coherency**. The ESP chipset employs hardware enabled caching of the `ICACHE_FLASH` address space, and writing to the flash does not flush this cache. However, in this restart model, the CPU is always restarted before any updates are read programmatically, so this (lack of) coherence isn't an issue. -- **Failsafe reversion**. Since the entire image is precompiled, the chances of failure during reload are small. The loader uses the Flash NAND rules to write the flash header flag in two parts: one at start of the load and again at the end. If on reboot, the flag in on incostent state, then the LFS is cleared and disabled until the next reload. +- **Failsafe reversion**. Since the entire image is precompiled and validated before loading into LFS, the chances of failure during reload are small. The loader uses the Flash NAND rules to write the flash header flag in two parts: one at start of the load and again at the end. If on reboot, the flag in on incostent state, then the LFS is cleared and disabled until the next reload. + diff --git a/lua_examples/lfs/HTTP_OTA.lua b/lua_examples/lfs/HTTP_OTA.lua new file mode 100644 index 0000000000..5f36360778 --- /dev/null +++ b/lua_examples/lfs/HTTP_OTA.lua @@ -0,0 +1,77 @@ +-- +-- If you have the LFS _init loaded then you invoke the provision by +-- executing LFS.HTTP_OTA('your server','directory','image name'). Note +-- that is unencrypted and unsigned. But the loader does validate that +-- the image file is a valid and complete LFS image before loading. +-- + +local host, dir, image = ... + +local doRequest, firstRec, subsRec, finalise +local n, total, size = 0, 0 + +doRequest = function(sk,hostIP) + if hostIP then + local con = net.createConnection(net.TCP,0) + con:connect(80,hostIP) + -- Note that the current dev version can only accept uncompressed LFS images + con:on("connection",function(sck) + local request = table.concat( { + "GET "..dir..image.." HTTP/1.1", + "User-Agent: ESP8266 app (linux-gnu)", + "Accept: application/octet-stream", + "Accept-Encoding: identity", + "Host: "..host, + "Connection: close", + "", "", }, "\r\n") + print(request) + sck:send(request) + sck:on("receive",firstRec) + end) + end +end + +firstRec = function (sck,rec) + -- Process the headers; only interested in content length + local i = rec:find('\r\n\r\n',1,true) or 1 + local header = rec:sub(1,i+1):lower() + size = tonumber(header:match('\ncontent%-length: *(%d+)\r') or 0) + print(rec:sub(1, i+1)) + if size > 0 then + sck:on("receive",subsRec) + file.open(image, 'w') + subsRec(sck, rec:sub(i+4)) + else + sck:on("receive", nil) + sck:close() + print("GET failed") + end +end + +subsRec = function(sck,rec) + total, n = total + #rec, n + 1 + if n % 4 == 1 then + sck:hold() + node.task.post(0, function() sck:unhold() end) + end + uart.write(0,('%u of %u, '):format(total, size)) + file.write(rec) + if total == size then finalise(sck) end +end + +finalise = function(sck) + file.close() + sck:on("receive", nil) + sck:close() + local s = file.stat(image) + if (s and size == s.size) then + wifi.setmode(wifi.NULLMODE) + collectgarbage();collectgarbage() + -- run as separate task to maximise RAM available + node.task.post(function() node.flashreload(image) end) + else + print"Invalid save of image file" + end +end + +net.dns.resolve(host, doRequest) diff --git a/lua_examples/lfs/_init.lua b/lua_examples/lfs/_init.lua index e4911d4765..809b7a3584 100644 --- a/lua_examples/lfs/_init.lua +++ b/lua_examples/lfs/_init.lua @@ -66,10 +66,10 @@ G.LFS = setmetatable(lfs_t,lfs_t) ---------------------------------------------------------------------------------]] -table.insert(package.loaders,function(module) -- loader_flash +package.loaders[3] = function(module) -- loader_flash local fn, ba = index(module) return ba and "Module not in LFS" or fn -end) +end --[[------------------------------------------------------------------------------- You can add any other initialisation here, for example a couple of the globals From 35a2c2676a1fa1b9715abc77b4cd719ea955fb7e Mon Sep 17 00:00:00 2001 From: TerryE Date: Mon, 27 Aug 2018 01:09:26 +0100 Subject: [PATCH 54/61] Reword the Compiling Lua on your PC for Uploading section for LFS. --- docs/en/upload.md | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/docs/en/upload.md b/docs/en/upload.md index 1cbd785e7c..1349d1f3e8 100644 --- a/docs/en/upload.md +++ b/docs/en/upload.md @@ -118,19 +118,9 @@ wifi.sta.config({ssid=SSID, pwd=PASSWORD}) ## Compiling Lua on your PC for Uploading -If you install `lua` on your development PC or Laptop then you can use the standard Lua -compiler to syntax check any Lua source before downloading it to the ESP8266 module. However, -the NodeMCU compiler output uses different data types (e.g. it supports ROMtables) so the -compiled output cannot run on the ESP8266. - -Compiling source on one platform for use on another (e.g. Intel x38 Window to ESP8266) is -known as _cross-compilation_ and the NodeMCU firmware supports the compilation of `luac.cross` -on \*nix patforms which have Lua 5.1, the Lua filesystem module (lfs), and the essential -GCC tools. Simply change directory to the firmware root directoy and run the command: - - lua tools/cross-lua.lua - -This will generate a `luac.cross` executable in your root directory which can be used to -compile and to syntax-check Lua source on the Development machine for execution under -NodeMCU Lua on the ESP8266. - +If you install Lua on your development PC or Laptop, then you can use a standard `lua` environment to develop PC applications and also use the standard `luac` compiler to syntax check _any_ Lua source code. However because of architectural differences between the ESP8266 chipset with its SDK and a standard PC CPU, the system APIs are different and the binary output from the standard PC `luac` cannot be run on the ESP8266. + +To address this issue, the standard NodeMCU make now generates a host executable `lua.cross` (or `lua.cross.int` for integer builds) as well as the firmware binary itself. Compiling source on one platform for use on another is known as _cross-compilation_ and this `luac.cross` compiler allows you to compile Lua source files on your PC for downloading onto ESP8266 in a binary format. + +The firmware also includes API calls to allow Lua sources to be compiled on ESP, but this mode of compilation is limited by the RAM heap available. Host cross compilation bypasses this ESP compile limit entirely and allows you to use larger modules within your code. In the case of LFS compiles, this code is stored in flash memory on the ESP, and so has no RAM overhead; the only limit is the size of the allocated LFS region. + From 161c8555805d64d6121fec76cb0e60d5453d5a35 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Mon, 27 Aug 2018 12:46:39 +0100 Subject: [PATCH 55/61] lua_examples/telnet: small tweaks (#2455) * Remove the old telnet.lua, which has been duplicated as simple_telnet.lua. * Fix some typos and whitespace issues --- lua_examples/telnet.lua | 35 ---------------------------------- lua_examples/telnet/README.md | 4 ++-- lua_examples/telnet/telnet.lua | 6 +++--- 3 files changed, 5 insertions(+), 40 deletions(-) delete mode 100644 lua_examples/telnet.lua diff --git a/lua_examples/telnet.lua b/lua_examples/telnet.lua deleted file mode 100644 index 3f9525bbac..0000000000 --- a/lua_examples/telnet.lua +++ /dev/null @@ -1,35 +0,0 @@ --- a simple telnet server - -telnet_srv = net.createServer(net.TCP, 180) -telnet_srv:listen(2323, function(socket) - local fifo = {} - local fifo_drained = true - - local function sender(c) - if #fifo > 0 then - c:send(table.remove(fifo, 1)) - else - fifo_drained = true - end - end - - local function s_output(str) - table.insert(fifo, str) - if socket ~= nil and fifo_drained then - fifo_drained = false - sender(socket) - end - end - - node.output(s_output, 0) -- re-direct output to function s_ouput. - - socket:on("receive", function(c, l) - node.input(l) -- works like pcall(loadstring(l)) but support multiple separate line - end) - socket:on("disconnection", function(c) - node.output(nil) -- un-regist the redirect output function, output goes to serial - end) - socket:on("sent", sender) - - print("Welcome to NodeMCU world.") -end) diff --git a/lua_examples/telnet/README.md b/lua_examples/telnet/README.md index 49386f9b28..c37b12084d 100644 --- a/lua_examples/telnet/README.md +++ b/lua_examples/telnet/README.md @@ -25,8 +25,8 @@ string span multiple packets. However, you must flush the buffer if necessary. - The overall buffering strategy needs to be reasonably memory efficient and avoid hitting the GC too hard, so where practical avoid aggregating small strings to more -than 256 chars (as NodeMCU handles \<256 using stack buffers), and avoid serial a -ggregation such as buf = buf .. str as this hammers the GC. +than 256 chars (as NodeMCU handles \<256 using stack buffers), and avoid serial +aggregation such as buf = buf .. str as this hammers the GC. So this server adopts a simple buffering scheme using a two level FIFO. The `node.output` CB adds records to the 1st level FIFO until the #recs is \> 32 or the diff --git a/lua_examples/telnet/telnet.lua b/lua_examples/telnet/telnet.lua index 4506c78d43..9d9e5917c6 100644 --- a/lua_examples/telnet/telnet.lua +++ b/lua_examples/telnet/telnet.lua @@ -55,7 +55,7 @@ local function telnet_listener(socket) -- debug("entering sendLine") if not s then return end - if fifo2l + fifo1l == 0 then -- both FIFOs empty, so clear down s + if fifo2l + fifo1l == 0 then -- both FIFOs empty, so clear down s s = nil -- debug("Q cleared") return @@ -125,13 +125,13 @@ local function telnet_listener(socket) node.input(line) end - local function discontect(s) + local function disconnect(s) fifo1, fifo1l, fifo2, fifo2l, s = {}, 0, {}, 0, nil node.output(nil) end socket:on("receive", receiveLine) - socket:on("disconnection", discontect) + socket:on("disconnection", disconnect) socket:on("sent", sendLine) node.output(queueLine, 0) end From 94abbe70cb2721a9474993009ce9dd8ab154d008 Mon Sep 17 00:00:00 2001 From: Terry Ellison Date: Mon, 27 Aug 2018 12:46:51 +0100 Subject: [PATCH 56/61] Fix #2430 node.input() not working (#2469) --- app/lua/lua.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/lua/lua.c b/app/lua/lua.c index 6071a9f4ff..759da26a94 100644 --- a/app/lua/lua.c +++ b/app/lua/lua.c @@ -324,7 +324,7 @@ int lua_main (int argc, char **argv) { } int lua_put_line(const char *s, size_t l) { - if (s == NULL || ++l < LUA_MAXINPUT || gLoad.line_position > 0) + if (s == NULL || ++l > LUA_MAXINPUT || gLoad.line_position > 0) return 0; c_memcpy(gLoad.line, s, l); gLoad.line[l] = '\0'; From 3886d2c765b7ce0c7f22a2455fc673289a23cf4d Mon Sep 17 00:00:00 2001 From: Natalia Date: Sun, 2 Sep 2018 17:37:09 +0300 Subject: [PATCH 57/61] RC module documentation (#2473) --- docs/en/modules/rc.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/en/modules/rc.md b/docs/en/modules/rc.md index 6fea3d5f3e..43cee05159 100644 --- a/docs/en/modules/rc.md +++ b/docs/en/modules/rc.md @@ -2,3 +2,45 @@ | Since | Origin / Contributor | Maintainer | Source | | :----- | :-------------------- | :---------- | :------ | | 2015-06-12 | [Mike Wen](https://github.com/mikewen) | - | [rc.c](../../../app/modules/rc.c)| + +Module to generate series of impulses for remote control via 433/315Mhz radio transmitter. +Superseded by **[rfswitch](./rfswitch.md)** module which have same functionality, and supports more transmission protocols. + +For more detailed description see [rfswitch module documentation](./rfswitch.md). + +## rc.send() +Sends series of impulses + +#### Syntax +`rc.send(pin, value, length, pulse_length, protocol_id, repeat)` + +which is similar to: +`rfswitch.send(protocol_id, pulse_length, repeat, pin, value, length)` + + +#### Parameters +- `pin` 0~12, I/O index of pin, example 6 is for GPIO12, see [details](../modules/gpio/) +- `value` positive integer value, this is the primary data which will be sent +- `length` bit length of value, if value length is 3 bytes, then length is 24 +- `pulse_length` length of one pulse in microseconds, usually from 100 to 650 +- `protocol_id` positive integer value, from 1-3 +- `repeat` repeat value, usually from 1 to 5. This is a synchronous task. Setting the repeat count to a large value will cause problems. +The recommended limit is about 1-4. + +#### Returns +`1` always 1 + +#### Example +```lua +-- Lua transmit radio code using protocol #1 +-- pulse_length 300 microseconds +-- repeat 5 times +-- use pin #7 (GPIO13) +-- value to send is 560777 +-- value length is 24 bits (3 bytes) +rc.send(7, 560777, 24, 300, 1, 5) +``` +which is similar to: +```lua +rfswitch.send(1, 300, 5, 7, 560777, 24) +``` From 186fcd72028c4c8b0cee6fd85cdeb62ae492cbe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Tue, 4 Sep 2018 22:13:55 +0200 Subject: [PATCH 58/61] Minor MkDocs fixes for 1.x compliance --- docs/en/index.md | 2 +- docs/en/lua-developer-faq.md | 2 +- docs/en/start.md | 5 ----- docs/js/extra.js | 11 ++++++++--- mkdocs.yml | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 docs/en/start.md diff --git a/docs/en/index.md b/docs/en/index.md index 8b76c4a77f..ba964decf0 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -2,7 +2,7 @@ NodeMCU is an open source [Lua](https://www.lua.org/) based firmware for the [ESP8266 WiFi SOC from Espressif](http://espressif.com/en/products/esp8266/) and uses an on-module flash-based [SPIFFS](https://github.com/pellepl/spiffs) file system. NodeMCU is implemented in C and is layered on the [Espressif NON-OS SDK](https://github.com/espressif/ESP8266_NONOS_SDK). -The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules]((https://github.com/nodemcu/nodemcu-devkit-v1.0)), but the project is now community-supported, and the firmware can now be run on _any_ ESP module. +The firmware was initially developed as is a companion project to the popular ESP8266-based [NodeMCU development modules](https://github.com/nodemcu/nodemcu-devkit-v1.0), but the project is now community-supported, and the firmware can now be run on _any_ ESP module. ## Programming Model The NodeMCU programming model is similar to that of [Node.js](https://en.wikipedia.org/wiki/Node.js), only in Lua. It is asynchronous and event-driven. Many functions, therefore, have parameters for callback functions. To give you an idea what a NodeMCU program looks like study the short snippets below. For more extensive examples have a look at the `/lua_examples` folder in the repository on GitHub. diff --git a/docs/en/lua-developer-faq.md b/docs/en/lua-developer-faq.md index 58bbd763dc..fb7575689e 100644 --- a/docs/en/lua-developer-faq.md +++ b/docs/en/lua-developer-faq.md @@ -8,7 +8,7 @@ This FAQ does not aim to help you to learn to program or even how to program in ## What has changed since the first version of this FAQ? -The [NodeMCU company](http://NodeMCU.com/index_en.html) was set up by [Zeroday](zeroday@nodemcu.com) to develop and to market a set of Lua firmware-based development boards which employ the Espressif ESP8266 SoC. The initial development of the firmware was done by Zeroday and a colleague, Vowstar, in-house with the firmware being first open-sourced on Github in late 2014. In mid-2015, Zeroday decided to open the firmware development to a wider group of community developers, so the core group of developers now comprises 6 community developers (including this author), and we are also supported by another dozen or so active contributors, and two NodeMCU originators. +The [NodeMCU company](http://NodeMCU.com/index_en.html) was set up by [Zeroday](mailto:zeroday@nodemcu.com) to develop and to market a set of Lua firmware-based development boards which employ the Espressif ESP8266 SoC. The initial development of the firmware was done by Zeroday and a colleague, Vowstar, in-house with the firmware being first open-sourced on Github in late 2014. In mid-2015, Zeroday decided to open the firmware development to a wider group of community developers, so the core group of developers now comprises 6 community developers (including this author), and we are also supported by another dozen or so active contributors, and two NodeMCU originators. This larger active team has allowed us to address most of the outstanding issues present at the first version of this FAQ. These include: diff --git a/docs/en/start.md b/docs/en/start.md deleted file mode 100644 index 9e2f59f0c4..0000000000 --- a/docs/en/start.md +++ /dev/null @@ -1,5 +0,0 @@ -# Getting started -## Obtain the firmware -[Build the firmware](build.html) or download it from ? -## Flash the firmware -There are a number of tools for flashing the firmware. diff --git a/docs/js/extra.js b/docs/js/extra.js index 0cc3a7baae..1f8c5209aa 100644 --- a/docs/js/extra.js +++ b/docs/js/extra.js @@ -1,4 +1,5 @@ var nodemcu = nodemcu || {}; + (function () { 'use strict'; //var languageCodeToNameMap = {en: 'English', de: 'Deutsch'}; @@ -112,7 +113,7 @@ var nodemcu = nodemcu || {}; * replaces the relative path with an absolute path based on the selected branch. */ function replaceRelativeLinksWithStaticGitHubUrl() { - var relativePath = "../../../.."; + var relativePath = isOnRtd() ? "../../../.." : "../../.."; var gitHubPath = "https://github.com/nodemcu/nodemcu-firmware/tree/" + determineSelectedBranch(); var gitHubLinks = $("a[href^='" + relativePath + "']").each(function (index) { var url = $(this).attr('href'); @@ -148,7 +149,7 @@ var nodemcu = nodemcu || {}; */ function determineSelectedLanguageCode() { var selectedLanguageCode, path = window.location.pathname; - if (window.location.origin.indexOf('readthedocs') > -1) { + if (isOnRtd()) { // path is like /en///build/ -> extract 'lang' // split[0] is an '' because the path starts with the separator selectedLanguageCode = path.split('/')[3]; @@ -171,7 +172,7 @@ var nodemcu = nodemcu || {}; */ function determineSelectedBranch() { var branch = 'dev', path = window.location.pathname; - if (window.location.origin.indexOf('readthedocs') > -1) { + if (isOnRtd()) { // path is like /en///build/ -> extract 'lang' // split[0] is an '' because the path starts with the separator var thirdPathSegment = path.split('/')[2]; @@ -192,4 +193,8 @@ var nodemcu = nodemcu || {}; } return values; } + + function isOnRtd() { + return window.location.origin.indexOf('readthedocs') > -1; + } }()); diff --git a/mkdocs.yml b/mkdocs.yml index 2e4579e948..5dfec2ddfe 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -19,7 +19,7 @@ extra_css: extra_javascript: - js/extra.js -pages: +nav: - Overview: 'index.md' - English: - Home: 'en/index.md' From a8a243efccddb1faa901c3c79ead1bcf17c20faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20St=C3=B6r?= Date: Sat, 8 Sep 2018 00:08:28 +0200 Subject: [PATCH 59/61] Arggg, RTD went back to MkDocs < 1.x --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index 5dfec2ddfe..2e4579e948 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -19,7 +19,7 @@ extra_css: extra_javascript: - js/extra.js -nav: +pages: - Overview: 'index.md' - English: - Home: 'en/index.md' From 91951051afa5d6c5df744b6af717f598d2cca982 Mon Sep 17 00:00:00 2001 From: Philip Gladstone Date: Mon, 10 Sep 2018 07:17:24 -0400 Subject: [PATCH 60/61] Updated documentation for gpio.pulse (#2485) --- docs/en/modules/gpio.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/en/modules/gpio.md b/docs/en/modules/gpio.md index a3de364372..32aeb79d27 100644 --- a/docs/en/modules/gpio.md +++ b/docs/en/modules/gpio.md @@ -224,7 +224,22 @@ Step | Pin 1 | Pin 2 | Duration (μS) | Range | Next Step When turning this into the table structure as described below, you don't need to specify anything special when the number of the next step is one more than the current step. When specifying an out of order -step, you must specify how often you want this to be performed. A very large value can be used for roughly infinite. +step, you must specify how often you want this to be performed. The number of iterations can be up to around 4,000,000,000 (actually any value that fits into +an unisgned 32 bit integer). If this isn't enough repeats, then loops can be nested as below: + +``` +{ + { [1] = gpio.HIGH, [2] = gpio.LOW, delay=500 }, + { [1] = gpio.LOW, [2] = gpio.HIGH, delay=500, loop=1, count=1000000000, min=400, max=600 }, + { loop=1, count=1000000000 } +} +``` + +The loop/count in step 2 will cause 1,000,000,000 pulses to be output (at 1kHz). This is around 11 days. At this point, it will continue onto step 3 which triggers the +11 days of 1kHz. THis process will repeat for 1,000,000,000 times (which is roughly 30 Million years). + +The looping model is that associated with each loop there is a hidden variable which starts at the `count` value and decrements on each iteration until it gets to zero +when it then proceeds to the next step. If control reaches that loop again, then the hidden variable is reset to the value of `count` again. ## gpio.pulse.build @@ -243,7 +258,7 @@ Note this that is the NodeMCU pin number and *not* the ESP8266 GPIO number. Mult set at the same time. Note that any valid GPIO pin can be used, including pin 0. - `delay` specifies the number of microseconds after setting the pin values to wait until moving to the next state. The actual delay may be longer than this value depending on whether interrupts are enabled at the end time. The maximum value is 64,000,000 -- i.e. a bit more than a minute. - `min` and `max` can be used to specify (along with `delay`) that this time can be varied. If one time interval overruns, then the extra time will be deducted from a time period which has a `min` or `max` specified. The actual time can also be adjusted with the `:adjust` API below. -- `count` and `loop` allow simple looping. When a state with `count` and `loop` is completed, the next state is at `loop` (provided that `count` has not decremented to zero). The first state is state 1. The `loop` is rather like a goto instruction as it specifies the next instruction to be executed. +- `count` and `loop` allow simple looping. When a state with `count` and `loop` is completed, the next state is at `loop` (provided that `count` has not decremented to zero). The count is implemented as an unsigned 32 bit integer -- i.e. it has a range up to around 4,000,000,000. The first state is state 1. The `loop` is rather like a goto instruction as it specifies the next instruction to be executed. #### Returns `gpio.pulse` object. @@ -383,7 +398,7 @@ pulser:adjust(177) ## gpio.pulse:update This can change the contents of a particular step in the output program. This can be used to adjust the delay times, or even the pin changes. This cannot -be used to remove entries or add new entries. +be used to remove entries or add new entries. Changing the `count` will change the initial value, but not change the current decrementing value; #### Syntax `pulser:update(entrynum, entrytable)` @@ -396,7 +411,7 @@ be used to remove entries or add new entries. Nothing - Example +#### Example ```lua pulser:update(1, { delay=1000 }) ``` From 0abb26170b56178fb5d71451e6688abf2fd3c7e5 Mon Sep 17 00:00:00 2001 From: Nate Clark Date: Wed, 12 Sep 2018 10:28:46 -0400 Subject: [PATCH 61/61] Decode chunked responses case insensitve headers (#2483) --- app/http/httpclient.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/http/httpclient.c b/app/http/httpclient.c index 4e773bbc75..f84108698f 100644 --- a/app/http/httpclient.c +++ b/app/http/httpclient.c @@ -414,7 +414,7 @@ static void ICACHE_FLASH_ATTR http_disconnect_callback( void * arg ) body = body + 4; } - if ( os_strstr( req->buffer, "Transfer-Encoding: chunked" ) ) + if ( os_strstr( req->buffer, "Transfer-Encoding: chunked" ) || os_strstr( req->buffer, "transfer-encoding: chunked" ) ) { int body_size = req->buffer_size - (body - req->buffer); char chunked_decode_buffer[body_size];