From f7d61b587aa49e560591b69f0c0c00d23d5f1328 Mon Sep 17 00:00:00 2001 From: Jonathan Williamson Date: Fri, 7 Jan 2022 14:46:16 +0000 Subject: [PATCH] added support for badger2040 --- drivers/CMakeLists.txt | 1 + drivers/uc8151/CMakeLists.txt | 1 + drivers/uc8151/uc8151.cmake | 10 + drivers/uc8151/uc8151.cpp | 233 +++++ drivers/uc8151/uc8151.hpp | 177 ++++ examples/CMakeLists.txt | 1 + examples/badger2040/CMakeLists.txt | 3 + examples/badger2040/badger2040_drawing.cmake | 12 + examples/badger2040/badger2040_drawing.cpp | 34 + examples/badger2040/badger2040_fonts.cmake | 12 + examples/badger2040/badger2040_fonts.cpp | 104 +++ examples/badger2040/badger2040_sleep.cmake | 12 + examples/badger2040/badger2040_sleep.cpp | 61 ++ .../hershey_font_converter/README.md | 16 + .../hershey_font_converter/convert.py | 158 ++++ .../hershey_font_converter/fonts.hpp | 843 +++++++++++++++++ .../hershey_font_converter/fonts/futural.jhf | 101 +++ .../hershey_font_converter/fonts/futuram.jhf | 127 +++ .../hershey_font_converter/fonts/gothgbt.jhf | 96 ++ .../hershey_font_converter/fonts/scriptc.jhf | 144 +++ .../hershey_font_converter/fonts/scripts.jhf | 121 +++ .../hershey_font_converter/fonts/timesi.jhf | 131 +++ .../hershey_font_converter/fonts/timesr.jhf | 123 +++ .../hershey_font_converter/fonts/timesrb.jhf | 177 ++++ libraries/CMakeLists.txt | 1 + libraries/badger2040/CMakeLists.txt | 1 + libraries/badger2040/badger2040.cmake | 12 + libraries/badger2040/badger2040.cpp | 262 ++++++ libraries/badger2040/badger2040.hpp | 76 ++ libraries/badger2040/fonts.hpp | 856 ++++++++++++++++++ 30 files changed, 3906 insertions(+) create mode 100644 drivers/uc8151/CMakeLists.txt create mode 100644 drivers/uc8151/uc8151.cmake create mode 100644 drivers/uc8151/uc8151.cpp create mode 100644 drivers/uc8151/uc8151.hpp create mode 100644 examples/badger2040/CMakeLists.txt create mode 100644 examples/badger2040/badger2040_drawing.cmake create mode 100644 examples/badger2040/badger2040_drawing.cpp create mode 100644 examples/badger2040/badger2040_fonts.cmake create mode 100644 examples/badger2040/badger2040_fonts.cpp create mode 100644 examples/badger2040/badger2040_sleep.cmake create mode 100644 examples/badger2040/badger2040_sleep.cpp create mode 100644 examples/badger2040/hershey_font_converter/README.md create mode 100755 examples/badger2040/hershey_font_converter/convert.py create mode 100644 examples/badger2040/hershey_font_converter/fonts.hpp create mode 100644 examples/badger2040/hershey_font_converter/fonts/futural.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/futuram.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/gothgbt.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/scriptc.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/scripts.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/timesi.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/timesr.jhf create mode 100644 examples/badger2040/hershey_font_converter/fonts/timesrb.jhf create mode 100644 libraries/badger2040/CMakeLists.txt create mode 100644 libraries/badger2040/badger2040.cmake create mode 100644 libraries/badger2040/badger2040.cpp create mode 100644 libraries/badger2040/badger2040.hpp create mode 100644 libraries/badger2040/fonts.hpp diff --git a/drivers/CMakeLists.txt b/drivers/CMakeLists.txt index 5783e3b8..bd2d3af0 100644 --- a/drivers/CMakeLists.txt +++ b/drivers/CMakeLists.txt @@ -25,3 +25,4 @@ add_subdirectory(rgbled) add_subdirectory(icp10125) add_subdirectory(scd4x) add_subdirectory(hub75) +add_subdirectory(uc8151) diff --git a/drivers/uc8151/CMakeLists.txt b/drivers/uc8151/CMakeLists.txt new file mode 100644 index 00000000..0a61e780 --- /dev/null +++ b/drivers/uc8151/CMakeLists.txt @@ -0,0 +1 @@ +include(uc8151.cmake) \ No newline at end of file diff --git a/drivers/uc8151/uc8151.cmake b/drivers/uc8151/uc8151.cmake new file mode 100644 index 00000000..60627e32 --- /dev/null +++ b/drivers/uc8151/uc8151.cmake @@ -0,0 +1,10 @@ +set(DRIVER_NAME uc8151) +add_library(${DRIVER_NAME} INTERFACE) + +target_sources(${DRIVER_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR}/${DRIVER_NAME}.cpp) + +target_include_directories(${DRIVER_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR}) + +# Pull in pico libraries that we need +target_link_libraries(${DRIVER_NAME} INTERFACE pico_stdlib hardware_spi) diff --git a/drivers/uc8151/uc8151.cpp b/drivers/uc8151/uc8151.cpp new file mode 100644 index 00000000..3f134a52 --- /dev/null +++ b/drivers/uc8151/uc8151.cpp @@ -0,0 +1,233 @@ +#include "uc8151.hpp" + +#include +#include + +namespace pimoroni { + + enum reg { + PSR = 0x00, + PWR = 0x01, + POF = 0x02, + PFS = 0x03, + PON = 0x04, + PMES = 0x05, + BTST = 0x06, + DSLP = 0x07, + DTM1 = 0x10, + DSP = 0x11, + DRF = 0x12, + DTM2 = 0x13, + LUT_VCOM = 0x20, + LUT_WW = 0x21, + LUT_BW = 0x22, + LUT_WB = 0x23, + LUT_BB = 0x24, + PLL = 0x30, + TSC = 0x40, + TSE = 0x41, + TSR = 0x43, + TSW = 0x42, + CDI = 0x50, + LPD = 0x51, + TCON = 0x60, + TRES = 0x61, + REV = 0x70, + FLG = 0x71, + AMV = 0x80, + VV = 0x81, + VDCS = 0x82, + PTL = 0x90, + PTIN = 0x91, + PTOU = 0x92, + PGM = 0xa0, + APG = 0xa1, + ROTP = 0xa2, + CCSET = 0xe0, + PWS = 0xe3, + TSSET = 0xe5 + }; + + bool UC8151::is_busy() { + return !gpio_get(BUSY); + } + + void UC8151::busy_wait() { + while(is_busy()) { + tight_loop_contents(); + } + } + + void UC8151::reset() { + gpio_put(RESET, 0); sleep_ms(1); + gpio_put(RESET, 1); sleep_ms(1); + busy_wait(); + } + + void UC8151::init() { + // configure spi interface and pins + spi_init(spi, 64'000'000); + + gpio_set_function(DC, GPIO_FUNC_SIO); + gpio_set_dir(DC, GPIO_OUT); + + gpio_set_function(CS, GPIO_FUNC_SIO); + gpio_set_dir(CS, GPIO_OUT); + gpio_put(CS, 1); + + gpio_set_function(RESET, GPIO_FUNC_SIO); + gpio_set_dir(RESET, GPIO_OUT); + gpio_put(RESET, 1); + + gpio_set_function(BUSY, GPIO_FUNC_SIO); + gpio_set_dir(BUSY, GPIO_IN); + gpio_put(BUSY, 1); + + gpio_set_function(SCK, GPIO_FUNC_SPI); + gpio_set_function(MOSI, GPIO_FUNC_SPI); + + command(PSR, { + RES_128x296 | LUT_OTP | FORMAT_BW | SHIFT_RIGHT | BOOSTER_ON | RESET_NONE + }); + + /* + uint8_t lut[44]; + + for(int i = 0; i < 7; i++) { + //lut[i * 6 + 0] = 0b10'10'10'10; // level selection + lut[i * 6 + 0] = 0b10'10'10'10; // level selection + lut[i * 6 + 1] = 1; // number of frames 0 + lut[i * 6 + 2] = 1; // number of frames 0 + lut[i * 6 + 3] = 1; // number of frames 0 + lut[i * 6 + 4] = 1; // number of frames 0 + lut[i * 6 + 5] = 1; // repeat count + } + command(LUT_BW, 42, lut); + + for(int i = 0; i < 7; i++) { + //lut[i * 6 + 0] = 0b01'01'01'01; // level selection + lut[i * 6 + 0] = 0b01'01'01'01; // level selection + lut[i * 6 + 1] = 1; // number of frames 0 + lut[i * 6 + 2] = 1; // number of frames 0 + lut[i * 6 + 3] = 1; // number of frames 0 + lut[i * 6 + 4] = 1; // number of frames 0 + lut[i * 6 + 5] = 1; // repeat count + } + command(LUT_WB, 42, lut); + + for(int i = 0; i < 7; i++) { + // lut[i * 6 + 0] = 0b00'00'00'00; // level selection + lut[i * 6 + 0] = 0b00'00'00'00; // level selection + lut[i * 6 + 1] = 1; // number of frames 0 + lut[i * 6 + 2] = 1; // number of frames 0 + lut[i * 6 + 3] = 1; // number of frames 0 + lut[i * 6 + 4] = 1; // number of frames 0 + lut[i * 6 + 5] = 1; // repeat count + } + command(LUT_WW, 42, lut); + + for(int i = 0; i < 7; i++) { + // lut[i * 6 + 0] = 0b11'11'11'11; // level selection + lut[i * 6 + 0] = 0b11'11'11'11; // level selection + lut[i * 6 + 1] = 1; // number of frames 0 + lut[i * 6 + 2] = 1; // number of frames 0 + lut[i * 6 + 3] = 1; // number of frames 0 + lut[i * 6 + 4] = 1; // number of frames 0 + lut[i * 6 + 5] = 1; // repeat count + } + command(LUT_BB, 42, lut); + + + */ + + command(PWR, { + VDS_INTERNAL | VDG_INTERNAL, + VCOM_VD | VGHL_16V, + 0b101011, + 0b101011, + 0b101011 + }); + + command(PON); // power on + busy_wait(); + + // booster soft start configuration + command(BTST, { + START_10MS | STRENGTH_3 | OFF_6_58US, + START_10MS | STRENGTH_3 | OFF_6_58US, + START_10MS | STRENGTH_3 | OFF_6_58US + }); + + command(PFS, { + FRAMES_1 + }); + + command(TSE, { + TEMP_INTERNAL | OFFSET_0 + }); + + command(TCON, {0x22}); // tcon setting + command(CDI, {0b01'00'1100}); // vcom and data interval + + command(PLL, { + HZ_100 + }); + + command(POF); + busy_wait(); + } + + void UC8151::command(uint8_t reg, size_t len, const uint8_t *data) { + gpio_put(CS, 0); + + gpio_put(DC, 0); // command mode + spi_write_blocking(spi, ®, 1); + + if(data) { + gpio_put(DC, 1); // data mode + spi_write_blocking(spi, (const uint8_t*)data, len); + } + + gpio_put(CS, 1); + } + + void UC8151::command(uint8_t reg, std::initializer_list values) { + command(reg, values.size(), (uint8_t *)values.begin()); + } + + void UC8151::pixel(int x, int y, int v) { + // bounds check + if(x < 0 || y < 0 || x >= width || y >= height) return; + + // pointer to byte in framebuffer that contains this pixel + uint8_t *p = &frame_buffer[(y / 8) + (x * (height / 8))]; + + uint8_t o = 7 - (y & 0b111); // bit offset within byte + uint8_t m = ~(1 << o); // bit mask for byte + uint8_t b = (v == 0 ? 0 : 1) << o; // bit value shifted to position + + *p &= m; // clear bit + *p |= b; // set bit value + } + + void UC8151::update(bool blocking) { + command(PON); // turn on + + command(DTM2, (width * height) / 8, frame_buffer); // transmit framebuffer + command(DSP); // data stop + + command(DRF); // start display refresh + + if(blocking) { + busy_wait(); + + command(POF); // turn off + } + } + + void UC8151::off() { + busy_wait(); + command(POF); // turn off + } + +} diff --git a/drivers/uc8151/uc8151.hpp b/drivers/uc8151/uc8151.hpp new file mode 100644 index 00000000..b0940ca1 --- /dev/null +++ b/drivers/uc8151/uc8151.hpp @@ -0,0 +1,177 @@ +#pragma once + +#include + +#include "pico/stdlib.h" +#include "hardware/spi.h" +#include "hardware/gpio.h" + +#include "../../common/pimoroni_common.hpp" + +namespace pimoroni { + + class UC8151 { + enum PSR_FLAGS { + RES_96x230 = 0b00000000, + RES_96x252 = 0b01000000, + RES_128x296 = 0b10000000, + RES_160x296 = 0b11000000, + + LUT_OTP = 0b00000000, + LUT_REG = 0b00100000, + + FORMAT_BWR = 0b00000000, + FORMAT_BW = 0b00010000, + + SCAN_DOWN = 0b00000000, + SCAN_UP = 0b00001000, + + SHIFT_LEFT = 0b00000000, + SHIFT_RIGHT = 0b00000100, + + BOOSTER_OFF = 0b00000000, + BOOSTER_ON = 0b00000010, + + RESET_SOFT = 0b00000000, + RESET_NONE = 0b00000001 + }; + + enum PWR_FLAGS_1 { + VDS_EXTERNAL = 0b00000000, + VDS_INTERNAL = 0b00000010, + + VDG_EXTERNAL = 0b00000000, + VDG_INTERNAL = 0b00000001 + }; + + enum PWR_FLAGS_2 { + VCOM_VD = 0b00000000, + VCOM_VG = 0b00000100, + + VGHL_16V = 0b00000000, + VGHL_15V = 0b00000001, + VGHL_14V = 0b00000010, + VGHL_13V = 0b00000011 + }; + + enum BOOSTER_FLAGS { + START_10MS = 0b00000000, + START_20MS = 0b01000000, + START_30MS = 0b10000000, + START_40MS = 0b11000000, + + STRENGTH_1 = 0b00000000, + STRENGTH_2 = 0b00001000, + STRENGTH_3 = 0b00010000, + STRENGTH_4 = 0b00011000, + STRENGTH_5 = 0b00100000, + STRENGTH_6 = 0b00101000, + STRENGTH_7 = 0b00110000, + STRENGTH_8 = 0b00111000, + + OFF_0_27US = 0b00000000, + OFF_0_34US = 0b00000001, + OFF_0_40US = 0b00000010, + OFF_0_54US = 0b00000011, + OFF_0_80US = 0b00000100, + OFF_1_54US = 0b00000101, + OFF_3_34US = 0b00000110, + OFF_6_58US = 0b00000111 + }; + + enum PFS_FLAGS { + FRAMES_1 = 0b00000000, + FRAMES_2 = 0b00010000, + FRAMES_3 = 0b00100000, + FRAMES_4 = 0b00110000 + }; + + enum TSE_FLAGS { + TEMP_INTERNAL = 0b00000000, + TEMP_EXTERNAL = 0b10000000, + + OFFSET_0 = 0b00000000, + OFFSET_1 = 0b00000001, + OFFSET_2 = 0b00000010, + OFFSET_3 = 0b00000011, + OFFSET_4 = 0b00000100, + OFFSET_5 = 0b00000101, + OFFSET_6 = 0b00000110, + OFFSET_7 = 0b00000111, + + OFFSET_MIN_8 = 0b00001000, + OFFSET_MIN_7 = 0b00001001, + OFFSET_MIN_6 = 0b00001010, + OFFSET_MIN_5 = 0b00001011, + OFFSET_MIN_4 = 0b00001100, + OFFSET_MIN_3 = 0b00001101, + OFFSET_MIN_2 = 0b00001110, + OFFSET_MIN_1 = 0b00001111 + }; + + enum PLL_FLAGS { + // other frequency options exist but there doesn't seem to be much + // point in including them - this is a fair range of options... + HZ_29 = 0b00111111, + HZ_33 = 0b00111110, + HZ_40 = 0b00111101, + HZ_50 = 0b00111100, + HZ_67 = 0b00111011, + HZ_100 = 0b00111010, + HZ_200 = 0b00111001 + }; + + //-------------------------------------------------- + // Variables + //-------------------------------------------------- + private: + // screen properties + uint16_t width; + uint16_t height; + + spi_inst_t *spi = PIMORONI_SPI_DEFAULT_INSTANCE; + + // interface pins with our standard defaults where appropriate + uint CS = SPI_BG_FRONT_CS; + uint DC = SPI_DEFAULT_MISO; + uint SCK = SPI_DEFAULT_SCK; + uint MOSI = SPI_DEFAULT_MOSI; + uint BUSY = PIN_UNUSED; + uint RESET = PIN_UNUSED; + + // highest possible resolution is 160x296 which at 1 bit per pixel + // requires 5920 bytes of framebuffer + uint8_t frame_buffer[5920] = {0}; + + public: + UC8151(uint16_t width, uint16_t height) : + width(width), height(height) { + } + + UC8151(uint16_t width, uint16_t height, + spi_inst_t *spi, + uint CS, uint DC, uint SCK, uint MOSI, + uint BUSY = PIN_UNUSED, uint RESET = PIN_UNUSED) : + width(width), height(height), + spi(spi), + CS(CS), DC(DC), SCK(SCK), MOSI(MOSI), BUSY(BUSY), RESET(RESET) {} + + + //-------------------------------------------------- + // Methods + //-------------------------------------------------- + public: + void init(); + void busy_wait(); + bool is_busy(); + void reset(); + + void command(uint8_t reg, size_t len, const uint8_t *data); + void command(uint8_t reg, std::initializer_list values = {}); + void update(bool blocking = true); + void off(); + + void pixel(int x, int y, int v); + }; + +} diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 90b6025c..e0cd0ad8 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -38,4 +38,5 @@ add_subdirectory(pico_audio) add_subdirectory(pico_wireless) add_subdirectory(plasma2040) +add_subdirectory(badger2040) add_subdirectory(interstate75) diff --git a/examples/badger2040/CMakeLists.txt b/examples/badger2040/CMakeLists.txt new file mode 100644 index 00000000..1650a33f --- /dev/null +++ b/examples/badger2040/CMakeLists.txt @@ -0,0 +1,3 @@ +include(badger2040_drawing.cmake) +include(badger2040_fonts.cmake) +include(badger2040_sleep.cmake) diff --git a/examples/badger2040/badger2040_drawing.cmake b/examples/badger2040/badger2040_drawing.cmake new file mode 100644 index 00000000..99c0a490 --- /dev/null +++ b/examples/badger2040/badger2040_drawing.cmake @@ -0,0 +1,12 @@ +set(OUTPUT_NAME badger2040_drawing) +add_executable(${OUTPUT_NAME} badger2040_drawing.cpp) + +target_link_libraries(${OUTPUT_NAME} + badger2040 + hardware_spi +) + +# enable usb output +pico_enable_stdio_usb(${OUTPUT_NAME} 1) + +pico_add_extra_outputs(${OUTPUT_NAME}) diff --git a/examples/badger2040/badger2040_drawing.cpp b/examples/badger2040/badger2040_drawing.cpp new file mode 100644 index 00000000..baff27b4 --- /dev/null +++ b/examples/badger2040/badger2040_drawing.cpp @@ -0,0 +1,34 @@ +#include "pico/stdlib.h" +#include +#include +#include +#include +#include "pico/time.h" +#include "pico/platform.h" + +#include "common/pimoroni_common.hpp" +#include "badger2040.hpp" + +using namespace pimoroni; + +Badger2040 badger; + +uint32_t time() { + absolute_time_t t = get_absolute_time(); + return to_ms_since_boot(t); +} + +int main() { + + stdio_init_all(); + + sleep_ms(500); + + printf("\n\n=======\nbadger2040 starting up\n\n"); + + badger.init(); + + while(true) { + // TODO: draw something interesting... + } +} diff --git a/examples/badger2040/badger2040_fonts.cmake b/examples/badger2040/badger2040_fonts.cmake new file mode 100644 index 00000000..927c5582 --- /dev/null +++ b/examples/badger2040/badger2040_fonts.cmake @@ -0,0 +1,12 @@ +set(OUTPUT_NAME badger2040_fonts) +add_executable(${OUTPUT_NAME} badger2040_fonts.cpp) + +target_link_libraries(${OUTPUT_NAME} + badger2040 + hardware_spi +) + +# enable usb output +pico_enable_stdio_usb(${OUTPUT_NAME} 1) + +pico_add_extra_outputs(${OUTPUT_NAME}) diff --git a/examples/badger2040/badger2040_fonts.cpp b/examples/badger2040/badger2040_fonts.cpp new file mode 100644 index 00000000..1dab94a0 --- /dev/null +++ b/examples/badger2040/badger2040_fonts.cpp @@ -0,0 +1,104 @@ +#include "pico/stdlib.h" +#include +#include +#include +#include +#include "pico/time.h" +#include "pico/platform.h" + +#include "common/pimoroni_common.hpp" +#include "badger2040.hpp" + +using namespace pimoroni; + +Badger2040 badger; + +uint32_t time() { + absolute_time_t t = get_absolute_time(); + return to_ms_since_boot(t); +} + +std::array font_names = { + "sans", "sans_bold", "gothic", "cursive", + "cursive_bold", "serif", "serif_bold", "serif_italic" +}; +int8_t selected_font = 0; + +void draw() { + badger.pen(15); + badger.clear(); + + badger.font("sans"); + for(int i = 0; i < int(font_names.size()); i++) { + std::string name = font_names[i]; + + if(selected_font == i) { + badger.pen(0); + badger.rectangle(0, i * 16, 80, 16); + badger.pen(15); + }else{ + badger.pen(0); + } + + badger.text(name, 2, i * 16 + 7, 0.4f); + } + + badger.font(font_names[selected_font]); + badger.thickness(2); + badger.text("The quick", 90, 10, 0.80f); + badger.text("brown fox", 90, 32, 0.80f); + badger.text("jumped over", 90, 54, 0.80f); + badger.text("the lazy dog.", 90, 76, 0.80f); + badger.text("0123456789", 90, 98, 0.80f); + badger.text("!\"£$%^&*()", 90, 120, 0.80f); + badger.thickness(1); + + badger.update(); +} + +int main() { + + stdio_init_all(); + + sleep_ms(500); + + printf("\n\n=======\nbadger2040 starting up\n\n"); + + badger.init(); + + uint32_t i = 0; + + while(true) { + printf("> drawing.."); + + draw(); + + printf("done!\n"); + + printf("> waiting for a button press.."); + badger.wait_for_press(); + printf("done!\n"); + + if(badger.pressed(badger.DOWN)) { + printf("> down pressed\n"); + selected_font++; + } + + if(badger.pressed(badger.UP)) { + printf("> up pressed\n"); + selected_font--; + } + + if(badger.pressed(badger.C)) { + printf("> C pressed\n"); + badger.halt(); + } + + selected_font = selected_font < 0 ? int(font_names.size()) - 1 : selected_font; + selected_font = selected_font >= int(font_names.size()) ? 0 : selected_font; + + printf("> newly selected font is %s (%d)\n", font_names[selected_font].c_str(), selected_font); + + i++; + } +} diff --git a/examples/badger2040/badger2040_sleep.cmake b/examples/badger2040/badger2040_sleep.cmake new file mode 100644 index 00000000..6958808d --- /dev/null +++ b/examples/badger2040/badger2040_sleep.cmake @@ -0,0 +1,12 @@ +set(OUTPUT_NAME badger2040_sleep) +add_executable(${OUTPUT_NAME} badger2040_sleep.cpp) + +target_link_libraries(${OUTPUT_NAME} + badger2040 + hardware_spi +) + +# enable usb output +pico_enable_stdio_usb(${OUTPUT_NAME} 1) + +pico_add_extra_outputs(${OUTPUT_NAME}) diff --git a/examples/badger2040/badger2040_sleep.cpp b/examples/badger2040/badger2040_sleep.cpp new file mode 100644 index 00000000..2b3f3b37 --- /dev/null +++ b/examples/badger2040/badger2040_sleep.cpp @@ -0,0 +1,61 @@ +#include "pico/stdlib.h" +#include +#include +#include +#include +#include "pico/time.h" +#include "pico/platform.h" + +#include "common/pimoroni_common.hpp" +#include "badger2040.hpp" + +using namespace pimoroni; + +// this simple example tells you which button was used to wake up +// Badger2040 and then immediately halts again on another button press + +Badger2040 badger; + +int main() { + + badger.init(); + + // find which button was used to wake up + std::string button = ""; + std::string message = "started up."; + if(badger.pressed_to_wake(badger.A)) { button += "A"; } + if(badger.pressed_to_wake(badger.B)) { button += "B"; } + if(badger.pressed_to_wake(badger.C)) { button += "C"; } + if(badger.pressed_to_wake(badger.D)) { button += "D"; } + if(badger.pressed_to_wake(badger.E)) { button += "E"; } + + if(button != "") { + message = "woken up by button " + button + "."; + } + + badger.thickness(2); + + badger.pen(15); + badger.clear(); + badger.pen(0); + badger.text(message, 10, 20, 0.6f); + badger.text("(press any button to go to sleep.)", 10, 70, 0.4f); + badger.update(); + + badger.wait_for_press(); + + badger.pen(15); + badger.clear(); + badger.pen(0); + badger.text("going back to sleep...", 10, 20, 0.6f); + badger.text("z", 220, 50, 0.6f); + badger.text("z", 230, 40, 0.8f); + badger.text("z", 240, 30, 1.0f); + badger.text("(press any button to wake up.)", 10, 70, 0.4f); + badger.update(); + + badger.halt(); + + // proof we halted, the LED will not turn on + badger.led(255); +} diff --git a/examples/badger2040/hershey_font_converter/README.md b/examples/badger2040/hershey_font_converter/README.md new file mode 100644 index 00000000..a29a9e75 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/README.md @@ -0,0 +1,16 @@ +# Hershey font converter + +This is the tool that was used to create the fonts.hpp file that is included +in the Badger2040 library. It is included in case you want to convert other +Hershey fonts - we only include a subset to keep the flash image to a +reasonable size. + +It takes in `.jhf` files (which can be found in the `fonts` directory) and +converts them into C++ arrays and structures that can be embedded directly +into your code. + +Credit to Paul Bourke for another fantastic file format guide which provided a +lot of the necessary detail to make this work - read more about how the +Hershey fonts work at http://paulbourke.net/dataformats/hershey/. While you're +there make sure to check out some of his other file format guides, they are +a wealth of useful information. \ No newline at end of file diff --git a/examples/badger2040/hershey_font_converter/convert.py b/examples/badger2040/hershey_font_converter/convert.py new file mode 100755 index 00000000..51d9f9bf --- /dev/null +++ b/examples/badger2040/hershey_font_converter/convert.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 + +# converts Hershey fonts into a format easier to consume by the Badger2040 +# e-ink badge library - the result can be piped directly into a .hpp file. + +import argparse, sys, os, glob +from pathlib import Path + +parser = argparse.ArgumentParser( + description='Converts Hershey fonts into the format used by Badger2040.') +parser.add_argument('file', nargs="+", help='input files to convert') + +options = None +try: + options = parser.parse_args() +except: + parser.print_help() + sys.exit(0) + +def convert_font(data): + # parse hershey font data file, the file format contains one record per + # character with the format: + # + # 2761 8MXP[OZPYQZQ[P]N_ + # + # first 5 characters: represent the character id (or a dummy value + # of 12345). if it is a character id then a separate file contains the + # mapping information to convert that into an ascii table entry. if all of + # the ids are 12345 then it seems that the files contain 95 entries that + # start from ascii character 32 (space) in order + # + # next 3 characters: number of vertices (including special left/right + # bounds value) + # + # next 2 characters: represent the "left" and "right" offsets for this + # character, to convert you must subtract 'R' from them. this pair counts + # as the first "vertex" + # + # subsequent pairs of characters: represent each vertex, as before converted + # into numbers by subtracting 'R'. there are vertex count (-1) of these + # + # note! within the vertex data can be extra newline characters which must + # be ignored. + + vertex_data = [] + char_data = {} + + auto_char_code = 0 + + # we'll loop, extracting one character per iteration, until all of the + # data is consumed + while(len(data) > 0): + # extract character id + char_id = int(data[0:5]) + + char_code = auto_char_code + auto_char_code += 1 + + # extract vertex count + vertex_count = int(data[5:8]) + vertex_count -= 1 # remove one for the bounds data + + # extract bounds + left = ord(data[8:9]) - ord("R") + right = ord(data[9:10]) - ord("R") + + char_data[char_code] = { + "width": right - left, + "vertex_count": vertex_count, + "first_vertex_offset": len(vertex_data) + } + + # work out expected total length of character data + char_data_len = 10 + (vertex_count * 2) + + # if there are any newlines within this data then remove them before we + # move on the parse the vertices + while data.find('\n', char_data_len) != -1: + data = data.replace('\n', '', 1) + + for i in range(0, vertex_count): + offset = 10 + (i * 2) + if data[offset:offset + 2] == " R": + # pen up for one + x = -128 + y = -128 + else: + x = ord(data[offset + 0:offset + 1]) - ord("R") - left + y = ord(data[offset + 1:offset + 2]) - ord("R") + + vertex_data.append(str(x)) + vertex_data.append(str(y)) + + data = data[char_data_len:] + + font_name = Path(input_filename).stem + + # create code for all of the vertices + vertex_code = '''\ + static const int8_t {font_name}_vertices[{count}] = {{ + {vertices} + }}; + '''.format(font_name=font_name, count=len(vertex_data), vertices=", ".join(vertex_data)) + + # create code for chars and font + # + # struct hershey_font_glyph_t { + # uint32_t width; // character width + # uint32_t vertex_count; // number of vertices + # int8_t *vertices; // vertex data (indices: even = x, odd = y) + # }; + chars = [] + for i in range(0, 95): + if i in char_data: + chars.append( + " {{.width={width}, .vertex_count={vertex_count}, .vertices=&{font_name}_vertices[{offset}]}}".format( + width=char_data[i]["width"], + vertex_count=char_data[i]["vertex_count"], + font_name=font_name, + offset=char_data[i]["first_vertex_offset"] + )) + else: + chars.append(" {.width=0, .vertex_count=0, .vertices=nullptr}") + + # struct hershey_font_t { + # hershey_font_glyph_t chars[95]; + # }; + font_code = '''\ + static const hershey_font_t {font_name} {{ + .chars = {{ + {chars} + }} + }}; + '''.format(font_name=font_name, chars=",\n".join(chars)) + + print(vertex_code) + + print(font_code) + + return """ {{ \"{font_name}\", &{font_name} }}""".format(font_name=font_name) + + +# create map of font name to font structure +font_list = [] +for input_filename in options.file: + input_file = open(input_filename, mode='r') + data = input_file.read() + input_file.close() + + font_list.append(convert_font(data)) + +map_code = '''\ +std::map fonts = {{ +{font_list} +}}; +'''.format(font_list=",\n".join(font_list)) + +print(map_code) \ No newline at end of file diff --git a/examples/badger2040/hershey_font_converter/fonts.hpp b/examples/badger2040/hershey_font_converter/fonts.hpp new file mode 100644 index 00000000..5461339e --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts.hpp @@ -0,0 +1,843 @@ + static const int8_t futural_vertices[2442] = { + 5, -12, 5, 2, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 4, -12, 4, -5, -128, -128, 12, -12, 12, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -3, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 3, 4, 1, 5, 0, 12, -4, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -7, 9, -4, 11, -1, 16, 6, 18, 8, 20, 9, 22, 9, 23, 8, 23, 7, 5, -10, 4, -11, 5, -12, 6, -11, 6, -9, 5, -7, 4, -6, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, 6, -8, 8, -9, 11, -12, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 3, 9, 17, 9, 5, -12, 16, -12, 10, -4, 13, -4, 15, -3, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 13, -12, 3, 2, 18, 2, -128, -128, 13, -12, 13, 9, 15, -12, 5, -12, 4, -3, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, 17, -12, 7, 9, -128, -128, 3, -12, 17, -12, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 11, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 9, -3, 13, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 9, -12, 1, 9, -128, -128, 9, -12, 17, 9, -128, -128, 4, 2, 14, 2, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, -128, -128, 4, -2, 13, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 13, 9, 4, 9, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 4, -12, 4, 9, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, -128, -128, 4, 9, 17, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 1, -128, -128, 13, 1, 18, 1, 4, -12, 4, 9, -128, -128, 18, -12, 18, 9, -128, -128, 4, -2, 18, -2, 4, -12, 4, 9, 12, -12, 12, 4, 11, 7, 10, 8, 8, 9, 6, 9, 4, 8, 3, 7, 2, 4, 2, 2, 4, -12, 4, 9, -128, -128, 18, -12, 4, 2, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 4, -12, 12, 9, -128, -128, 20, -12, 12, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 4, -12, 18, 9, -128, -128, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 13, -1, 4, -1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 12, 5, 18, 11, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, 4, -2, -128, -128, 11, -2, 18, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -12, 8, 9, -128, -128, 1, -12, 15, -12, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, 1, -12, 9, 9, -128, -128, 17, -12, 9, 9, 2, -12, 7, 9, -128, -128, 12, -12, 7, 9, -128, -128, 12, -12, 17, 9, -128, -128, 22, -12, 17, 9, 3, -12, 17, 9, -128, -128, 17, -12, 3, 9, 1, -12, 9, -2, 9, 9, -128, -128, 17, -12, 9, -2, 17, -12, 3, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 8, -14, 0, 0, -128, -128, 8, -14, 16, 0, 0, 16, 18, 16, 5, -7, 3, -5, 3, -3, 4, -2, 5, -3, 4, -4, 3, -3, 15, -5, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 15, -12, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 3, 1, 15, 1, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 10, -12, 8, -12, 6, -11, 5, -8, 5, 9, -128, -128, 2, -5, 9, -5, 15, -5, 15, 11, 14, 14, 13, 15, 11, 16, 8, 16, 6, 15, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 3, -12, 4, -11, 5, -12, 4, -13, 3, -12, -128, -128, 4, -5, 4, 9, 5, -12, 6, -11, 7, -12, 6, -13, 5, -12, -128, -128, 6, -5, 6, 12, 5, 15, 3, 16, 1, 16, 4, -12, 4, 9, -128, -128, 14, -5, 4, 5, -128, -128, 8, 1, 15, 9, 4, -12, 4, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, -128, -128, 15, -1, 18, -4, 20, -5, 23, -5, 25, -4, 26, -1, 26, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, 4, -5, 4, 16, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -5, 15, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -5, 4, 9, -128, -128, 4, 1, 5, -2, 7, -4, 9, -5, 12, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, -128, -128, 2, -5, 9, -5, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 15, -5, 15, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 3, -5, 7, 9, -128, -128, 11, -5, 7, 9, -128, -128, 11, -5, 15, 9, -128, -128, 19, -5, 15, 9, 3, -5, 14, 9, -128, -128, 14, -5, 3, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 6, 13, 4, 15, 2, 16, 1, 16, 14, -5, 3, 9, -128, -128, 3, -5, 14, -5, -128, -128, 3, 9, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 + }; + + static const hershey_font_t futural { + .chars = { + {.width=16, .vertex_count=0, .vertices=&futural_vertices[0]}, + {.width=10, .vertex_count=8, .vertices=&futural_vertices[0]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[16]}, + {.width=21, .vertex_count=11, .vertices=&futural_vertices[26]}, + {.width=20, .vertex_count=26, .vertices=&futural_vertices[48]}, + {.width=24, .vertex_count=31, .vertices=&futural_vertices[100]}, + {.width=26, .vertex_count=34, .vertices=&futural_vertices[162]}, + {.width=10, .vertex_count=7, .vertices=&futural_vertices[230]}, + {.width=14, .vertex_count=10, .vertices=&futural_vertices[244]}, + {.width=14, .vertex_count=10, .vertices=&futural_vertices[264]}, + {.width=16, .vertex_count=8, .vertices=&futural_vertices[284]}, + {.width=26, .vertex_count=5, .vertices=&futural_vertices[300]}, + {.width=8, .vertex_count=7, .vertices=&futural_vertices[310]}, + {.width=26, .vertex_count=2, .vertices=&futural_vertices[324]}, + {.width=8, .vertex_count=5, .vertices=&futural_vertices[328]}, + {.width=22, .vertex_count=2, .vertices=&futural_vertices[338]}, + {.width=20, .vertex_count=17, .vertices=&futural_vertices[342]}, + {.width=20, .vertex_count=4, .vertices=&futural_vertices[376]}, + {.width=20, .vertex_count=14, .vertices=&futural_vertices[384]}, + {.width=20, .vertex_count=15, .vertices=&futural_vertices[412]}, + {.width=20, .vertex_count=6, .vertices=&futural_vertices[442]}, + {.width=20, .vertex_count=17, .vertices=&futural_vertices[454]}, + {.width=20, .vertex_count=23, .vertices=&futural_vertices[488]}, + {.width=20, .vertex_count=5, .vertices=&futural_vertices[534]}, + {.width=20, .vertex_count=29, .vertices=&futural_vertices[544]}, + {.width=20, .vertex_count=23, .vertices=&futural_vertices[602]}, + {.width=8, .vertex_count=11, .vertices=&futural_vertices[648]}, + {.width=8, .vertex_count=13, .vertices=&futural_vertices[670]}, + {.width=24, .vertex_count=3, .vertices=&futural_vertices[696]}, + {.width=26, .vertex_count=5, .vertices=&futural_vertices[702]}, + {.width=24, .vertex_count=3, .vertices=&futural_vertices[712]}, + {.width=18, .vertex_count=20, .vertices=&futural_vertices[718]}, + {.width=27, .vertex_count=55, .vertices=&futural_vertices[758]}, + {.width=18, .vertex_count=8, .vertices=&futural_vertices[868]}, + {.width=21, .vertex_count=23, .vertices=&futural_vertices[884]}, + {.width=21, .vertex_count=18, .vertices=&futural_vertices[930]}, + {.width=21, .vertex_count=15, .vertices=&futural_vertices[966]}, + {.width=19, .vertex_count=11, .vertices=&futural_vertices[996]}, + {.width=18, .vertex_count=8, .vertices=&futural_vertices[1018]}, + {.width=21, .vertex_count=22, .vertices=&futural_vertices[1034]}, + {.width=22, .vertex_count=8, .vertices=&futural_vertices[1078]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[1094]}, + {.width=16, .vertex_count=10, .vertices=&futural_vertices[1098]}, + {.width=21, .vertex_count=8, .vertices=&futural_vertices[1118]}, + {.width=17, .vertex_count=5, .vertices=&futural_vertices[1134]}, + {.width=24, .vertex_count=11, .vertices=&futural_vertices[1144]}, + {.width=22, .vertex_count=8, .vertices=&futural_vertices[1166]}, + {.width=22, .vertex_count=21, .vertices=&futural_vertices[1182]}, + {.width=21, .vertex_count=13, .vertices=&futural_vertices[1224]}, + {.width=22, .vertex_count=24, .vertices=&futural_vertices[1250]}, + {.width=21, .vertex_count=16, .vertices=&futural_vertices[1298]}, + {.width=20, .vertex_count=20, .vertices=&futural_vertices[1330]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[1370]}, + {.width=22, .vertex_count=10, .vertices=&futural_vertices[1380]}, + {.width=18, .vertex_count=5, .vertices=&futural_vertices[1400]}, + {.width=24, .vertex_count=11, .vertices=&futural_vertices[1410]}, + {.width=20, .vertex_count=5, .vertices=&futural_vertices[1432]}, + {.width=18, .vertex_count=6, .vertices=&futural_vertices[1442]}, + {.width=20, .vertex_count=8, .vertices=&futural_vertices[1454]}, + {.width=14, .vertex_count=11, .vertices=&futural_vertices[1470]}, + {.width=14, .vertex_count=2, .vertices=&futural_vertices[1492]}, + {.width=14, .vertex_count=11, .vertices=&futural_vertices[1496]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[1518]}, + {.width=18, .vertex_count=2, .vertices=&futural_vertices[1528]}, + {.width=8, .vertex_count=7, .vertices=&futural_vertices[1532]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1546]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1580]}, + {.width=18, .vertex_count=14, .vertices=&futural_vertices[1614]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1642]}, + {.width=18, .vertex_count=17, .vertices=&futural_vertices[1676]}, + {.width=12, .vertex_count=8, .vertices=&futural_vertices[1710]}, + {.width=19, .vertex_count=22, .vertices=&futural_vertices[1726]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[1770]}, + {.width=8, .vertex_count=8, .vertices=&futural_vertices[1790]}, + {.width=10, .vertex_count=11, .vertices=&futural_vertices[1806]}, + {.width=17, .vertex_count=8, .vertices=&futural_vertices[1828]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[1844]}, + {.width=30, .vertex_count=18, .vertices=&futural_vertices[1848]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[1884]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1904]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1938]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1972]}, + {.width=13, .vertex_count=8, .vertices=&futural_vertices[2006]}, + {.width=17, .vertex_count=17, .vertices=&futural_vertices[2022]}, + {.width=12, .vertex_count=8, .vertices=&futural_vertices[2056]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[2072]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[2092]}, + {.width=22, .vertex_count=11, .vertices=&futural_vertices[2102]}, + {.width=17, .vertex_count=5, .vertices=&futural_vertices[2124]}, + {.width=16, .vertex_count=9, .vertices=&futural_vertices[2134]}, + {.width=17, .vertex_count=8, .vertices=&futural_vertices[2152]}, + {.width=14, .vertex_count=39, .vertices=&futural_vertices[2168]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[2246]}, + {.width=14, .vertex_count=39, .vertices=&futural_vertices[2250]}, + {.width=24, .vertex_count=23, .vertices=&futural_vertices[2328]} + } + }; + + static const int8_t futuram_vertices[4802] = { + 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 9, -16, 9, 13, 10, 13, -128, -128, 9, -16, 10, -16, 10, 13, -128, -128, 14, -9, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 13, 0, 14, 1, 15, 3, 15, 5, 14, 7, 11, 8, 8, 8, 6, 7, 5, 6, -128, -128, 14, -9, 13, -10, 11, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 13, -1, 15, 1, 16, 3, 16, 5, 15, 7, 14, 8, 11, 9, 8, 9, 5, 8, 3, 6, 5, 6, -128, -128, 15, 6, 12, 8, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 7, -11, 5, -8, 4, -3, 4, 0, 5, 5, 7, 8, -128, -128, 6, 7, 9, 8, 11, 8, 14, 7, -128, -128, 13, 8, 15, 5, 16, 0, 16, -3, 15, -8, 13, -11, -128, -128, 14, -10, 11, -11, 9, -11, 6, -10, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 6, -8, 6, -7, 8, -8, 10, -10, 10, 9, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 4, 9, -128, -128, 4, -7, 5, -7, 5, -8, 6, -10, 8, -11, 12, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -1, 3, 9, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 5, -12, 16, -12, 9, -3, -128, -128, 5, -12, 5, -11, 15, -11, -128, -128, 15, -12, 8, -3, -128, -128, 9, -4, 11, -4, 14, -3, 16, -1, 17, 2, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 8, -3, 11, -3, 14, -2, 16, 1, -128, -128, 12, -3, 15, -1, 16, 2, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 13, -9, 13, 9, 14, 9, -128, -128, 14, -12, 14, 9, -128, -128, 14, -12, 3, 4, 18, 4, -128, -128, 13, -9, 4, 4, -128, -128, 4, 3, 18, 3, 18, 4, 5, -12, 4, -3, -128, -128, 6, -11, 5, -4, -128, -128, 5, -12, 15, -12, 15, -11, -128, -128, 6, -11, 15, -11, -128, -128, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 4, -3, 5, -3, 7, -4, 11, -4, 14, -3, 16, 0, -128, -128, 12, -4, 15, -2, 16, 1, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 14, -11, 15, -9, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, -128, -128, 15, -10, 12, -11, 10, -11, 7, -10, -128, -128, 8, -11, 6, -8, 5, -3, 5, 2, 6, 6, 9, 8, -128, -128, 5, 4, 7, 7, 10, 8, 11, 8, 14, 7, 16, 4, -128, -128, 12, 8, 15, 6, 16, 3, 16, 2, 15, -1, 12, -3, -128, -128, 16, 1, 14, -2, 11, -3, 10, -3, 7, -2, 5, 1, -128, -128, 9, -3, 6, -1, 5, 2, 3, -12, 17, -12, 7, 9, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 16, -12, 6, 9, 7, 9, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 6, -4, 8, -3, 12, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 8, 8, 5, 7, 4, 5, 4, 2, 5, 0, 6, -1, 8, -2, 12, -3, 14, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 8, -3, 12, -4, 14, -5, 15, -7, 15, -9, 14, -11, -128, -128, 15, -10, 12, -11, 8, -11, 5, -10, -128, -128, 4, 6, 7, 8, -128, -128, 13, 8, 16, 6, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 5, 6, 6, 8, -128, -128, 15, -5, 14, -2, 11, 0, -128, -128, 15, -4, 13, -1, 10, 0, 9, 0, 6, -1, 4, -4, -128, -128, 8, 0, 5, -2, 4, -5, 4, -6, 5, -9, 8, -11, -128, -128, 4, -7, 6, -10, 9, -11, 10, -11, 13, -10, 15, -7, -128, -128, 11, -11, 14, -9, 15, -5, 15, 0, 14, 5, 12, 8, -128, -128, 13, 7, 10, 8, 8, 8, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 12, -2, 9, -1, -128, -128, 3, -7, 4, -7, 4, -8, 5, -10, 8, -11, 11, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -3, 9, -2, -128, -128, 4, -9, 7, -11, -128, -128, 12, -11, 15, -9, -128, -128, 15, -5, 11, -2, -128, -128, 9, -2, 9, 2, 10, 2, 10, -2, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 2, 9, -128, -128, 10, -9, 3, 9, 2, 9, -128, -128, 10, -9, 17, 9, 18, 9, -128, -128, 10, -12, 18, 9, -128, -128, 5, 3, 15, 3, -128, -128, 4, 4, 16, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, -128, -128, 5, -2, 12, -2, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 4, 9, -128, -128, 5, -1, 12, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 5, 8, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 18, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, -128, -128, 5, -11, 11, -11, 14, -10, 15, -9, 16, -7, 17, -4, 17, 1, 16, 4, 15, 6, 14, 7, 11, 8, 5, 8, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 0, 13, 0, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 17, 1, 13, 1, 13, 0, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, 9, -128, -128, 18, -12, 17, -12, 17, 9, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 5, -2, 17, -2, -128, -128, 5, -1, 17, -1, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 12, -12, 12, 4, 11, 7, 9, 8, 7, 8, 5, 7, 4, 4, 3, 4, -128, -128, 12, -12, 13, -12, 13, 4, 12, 7, 11, 8, 9, 9, 7, 9, 5, 8, 4, 7, 3, 4, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 18, -12, 17, -12, 5, 0, -128, -128, 18, -12, 5, 1, -128, -128, 8, -3, 17, 9, 18, 9, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 8, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -7, 5, 9, 4, 9, -128, -128, 5, -7, 12, 9, -128, -128, 4, -12, 12, 6, -128, -128, 20, -12, 12, 6, -128, -128, 19, -7, 12, 9, -128, -128, 19, -7, 19, 9, 20, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 5, -9, 5, 9, 4, 9, -128, -128, 5, -9, 18, 9, -128, -128, 4, -12, 17, 6, -128, -128, 17, -12, 17, 6, -128, -128, 17, -12, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 13, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 13, -1, 5, -1, -128, -128, 5, -11, 13, -11, 15, -10, 16, -8, 16, -5, 15, -3, 13, -2, 5, -2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, -128, -128, 12, 6, 17, 11, 18, 11, -128, -128, 12, 6, 13, 6, 18, 11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, 5, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, 5, -2, -128, -128, 10, -1, 16, 9, 17, 9, -128, -128, 11, -1, 17, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 12, -1, 14, 0, 15, 1, 16, 3, 16, 6, 15, 7, 12, 8, 8, 8, 6, 7, 5, 6, 3, 6, -128, -128, 17, -9, 15, -9, 14, -10, 12, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 7, -4, 12, -2, 14, -1, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -11, 8, 9, -128, -128, 9, -11, 9, 9, 8, 9, -128, -128, 2, -12, 15, -12, 15, -11, -128, -128, 2, -12, 2, -11, 15, -11, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, -128, -128, 4, -12, 5, -12, 5, 3, 6, 6, 7, 7, 10, 8, 12, 8, 15, 7, 16, 6, 17, 3, 17, -12, 18, -12, 2, -12, 10, 9, -128, -128, 2, -12, 3, -12, 10, 6, -128, -128, 18, -12, 17, -12, 10, 6, -128, -128, 18, -12, 10, 9, 2, -12, 8, 9, -128, -128, 2, -12, 3, -12, 8, 6, -128, -128, 13, -12, 8, 6, -128, -128, 13, -9, 8, 9, -128, -128, 13, -9, 18, 9, -128, -128, 13, -12, 18, 6, -128, -128, 24, -12, 23, -12, 18, 6, -128, -128, 24, -12, 18, 9, 3, -12, 16, 9, 17, 9, -128, -128, 3, -12, 4, -12, 17, 9, -128, -128, 17, -12, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, 3, 9, 2, -12, 9, -2, 9, 9, 10, 9, -128, -128, 2, -12, 3, -12, 10, -2, -128, -128, 17, -12, 16, -12, 9, -2, -128, -128, 17, -12, 10, -2, 10, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 15, -12, 15, 9, 16, 9, -128, -128, 15, -12, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, 2, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 4, 1, 14, 1, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 11, -12, 9, -12, 7, -11, 6, -8, 6, 9, 7, 9, -128, -128, 11, -12, 11, -11, 9, -11, 7, -10, -128, -128, 8, -11, 7, -8, 7, 9, -128, -128, 3, -5, 10, -5, 10, -4, -128, -128, 3, -5, 3, -4, 10, -4, 16, -5, 15, -5, 15, 10, 14, 13, 13, 14, 11, 15, 9, 15, 7, 14, 6, 13, 4, 13, -128, -128, 16, -5, 16, 10, 15, 13, 13, 15, 11, 16, 8, 16, 6, 15, 4, 13, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 16, -5, 15, -5, 5, 5, -128, -128, 16, -5, 5, 6, -128, -128, 8, 2, 14, 9, 16, 9, -128, -128, 9, 1, 16, 9, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, -128, -128, 16, -1, 19, -4, 21, -5, 24, -5, 26, -4, 27, -1, 27, 9, -128, -128, 16, -1, 19, -3, 21, -4, 23, -4, 25, -3, 26, -1, 26, 9, 27, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, -128, -128, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 6, 15, 3, 15, 1, 14, -2, 13, -3, 11, -4, 8, -4, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -5, 15, 16, 16, 16, -128, -128, 15, -5, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 13, -5, -128, -128, 5, 1, 6, -1, 8, -3, 10, -4, 13, -4, 13, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 3, 13, 4, -128, -128, 12, 3, 13, 5, 13, 6, 12, 8, -128, -128, 13, 7, 10, 8, 7, 8, 4, 7, -128, -128, 5, 8, 4, 6, 3, 6, -128, -128, 14, -2, 13, -2, 12, -4, -128, -128, 13, -3, 10, -4, 7, -4, 4, -3, -128, -128, 5, -4, 4, -2, 5, 0, -128, -128, 4, -1, 6, 0, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 9, 6, 9, -128, -128, 5, -12, 6, -12, 6, 9, -128, -128, 2, -5, 9, -5, 9, -4, -128, -128, 2, -5, 2, -4, 9, -4, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 4, -5, 5, -5, 5, 5, 6, 7, 8, 8, 10, 8, 12, 7, 15, 5, -128, -128, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, -128, -128, 14, -5, 8, 9, 3, -5, 8, 9, -128, -128, 3, -5, 4, -5, 8, 6, -128, -128, 12, -5, 8, 6, -128, -128, 12, -2, 8, 9, -128, -128, 12, -2, 16, 9, -128, -128, 12, -5, 16, 6, -128, -128, 21, -5, 20, -5, 16, 6, -128, -128, 21, -5, 16, 9, 3, -5, 14, 9, 15, 9, -128, -128, 3, -5, 4, -5, 15, 9, -128, -128, 15, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, 3, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, 4, 16, -128, -128, 14, -5, 8, 9, 5, 16, 4, 16, 13, -4, 3, 9, -128, -128, 15, -5, 5, 8, -128, -128, 3, -5, 15, -5, -128, -128, 3, -5, 3, -4, 13, -4, -128, -128, 5, 8, 15, 8, 15, 9, -128, -128, 3, 9, 15, 9, 10, -16, 3, 0, 10, 16, 4, -16, 4, 16, 4, -16, 11, 0, 4, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 + }; + + static const hershey_font_t futuram { + .chars = { + {.width=16, .vertex_count=0, .vertices=&futuram_vertices[0]}, + {.width=11, .vertex_count=23, .vertices=&futuram_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=&futuram_vertices[46]}, + {.width=21, .vertex_count=11, .vertices=&futuram_vertices[88]}, + {.width=19, .vertex_count=50, .vertices=&futuram_vertices[110]}, + {.width=24, .vertex_count=31, .vertices=&futuram_vertices[210]}, + {.width=25, .vertex_count=48, .vertices=&futuram_vertices[272]}, + {.width=9, .vertex_count=10, .vertices=&futuram_vertices[368]}, + {.width=14, .vertex_count=19, .vertices=&futuram_vertices[388]}, + {.width=14, .vertex_count=19, .vertices=&futuram_vertices[426]}, + {.width=16, .vertex_count=38, .vertices=&futuram_vertices[464]}, + {.width=25, .vertex_count=15, .vertices=&futuram_vertices[540]}, + {.width=11, .vertex_count=23, .vertices=&futuram_vertices[570]}, + {.width=26, .vertex_count=2, .vertices=&futuram_vertices[616]}, + {.width=11, .vertex_count=15, .vertices=&futuram_vertices[620]}, + {.width=23, .vertex_count=7, .vertices=&futuram_vertices[650]}, + {.width=20, .vertex_count=41, .vertices=&futuram_vertices[664]}, + {.width=20, .vertex_count=11, .vertices=&futuram_vertices[746]}, + {.width=20, .vertex_count=33, .vertices=&futuram_vertices[768]}, + {.width=20, .vertex_count=47, .vertices=&futuram_vertices[834]}, + {.width=20, .vertex_count=17, .vertices=&futuram_vertices[928]}, + {.width=20, .vertex_count=52, .vertices=&futuram_vertices[962]}, + {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1066]}, + {.width=20, .vertex_count=11, .vertices=&futuram_vertices[1188]}, + {.width=20, .vertex_count=67, .vertices=&futuram_vertices[1210]}, + {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1344]}, + {.width=11, .vertex_count=31, .vertices=&futuram_vertices[1466]}, + {.width=11, .vertex_count=39, .vertices=&futuram_vertices[1528]}, + {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1606]}, + {.width=25, .vertex_count=15, .vertices=&futuram_vertices[1612]}, + {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1642]}, + {.width=19, .vertex_count=57, .vertices=&futuram_vertices[1648]}, + {.width=27, .vertex_count=55, .vertices=&futuram_vertices[1762]}, + {.width=20, .vertex_count=19, .vertices=&futuram_vertices[1872]}, + {.width=20, .vertex_count=43, .vertices=&futuram_vertices[1910]}, + {.width=21, .vertex_count=37, .vertices=&futuram_vertices[1996]}, + {.width=21, .vertex_count=31, .vertices=&futuram_vertices[2070]}, + {.width=19, .vertex_count=26, .vertices=&futuram_vertices[2132]}, + {.width=18, .vertex_count=20, .vertices=&futuram_vertices[2184]}, + {.width=21, .vertex_count=43, .vertices=&futuram_vertices[2224]}, + {.width=22, .vertex_count=21, .vertices=&futuram_vertices[2310]}, + {.width=9, .vertex_count=7, .vertices=&futuram_vertices[2352]}, + {.width=17, .vertex_count=19, .vertices=&futuram_vertices[2366]}, + {.width=21, .vertex_count=21, .vertices=&futuram_vertices[2404]}, + {.width=17, .vertex_count=13, .vertices=&futuram_vertices[2446]}, + {.width=24, .vertex_count=25, .vertices=&futuram_vertices[2472]}, + {.width=22, .vertex_count=19, .vertices=&futuram_vertices[2522]}, + {.width=22, .vertex_count=39, .vertices=&futuram_vertices[2560]}, + {.width=20, .vertex_count=26, .vertices=&futuram_vertices[2638]}, + {.width=22, .vertex_count=47, .vertices=&futuram_vertices[2690]}, + {.width=20, .vertex_count=33, .vertices=&futuram_vertices[2784]}, + {.width=20, .vertex_count=42, .vertices=&futuram_vertices[2850]}, + {.width=17, .vertex_count=14, .vertices=&futuram_vertices[2934]}, + {.width=22, .vertex_count=23, .vertices=&futuram_vertices[2962]}, + {.width=20, .vertex_count=13, .vertices=&futuram_vertices[3008]}, + {.width=26, .vertex_count=25, .vertices=&futuram_vertices[3034]}, + {.width=20, .vertex_count=15, .vertices=&futuram_vertices[3084]}, + {.width=19, .vertex_count=16, .vertices=&futuram_vertices[3114]}, + {.width=20, .vertex_count=19, .vertices=&futuram_vertices[3146]}, + {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3184]}, + {.width=14, .vertex_count=2, .vertices=&futuram_vertices[3206]}, + {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3210]}, + {.width=22, .vertex_count=7, .vertices=&futuram_vertices[3232]}, + {.width=20, .vertex_count=2, .vertices=&futuram_vertices[3246]}, + {.width=12, .vertex_count=6, .vertices=&futuram_vertices[3250]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3262]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3332]}, + {.width=18, .vertex_count=31, .vertices=&futuram_vertices[3402]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3464]}, + {.width=18, .vertex_count=35, .vertices=&futuram_vertices[3534]}, + {.width=14, .vertex_count=23, .vertices=&futuram_vertices[3604]}, + {.width=20, .vertex_count=47, .vertices=&futuram_vertices[3650]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[3744]}, + {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3792]}, + {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3838]}, + {.width=19, .vertex_count=21, .vertices=&futuram_vertices[3884]}, + {.width=9, .vertex_count=7, .vertices=&futuram_vertices[3926]}, + {.width=31, .vertex_count=41, .vertices=&futuram_vertices[3940]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4022]}, + {.width=19, .vertex_count=35, .vertices=&futuram_vertices[4070]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4140]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4210]}, + {.width=14, .vertex_count=20, .vertices=&futuram_vertices[4280]}, + {.width=17, .vertex_count=49, .vertices=&futuram_vertices[4320]}, + {.width=11, .vertex_count=15, .vertices=&futuram_vertices[4418]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4448]}, + {.width=16, .vertex_count=13, .vertices=&futuram_vertices[4496]}, + {.width=24, .vertex_count=25, .vertices=&futuram_vertices[4522]}, + {.width=18, .vertex_count=15, .vertices=&futuram_vertices[4572]}, + {.width=16, .vertex_count=16, .vertices=&futuram_vertices[4602]}, + {.width=18, .vertex_count=19, .vertices=&futuram_vertices[4634]}, + {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4672]}, + {.width=8, .vertex_count=2, .vertices=&futuram_vertices[4678]}, + {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4682]}, + {.width=24, .vertex_count=23, .vertices=&futuram_vertices[4688]} + } + }; + + static const int8_t gothgbt_vertices[9046] = { + 6, -12, 5, -11, 3, -10, 5, -9, 6, 2, -128, -128, 6, -9, 7, -10, 6, -11, 5, -10, 6, -9, 6, 2, -128, -128, 6, -12, 7, -11, 9, -10, 7, -9, 6, 2, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 12, -12, 14, -11, 15, -9, 15, -7, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 16, -8, 15, -10, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, 7, 4, 5, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 5, 4, 5, 6, 6, 8, 8, 9, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 20, -4, 21, -3, 22, -3, 23, -4, -128, -128, 19, -3, 20, -2, 22, -2, -128, -128, 19, -2, 20, -1, 21, -1, 22, -2, 23, -4, -128, -128, 20, -4, 14, 2, -128, -128, 13, 3, 7, 9, 3, 4, 9, -2, -128, -128, 10, -3, 14, -7, 10, -12, 5, -6, 11, 0, 15, 6, 17, 8, 19, 9, 21, 9, 22, 8, 23, 6, -128, -128, 7, 8, 4, 4, -128, -128, 13, -7, 10, -11, -128, -128, 6, -6, 11, -1, 15, 5, 17, 7, 19, 8, 22, 8, -128, -128, 8, 8, 4, 3, -128, -128, 13, -6, 9, -11, -128, -128, 6, -7, 12, -1, 16, 5, 17, 6, 19, 7, 22, 7, 23, 6, 6, -6, 6, -8, 4, -10, 6, -12, 7, -10, 7, -8, 6, -6, 4, -5, -128, -128, 6, -11, 5, -10, 6, -9, 6, -11, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 7, -10, 8, -9, 9, -7, 9, 6, 7, 7, -128, -128, 9, -9, 8, -10, 9, -11, 10, -9, 10, 7, 12, 8, -128, -128, 7, -10, 10, -12, 11, -10, 11, 6, 13, 7, 14, 7, -128, -128, 7, 7, 8, 7, 10, 8, 11, 9, 12, 8, 14, 7, 4, -10, 6, -10, 8, -11, 9, -12, 11, -11, 14, -10, 16, -10, -128, -128, 8, -10, 10, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -10, 11, -11, -128, -128, 14, -10, 14, -2, -128, -128, 15, -9, 15, -3, -128, -128, 16, -10, 16, -2, 9, -2, 6, -1, 4, 1, 3, 4, 3, 9, -128, -128, 3, 9, 7, 7, 11, 6, 14, 6, 18, 7, -128, -128, 6, 8, 9, 7, 14, 7, 17, 8, -128, -128, 3, 9, 8, 8, 13, 8, 16, 9, 18, 7, 4, -10, 5, -10, 7, -11, 8, -12, 10, -11, 14, -10, 16, -10, -128, -128, 7, -10, 9, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -11, -128, -128, 14, -10, 14, -3, -128, -128, 15, -9, 15, -4, -128, -128, 16, -10, 16, -3, 14, -3, 11, -2, 9, -1, -128, -128, 9, -2, 11, -1, 14, 0, 16, 0, 16, 7, -128, -128, 15, 1, 15, 6, -128, -128, 14, 0, 14, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 13, -12, 3, -2, 3, 3, 12, 3, -128, -128, 14, 3, 18, 3, 19, 4, 19, 2, 18, 3, -128, -128, 4, -2, 4, 2, -128, -128, 5, -4, 5, 3, -128, -128, 12, -11, 12, 6, 10, 7, -128, -128, 13, -8, 14, -10, 13, -11, 13, 7, 15, 8, -128, -128, 13, -12, 15, -10, 14, -8, 14, 6, 16, 7, 17, 7, -128, -128, 10, 7, 11, 7, 13, 8, 14, 9, 15, 8, 17, 7, 4, -12, 4, -3, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 14, -11, -128, -128, 4, -10, 13, -10, 15, -11, 16, -12, -128, -128, 14, -6, 13, -5, 11, -4, 7, -3, 4, -3, -128, -128, 11, -4, 12, -4, 14, -3, 14, 7, -128, -128, 13, -5, 15, -4, 15, 6, -128, -128, 14, -6, 15, -5, 17, -4, 18, -4, 16, -3, 16, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 10, -11, 12, -12, 13, -11, 15, -10, 16, -10, -128, -128, 11, -11, 13, -10, -128, -128, 10, -11, 12, -9, 14, -9, 16, -10, -128, -128, 6, -2, 7, -2, 11, -3, 13, -4, 14, -5, -128, -128, 11, -3, 12, -3, 14, -2, 14, 7, -128, -128, 13, -4, 15, -2, 15, 6, -128, -128, 14, -5, 15, -4, 17, -3, 18, -3, 16, -2, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 3, -10, 5, -12, 8, -11, 13, -11, 18, -12, -128, -128, 4, -11, 7, -10, 12, -10, 15, -11, -128, -128, 3, -10, 7, -9, 10, -9, 14, -10, 18, -12, -128, -128, 18, -12, 17, -10, 15, -7, 11, -3, 9, 0, 8, 3, 8, 6, 9, 9, -128, -128, 10, -1, 9, 2, 9, 5, 10, 8, -128, -128, 13, -5, 11, -2, 10, 1, 10, 4, 11, 7, 9, 9, 4, -9, 4, -3, -128, -128, 5, -8, 5, -4, -128, -128, 6, -9, 6, -3, -128, -128, 4, -9, 6, -9, 11, -10, 13, -11, 14, -12, -128, -128, 11, -10, 12, -10, 14, -9, 14, -3, -128, -128, 13, -11, 15, -10, 15, -4, -128, -128, 14, -12, 15, -11, 17, -10, 18, -10, 16, -9, 16, -3, -128, -128, 4, -3, 6, -3, 14, 0, 16, 0, -128, -128, 16, -3, 14, -3, 6, 0, 4, 0, -128, -128, 4, 0, 4, 6, 2, 7, -128, -128, 5, 1, 5, 6, 8, 8, -128, -128, 6, 0, 6, 6, 8, 7, 9, 8, -128, -128, 14, 0, 14, 7, -128, -128, 15, 1, 15, 6, -128, -128, 16, 0, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 4, -10, 4, -1, 2, 0, -128, -128, 5, -9, 5, 0, 7, 1, -128, -128, 6, -10, 6, -1, 8, 0, 9, 0, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 0, 3, 0, 5, 1, 6, 2, 7, 1, 9, 0, 13, -1, 14, -1, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -8, 4, -10, 5, -11, 8, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -2, 10, -1, -128, -128, 4, -8, 5, -10, -128, -128, 13, -10, 14, -9, 14, -5, 13, -4, -128, -128, 3, -8, 5, -7, 5, -9, 6, -11, 8, -12, -128, -128, 10, -12, 12, -11, 13, -9, 13, -5, 12, -3, 10, -1, -128, -128, 9, -1, 9, 2, 10, -1, 8, -1, 9, 2, -128, -128, 9, 6, 7, 8, 9, 9, 11, 8, 9, 6, -128, -128, 9, 7, 8, 8, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 5, -9, 7, -11, 9, -12, 11, -12, 12, -11, 19, 5, 20, 6, 22, 6, -128, -128, 10, -11, 11, -10, 18, 6, 19, 8, 20, 7, 18, 6, -128, -128, 7, -11, 9, -11, 10, -10, 17, 6, 18, 8, 19, 9, 20, 9, 22, 6, -128, -128, 5, -5, 6, -6, 8, -7, 9, -7, 10, -6, -128, -128, 9, -6, 9, -5, -128, -128, 6, -6, 8, -6, 9, -4, -128, -128, 0, 9, 2, 7, 4, 6, 7, 6, 9, 7, -128, -128, 3, 7, 7, 7, 8, 8, -128, -128, 0, 9, 3, 8, 6, 8, 7, 9, 9, 7, -128, -128, 11, -8, 5, 6, -128, -128, 7, 1, 15, 1, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 18, -12, 20, -11, 21, -9, 21, -7, 19, -5, 15, -3, -128, -128, 18, -11, 20, -9, 20, -7, -128, -128, 16, -11, 18, -10, 19, -9, 19, -6, 17, -4, -128, -128, 17, -4, 20, -2, 21, 0, 21, 6, -128, -128, 19, -2, 20, 0, 20, 5, -128, -128, 17, -4, 18, -3, 19, -1, 19, 6, -128, -128, 4, 9, 7, 7, 10, 6, 14, 6, 17, 7, -128, -128, 6, 8, 9, 7, 14, 7, 16, 8, -128, -128, 4, 9, 8, 8, 13, 8, 15, 9, 17, 7, 19, 6, 21, 6, -128, -128, 15, -3, 15, 6, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 5, -7, 4, -4, 4, 1, 6, 5, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 0, 6, 3, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 11, -8, 11, 4, -128, -128, 12, -8, 12, 2, -128, -128, 13, -9, 13, 1, 12, 3, 11, 4, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 18, -9, 18, 6, 2, -12, 16, -12, 18, -11, 19, -9, 19, 6, -128, -128, 4, -11, 16, -11, 18, -9, 18, 5, -128, -128, 2, -12, 3, -11, 5, -10, 16, -10, 17, -9, 17, 6, -128, -128, 8, -7, 7, -6, 6, -4, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 4, -128, -128, 7, -5, 7, 2, -128, -128, 4, -2, 7, -2, -128, -128, 8, -7, 8, 1, 7, 3, 6, 4, -128, -128, 2, 9, 5, 7, 8, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 12, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 13, 9, 15, 7, 17, 6, 19, 6, -128, -128, 11, -10, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 2, -10, 4, -12, 6, -12, 8, -11, 10, -12, -128, -128, 5, -11, 7, -11, -128, -128, 2, -10, 4, -11, 6, -10, 8, -10, 10, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 10, -5, 11, -8, 12, -10, 13, -11, 15, -12, 17, -12, 20, -11, -128, -128, 13, -10, 15, -11, 17, -11, 19, -10, -128, -128, 11, -8, 12, -9, 14, -10, 16, -10, 18, -9, 20, -11, -128, -128, 10, 3, 11, 0, 12, -2, 13, -3, 15, -3, 17, -2, -128, -128, 13, -2, 15, -2, 16, -1, -128, -128, 11, 0, 12, -1, 14, -1, 15, 0, 17, -2, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 10, -5, 10, 6, 4, -10, 6, -12, 9, -12, 11, -11, 13, -12, -128, -128, 7, -11, 10, -11, -128, -128, 4, -10, 6, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 13, -8, 13, 7, 12, 8, 11, 8, 7, 6, 5, 6, 3, 7, 1, 9, -128, -128, 14, -8, 14, 6, -128, -128, 14, -2, 18, -2, -128, -128, 10, 8, 9, 8, 7, 7, 4, 7, -128, -128, 15, -9, 15, -3, 18, -3, -128, -128, 18, -1, 15, -1, 15, 5, 14, 7, 10, 9, 8, 9, 6, 8, 4, 8, 1, 9, -128, -128, 13, -8, 15, -9, 18, -12, 20, -11, 22, -11, 23, -12, -128, -128, 17, -11, 19, -10, 21, -10, -128, -128, 16, -10, 18, -9, 20, -9, 22, -10, 23, -12, -128, -128, 18, -9, 18, 5, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 16, 9, 19, 8, 21, 6, 22, 4, 22, 1, 21, -1, 20, -2, 18, -3, 16, -3, -128, -128, 5, -7, 4, -4, 4, 1, 5, 4, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 20, 6, 21, 5, 21, 1, 20, -1, -128, -128, 16, 9, 18, 8, 19, 7, 20, 5, 20, 1, 19, -1, 18, -2, 16, -3, -128, -128, 11, -8, 11, 5, -128, -128, 12, -8, 12, 3, -128, -128, 13, -9, 13, 2, 12, 4, 11, 5, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 20, -10, 16, -3, 16, 9, -128, -128, 16, 1, 20, 1, -128, -128, 16, 4, 20, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 9, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 17, -4, 19, -6, 20, -5, 21, -2, 21, 2, 20, 6, 18, 9, -128, -128, 18, -5, 19, -4, 20, -2, 20, 3, 19, 6, -128, -128, 17, -4, 18, -4, 19, -2, 19, 3, 18, 9, -128, -128, 15, -3, 15, 7, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 3, -10, 5, -12, 8, -12, 11, -11, 13, -12, -128, -128, 6, -11, 10, -11, -128, -128, 3, -10, 5, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 16, -10, 14, -8, 13, -5, 13, 6, 12, 8, 10, 8, 6, 6, 4, 6, 2, 7, 0, 9, -128, -128, 14, -7, 14, 5, -128, -128, 9, 8, 8, 8, 6, 7, 3, 7, -128, -128, 16, -10, 15, -8, 15, 4, 14, 6, 12, 8, 10, 9, 7, 9, 5, 8, 2, 8, 0, 9, 4, -10, 6, -12, 9, -12, 12, -11, 14, -12, -128, -128, 7, -11, 11, -11, -128, -128, 4, -10, 6, -11, 9, -10, 12, -10, 14, -12, -128, -128, 11, -7, 10, -6, 9, -4, 9, -3, 7, -3, 6, -2, 6, 0, 7, -1, 9, -1, 9, 4, -128, -128, 10, -5, 10, 2, -128, -128, 7, -2, 10, -2, -128, -128, 11, -7, 11, 1, 10, 3, 9, 4, -128, -128, 17, -10, 15, -8, 14, -5, 14, 6, 13, 8, -128, -128, 15, -7, 15, 5, -128, -128, 17, -10, 16, -8, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 4, 5, 3, 5, -128, -128, 2, 4, 5, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 18, -6, 19, -5, 21, -4, -128, -128, 17, -5, 19, -4, 21, -4, -128, -128, 21, -4, 19, -1, 17, 1, 15, 3, -128, -128, 17, 1, 19, 2, 20, 6, 21, 8, 22, 8, -128, -128, 19, 4, 20, 8, -128, -128, 17, 1, 18, 2, 19, 8, 20, 9, 21, 9, 22, 8, -128, -128, 15, -3, 15, 7, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 16, -11, 16, 6, 8, -8, 7, -7, 6, -5, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 3, -128, -128, 7, -6, 7, 1, -128, -128, 4, -2, 7, -2, -128, -128, 8, -8, 8, 0, 7, 2, 6, 3, -128, -128, 1, 9, 3, 7, 5, 6, 7, 6, 9, 7, 10, 7, 11, 6, -128, -128, 4, 7, 7, 7, 9, 8, -128, -128, 1, 9, 3, 8, 6, 8, 8, 9, 9, 9, 10, 8, 11, 6, -128, -128, 8, -8, 12, -12, 16, -8, 16, 5, 17, 7, 18, 7, -128, -128, 12, -11, 15, -8, 15, 6, 14, 7, 15, 8, 16, 7, 15, 6, -128, -128, 12, -2, 15, -2, -128, -128, 10, -10, 11, -10, 14, -7, 14, -3, 11, -3, -128, -128, 11, -1, 14, -1, 14, 6, 13, 7, 15, 9, 18, 7, 19, 6, -128, -128, 16, -8, 20, -12, 24, -8, 24, 5, 25, 7, 26, 7, -128, -128, 20, -11, 23, -8, 23, 6, 25, 8, -128, -128, 20, -2, 23, -2, -128, -128, 18, -10, 19, -10, 22, -7, 22, -3, 19, -3, -128, -128, 19, -1, 22, -1, 22, 7, 24, 9, 26, 7, -128, -128, 11, -10, 11, 6, -128, -128, 19, -10, 19, 6, 2, -9, 4, -11, 6, -12, 8, -12, 10, -11, 12, -8, 17, 3, 19, 6, 20, 7, -128, -128, 8, -11, 10, -9, 11, -7, 17, 5, 20, 8, -128, -128, 4, -11, 6, -11, 8, -10, 10, -7, 15, 4, 17, 7, 18, 8, 20, 9, -128, -128, 17, -10, 19, -9, 21, -9, 23, -10, 24, -12, -128, -128, 18, -11, 20, -10, 22, -10, -128, -128, 17, -10, 19, -12, 21, -11, 23, -11, 24, -12, -128, -128, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, -128, -128, 4, -2, 6, -2, -128, -128, 2, 9, 4, 7, 6, 6, 9, 6, 11, 7, -128, -128, 5, 7, 8, 7, 10, 8, -128, -128, 2, 9, 5, 8, 8, 8, 9, 9, 11, 7, -128, -128, 6, -11, 6, 6, -128, -128, 20, -9, 20, 9, -128, -128, 13, -6, 14, -5, 16, -4, 18, -4, 20, -5, -128, -128, 6, 2, 8, 1, 12, 1, 14, 2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 7, 2, 9, 5, 8, 5, 16, 7, 14, -128, -128, 5, -10, 6, -8, 6, 14, -128, -128, 3, -2, 6, -2, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 14, -128, -128, 7, -7, 10, -9, 14, -12, 18, -8, 18, 6, -128, -128, 14, -11, 17, -8, 17, 6, -128, -128, 12, -10, 13, -10, 16, -7, 16, 7, -128, -128, 10, 6, 13, 6, 16, 7, -128, -128, 11, 7, 13, 7, 15, 8, -128, -128, 10, 8, 12, 8, 14, 9, 16, 7, 18, 6, -128, -128, 10, -9, 10, 13, -128, -128, 10, -5, 12, -4, 14, -4, 16, -5, -128, -128, 10, 1, 12, 0, 14, 0, 16, 1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 11, 9, 15, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, -128, -128, 11, 9, 12, 8, 13, 8, 15, 9, 19, 14, 21, 15, 22, 15, -128, -128, 15, 10, 17, 13, 19, 15, 20, 15, -128, -128, 13, 8, 14, 9, 17, 15, 19, 16, 21, 16, 22, 15, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 12, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 15, -11, 17, -12, 19, -11, 20, -9, 20, -6, 19, -4, 18, -3, 14, -1, 12, 0, -128, -128, 17, -11, 18, -11, 19, -9, 19, -5, 18, -4, -128, -128, 15, -11, 17, -10, 18, -8, 18, -5, 17, -3, 14, -1, -128, -128, 14, -1, 16, 0, 17, 1, 20, 6, 21, 7, 22, 7, -128, -128, 17, 2, 19, 6, 21, 8, -128, -128, 14, -1, 16, 1, 18, 7, 20, 9, 22, 7, 14, -9, 13, -10, 11, -11, 8, -12, -128, -128, 15, -10, 13, -11, -128, -128, 16, -11, 12, -12, 8, -12, 5, -11, 4, -10, 3, -8, 4, -6, 5, -5, 8, -4, 16, -4, 18, -3, 19, -2, 19, 0, 18, 3, -128, -128, 4, -7, 5, -6, 8, -5, 17, -5, 19, -4, 20, -3, 20, -1, 19, 1, -128, -128, 4, -10, 4, -8, 5, -7, 8, -6, 18, -6, 20, -5, 21, -3, 21, -1, 18, 3, 14, 9, -128, -128, 2, -3, 3, -2, 5, -1, 14, -1, 15, 0, 15, 1, 14, 3, -128, -128, 3, -1, 5, 0, 13, 0, 14, 1, -128, -128, 2, -3, 2, -2, 3, 0, 5, 1, 12, 1, 14, 2, 14, 3, -128, -128, 2, 9, 5, 7, 9, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 11, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 14, 9, -128, -128, 16, -11, 14, -9, 12, -6, -128, -128, 11, -4, 9, -1, -128, -128, 8, 1, 6, 3, 4, 4, 3, 4, 3, 3, 4, 4, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 6, 7, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 4, 1, 5, 4, 7, 6, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 5, -8, 4, -5, 4, -1, 5, 2, 7, 5, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 3, -9, 4, -11, 6, -12, 10, -12, 16, -11, 20, -11, 22, -12, -128, -128, 11, -11, 15, -10, 19, -10, -128, -128, 3, -9, 4, -10, 6, -11, 9, -11, 15, -9, 18, -9, 20, -10, 22, -12, -128, -128, 14, -9, 13, -8, 11, -7, 11, 4, -128, -128, 12, -7, 12, 2, -128, -128, 13, -8, 13, 1, 12, 3, 11, 4, -128, -128, 18, -9, 18, 6, 2, -10, 4, -12, 6, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 7, -10, 9, -10, 11, -12, -128, -128, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 16, 8, 18, 7, 20, 9, 22, 7, -128, -128, 4, 1, 5, 4, 8, 7, 11, 8, 14, 8, -128, -128, 5, -8, 4, -4, 4, -1, 5, 2, 6, 4, 8, 6, 11, 7, 15, 7, 18, 6, -128, -128, 15, -9, 11, -8, 10, -6, 10, 4, -128, -128, 11, -7, 11, 2, -128, -128, 12, -8, 12, 1, 11, 3, 10, 4, -128, -128, 15, -9, 17, -10, 19, -12, 20, -11, 22, -10, 20, -9, 20, 5, 21, 7, 22, 7, -128, -128, 19, -9, 20, -10, 19, -11, 18, -10, 19, -9, 19, 6, 21, 8, -128, -128, 17, -10, 18, -9, 18, 6, -128, -128, 15, -9, 15, 7, -128, -128, 15, -4, 18, -4, -128, -128, 15, 0, 18, 0, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, 19, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 6, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 5, -128, -128, 16, -10, 17, -9, 17, 6, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 9, 7, 11, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 10, 6, 12, 7, -128, -128, 3, 7, 6, 7, 9, 8, 10, 9, 12, 7, 15, 6, 17, 7, 18, 9, 20, 7, 23, 6, -128, -128, 10, -10, 13, -12, 15, -10, 15, 6, 18, 6, 20, 7, -128, -128, 13, -11, 14, -10, 14, 6, -128, -128, 10, -10, 12, -10, 13, -9, 13, 6, 12, 7, -128, -128, 18, 7, 19, 8, -128, -128, 18, -10, 21, -12, 23, -10, 23, 6, -128, -128, 21, -11, 22, -10, 22, 6, -128, -128, 18, -10, 20, -10, 21, -9, 21, 6, 20, 7, -128, -128, 10, -10, 10, 6, -128, -128, 18, -10, 18, 6, -128, -128, 10, -4, 13, -4, -128, -128, 10, 0, 13, 0, -128, -128, 18, -4, 21, -4, -128, -128, 18, 0, 21, 0, 1, -9, 3, -11, 5, -12, 7, -12, 8, -11, 16, 7, 17, 8, 19, 8, -128, -128, 6, -11, 7, -10, 15, 7, 16, 8, -128, -128, 3, -11, 5, -11, 6, -10, 14, 8, 15, 9, 17, 9, 19, 8, 21, 6, -128, -128, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 16, -11, 17, -10, 19, -10, -128, -128, 15, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 1, 9, 2, 7, 4, 6, 6, 6, 7, 7, -128, -128, 3, 7, 5, 7, 6, 8, -128, -128, 1, 9, 2, 8, 4, 8, 6, 9, -128, -128, 16, -12, 12, -3, -128, -128, 10, 0, 6, 9, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 17, -2, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 12, 18, 14, 16, 16, 14, 15, 10, 14, 5, 14, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 7, -128, -128, 16, -10, 17, -9, 17, 6, 19, 9, -128, -128, 17, 15, 15, 14, 12, 14, -128, -128, 18, 14, 15, 13, 9, 13, 5, 14, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 16, -11, 15, -9, 10, -3, 7, 1, 5, 5, 2, 9, -128, -128, 14, -7, 6, 4, -128, -128, 18, -12, 15, -8, 13, -4, 10, 0, 5, 6, 4, 8, -128, -128, 2, -10, 4, -12, 7, -11, 13, -11, 18, -12, -128, -128, 3, -11, 7, -10, 11, -10, 15, -11, -128, -128, 2, -10, 6, -9, 10, -9, 14, -10, 16, -11, -128, -128, 4, 8, 6, 7, 10, 6, 14, 6, 18, 7, -128, -128, 5, 8, 9, 7, 13, 7, 17, 8, -128, -128, 2, 9, 7, 8, 13, 8, 16, 9, 18, 7, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 16, -2, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -7, 6, -9, 6, -11, -128, -128, 6, -8, 6, -6, 7, -7, 6, -8, 6, 0, 4, 2, 3, 4, 3, 6, 4, 8, 6, 9, 8, 7, 11, 6, -128, -128, 3, 4, 4, 6, 5, 7, 7, 8, -128, -128, 4, 2, 4, 4, 5, 6, 7, 7, 8, 7, -128, -128, 4, -2, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 13, -2, 13, 6, 14, 7, 15, 7, -128, -128, 5, -4, 4, -3, 7, -3, -128, -128, 10, -3, 13, -3, 12, -4, 12, 7, 13, 8, -128, -128, 3, -3, 5, -5, 6, -4, 8, -3, 11, -2, 11, 7, 13, 9, 15, 7, -128, -128, 3, -3, 8, 2, 3, -10, 4, -8, 4, 6, 2, 7, -128, -128, 5, -8, 4, -10, 5, -11, 5, 6, 8, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 6, -3, 8, -4, 10, -2, 12, -2, 14, -3, 9, -5, 7, -4, 4, -3, 4, 6, 2, 7, -128, -128, 5, -3, 5, 6, 8, 8, -128, -128, 9, -5, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -10, 7, -12, 8, -9, 14, -3, 14, 7, -128, -128, 7, -9, 5, -10, 6, -11, 7, -9, 13, -3, 13, 6, -128, -128, 4, -10, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 13, -1, 11, 0, 6, 3, -128, -128, 9, -4, 12, -1, -128, -128, 6, -3, 8, -4, 11, 0, 4, -10, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -10, 5, 7, 7, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -10, 7, -11, 9, -12, 10, -11, 12, -10, 13, -10, -128, -128, 8, -11, 9, -10, 11, -10, -128, -128, 6, -10, 7, -11, 9, -9, 11, -9, 13, -10, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 10, -5, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 10, -4, 13, -2, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 9, -4, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, 12, 9, 11, 11, -128, -128, 11, -4, 13, -3, 13, 7, 12, 9, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 11, 11, 11, 14, 12, 16, 13, 16, 11, 14, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 8, 7, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 8, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 6, 7, 7, 8, 7, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 7, 11, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 9, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 7, 7, 11, 7, 14, 5, 16, 3, 16, 3, 15, 5, 16, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -4, 11, -5, 13, -2, 10, 0, 6, 3, -128, -128, 10, -4, 12, -2, -128, -128, 9, -4, 11, -1, -128, -128, 10, 0, 11, 1, 13, 6, 14, 7, 15, 7, -128, -128, 10, 1, 11, 2, 12, 7, 13, 8, -128, -128, 9, 1, 10, 2, 11, 7, 13, 9, 15, 7, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 14, 6, 16, 7, 14, 9, -128, -128, 11, -4, 13, -3, 13, 7, 15, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 6, 11, 7, 13, 8, 14, 9, -128, -128, 14, -2, 17, -3, 19, -4, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, 23, 7, 24, 7, -128, -128, 19, -4, 21, -3, 21, 7, 22, 8, -128, -128, 17, -3, 18, -3, 20, -2, 20, 7, 22, 9, 24, 7, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 6, 8, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 7, -128, -128, 10, -4, 13, -2, 13, 6, -128, -128, 9, -4, 10, -3, 12, -2, 12, 7, 3, -5, 4, -3, 4, 6, 2, 7, 4, 7, 4, 16, -128, -128, 4, -4, 5, -3, 5, 15, 6, 14, 5, 12, -128, -128, 5, 7, 6, 7, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, 8, 6, 12, 7, 14, 4, 16, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 16, -128, -128, 10, -4, 13, -2, 13, 15, 12, 14, 13, 12, -128, -128, 9, -4, 10, -3, 12, -2, 12, 12, 11, 14, 14, 16, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 6, -3, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 8, -4, 10, -2, 12, -2, 14, -3, 3, -3, 3, 1, 5, 2, 11, 2, 13, 3, 13, 7, -128, -128, 4, -3, 4, 1, -128, -128, 12, 3, 12, 7, -128, -128, 6, -4, 5, -3, 5, 1, 7, 2, -128, -128, 9, 2, 11, 3, 11, 7, 10, 8, -128, -128, 3, -3, 6, -4, 8, -5, 10, -4, 12, -4, 13, -5, -128, -128, 7, -4, 9, -4, -128, -128, 6, -4, 8, -3, 10, -3, 12, -4, -128, -128, 13, 7, 10, 8, 8, 9, 6, 8, 4, 8, 2, 9, -128, -128, 9, 8, 7, 8, -128, -128, 10, 8, 8, 7, 5, 7, 2, 9, -128, -128, 13, -5, 12, -3, 10, 0, 5, 5, 2, 9, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 9, -5, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 12, -5, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, 14, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, -128, -128, 11, -4, 13, -3, 13, 5, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 15, 9, 17, 7, 20, 6, 22, 6, -128, -128, 11, -4, 13, -3, 13, 6, 16, 8, -128, -128, 12, -5, 13, -4, 15, -3, 14, -2, 14, 5, 15, 6, 17, 7, -128, -128, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, -128, -128, 19, -4, 21, -3, 21, 5, -128, -128, 20, -5, 18, -3, 20, -2, 20, 6, 3, -3, 4, -3, 6, -2, 7, -1, 11, 7, 12, 8, 14, 9, 16, 7, -128, -128, 5, -4, 7, -3, 12, 7, 14, 8, -128, -128, 3, -3, 5, -5, 7, -4, 8, -3, 12, 5, 13, 6, 15, 7, 16, 7, -128, -128, 10, 1, 13, -5, 14, -4, 16, -4, 17, -5, -128, -128, 13, -4, 14, -3, 15, -3, -128, -128, 12, -3, 14, -2, 16, -3, 17, -5, -128, -128, 9, 3, 6, 9, 5, 8, 3, 8, 2, 9, -128, -128, 6, 8, 5, 7, 4, 7, -128, -128, 7, 7, 5, 6, 3, 7, 2, 9, -128, -128, 5, 2, 8, 2, -128, -128, 11, 2, 14, 2, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 11, -4, 13, -3, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 12, -5, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 15, -5, 3, 9, -128, -128, 3, -3, 5, -2, 8, -2, 11, -3, 15, -5, -128, -128, 4, -4, 6, -3, 10, -3, -128, -128, 3, -3, 5, -5, 7, -4, 11, -4, 15, -5, -128, -128, 3, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 8, 7, 12, 7, 14, 8, -128, -128, 3, 9, 7, 8, 11, 8, 13, 9, 15, 7, -128, -128, 5, 2, 13, 2, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12, -128, -128, 6, -12, 3, -9, 4, -5, 8, -4, 11, -7, 10, -11, 6, -12, -128, -128, 8, -12, 4, -11, 3, -7, 6, -4, 10, -5, 11, -9, 8, -12 + }; + + static const hershey_font_t gothgbt { + .chars = { + {.width=16, .vertex_count=0, .vertices=&gothgbt_vertices[0]}, + {.width=12, .vertex_count=29, .vertices=&gothgbt_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=&gothgbt_vertices[58]}, + {.width=21, .vertex_count=11, .vertices=&gothgbt_vertices[100]}, + {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[122]}, + {.width=24, .vertex_count=31, .vertices=&gothgbt_vertices[240]}, + {.width=26, .vertex_count=61, .vertices=&gothgbt_vertices[302]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[424]}, + {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[450]}, + {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[502]}, + {.width=16, .vertex_count=38, .vertices=&gothgbt_vertices[554]}, + {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[630]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[660]}, + {.width=25, .vertex_count=7, .vertices=&gothgbt_vertices[686]}, + {.width=12, .vertex_count=10, .vertices=&gothgbt_vertices[700]}, + {.width=23, .vertex_count=7, .vertices=&gothgbt_vertices[720]}, + {.width=20, .vertex_count=41, .vertices=&gothgbt_vertices[734]}, + {.width=20, .vertex_count=26, .vertices=&gothgbt_vertices[816]}, + {.width=20, .vertex_count=47, .vertices=&gothgbt_vertices[868]}, + {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[962]}, + {.width=20, .vertex_count=40, .vertices=&gothgbt_vertices[1074]}, + {.width=20, .vertex_count=52, .vertices=&gothgbt_vertices[1154]}, + {.width=20, .vertex_count=58, .vertices=&gothgbt_vertices[1258]}, + {.width=20, .vertex_count=37, .vertices=&gothgbt_vertices[1374]}, + {.width=20, .vertex_count=70, .vertices=&gothgbt_vertices[1448]}, + {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[1588]}, + {.width=12, .vertex_count=21, .vertices=&gothgbt_vertices[1706]}, + {.width=12, .vertex_count=24, .vertices=&gothgbt_vertices[1748]}, + {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1796]}, + {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[1802]}, + {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1832]}, + {.width=18, .vertex_count=50, .vertices=&gothgbt_vertices[1838]}, + {.width=27, .vertex_count=55, .vertices=&gothgbt_vertices[1938]}, + {.width=22, .vertex_count=59, .vertices=&gothgbt_vertices[2048]}, + {.width=24, .vertex_count=109, .vertices=&gothgbt_vertices[2166]}, + {.width=24, .vertex_count=68, .vertices=&gothgbt_vertices[2384]}, + {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[2520]}, + {.width=22, .vertex_count=93, .vertices=&gothgbt_vertices[2662]}, + {.width=23, .vertex_count=90, .vertices=&gothgbt_vertices[2848]}, + {.width=25, .vertex_count=86, .vertices=&gothgbt_vertices[3028]}, + {.width=24, .vertex_count=111, .vertices=&gothgbt_vertices[3200]}, + {.width=19, .vertex_count=66, .vertices=&gothgbt_vertices[3422]}, + {.width=20, .vertex_count=64, .vertices=&gothgbt_vertices[3554]}, + {.width=24, .vertex_count=114, .vertices=&gothgbt_vertices[3682]}, + {.width=22, .vertex_count=84, .vertices=&gothgbt_vertices[3910]}, + {.width=28, .vertex_count=106, .vertices=&gothgbt_vertices[4078]}, + {.width=25, .vertex_count=83, .vertices=&gothgbt_vertices[4290]}, + {.width=26, .vertex_count=78, .vertices=&gothgbt_vertices[4456]}, + {.width=22, .vertex_count=69, .vertices=&gothgbt_vertices[4612]}, + {.width=26, .vertex_count=98, .vertices=&gothgbt_vertices[4750]}, + {.width=24, .vertex_count=107, .vertices=&gothgbt_vertices[4946]}, + {.width=23, .vertex_count=93, .vertices=&gothgbt_vertices[5160]}, + {.width=24, .vertex_count=70, .vertices=&gothgbt_vertices[5346]}, + {.width=24, .vertex_count=88, .vertices=&gothgbt_vertices[5486]}, + {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[5662]}, + {.width=27, .vertex_count=94, .vertices=&gothgbt_vertices[5804]}, + {.width=22, .vertex_count=64, .vertices=&gothgbt_vertices[5992]}, + {.width=23, .vertex_count=85, .vertices=&gothgbt_vertices[6120]}, + {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[6290]}, + {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6402]}, + {.width=14, .vertex_count=2, .vertices=&gothgbt_vertices[6424]}, + {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6428]}, + {.width=16, .vertex_count=10, .vertices=&gothgbt_vertices[6450]}, + {.width=16, .vertex_count=2, .vertices=&gothgbt_vertices[6470]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[6474]}, + {.width=17, .vertex_count=52, .vertices=&gothgbt_vertices[6500]}, + {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[6604]}, + {.width=14, .vertex_count=34, .vertices=&gothgbt_vertices[6690]}, + {.width=17, .vertex_count=40, .vertices=&gothgbt_vertices[6758]}, + {.width=14, .vertex_count=31, .vertices=&gothgbt_vertices[6838]}, + {.width=13, .vertex_count=40, .vertices=&gothgbt_vertices[6900]}, + {.width=18, .vertex_count=55, .vertices=&gothgbt_vertices[6980]}, + {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[7090]}, + {.width=10, .vertex_count=34, .vertices=&gothgbt_vertices[7182]}, + {.width=10, .vertex_count=38, .vertices=&gothgbt_vertices[7250]}, + {.width=17, .vertex_count=49, .vertices=&gothgbt_vertices[7326]}, + {.width=10, .vertex_count=21, .vertices=&gothgbt_vertices[7424]}, + {.width=26, .vertex_count=66, .vertices=&gothgbt_vertices[7466]}, + {.width=18, .vertex_count=44, .vertices=&gothgbt_vertices[7598]}, + {.width=18, .vertex_count=39, .vertices=&gothgbt_vertices[7686]}, + {.width=18, .vertex_count=53, .vertices=&gothgbt_vertices[7764]}, + {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[7870]}, + {.width=14, .vertex_count=37, .vertices=&gothgbt_vertices[7956]}, + {.width=16, .vertex_count=58, .vertices=&gothgbt_vertices[8030]}, + {.width=10, .vertex_count=27, .vertices=&gothgbt_vertices[8146]}, + {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[8200]}, + {.width=18, .vertex_count=35, .vertices=&gothgbt_vertices[8292]}, + {.width=26, .vertex_count=56, .vertices=&gothgbt_vertices[8362]}, + {.width=19, .vertex_count=58, .vertices=&gothgbt_vertices[8474]}, + {.width=18, .vertex_count=59, .vertices=&gothgbt_vertices[8590]}, + {.width=18, .vertex_count=37, .vertices=&gothgbt_vertices[8708]}, + {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8782]}, + {.width=8, .vertex_count=2, .vertices=&gothgbt_vertices[8860]}, + {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8864]}, + {.width=24, .vertex_count=23, .vertices=&gothgbt_vertices[8942]} + } + }; + + static const int8_t scriptc_vertices[5530] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 19, -12, 17, -10, 15, -7, 12, -2, 10, 1, 7, 5, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 19, -12, 18, -8, 16, 2, 15, 9, -128, -128, 19, -12, 16, 9, -128, -128, 15, 9, 15, 7, 14, 4, 13, 2, 11, 0, 9, -1, 7, -1, 6, 0, 6, 2, 7, 5, 10, 8, 13, 9, 17, 9, 19, 8, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 18, -4, 14, -3, 12, -3, -128, -128, 18, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, -128, -128, 14, -3, 17, -2, 18, -1, 19, 1, 19, 4, 18, 7, 17, 8, 15, 9, 13, 9, 12, 8, 12, 6, 13, 3, -128, -128, 14, -3, 16, -2, 17, -1, 18, 1, 18, 4, 17, 7, 15, 9, 3, -10, 2, -8, 2, -6, 3, -4, 6, -3, 9, -3, 13, -4, 15, -5, 17, -7, 18, -9, 18, -11, 17, -12, 15, -12, 12, -11, 9, -8, 7, -5, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 2, 15, 0, 13, 0, 11, 1, 10, 3, -128, -128, 15, -12, 13, -11, 10, -8, 8, -5, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 4, 5, 6, 6, 8, 8, 10, 9, 13, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -6, 19, -9, 17, -11, 15, -12, 10, -12, 7, -11, 5, -9, 4, -7, 4, -5, 5, -4, 7, -4, 8, -5, 9, -7, 14, -9, 13, -8, 13, -6, 14, -5, 16, -5, 17, -7, 17, -9, 16, -11, 14, -12, 11, -12, 9, -11, 8, -10, 7, -8, 7, -6, 8, -4, 10, -3, -128, -128, 11, -12, 9, -10, 8, -8, 8, -5, 10, -3, -128, -128, 10, -3, 8, -3, 5, -2, 3, 0, 2, 2, 2, 5, 3, 7, 4, 8, 6, 9, 9, 9, 12, 8, 14, 6, 15, 4, 15, 2, 14, 0, 12, 0, 10, 1, 9, 3, -128, -128, 8, -3, 6, -2, 4, 0, 3, 2, 3, 6, 4, 8, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 20, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, -128, -128, 8, 1, 9, 0, 11, -1, 15, -1, 17, -2, 19, -5, 17, 2, 3, -9, 2, -7, 2, -5, 3, -3, 5, -2, 8, -2, 11, -3, 13, -4, 16, -7, 17, -10, 17, -11, 16, -12, 15, -12, 13, -11, 11, -9, 10, -7, 9, -4, 9, -1, 10, 1, 12, 2, 14, 2, 16, 1, 18, -1, 19, -3, -128, -128, 16, -12, 14, -11, 12, -9, 11, -7, 10, -4, 10, 0, 12, 2, -128, -128, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 8, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, -128, -128, 18, 1, 16, 4, 14, 6, 11, 8, 8, 9, 6, -6, 5, -7, 5, -9, 6, -11, 9, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 4, 2, 5, 1, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 18, -8, 17, -6, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 22, -12, 20, -10, 18, -6, 16, 0, 15, 4, 15, 7, 16, 9, 14, -10, 12, -7, 10, -2, 8, 3, 7, 5, 5, 8, 3, 9, -128, -128, 16, -6, 14, -4, 11, -3, 8, -3, 6, -4, 5, -6, 5, -8, 6, -10, 8, -11, 12, -12, 16, -12, 14, -10, 13, -8, 11, -2, 9, 4, 8, 6, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, 16, -12, 14, -10, 12, -7, 10, -2, 7, 7, 5, 11, -128, -128, 16, -5, 14, -3, 11, -2, 8, -2, 6, -3, 5, -5, 5, -7, 6, -9, 8, -11, 12, -12, 16, -12, 14, -9, 13, -7, 10, 2, 8, 6, 7, 8, 5, 11, 4, 12, 2, 13, 1, 12, 1, 10, 2, 8, 4, 6, 6, 5, 9, 4, 13, 3, 6, -6, 5, -7, 5, -9, 7, -11, 10, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 20, -11, 17, -7, 15, -5, 13, -4, 10, -3, -128, -128, 23, -11, 22, -10, 23, -9, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 17, -6, 16, -5, 14, -4, 10, -3, -128, -128, 10, -3, 13, -2, 14, 0, 15, 7, 16, 9, -128, -128, 10, -3, 12, -2, 13, 0, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, 4, -9, 3, -7, 3, -5, 4, -3, 6, -2, 9, -2, 12, -3, 14, -4, 17, -7, 18, -10, 18, -11, 17, -12, 16, -12, 14, -11, 13, -10, 11, -7, 7, 3, 6, 5, 4, 8, 2, 9, -128, -128, 13, -10, 11, -6, 9, 1, 8, 4, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 7, 8, 9, 9, 12, 9, 14, 8, 16, 6, 14, -12, 10, -3, 7, 3, 5, 6, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 14, -12, 12, -5, 11, -1, 10, 4, 10, 8, 12, 9, -128, -128, 14, -12, 13, -8, 12, -3, 11, 4, 11, 8, 12, 9, -128, -128, 23, -12, 19, -3, 14, 6, 12, 9, -128, -128, 23, -12, 21, -5, 20, -1, 19, 4, 19, 8, 21, 9, 22, 9, 24, 8, 26, 6, -128, -128, 23, -12, 22, -8, 21, -3, 20, 4, 20, 8, 21, 9, 11, -12, 10, -8, 8, -2, 6, 3, 5, 5, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 11, -12, 11, -7, 12, 4, 13, 9, -128, -128, 11, -12, 12, -7, 13, 4, 13, 9, -128, -128, 25, -11, 24, -10, 25, -9, 26, -10, 26, -11, 25, -12, 23, -12, 21, -11, 19, -8, 18, -6, 16, -1, 14, 5, 13, 9, 11, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 15, -11, 13, -10, 11, -8, 9, -4, 8, 1, 8, 4, -128, -128, 9, -11, 7, -8, 5, -4, 4, 0, 4, 4, 5, 7, 7, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 16, -12, 19, -11, 20, -10, 21, -8, 21, -5, 20, -3, 19, -2, 16, -1, 14, -1, 12, -2, -128, -128, 16, -12, 18, -11, 19, -10, 20, -8, 20, -5, 19, -3, 18, -2, 16, -1, 13, -8, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 16, 8, 18, 6, -128, -128, 15, -12, 16, -11, 17, -9, 17, -5, 16, -2, 14, 1, 11, 4, 7, 7, 3, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 16, -3, 12, -3, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, 16, -3, -128, -128, 12, -3, 15, -2, 16, 0, 17, 7, 18, 9, -128, -128, 12, -3, 14, -2, 15, 0, 16, 7, 18, 9, 19, 9, 21, 8, 23, 6, 6, -9, 5, -7, 5, -5, 6, -3, 8, -2, 11, -2, 14, -3, 16, -4, 19, -7, 20, -10, 20, -11, 19, -12, 18, -12, 16, -11, 15, -10, 14, -8, 13, -5, 11, 2, 10, 5, 8, 8, 6, 9, -128, -128, 14, -8, 13, -4, 12, 3, 11, 6, 9, 8, 6, 9, 3, 9, 1, 8, 0, 6, 0, 5, 1, 4, 2, 5, 1, 6, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 19, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -4, 4, 4, 4, 7, 5, 9, -128, -128, 6, -12, 7, -10, 7, -7, 4, 1, 3, 4, 3, 7, 5, 9, 7, 9, 9, 8, 12, 5, 14, 2, 15, 0, -128, -128, 19, -12, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 20, -12, 16, 0, 15, 4, 15, 7, 16, 9, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -3, 5, 4, 5, 7, 6, 9, -128, -128, 6, -12, 7, -10, 7, -7, 5, 0, 4, 4, 4, 7, 6, 9, 7, 9, 10, 8, 13, 5, 15, 2, 17, -2, 18, -5, 19, -9, 19, -11, 18, -12, 17, -12, 16, -11, 15, -9, 15, -6, 16, -4, 18, -2, 20, -1, 22, -1, 3, -6, 2, -6, 1, -7, 1, -9, 2, -11, 4, -12, 8, -12, 7, -10, 6, -6, 5, 3, 4, 9, -128, -128, 6, -6, 6, 3, 5, 9, -128, -128, 16, -12, 14, -10, 12, -6, 9, 3, 7, 7, 5, 9, -128, -128, 16, -12, 15, -10, 14, -6, 13, 3, 12, 9, -128, -128, 14, -6, 14, 3, 13, 9, -128, -128, 26, -12, 24, -11, 22, -9, 20, -6, 17, 3, 15, 7, 13, 9, 8, -7, 7, -6, 5, -6, 4, -7, 4, -9, 5, -11, 7, -12, 9, -12, 11, -11, 12, -9, 12, -6, 11, -2, 9, 3, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 9, -12, 10, -11, 11, -9, 11, -6, 10, -2, 8, 3, 6, 6, 4, 8, 2, 9, -128, -128, 21, -11, 20, -10, 21, -9, 22, -10, 22, -11, 21, -12, 19, -12, 17, -11, 15, -9, 13, -6, 11, -2, 10, 3, 10, 6, 11, 8, 12, 9, 13, 9, 15, 8, 17, 6, 3, -8, 5, -11, 7, -12, 8, -12, 10, -11, 10, -9, 8, -3, 8, 0, 9, 2, -128, -128, 8, -12, 9, -11, 9, -9, 7, -3, 7, 0, 9, 2, 11, 2, 14, 1, 16, -1, 18, -4, 19, -6, -128, -128, 21, -12, 19, -6, 16, 2, 14, 6, -128, -128, 22, -12, 20, -6, 18, -1, 16, 3, 14, 6, 12, 8, 9, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, 19, -10, 18, -8, 16, -3, 15, 0, 14, 2, 12, 5, 10, 7, 8, 8, 5, 9, -128, -128, 12, -6, 11, -4, 9, -3, 7, -3, 6, -5, 6, -7, 7, -9, 9, -11, 12, -12, 22, -12, 20, -11, 19, -10, 18, -7, 17, -3, 15, 3, 13, 6, 10, 8, 5, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 10, 9, 13, 9, 16, 8, 18, 6, -128, -128, 15, -12, 19, -11, 20, -11, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 9, 3, 9, 0, 10, 4, 11, 5, 12, 5, 14, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 8, 1, 7, 2, 8, 2, 8, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 15, -12, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 16, -12, 10, 6, 10, 8, 11, 9, 3, 7, 5, 6, 6, 5, 7, 3, 7, 1, 6, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 3, 0, 6, -3, 8, -6, 9, -9, 9, -11, 8, -12, 6, -11, 5, -9, -4, 18, -4, 20, -3, 21, -1, 20, 0, 17, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 5, -9, 4, -4, 3, 0, 0, 9, -2, 14, -4, 18, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, -3, 18, -128, -128, 4, 0, 1, 9, -1, 14, -3, 18, -4, 20, -6, 21, -7, 20, -7, 18, -6, 15, -4, 13, -1, 11, 3, 9, 6, 7, 8, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 9, 0, 9, 1, 10, 1, 9, 0, 8, 0, 6, 2, 3, 3, -128, -128, 3, 3, 6, 4, 7, 8, 8, 9, -128, -128, 3, 3, 5, 4, 6, 8, 8, 9, 9, 9, 12, 7, 14, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 11, 9, -128, -128, 11, 0, 12, 1, 12, 3, 10, 9, -128, -128, 13, 3, 15, 1, 17, 0, 18, 0, 20, 1, 20, 3, 19, 6, 19, 8, 20, 9, -128, -128, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 12, 6, 12, 8, 13, 9, -128, -128, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 13, 9, 15, 8, 16, 7, 18, 4, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 7, 10, 5, 10, 3, 9, 1, 7, 0, 6, 1, 6, 3, 7, 5, 9, 6, 11, 6, 13, 5, 14, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 0, 4, 2, 1, 4, -3, -128, -128, 5, -6, -4, 21, -128, -128, 6, -6, -3, 21, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, 5, 20, 6, 21, 8, 20, 9, 17, 9, 9, 11, 9, 14, 7, 16, 4, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 10, 3, -128, -128, 10, 0, 10, 3, 11, 5, 12, 5, 14, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 3, 7, 5, 7, 7, 6, 8, 4, 9, -128, -128, 3, 1, 5, 3, 6, 5, 6, 7, 4, 9, -128, -128, 0, 8, 2, 9, 7, 9, 10, 7, 12, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, -128, -128, 2, -4, 8, -4, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 3, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 7, 8, 9, 6, 10, 3, 10, 0, -128, -128, 4, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 11, 4, 12, 5, 13, 5, 15, 4, 4, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, -128, -128, 5, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 8, 6, 8, 8, 10, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 0, -128, -128, 11, 0, 9, 6, 9, 8, 10, 9, -128, -128, 16, 0, 17, 4, 18, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 3, 6, 6, 5, 8, 3, 9, 2, 9, 1, 8, 1, 7, 2, 7, 1, 8, -128, -128, 13, 1, 12, 2, 13, 2, 13, 1, 12, 0, 11, 0, 9, 1, 8, 3, 7, 6, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 7, 1, 8, 3, -128, -128, 9, 1, 7, 3, -128, -128, 6, 6, 7, 8, -128, -128, 7, 6, 5, 8, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 1, 8, 4, 7, 6, 4, 8, 2, 9, -128, -128, 6, 0, 7, 1, 7, 4, 6, 6, 4, 8, -128, -128, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 2, 20, 0, 21, -1, 20, -1, 18, 0, 15, 3, 12, 6, 10, 10, 7, 13, 4, -128, -128, 2, 9, 3, 10, 4, 12, 4, 15, 3, 18, 2, 20, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 10, -4, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -12 + }; + + static const hershey_font_t scriptc { + .chars = { + {.width=16, .vertex_count=0, .vertices=&scriptc_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=&scriptc_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=&scriptc_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=&scriptc_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=&scriptc_vertices[156]}, + {.width=26, .vertex_count=54, .vertices=&scriptc_vertices[218]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[326]}, + {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[340]}, + {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[378]}, + {.width=17, .vertex_count=8, .vertices=&scriptc_vertices[416]}, + {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[432]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[442]}, + {.width=26, .vertex_count=2, .vertices=&scriptc_vertices[456]}, + {.width=11, .vertex_count=5, .vertices=&scriptc_vertices[460]}, + {.width=22, .vertex_count=2, .vertices=&scriptc_vertices[470]}, + {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[474]}, + {.width=21, .vertex_count=14, .vertices=&scriptc_vertices[556]}, + {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[584]}, + {.width=21, .vertex_count=49, .vertices=&scriptc_vertices[666]}, + {.width=21, .vertex_count=9, .vertices=&scriptc_vertices[764]}, + {.width=21, .vertex_count=38, .vertices=&scriptc_vertices[782]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[858]}, + {.width=21, .vertex_count=29, .vertices=&scriptc_vertices[948]}, + {.width=21, .vertex_count=62, .vertices=&scriptc_vertices[1006]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1130]}, + {.width=11, .vertex_count=10, .vertices=&scriptc_vertices[1220]}, + {.width=11, .vertex_count=13, .vertices=&scriptc_vertices[1240]}, + {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1266]}, + {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[1272]}, + {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1282]}, + {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[1288]}, + {.width=27, .vertex_count=55, .vertices=&scriptc_vertices[1354]}, + {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[1464]}, + {.width=24, .vertex_count=69, .vertices=&scriptc_vertices[1538]}, + {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[1676]}, + {.width=23, .vertex_count=42, .vertices=&scriptc_vertices[1756]}, + {.width=19, .vertex_count=48, .vertices=&scriptc_vertices[1840]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1936]}, + {.width=22, .vertex_count=52, .vertices=&scriptc_vertices[2026]}, + {.width=24, .vertex_count=54, .vertices=&scriptc_vertices[2130]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[2238]}, + {.width=17, .vertex_count=33, .vertices=&scriptc_vertices[2302]}, + {.width=24, .vertex_count=58, .vertices=&scriptc_vertices[2368]}, + {.width=18, .vertex_count=39, .vertices=&scriptc_vertices[2484]}, + {.width=28, .vertex_count=48, .vertices=&scriptc_vertices[2562]}, + {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[2658]}, + {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[2732]}, + {.width=23, .vertex_count=52, .vertices=&scriptc_vertices[2798]}, + {.width=21, .vertex_count=42, .vertices=&scriptc_vertices[2902]}, + {.width=24, .vertex_count=64, .vertices=&scriptc_vertices[2986]}, + {.width=20, .vertex_count=35, .vertices=&scriptc_vertices[3114]}, + {.width=18, .vertex_count=37, .vertices=&scriptc_vertices[3184]}, + {.width=22, .vertex_count=38, .vertices=&scriptc_vertices[3258]}, + {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[3334]}, + {.width=23, .vertex_count=40, .vertices=&scriptc_vertices[3404]}, + {.width=20, .vertex_count=51, .vertices=&scriptc_vertices[3484]}, + {.width=22, .vertex_count=41, .vertices=&scriptc_vertices[3586]}, + {.width=21, .vertex_count=43, .vertices=&scriptc_vertices[3668]}, + {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3754]}, + {.width=14, .vertex_count=2, .vertices=&scriptc_vertices[3776]}, + {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3780]}, + {.width=16, .vertex_count=10, .vertices=&scriptc_vertices[3802]}, + {.width=16, .vertex_count=2, .vertices=&scriptc_vertices[3822]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[3826]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3840]}, + {.width=14, .vertex_count=22, .vertices=&scriptc_vertices[3904]}, + {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[3948]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3990]}, + {.width=12, .vertex_count=22, .vertices=&scriptc_vertices[4054]}, + {.width=9, .vertex_count=26, .vertices=&scriptc_vertices[4098]}, + {.width=16, .vertex_count=37, .vertices=&scriptc_vertices[4150]}, + {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4224]}, + {.width=8, .vertex_count=18, .vertices=&scriptc_vertices[4282]}, + {.width=8, .vertex_count=23, .vertices=&scriptc_vertices[4318]}, + {.width=14, .vertex_count=30, .vertices=&scriptc_vertices[4364]}, + {.width=8, .vertex_count=16, .vertices=&scriptc_vertices[4424]}, + {.width=25, .vertex_count=44, .vertices=&scriptc_vertices[4456]}, + {.width=18, .vertex_count=31, .vertices=&scriptc_vertices[4544]}, + {.width=14, .vertex_count=28, .vertices=&scriptc_vertices[4606]}, + {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4662]}, + {.width=16, .vertex_count=34, .vertices=&scriptc_vertices[4720]}, + {.width=14, .vertex_count=23, .vertices=&scriptc_vertices[4788]}, + {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[4834]}, + {.width=8, .vertex_count=19, .vertices=&scriptc_vertices[4876]}, + {.width=16, .vertex_count=26, .vertices=&scriptc_vertices[4914]}, + {.width=15, .vertex_count=22, .vertices=&scriptc_vertices[4966]}, + {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[5010]}, + {.width=16, .vertex_count=41, .vertices=&scriptc_vertices[5080]}, + {.width=16, .vertex_count=31, .vertices=&scriptc_vertices[5162]}, + {.width=13, .vertex_count=37, .vertices=&scriptc_vertices[5224]}, + {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5298]}, + {.width=8, .vertex_count=2, .vertices=&scriptc_vertices[5376]}, + {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5380]}, + {.width=24, .vertex_count=23, .vertices=&scriptc_vertices[5458]} + } + }; + + static const int8_t scripts_vertices[4472] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 0, 9, 2, 8, 5, 5, 8, 1, 12, -6, 15, -12, 15, 9, 14, 6, 12, 3, 10, 1, 7, -1, 5, -1, 4, 0, 4, 2, 5, 4, 7, 6, 10, 8, 13, 9, 18, 9, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 17, -3, 14, -2, -128, -128, 13, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 15, 9, 12, 9, 10, 8, 9, 6, 12, -6, 12, -5, 13, -4, 15, -4, 17, -5, 18, -7, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 15, 4, 13, -12, 11, -11, 10, -9, 9, -5, 8, 1, 7, 4, 6, 6, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 6, 8, 9, 9, 12, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -7, 19, -10, 18, -11, 16, -12, 13, -12, 11, -10, 11, -8, 12, -5, 14, -2, 16, 0, 19, 2, 21, 3, 14, -8, 14, -7, 15, -6, 17, -6, 18, -7, 18, -9, 17, -11, 14, -12, 10, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, 11, -2, 8, -2, 5, -1, 4, 0, 3, 2, 3, 5, 4, 7, 5, 8, 8, 9, 11, 9, 14, 8, 16, 6, 17, 4, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, -128, -128, 9, -2, 18, -2, 0, 9, 2, 8, 6, 4, 9, -1, 10, -4, 11, -8, 11, -11, 10, -12, 9, -12, 8, -11, 7, -9, 7, -6, 8, -4, 10, -3, 14, -3, 17, -4, 18, -5, 19, -7, 19, -1, 18, 4, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -10, 18, -6, 16, 0, 15, 5, 15, 8, 16, 9, 17, 9, 19, 8, 20, 7, 22, 4, 14, 4, 12, 2, 10, -1, 9, -3, 8, -6, 8, -9, 9, -11, 10, -12, 12, -12, 13, -11, 14, -9, 14, -6, 13, -1, 11, 4, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 10, 12, 8, 9, 6, 4, 5, -2, 5, -8, 6, -11, 8, -12, 10, -12, 11, -11, 12, -8, 12, -5, 11, 0, 8, 9, 6, 15, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 12, 6, 10, 9, 8, 13, 6, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 24, -9, 24, -11, 23, -12, 22, -12, 20, -11, 18, -9, 16, -6, 14, -4, 12, -3, 10, -3, -128, -128, 12, -3, 13, -1, 13, 6, 14, 8, 15, 9, 16, 9, 18, 8, 19, 7, 21, 4, 4, 0, 6, 0, 10, -1, 13, -3, 15, -5, 16, -7, 16, -10, 15, -12, 13, -12, 12, -11, 11, -9, 10, -4, 9, 1, 8, 4, 7, 6, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 16, -12, 18, -11, 19, -9, 19, -7, 18, -2, 17, 2, 15, 9, -128, -128, 17, 2, 20, -6, 22, -10, 23, -11, 25, -12, 26, -12, 28, -11, 29, -9, 29, -7, 28, -2, 26, 5, 26, 8, 27, 9, 28, 9, 30, 8, 31, 7, 33, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 17, -12, 19, -11, 20, -9, 20, -7, 19, -2, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, 10, -10, 10, -7, 11, -4, 13, -1, 15, 1, 18, 3, 20, 4, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 20, -12, 22, -11, 23, -10, 24, -8, 24, -5, 23, -3, 22, -2, 20, -1, 17, -1, 15, -2, 14, -3, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 6, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 19, -12, 21, -11, 22, -10, 23, -8, 23, -5, 22, -3, 21, -2, 19, -1, 16, -1, 13, -2, 14, -1, 15, 1, 15, 6, 16, 8, 18, 9, 20, 8, 21, 7, 23, 4, 0, 9, 2, 8, 4, 6, 7, 2, 9, -1, 11, -5, 12, -8, 12, -11, 11, -12, 10, -12, 9, -11, 8, -9, 8, -7, 9, -5, 11, -3, 14, -1, 16, 1, 17, 3, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 9, 9, 11, 9, 13, 8, 14, 7, 16, 3, 19, -5, 21, -12, -128, -128, 19, -5, 18, -1, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 7, 7, 9, 9, 9, 11, 8, 14, 5, 16, 2, 18, -2, 19, -5, 20, -9, 20, -11, 19, -12, 18, -12, 17, -11, 16, -9, 16, -7, 17, -4, 19, -2, 21, -1, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -6, 8, 9, -128, -128, 18, -12, 8, 9, -128, -128, 18, -12, 16, 9, -128, -128, 30, -12, 28, -11, 25, -8, 22, -4, 19, 2, 16, 9, 8, -6, 6, -6, 5, -7, 5, -9, 6, -11, 8, -12, 10, -12, 12, -11, 13, -9, 13, -6, 11, 3, 11, 6, 12, 8, 14, 9, 16, 9, 18, 8, 19, 6, 19, 4, 18, 3, 16, 3, -128, -128, 23, -9, 23, -11, 22, -12, 20, -12, 18, -11, 16, -9, 14, -6, 10, 3, 8, 6, 6, 8, 4, 9, 2, 9, 1, 8, 1, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 3, 17, 1, 19, -5, -128, -128, 21, -12, 19, -5, 16, 5, 14, 11, 12, 16, 10, 20, 8, 21, 7, 20, 7, 18, 8, 15, 10, 12, 13, 9, 16, 7, 21, 4, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 2, 12, 5, 8, 8, 6, 9, 3, 9, 2, 8, 2, 6, 3, 5, 6, 5, 8, 6, 9, 7, 10, 9, 10, 12, 9, 15, 8, 17, 6, 20, 4, 21, 3, 20, 3, 18, 4, 15, 6, 12, 9, 9, 12, 7, 18, 4, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 7, 6, 8, 3, 8, 0, 9, 4, 10, 5, 12, 5, 14, 4, 7, 2, 7, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 6, 9, 9, 7, 11, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 14, -12, -128, -128, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 1, 7, 3, 6, 4, 5, 5, 3, 5, 1, 4, 0, 3, 0, 1, 1, 0, 3, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 10, 4, 0, 4, 4, -1, 6, -4, 7, -6, 8, -9, 8, -11, 7, -12, 5, -11, 4, -9, 2, -1, -1, 8, -4, 15, -5, 18, -5, 20, -4, 21, -2, 20, -1, 17, 0, 8, 1, 9, 3, 9, 5, 8, 6, 7, 8, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, -128, -128, 10, 0, 8, 7, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 2, 9, 4, 8, 5, 7, 7, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, -4, 18, -5, 20, -7, 21, -8, 20, -8, 18, -7, 15, -4, 12, -1, 10, 1, 9, 4, 7, 7, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 7, 4, 4, 4, -128, -128, 4, 4, 6, 5, 7, 8, 8, 9, 9, 9, 11, 8, 12, 7, 14, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 6, 7, 8, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 2, 11, 6, 10, 9, -128, -128, 11, 6, 12, 4, 14, 1, 16, 0, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 19, 9, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 12, 9, 13, 9, 15, 8, 16, 7, 18, 4, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 9, 5, 9, 3, 8, 1, 6, 0, 5, 1, 5, 3, 6, 5, 8, 6, 11, 6, 13, 5, 14, 4, 0, 4, 2, 1, 3, -1, 2, 3, -4, 21, -128, -128, 2, 3, 3, 1, 5, 0, 7, 0, 9, 1, 10, 3, 10, 5, 9, 7, 8, 8, 6, 9, -128, -128, 2, 8, 4, 9, 7, 9, 10, 8, 12, 7, 15, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, -128, -128, 10, 0, 9, 3, 7, 8, 4, 15, 3, 18, 3, 20, 4, 21, 6, 20, 7, 17, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 1, 7, 2, 7, 4, 6, 7, 6, 8, 7, 9, 8, 9, 10, 8, 11, 7, 13, 4, 0, 4, 2, 1, 3, -1, 3, 1, 5, 4, 6, 6, 6, 8, 4, 9, -128, -128, 0, 8, 2, 9, 6, 9, 8, 8, 9, 7, 11, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 1, -4, 8, -4, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 0, 4, 2, 0, 1, 5, 1, 8, 2, 9, 3, 9, 6, 8, 8, 6, 9, 3, 9, 0, -128, -128, 9, 0, 10, 4, 11, 5, 13, 5, 15, 4, 3, 0, 1, 2, 0, 5, 0, 7, 1, 9, 3, 9, 5, 8, 7, 6, -128, -128, 9, 0, 7, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 3, 15, 0, -128, -128, 15, 0, 16, 4, 17, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 13, 1, 12, 0, 10, 0, 9, 1, 5, 8, 4, 9, 2, 9, 1, 8, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 2, 8, 4, 7, 6, 5, 8, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 11, 7, 14, 4, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12 + }; + + static const hershey_font_t scripts { + .chars = { + {.width=16, .vertex_count=0, .vertices=&scripts_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=&scripts_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=&scripts_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=&scripts_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=&scripts_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=&scripts_vertices[156]}, + {.width=26, .vertex_count=54, .vertices=&scripts_vertices[218]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[326]}, + {.width=15, .vertex_count=19, .vertices=&scripts_vertices[340]}, + {.width=15, .vertex_count=19, .vertices=&scripts_vertices[378]}, + {.width=17, .vertex_count=8, .vertices=&scripts_vertices[416]}, + {.width=26, .vertex_count=5, .vertices=&scripts_vertices[432]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[442]}, + {.width=26, .vertex_count=2, .vertices=&scripts_vertices[456]}, + {.width=10, .vertex_count=5, .vertices=&scripts_vertices[460]}, + {.width=22, .vertex_count=2, .vertices=&scripts_vertices[470]}, + {.width=21, .vertex_count=41, .vertices=&scripts_vertices[474]}, + {.width=21, .vertex_count=14, .vertices=&scripts_vertices[556]}, + {.width=21, .vertex_count=41, .vertices=&scripts_vertices[584]}, + {.width=21, .vertex_count=49, .vertices=&scripts_vertices[666]}, + {.width=21, .vertex_count=9, .vertices=&scripts_vertices[764]}, + {.width=21, .vertex_count=38, .vertices=&scripts_vertices[782]}, + {.width=21, .vertex_count=45, .vertices=&scripts_vertices[858]}, + {.width=21, .vertex_count=29, .vertices=&scripts_vertices[948]}, + {.width=21, .vertex_count=62, .vertices=&scripts_vertices[1006]}, + {.width=21, .vertex_count=45, .vertices=&scripts_vertices[1130]}, + {.width=11, .vertex_count=10, .vertices=&scripts_vertices[1220]}, + {.width=11, .vertex_count=13, .vertices=&scripts_vertices[1240]}, + {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1266]}, + {.width=26, .vertex_count=5, .vertices=&scripts_vertices[1272]}, + {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1282]}, + {.width=21, .vertex_count=33, .vertices=&scripts_vertices[1288]}, + {.width=27, .vertex_count=55, .vertices=&scripts_vertices[1354]}, + {.width=20, .vertex_count=19, .vertices=&scripts_vertices[1464]}, + {.width=23, .vertex_count=40, .vertices=&scripts_vertices[1502]}, + {.width=20, .vertex_count=23, .vertices=&scripts_vertices[1582]}, + {.width=23, .vertex_count=34, .vertices=&scripts_vertices[1628]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1696]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1750]}, + {.width=23, .vertex_count=28, .vertices=&scripts_vertices[1804]}, + {.width=24, .vertex_count=37, .vertices=&scripts_vertices[1860]}, + {.width=17, .vertex_count=24, .vertices=&scripts_vertices[1934]}, + {.width=15, .vertex_count=24, .vertices=&scripts_vertices[1982]}, + {.width=24, .vertex_count=38, .vertices=&scripts_vertices[2030]}, + {.width=19, .vertex_count=28, .vertices=&scripts_vertices[2106]}, + {.width=33, .vertex_count=44, .vertices=&scripts_vertices[2162]}, + {.width=24, .vertex_count=31, .vertices=&scripts_vertices[2250]}, + {.width=21, .vertex_count=28, .vertices=&scripts_vertices[2312]}, + {.width=25, .vertex_count=30, .vertices=&scripts_vertices[2368]}, + {.width=22, .vertex_count=31, .vertices=&scripts_vertices[2428]}, + {.width=25, .vertex_count=37, .vertices=&scripts_vertices[2490]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[2564]}, + {.width=19, .vertex_count=24, .vertices=&scripts_vertices[2618]}, + {.width=24, .vertex_count=32, .vertices=&scripts_vertices[2666]}, + {.width=23, .vertex_count=31, .vertices=&scripts_vertices[2730]}, + {.width=28, .vertex_count=24, .vertices=&scripts_vertices[2792]}, + {.width=24, .vertex_count=35, .vertices=&scripts_vertices[2840]}, + {.width=23, .vertex_count=37, .vertices=&scripts_vertices[2910]}, + {.width=21, .vertex_count=39, .vertices=&scripts_vertices[2984]}, + {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3062]}, + {.width=14, .vertex_count=2, .vertices=&scripts_vertices[3084]}, + {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3088]}, + {.width=16, .vertex_count=10, .vertices=&scripts_vertices[3110]}, + {.width=16, .vertex_count=2, .vertices=&scripts_vertices[3130]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[3134]}, + {.width=16, .vertex_count=21, .vertices=&scripts_vertices[3148]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3190]}, + {.width=11, .vertex_count=13, .vertices=&scripts_vertices[3234]}, + {.width=16, .vertex_count=23, .vertices=&scripts_vertices[3260]}, + {.width=10, .vertex_count=16, .vertices=&scripts_vertices[3306]}, + {.width=8, .vertex_count=23, .vertices=&scripts_vertices[3338]}, + {.width=15, .vertex_count=27, .vertices=&scripts_vertices[3384]}, + {.width=15, .vertex_count=28, .vertices=&scripts_vertices[3438]}, + {.width=7, .vertex_count=15, .vertices=&scripts_vertices[3494]}, + {.width=7, .vertex_count=19, .vertices=&scripts_vertices[3524]}, + {.width=14, .vertex_count=32, .vertices=&scripts_vertices[3562]}, + {.width=8, .vertex_count=17, .vertices=&scripts_vertices[3626]}, + {.width=25, .vertex_count=32, .vertices=&scripts_vertices[3660]}, + {.width=18, .vertex_count=22, .vertices=&scripts_vertices[3724]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3768]}, + {.width=15, .vertex_count=23, .vertices=&scripts_vertices[3812]}, + {.width=15, .vertex_count=26, .vertices=&scripts_vertices[3858]}, + {.width=13, .vertex_count=14, .vertices=&scripts_vertices[3910]}, + {.width=11, .vertex_count=15, .vertices=&scripts_vertices[3938]}, + {.width=9, .vertex_count=15, .vertices=&scripts_vertices[3968]}, + {.width=15, .vertex_count=18, .vertices=&scripts_vertices[3998]}, + {.width=15, .vertex_count=16, .vertices=&scripts_vertices[4034]}, + {.width=21, .vertex_count=24, .vertices=&scripts_vertices[4066]}, + {.width=16, .vertex_count=19, .vertices=&scripts_vertices[4114]}, + {.width=15, .vertex_count=22, .vertices=&scripts_vertices[4152]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[4196]}, + {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4240]}, + {.width=8, .vertex_count=2, .vertices=&scripts_vertices[4318]}, + {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4322]}, + {.width=24, .vertex_count=23, .vertices=&scripts_vertices[4400]} + } + }; + + static const int8_t timesi_vertices[4848] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 20, -16, 2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 13, -12, 0, 9, -128, -128, 13, -12, 14, 9, -128, -128, 12, -10, 13, 9, -128, -128, 4, 3, 13, 3, -128, -128, -2, 9, 4, 9, -128, -128, 10, 9, 16, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 7, -2, 16, -2, 18, -1, 19, 1, 19, 3, 18, 6, 16, 8, 12, 9, 0, 9, -128, -128, 16, -2, 17, -1, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 4, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 15, -12, 18, -11, 19, -10, 20, -7, 20, -3, 19, 1, 17, 5, 15, 7, 13, 8, 9, 9, 0, 9, -128, -128, 15, -12, 17, -11, 18, -10, 19, -7, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 9, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 15, 9, 17, 4, 14, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 7, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 17, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 13, 2, 20, 2, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 22, -12, 16, 9, -128, -128, 23, -12, 17, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 26, -12, -128, -128, 7, -2, 19, -2, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 20, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 7, 9, 15, -12, 10, 5, 9, 7, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 3, 4, 2, 5, -128, -128, 14, -12, 9, 5, 8, 7, 6, 9, -128, -128, 11, -12, 18, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 23, -12, 6, 1, -128, -128, 13, -3, 17, 9, -128, -128, 12, -3, 16, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 19, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 15, 9, 17, 3, 14, 9, 9, -12, 3, 9, -128, -128, 9, -12, 10, 9, -128, -128, 10, -12, 11, 7, -128, -128, 23, -12, 10, 9, -128, -128, 23, -12, 17, 9, -128, -128, 24, -12, 18, 9, -128, -128, 6, -12, 10, -12, -128, -128, 23, -12, 27, -12, -128, -128, 0, 9, 6, 9, -128, -128, 14, 9, 21, 9, 9, -12, 3, 9, -128, -128, 9, -12, 16, 6, -128, -128, 9, -9, 16, 9, -128, -128, 22, -12, 16, 9, -128, -128, 6, -12, 9, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 6, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 18, -12, 21, -11, 22, -9, 22, -7, 21, -4, 19, -2, 15, -1, 7, -1, -128, -128, 18, -12, 20, -11, 21, -9, 21, -7, 20, -4, 18, -2, 15, -1, -128, -128, 0, 9, 7, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, -128, -128, 5, 7, 5, 6, 6, 4, 8, 3, 9, 3, 11, 4, 12, 6, 12, 13, 13, 14, 15, 14, 16, 12, 16, 11, -128, -128, 12, 6, 13, 12, 14, 13, 15, 13, 16, 12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, 7, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 12, -2, 14, -1, 15, 0, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, -128, -128, 15, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 0, 9, 7, 9, 19, -10, 20, -10, 21, -12, 20, -6, 20, -8, 19, -10, 18, -11, 15, -12, 11, -12, 8, -11, 6, -9, 6, -7, 7, -5, 8, -4, 15, 0, 17, 2, -128, -128, 6, -7, 8, -5, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 2, 9, 3, 7, 4, 7, 13, -12, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 7, -12, 4, -6, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 4, 9, 11, 9, 8, -12, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 12, 9, 15, 8, 17, 6, 18, 3, 22, -12, -128, -128, 9, -12, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, -128, -128, 5, -12, 12, -12, -128, -128, 19, -12, 25, -12, 6, -12, 7, 9, -128, -128, 7, -12, 8, 7, -128, -128, 20, -12, 7, 9, -128, -128, 4, -12, 10, -12, -128, -128, 16, -12, 22, -12, 8, -12, 6, 9, -128, -128, 9, -12, 7, 7, -128, -128, 16, -12, 6, 9, -128, -128, 16, -12, 14, 9, -128, -128, 17, -12, 15, 7, -128, -128, 24, -12, 14, 9, -128, -128, 5, -12, 12, -12, -128, -128, 21, -12, 27, -12, 7, -12, 14, 9, -128, -128, 8, -12, 15, 9, -128, -128, 21, -12, 1, 9, -128, -128, 5, -12, 11, -12, -128, -128, 17, -12, 23, -12, -128, -128, -1, 9, 5, 9, -128, -128, 11, 9, 17, 9, 6, -12, 10, -2, 7, 9, -128, -128, 7, -12, 11, -2, 8, 9, -128, -128, 21, -12, 11, -2, -128, -128, 4, -12, 10, -12, -128, -128, 17, -12, 23, -12, -128, -128, 4, 9, 11, 9, 20, -12, 1, 9, -128, -128, 21, -12, 2, 9, -128, -128, 8, -12, 5, -6, 7, -12, 21, -12, -128, -128, 1, 9, 15, 9, 17, 3, 14, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 16, -5, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 17, -5, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 4, 1, 4, 4, 5, 7, 6, 8, -128, -128, 9, -12, 5, 1, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 12, -5, 14, -4, 15, -3, 16, -1, 16, 2, 15, 5, 13, 8, 10, 9, 8, 9, 6, 8, 5, 5, 5, 1, -128, -128, 14, -4, 15, -2, 15, 2, 14, 5, 12, 8, 10, 9, -128, -128, 5, -12, 9, -12, 14, -2, 14, -1, 15, -1, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 18, -12, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 19, -12, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 15, -12, 19, -12, 4, 4, 8, 3, 11, 2, 14, 0, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 15, -11, 14, -10, 15, -9, 16, -10, 16, -11, 15, -12, 13, -12, 11, -11, 10, -10, 9, -8, 8, -5, 5, 9, 4, 13, 3, 15, -128, -128, 13, -12, 11, -10, 10, -8, 9, -4, 7, 5, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 4, -5, 14, -5, 17, -5, 13, 9, 12, 12, 10, 15, 7, 16, 4, 16, 2, 15, 1, 14, 1, 13, 2, 12, 3, 13, 2, 14, -128, -128, 16, -5, 12, 9, 11, 12, 9, 15, 7, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 5, 2, 7, -2, 9, -4, 11, -5, 13, -5, 15, -4, 16, -3, 16, -1, 14, 5, 14, 8, 15, 9, -128, -128, 13, -5, 15, -3, 15, -1, 13, 5, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 5, -12, 9, -12, 9, -12, 8, -11, 9, -10, 10, -11, 9, -12, -128, -128, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 8, 7, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 8, 6, 9, 9, 9, 11, 7, 12, 5, 10, -12, 9, -11, 10, -10, 11, -11, 10, -12, -128, -128, 2, -1, 3, -3, 5, -5, 8, -5, 9, -4, 9, -1, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 7, -5, 8, -4, 8, -1, 5, 9, 4, 12, 3, 14, 1, 16, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 16, -4, 15, -3, 16, -2, 17, -3, 17, -4, 16, -5, 15, -5, 13, -4, 9, 0, 7, 1, 5, 1, -128, -128, 7, 1, 9, 2, 11, 8, 12, 9, -128, -128, 7, 1, 8, 2, 10, 8, 11, 9, 13, 9, 15, 8, 17, 5, -128, -128, 5, -12, 9, -12, 8, -12, 4, 2, 3, 6, 3, 8, 4, 9, 7, 9, 9, 7, 10, 5, -128, -128, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, -128, -128, 5, -12, 9, -12, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 15, 9, -128, -128, 15, -5, 17, -3, 17, -1, 14, 9, -128, -128, 17, 2, 19, -2, 21, -4, 23, -5, 25, -5, 27, -4, 28, -3, 28, -1, 26, 5, 26, 8, 27, 9, -128, -128, 25, -5, 27, -3, 27, -1, 25, 5, 25, 8, 26, 9, 29, 9, 31, 7, 32, 5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 16, 5, 16, 8, 17, 9, -128, -128, 15, -5, 17, -3, 17, -1, 15, 5, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 9, 9, 11, 8, 13, 5, 14, 2, 14, -2, 13, -4, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 3, 16, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 2, 16, -128, -128, 7, 2, 8, -1, 10, -4, 12, -5, 14, -5, 16, -4, 17, -3, 18, -1, 18, 2, 17, 5, 15, 8, 12, 9, 10, 9, 8, 8, 7, 5, 7, 2, -128, -128, 16, -4, 17, -2, 17, 2, 16, 5, 14, 8, 12, 9, -128, -128, -1, 16, 6, 16, 16, -5, 10, 16, -128, -128, 17, -5, 11, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 7, 16, 14, 16, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 16, -4, 16, -3, 15, -2, 14, -3, 15, -4, 14, -3, 14, -2, 15, -2, 15, -3, 14, -4, 11, -5, 8, -5, 5, -4, 4, -3, 4, -1, 5, 0, 12, 4, 13, 5, -128, -128, 4, -2, 5, -1, 12, 3, 13, 4, 13, 7, 12, 8, 9, 9, 6, 9, 3, 8, 2, 7, 2, 6, 3, 6, 3, 7, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, 8, 9, 10, 7, 11, 5, -128, -128, 10, -12, 6, 2, 5, 6, 5, 8, 6, 9, -128, -128, 3, -5, 12, -5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 18, -5, 16, 2, 15, 6, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, -128, -128, 19, -5, 17, 2, 16, 6, 16, 8, 17, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, -1, 17, -5, 16, -5, 17, -3, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 4, -128, -128, 17, -5, 15, 4, 15, 7, 16, 8, 18, 9, 20, 9, 22, 8, 24, 6, 25, 4, 26, 0, 26, -5, 25, -5, 26, -3, -128, -128, 18, -5, 16, 4, 16, 7, 18, 9, 3, -1, 5, -4, 7, -5, 10, -5, 11, -3, 11, 0, -128, -128, 9, -5, 10, -3, 10, 0, 9, 4, 8, 6, 6, 8, 4, 9, 3, 9, 2, 8, 2, 7, 3, 6, 4, 7, 3, 8, -128, -128, 9, 4, 9, 7, 10, 9, 13, 9, 15, 8, 17, 5, -128, -128, 17, -4, 16, -3, 17, -2, 18, -3, 18, -4, 17, -5, 16, -5, 14, -4, 12, -2, 11, 0, 10, 4, 10, 7, 11, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 19, -5, 15, 9, 14, 12, 12, 15, 9, 16, 6, 16, 4, 15, 3, 14, 3, 13, 4, 12, 5, 13, 4, 14, -128, -128, 18, -5, 14, 9, 13, 12, 11, 15, 9, 16, 17, -5, 16, -3, 14, -1, 6, 5, 4, 7, 3, 9, -128, -128, 4, -1, 5, -3, 7, -5, 10, -5, 14, -3, -128, -128, 5, -3, 7, -4, 10, -4, 14, -3, 16, -3, -128, -128, 4, 7, 6, 7, 10, 8, 13, 8, 15, 7, -128, -128, 6, 7, 10, 9, 13, 9, 15, 7, 16, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 + }; + + static const hershey_font_t timesi { + .chars = { + {.width=16, .vertex_count=0, .vertices=×i_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=×i_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=×i_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=×i_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=×i_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=×i_vertices[156]}, + {.width=25, .vertex_count=48, .vertices=×i_vertices[218]}, + {.width=9, .vertex_count=5, .vertices=×i_vertices[314]}, + {.width=15, .vertex_count=19, .vertices=×i_vertices[324]}, + {.width=15, .vertex_count=19, .vertices=×i_vertices[362]}, + {.width=16, .vertex_count=8, .vertices=×i_vertices[400]}, + {.width=26, .vertex_count=5, .vertices=×i_vertices[416]}, + {.width=11, .vertex_count=7, .vertices=×i_vertices[426]}, + {.width=26, .vertex_count=2, .vertices=×i_vertices[440]}, + {.width=11, .vertex_count=5, .vertices=×i_vertices[444]}, + {.width=22, .vertex_count=2, .vertices=×i_vertices[454]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[458]}, + {.width=21, .vertex_count=14, .vertices=×i_vertices[540]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[568]}, + {.width=21, .vertex_count=49, .vertices=×i_vertices[650]}, + {.width=21, .vertex_count=9, .vertices=×i_vertices[748]}, + {.width=21, .vertex_count=38, .vertices=×i_vertices[766]}, + {.width=21, .vertex_count=45, .vertices=×i_vertices[842]}, + {.width=21, .vertex_count=29, .vertices=×i_vertices[932]}, + {.width=21, .vertex_count=62, .vertices=×i_vertices[990]}, + {.width=21, .vertex_count=45, .vertices=×i_vertices[1114]}, + {.width=11, .vertex_count=10, .vertices=×i_vertices[1204]}, + {.width=11, .vertex_count=13, .vertices=×i_vertices[1224]}, + {.width=24, .vertex_count=3, .vertices=×i_vertices[1250]}, + {.width=26, .vertex_count=5, .vertices=×i_vertices[1256]}, + {.width=24, .vertex_count=3, .vertices=×i_vertices[1266]}, + {.width=21, .vertex_count=33, .vertices=×i_vertices[1272]}, + {.width=27, .vertex_count=55, .vertices=×i_vertices[1338]}, + {.width=20, .vertex_count=17, .vertices=×i_vertices[1448]}, + {.width=24, .vertex_count=40, .vertices=×i_vertices[1482]}, + {.width=21, .vertex_count=33, .vertices=×i_vertices[1562]}, + {.width=23, .vertex_count=29, .vertices=×i_vertices[1628]}, + {.width=23, .vertex_count=21, .vertices=×i_vertices[1686]}, + {.width=22, .vertex_count=19, .vertices=×i_vertices[1728]}, + {.width=22, .vertex_count=41, .vertices=×i_vertices[1766]}, + {.width=26, .vertex_count=26, .vertices=×i_vertices[1848]}, + {.width=13, .vertex_count=11, .vertices=×i_vertices[1900]}, + {.width=18, .vertex_count=20, .vertices=×i_vertices[1922]}, + {.width=23, .vertex_count=26, .vertices=×i_vertices[1962]}, + {.width=20, .vertex_count=13, .vertices=×i_vertices[2014]}, + {.width=27, .vertex_count=29, .vertices=×i_vertices[2040]}, + {.width=25, .vertex_count=20, .vertices=×i_vertices[2098]}, + {.width=22, .vertex_count=41, .vertices=×i_vertices[2138]}, + {.width=23, .vertex_count=26, .vertices=×i_vertices[2220]}, + {.width=22, .vertex_count=60, .vertices=×i_vertices[2272]}, + {.width=24, .vertex_count=41, .vertices=×i_vertices[2392]}, + {.width=23, .vertex_count=34, .vertices=×i_vertices[2474]}, + {.width=21, .vertex_count=15, .vertices=×i_vertices[2542]}, + {.width=25, .vertex_count=24, .vertices=×i_vertices[2572]}, + {.width=20, .vertex_count=14, .vertices=×i_vertices[2620]}, + {.width=26, .vertex_count=23, .vertices=×i_vertices[2648]}, + {.width=22, .vertex_count=20, .vertices=×i_vertices[2694]}, + {.width=21, .vertex_count=19, .vertices=×i_vertices[2734]}, + {.width=22, .vertex_count=15, .vertices=×i_vertices[2772]}, + {.width=14, .vertex_count=11, .vertices=×i_vertices[2802]}, + {.width=14, .vertex_count=2, .vertices=×i_vertices[2824]}, + {.width=14, .vertex_count=11, .vertices=×i_vertices[2828]}, + {.width=22, .vertex_count=7, .vertices=×i_vertices[2850]}, + {.width=20, .vertex_count=2, .vertices=×i_vertices[2864]}, + {.width=12, .vertex_count=6, .vertices=×i_vertices[2868]}, + {.width=21, .vertex_count=38, .vertices=×i_vertices[2880]}, + {.width=19, .vertex_count=35, .vertices=×i_vertices[2956]}, + {.width=18, .vertex_count=24, .vertices=×i_vertices[3026]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[3074]}, + {.width=18, .vertex_count=25, .vertices=×i_vertices[3156]}, + {.width=15, .vertex_count=34, .vertices=×i_vertices[3206]}, + {.width=20, .vertex_count=42, .vertices=×i_vertices[3274]}, + {.width=21, .vertex_count=30, .vertices=×i_vertices[3358]}, + {.width=13, .vertex_count=25, .vertices=×i_vertices[3418]}, + {.width=13, .vertex_count=31, .vertices=×i_vertices[3468]}, + {.width=20, .vertex_count=33, .vertices=×i_vertices[3530]}, + {.width=12, .vertex_count=17, .vertices=×i_vertices[3596]}, + {.width=33, .vertex_count=51, .vertices=×i_vertices[3630]}, + {.width=23, .vertex_count=36, .vertices=×i_vertices[3732]}, + {.width=18, .vertex_count=31, .vertices=×i_vertices[3804]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[3866]}, + {.width=20, .vertex_count=32, .vertices=×i_vertices[3948]}, + {.width=17, .vertex_count=25, .vertices=×i_vertices[4012]}, + {.width=17, .vertex_count=27, .vertices=×i_vertices[4062]}, + {.width=14, .vertex_count=17, .vertices=×i_vertices[4116]}, + {.width=23, .vertex_count=36, .vertices=×i_vertices[4150]}, + {.width=20, .vertex_count=25, .vertices=×i_vertices[4222]}, + {.width=29, .vertex_count=40, .vertices=×i_vertices[4272]}, + {.width=20, .vertex_count=41, .vertices=×i_vertices[4352]}, + {.width=21, .vertex_count=40, .vertices=×i_vertices[4434]}, + {.width=20, .vertex_count=30, .vertices=×i_vertices[4514]}, + {.width=14, .vertex_count=39, .vertices=×i_vertices[4574]}, + {.width=8, .vertex_count=2, .vertices=×i_vertices[4652]}, + {.width=14, .vertex_count=39, .vertices=×i_vertices[4656]}, + {.width=24, .vertex_count=23, .vertices=×i_vertices[4734]} + } + }; + + static const int8_t timesr_vertices[4600] = { + 5, -12, 4, -10, 5, 2, 6, -10, 5, -12, -128, -128, 5, -10, 5, -4, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -9, 15, -8, 16, -7, 17, -8, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 4, -12, 3, -5, -128, -128, 5, -12, 3, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 9, -12, 7, -11, 6, -10, 5, -8, 4, -3, 4, 0, 5, 5, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 5, 16, 0, 16, -3, 15, -8, 14, -10, 13, -11, 11, -12, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 10, -11, 10, 9, -128, -128, 6, 9, 15, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 8, 14, 8, 16, 7, 17, 6, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, 9, -3, -128, -128, 12, -12, 14, -11, 15, -9, 15, -6, 14, -4, 12, -3, -128, -128, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 15, -1, 16, 2, 16, 5, 15, 7, 14, 8, 12, 9, 12, -10, 12, 9, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 9, 9, 16, 9, 5, -12, 3, -2, -128, -128, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 10, -11, 15, -12, 15, -9, 14, -8, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 2, 15, -1, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 4, -10, 6, -11, 8, -11, 13, -9, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 4, 10, 9, -128, -128, 16, -6, 11, -1, 10, 1, 9, 4, 9, 9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 8, -12, 6, -11, 5, -9, 5, -6, 6, -4, 8, -3, -128, -128, 12, -3, 14, -4, 15, -6, 15, -9, 14, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 8, -3, 6, -2, 5, -1, 4, 1, 4, 5, 5, 7, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 7, 16, 5, 16, 1, 15, -1, 14, -2, 12, -3, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 5, 5, 6, -128, -128, 9, 1, 7, 0, 5, -2, 4, -5, 4, -6, 5, -9, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, 12, 8, 10, 9, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 10, -12, 12, -11, 13, -10, 14, -8, 14, -6, 13, -4, 11, -2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 9, -128, -128, 10, -12, 17, 9, -128, -128, 10, -9, 16, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 6, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 14, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 14, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 12, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 12, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 18, 9, 18, 3, 17, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 9, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 17, 1, 17, 9, -128, -128, 18, 1, 18, 9, -128, -128, 14, 1, 21, 1, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 18, -12, 18, 9, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 22, -12, -128, -128, 6, -2, 18, -2, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 22, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 9, 9, 10, -12, 10, 5, 9, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 6, -12, 13, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 19, -12, 6, 1, -128, -128, 11, -3, 19, 9, -128, -128, 10, -3, 18, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 21, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 17, 9, 17, 3, 16, 9, 5, -12, 5, 9, -128, -128, 6, -12, 12, 6, -128, -128, 5, -12, 12, 9, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -12, 20, 9, -128, -128, 2, -12, 6, -12, -128, -128, 19, -12, 23, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 23, 9, 5, -12, 5, 9, -128, -128, 6, -12, 18, 7, -128, -128, 6, -10, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 2, -12, 6, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 8, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 6, -1, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 14, -1, -128, -128, 2, 9, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, -128, -128, 7, 7, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 13, 16, 14, 18, 14, 19, 12, 19, 11, -128, -128, 14, 6, 15, 10, 16, 12, 17, 13, 18, 13, 19, 12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 6, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 2, 9, 9, 9, -128, -128, 11, -2, 13, -1, 14, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 13, -1, 14, 1, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 9, -12, 9, 9, -128, -128, 10, -12, 10, 9, -128, -128, 3, -12, 2, -6, 2, -12, 17, -12, 17, -6, 16, -12, -128, -128, 6, 9, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -12, -128, -128, 6, -12, 6, 3, 7, 6, 9, 8, 11, 9, -128, -128, 2, -12, 9, -12, -128, -128, 16, -12, 22, -12, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, -128, -128, 17, -12, 10, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, -128, -128, 12, -12, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, -128, -128, 20, -12, 16, 9, -128, -128, 1, -12, 8, -12, -128, -128, 17, -12, 23, -12, 3, -12, 16, 9, -128, -128, 4, -12, 17, 9, -128, -128, 17, -12, 3, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 9, -128, -128, 18, -12, 11, -1, -128, -128, 1, -12, 7, -12, -128, -128, 14, -12, 20, -12, -128, -128, 7, 9, 14, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 4, -12, 3, -6, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 17, 3, 16, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -3, 5, -2, 4, -2, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 14, -3, 14, 6, 15, 8, 17, 9, 18, 9, -128, -128, 14, -1, 13, 0, 7, 1, 4, 2, 3, 4, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 14, 6, -128, -128, 7, 1, 5, 2, 4, 4, 4, 6, 5, 8, 7, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -12, 6, -12, 15, -2, 14, -1, 15, 0, 16, -1, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 15, -12, 15, 9, -128, -128, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, -12, 16, -12, -128, -128, 15, 9, 19, 9, 4, 1, 16, 1, 16, -1, 15, -3, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 1, 15, -2, 14, -4, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 10, -11, 9, -10, 10, -9, 11, -10, 11, -11, 10, -12, 8, -12, 6, -11, 5, -9, 5, 9, -128, -128, 8, -12, 7, -11, 6, -9, 6, 9, -128, -128, 2, -5, 10, -5, -128, -128, 2, 9, 9, 9, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -4, 5, -2, 5, 2, 6, 4, -128, -128, 12, 4, 13, 2, 13, -2, 12, -4, -128, -128, 13, -3, 14, -4, 16, -5, 16, -4, 14, -4, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 7, 10, 12, 10, 15, 11, 16, 12, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 5, -12, 4, -11, 5, -10, 6, -11, 5, -12, -128, -128, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 6, -12, 5, -11, 6, -10, 7, -11, 6, -12, -128, -128, 7, -5, 7, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 14, 2, 13, 3, 14, 2, 15, -128, -128, 6, -5, 6, 13, 5, 15, 4, 16, -128, -128, 3, -5, 7, -5, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 16, -5, 6, 5, -128, -128, 11, 1, 17, 9, -128, -128, 10, 1, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 13, -5, 19, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 17, -2, 19, -4, 22, -5, 24, -5, 27, -4, 28, -2, 28, 9, -128, -128, 24, -5, 26, -4, 27, -2, 27, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, -128, -128, 24, 9, 31, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -5, 6, 16, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 16, 9, 16, 15, -5, 15, 16, -128, -128, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, 16, 19, 16, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, 1, 7, -2, 9, -4, 11, -5, 14, -5, 15, -4, 15, -3, 14, -2, 13, -3, 14, -4, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 0, 6, 1, 11, 3, 13, 4, 14, 5, -128, -128, 3, -2, 4, -1, 6, 0, 11, 2, 13, 3, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, 12, 8, 13, 6, -128, -128, 6, -12, 6, 5, 7, 8, 8, 9, -128, -128, 2, -5, 10, -5, 5, -5, 5, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 6, -5, 6, 6, 7, 8, 9, 9, -128, -128, 16, -5, 16, 9, -128, -128, 17, -5, 17, 9, -128, -128, 2, -5, 6, -5, -128, -128, 13, -5, 17, -5, -128, -128, 16, 9, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 15, -5, 9, 9, -128, -128, 1, -5, 7, -5, -128, -128, 11, -5, 17, -5, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 12, -5, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 20, -5, 16, 9, -128, -128, 1, -5, 8, -5, -128, -128, 17, -5, 23, -5, 4, -5, 15, 9, -128, -128, 5, -5, 16, 9, -128, -128, 16, -5, 4, 9, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 12, 9, 18, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 16, -5, 10, 9, 8, 13, 6, 15, 4, 16, 3, 16, 2, 15, 3, 14, 4, 15, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, -128, -128, 4, -5, 3, -1, 3, -5, 15, -5, -128, -128, 3, 9, 15, 9, 15, 5, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 + }; + + static const hershey_font_t timesr { + .chars = { + {.width=16, .vertex_count=0, .vertices=×r_vertices[0]}, + {.width=10, .vertex_count=14, .vertices=×r_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=×r_vertices[28]}, + {.width=21, .vertex_count=11, .vertices=×r_vertices[70]}, + {.width=20, .vertex_count=41, .vertices=×r_vertices[92]}, + {.width=24, .vertex_count=31, .vertices=×r_vertices[174]}, + {.width=25, .vertex_count=48, .vertices=×r_vertices[236]}, + {.width=8, .vertex_count=5, .vertices=×r_vertices[332]}, + {.width=14, .vertex_count=19, .vertices=×r_vertices[342]}, + {.width=14, .vertex_count=19, .vertices=×r_vertices[380]}, + {.width=16, .vertex_count=8, .vertices=×r_vertices[418]}, + {.width=26, .vertex_count=5, .vertices=×r_vertices[434]}, + {.width=8, .vertex_count=7, .vertices=×r_vertices[444]}, + {.width=26, .vertex_count=2, .vertices=×r_vertices[458]}, + {.width=8, .vertex_count=5, .vertices=×r_vertices[462]}, + {.width=22, .vertex_count=2, .vertices=×r_vertices[472]}, + {.width=20, .vertex_count=39, .vertices=×r_vertices[476]}, + {.width=20, .vertex_count=10, .vertices=×r_vertices[554]}, + {.width=20, .vertex_count=44, .vertices=×r_vertices[574]}, + {.width=20, .vertex_count=46, .vertices=×r_vertices[662]}, + {.width=20, .vertex_count=12, .vertices=×r_vertices[754]}, + {.width=20, .vertex_count=38, .vertices=×r_vertices[778]}, + {.width=20, .vertex_count=47, .vertices=×r_vertices[854]}, + {.width=20, .vertex_count=30, .vertices=×r_vertices[948]}, + {.width=20, .vertex_count=62, .vertices=×r_vertices[1008]}, + {.width=20, .vertex_count=47, .vertices=×r_vertices[1132]}, + {.width=8, .vertex_count=11, .vertices=×r_vertices[1226]}, + {.width=8, .vertex_count=13, .vertices=×r_vertices[1248]}, + {.width=24, .vertex_count=3, .vertices=×r_vertices[1274]}, + {.width=26, .vertex_count=5, .vertices=×r_vertices[1280]}, + {.width=24, .vertex_count=3, .vertices=×r_vertices[1290]}, + {.width=18, .vertex_count=31, .vertices=×r_vertices[1296]}, + {.width=27, .vertex_count=55, .vertices=×r_vertices[1358]}, + {.width=20, .vertex_count=17, .vertices=×r_vertices[1468]}, + {.width=22, .vertex_count=44, .vertices=×r_vertices[1502]}, + {.width=21, .vertex_count=31, .vertices=×r_vertices[1590]}, + {.width=22, .vertex_count=29, .vertices=×r_vertices[1652]}, + {.width=21, .vertex_count=21, .vertices=×r_vertices[1710]}, + {.width=20, .vertex_count=19, .vertices=×r_vertices[1752]}, + {.width=23, .vertex_count=39, .vertices=×r_vertices[1790]}, + {.width=24, .vertex_count=26, .vertices=×r_vertices[1868]}, + {.width=11, .vertex_count=11, .vertices=×r_vertices[1920]}, + {.width=15, .vertex_count=19, .vertices=×r_vertices[1942]}, + {.width=22, .vertex_count=26, .vertices=×r_vertices[1980]}, + {.width=18, .vertex_count=13, .vertices=×r_vertices[2032]}, + {.width=25, .vertex_count=29, .vertices=×r_vertices[2058]}, + {.width=23, .vertex_count=20, .vertices=×r_vertices[2116]}, + {.width=22, .vertex_count=43, .vertices=×r_vertices[2156]}, + {.width=22, .vertex_count=28, .vertices=×r_vertices[2242]}, + {.width=22, .vertex_count=63, .vertices=×r_vertices[2298]}, + {.width=22, .vertex_count=44, .vertices=×r_vertices[2424]}, + {.width=20, .vertex_count=33, .vertices=×r_vertices[2512]}, + {.width=19, .vertex_count=15, .vertices=×r_vertices[2578]}, + {.width=24, .vertex_count=22, .vertices=×r_vertices[2608]}, + {.width=20, .vertex_count=14, .vertices=×r_vertices[2652]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[2680]}, + {.width=20, .vertex_count=20, .vertices=×r_vertices[2726]}, + {.width=21, .vertex_count=19, .vertices=×r_vertices[2766]}, + {.width=20, .vertex_count=15, .vertices=×r_vertices[2804]}, + {.width=14, .vertex_count=11, .vertices=×r_vertices[2834]}, + {.width=14, .vertex_count=2, .vertices=×r_vertices[2856]}, + {.width=14, .vertex_count=11, .vertices=×r_vertices[2860]}, + {.width=22, .vertex_count=7, .vertices=×r_vertices[2882]}, + {.width=20, .vertex_count=2, .vertices=×r_vertices[2896]}, + {.width=12, .vertex_count=6, .vertices=×r_vertices[2900]}, + {.width=20, .vertex_count=38, .vertices=×r_vertices[2912]}, + {.width=21, .vertex_count=32, .vertices=×r_vertices[2988]}, + {.width=19, .vertex_count=27, .vertices=×r_vertices[3052]}, + {.width=21, .vertex_count=35, .vertices=×r_vertices[3106]}, + {.width=19, .vertex_count=30, .vertices=×r_vertices[3176]}, + {.width=13, .vertex_count=21, .vertices=×r_vertices[3236]}, + {.width=19, .vertex_count=59, .vertices=×r_vertices[3278]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[3396]}, + {.width=11, .vertex_count=17, .vertices=×r_vertices[3450]}, + {.width=11, .vertex_count=24, .vertices=×r_vertices[3484]}, + {.width=21, .vertex_count=26, .vertices=×r_vertices[3532]}, + {.width=11, .vertex_count=11, .vertices=×r_vertices[3584]}, + {.width=33, .vertex_count=43, .vertices=×r_vertices[3606]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[3692]}, + {.width=20, .vertex_count=35, .vertices=×r_vertices[3746]}, + {.width=21, .vertex_count=35, .vertices=×r_vertices[3816]}, + {.width=20, .vertex_count=32, .vertices=×r_vertices[3886]}, + {.width=17, .vertex_count=22, .vertices=×r_vertices[3950]}, + {.width=17, .vertex_count=31, .vertices=×r_vertices[3994]}, + {.width=15, .vertex_count=15, .vertices=×r_vertices[4056]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[4086]}, + {.width=18, .vertex_count=14, .vertices=×r_vertices[4140]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[4168]}, + {.width=20, .vertex_count=20, .vertices=×r_vertices[4214]}, + {.width=19, .vertex_count=21, .vertices=×r_vertices[4254]}, + {.width=18, .vertex_count=15, .vertices=×r_vertices[4296]}, + {.width=14, .vertex_count=39, .vertices=×r_vertices[4326]}, + {.width=8, .vertex_count=2, .vertices=×r_vertices[4404]}, + {.width=14, .vertex_count=39, .vertices=×r_vertices[4408]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[4486]} + } + }; + + static const int8_t timesrb_vertices[7994] = { + 5, -12, 4, -11, 4, -9, 5, -1, -128, -128, 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 6, -12, 7, -11, 7, -9, 6, -1, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -7, 16, -8, 15, -8, 15, -6, 17, -6, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 5, 3, 5, 5, 4, 5, 4, 4, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 22, -3, 22, -4, 21, -4, 21, -2, 23, -2, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 11, -3, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -6, 9, -3, 11, 0, 15, 5, 18, 8, 20, 9, 22, 9, 23, 7, 23, 6, -128, -128, 6, 8, 5, 6, 5, 3, 6, 1, 7, 0, -128, -128, 13, -5, 14, -9, -128, -128, 14, -7, 13, -11, -128, -128, 9, -11, 8, -7, -128, -128, 9, -4, 11, -1, 15, 4, 18, 7, 20, 8, -128, -128, 9, 9, 7, 8, 6, 6, 6, 3, 7, 1, 11, -3, -128, -128, 8, -9, 9, -5, 12, -1, 16, 4, 19, 7, 21, 8, 22, 8, 23, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 6, -10, 5, -8, 4, -4, 4, 1, 5, 5, 6, 7, -128, -128, 14, 7, 15, 5, 16, 1, 16, -4, 15, -8, 14, -10, -128, -128, 9, -12, 7, -11, 6, -9, 5, -4, 5, 1, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 6, 15, 1, 15, -4, 14, -9, 13, -11, 11, -12, 9, -10, 9, 9, -128, -128, 10, -10, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 11, -12, 8, -9, 6, -8, -128, -128, 5, 9, 15, 9, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 15, -10, 16, -8, 16, -6, 15, -4, -128, -128, 12, -12, 14, -11, 15, -8, 15, -6, 14, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 7, 15, 7, 17, 6, -128, -128, 6, 6, 11, 8, 15, 8, 16, 7, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, -128, -128, 14, -11, 15, -9, 15, -6, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -6, 13, -4, 11, -3, -128, -128, 9, -3, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, 0, 16, 2, 16, 5, 15, 7, -128, -128, 11, -3, 13, -2, 14, -1, 15, 2, 15, 5, 14, 8, 12, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 11, -9, 11, 9, -128, -128, 12, -10, 12, 8, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 8, 9, 16, 9, -128, -128, 11, 8, 9, 9, -128, -128, 11, 7, 10, 9, -128, -128, 13, 7, 14, 9, -128, -128, 13, 8, 15, 9, 5, -12, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, -2, 16, 0, 16, 4, 15, 6, -128, -128, 11, -5, 13, -4, 14, -3, 15, 0, 15, 4, 14, 7, 13, 8, 11, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 13, -11, -128, -128, 5, -10, 9, -10, 13, -11, 15, -12, 14, -9, 14, -8, 15, -8, 15, -9, 14, -9, -128, -128, 15, -10, 14, -10, 13, -9, 13, -8, 14, -7, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 9, -4, 7, -3, 6, -2, 5, 0, -128, -128, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 6, 7, -128, -128, 15, 6, 16, 4, 16, 1, 15, -1, -128, -128, 10, -12, 8, -11, 7, -10, 6, -8, 5, -4, 5, 3, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 1, 14, -2, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 5, 10, 9, -128, -128, 11, 0, 10, 2, 9, 5, 9, 9, -128, -128, 16, -6, 11, -1, 9, 2, 8, 5, 8, 9, 10, 9, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 5, -10, 6, -11, 8, -11, 10, -10, -128, -128, 3, -8, 4, -9, 6, -10, 8, -10, 13, -9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -6, 6, -4, -128, -128, 14, -4, 15, -6, 15, -9, 14, -11, -128, -128, 8, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, -128, -128, 12, -3, 13, -4, 14, -6, 14, -9, 13, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 5, -1, 4, 1, 4, 5, 5, 7, -128, -128, 15, 7, 16, 5, 16, 1, 15, -1, -128, -128, 8, -3, 6, -2, 5, 1, 5, 5, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 5, 15, 1, 14, -2, 12, -3, 5, 5, 5, 6, 6, 6, 6, 5, 5, 5, -128, -128, 15, -3, 14, -1, 13, 0, 11, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 4, 7, 5, 7, 6, 6, 7, 5, 7, -128, -128, 5, -2, 4, -4, 4, -7, 5, -9, -128, -128, 14, -10, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, -128, -128, 9, 1, 7, 0, 6, -1, 5, -4, 5, -7, 6, -10, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 14, -9, 15, -6, 15, 1, 14, 5, 13, 7, 12, 8, 10, 9, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 4, -7, 4, -8, 5, -8, 5, -6, 3, -6, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 10, -1, -128, -128, 14, -10, 15, -9, 15, -5, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -5, 13, -3, 12, -2, -128, -128, 9, -1, 9, 2, 10, 2, 10, -1, 9, -1, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 8, -128, -128, 9, -9, 15, 9, -128, -128, 10, -9, 16, 9, -128, -128, 10, -12, 17, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 3, 8, 2, 9, -128, -128, 3, 8, 5, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 16, 7, 18, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 7, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 17, 0, 18, 2, 18, 5, 17, 7, -128, -128, 14, -2, 16, -1, 17, 1, 17, 6, 16, 8, 14, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, -128, -128, 12, -12, 14, -11, 16, -8, 17, -4, 17, 1, 16, 5, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 18, 9, 18, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 13, 9, 18, 8, -128, -128, 15, 9, 18, 7, -128, -128, 16, 9, 18, 6, -128, -128, 17, 9, 18, 3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 8, 18, 9, 18, 1, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 17, 2, 17, 7, -128, -128, 16, 1, 16, 7, 15, 8, -128, -128, 13, 1, 21, 1, -128, -128, 14, 1, 16, 2, -128, -128, 15, 1, 16, 3, -128, -128, 19, 1, 18, 3, -128, -128, 20, 1, 18, 2, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 17, -12, 17, 9, -128, -128, 18, -11, 18, 8, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 14, -12, 22, -12, -128, -128, 7, -2, 17, -2, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 22, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 15, -12, 17, -11, -128, -128, 16, -12, 17, -10, -128, -128, 20, -12, 19, -10, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 8, 15, 9, -128, -128, 17, 7, 16, 9, -128, -128, 19, 7, 20, 9, -128, -128, 19, 8, 21, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 10, -11, 10, 5, 9, 8, -128, -128, 11, -12, 11, 5, 10, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 5, 5, 4, 6, 3, 6, -128, -128, 3, 4, 3, 5, 4, 5, 4, 4, 3, 4, -128, -128, 6, -12, 14, -12, -128, -128, 7, -12, 9, -11, -128, -128, 8, -12, 9, -10, -128, -128, 12, -12, 11, -10, -128, -128, 13, -12, 11, -11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 18, -11, 7, 0, -128, -128, 10, -2, 17, 9, -128, -128, 11, -2, 18, 9, -128, -128, 11, -4, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 7, 15, 9, -128, -128, 17, 7, 20, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 17, 9, 17, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 5, -12, 5, 8, -128, -128, 5, -12, 12, 9, -128, -128, 6, -12, 12, 6, -128, -128, 7, -12, 13, 6, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -11, 20, 8, -128, -128, 21, -12, 21, 9, -128, -128, 2, -12, 7, -12, -128, -128, 19, -12, 24, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 24, 9, -128, -128, 3, -12, 5, -11, -128, -128, 22, -12, 21, -10, -128, -128, 23, -12, 21, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 19, 8, 17, 9, -128, -128, 19, 7, 18, 9, -128, -128, 21, 7, 22, 9, -128, -128, 21, 8, 23, 9, 5, -12, 5, 8, -128, -128, 5, -12, 19, 9, -128, -128, 6, -12, 18, 6, -128, -128, 7, -12, 19, 6, -128, -128, 19, -11, 19, 9, -128, -128, 2, -12, 7, -12, -128, -128, 16, -12, 22, -12, -128, -128, 2, 9, 8, 9, -128, -128, 3, -12, 5, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 7, -1, -128, -128, 17, -10, 18, -8, 18, -5, 17, -3, -128, -128, 14, -12, 16, -11, 17, -9, 17, -4, 16, -2, 14, -1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, -128, -128, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 12, 16, 14, 18, 14, 19, 12, 19, 10, -128, -128, 15, 10, 16, 12, 17, 13, 18, 13, -128, -128, 14, 6, 16, 11, 17, 12, 18, 12, 19, 11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 7, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 11, -2, 13, -1, 14, 1, 16, 7, 17, 9, 19, 9, 20, 7, 20, 5, -128, -128, 16, 5, 17, 7, 18, 8, 19, 8, -128, -128, 13, -1, 14, 0, 17, 6, 18, 7, 19, 7, 20, 6, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 2, -12, 2, -6, -128, -128, 9, -12, 9, 9, -128, -128, 10, -11, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 18, -12, 18, -6, -128, -128, 2, -12, 18, -12, -128, -128, 6, 9, 14, 9, -128, -128, 3, -12, 2, -6, -128, -128, 4, -12, 2, -9, -128, -128, 5, -12, 2, -10, -128, -128, 7, -12, 2, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -11, -128, -128, 6, -11, 6, 4, 7, 6, -128, -128, 7, -12, 7, 4, 8, 7, 9, 8, 11, 9, -128, -128, 2, -12, 10, -12, -128, -128, 16, -12, 22, -12, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, 10, 9, -128, -128, 5, -12, 11, 6, -128, -128, 17, -11, 10, 9, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 2, -12, 4, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 15, -12, 17, -11, -128, -128, 18, -12, 17, -11, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, 8, 9, -128, -128, 6, -12, 9, 4, -128, -128, 12, -12, 9, 4, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, 16, 9, -128, -128, 14, -12, 17, 4, -128, -128, 20, -11, 17, 4, 16, 9, -128, -128, 1, -12, 9, -12, -128, -128, 12, -12, 14, -12, -128, -128, 17, -12, 23, -12, -128, -128, 2, -12, 5, -11, -128, -128, 3, -12, 5, -10, -128, -128, 7, -12, 6, -10, -128, -128, 8, -12, 6, -11, -128, -128, 18, -12, 20, -11, -128, -128, 22, -12, 20, -11, 3, -12, 15, 9, -128, -128, 4, -12, 16, 9, -128, -128, 5, -12, 17, 9, -128, -128, 16, -11, 4, 8, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 2, -12, 5, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 14, -12, 16, -11, -128, -128, 18, -12, 16, -11, -128, -128, 4, 8, 2, 9, -128, -128, 4, 8, 6, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 15, 7, 18, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 8, -128, -128, 5, -12, 12, -1, 12, 9, -128, -128, 18, -11, 12, -1, -128, -128, 1, -12, 8, -12, -128, -128, 15, -12, 21, -12, -128, -128, 7, 9, 15, 9, -128, -128, 2, -12, 4, -11, -128, -128, 7, -12, 5, -11, -128, -128, 16, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 10, 8, 8, 9, -128, -128, 10, 7, 9, 9, -128, -128, 12, 7, 13, 9, -128, -128, 12, 8, 14, 9, 17, -12, 3, -12, 3, -6, -128, -128, 15, -12, 3, 9, -128, -128, 16, -12, 4, 9, -128, -128, 17, -12, 5, 9, -128, -128, 3, 9, 17, 9, 17, 3, -128, -128, 4, -12, 3, -6, -128, -128, 5, -12, 3, -9, -128, -128, 6, -12, 3, -10, -128, -128, 8, -12, 3, -11, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -2, 5, -3, 6, -3, 6, -1, 4, -1, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 13, -3, 14, -1, 14, 6, 15, 8, -128, -128, 11, -5, 12, -4, 13, -2, 13, 6, 14, 8, 17, 9, 18, 9, -128, -128, 13, 0, 12, 1, 7, 2, 4, 3, 3, 5, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 13, 6, -128, -128, 5, 3, 4, 5, 4, 6, 5, 8, -128, -128, 12, 1, 8, 2, 6, 3, 5, 5, 5, 6, 6, 8, 7, 9, 5, -12, 5, 9, 6, 8, 8, 8, -128, -128, 6, -11, 6, 7, -128, -128, 2, -12, 7, -12, 7, 8, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, 15, -1, 15, -2, 14, -2, 14, 0, 16, 0, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 14, -12, 14, 9, 19, 9, -128, -128, 15, -11, 15, 8, -128, -128, 11, -12, 16, -12, 16, 9, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 12, -12, 14, -11, -128, -128, 13, -12, 14, -10, -128, -128, 16, 7, 17, 9, -128, -128, 16, 8, 18, 9, 5, 1, 16, 1, 16, -1, 15, -3, 14, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 0, 15, -1, 14, -3, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 14, 1, 14, -2, 13, -4, 11, -5, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 12, -10, 12, -11, 11, -11, 11, -9, 13, -9, 13, -11, 12, -12, 9, -12, 7, -11, 6, -10, 5, -7, 5, 9, -128, -128, 7, -10, 6, -7, 6, 8, -128, -128, 9, -12, 8, -11, 7, -9, 7, 9, -128, -128, 2, -5, 11, -5, -128, -128, 2, 9, 10, 9, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 15, -4, 16, -3, 17, -4, 16, -5, 15, -5, 13, -4, 12, -3, -128, -128, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -3, 5, -1, 5, 1, 6, 3, -128, -128, 12, 3, 13, 1, 13, -1, 12, -3, -128, -128, 8, -5, 7, -4, 6, -2, 6, 2, 7, 4, 8, 5, -128, -128, 10, 5, 11, 4, 12, 2, 12, -2, 11, -4, 10, -5, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 5, 10, 8, 11, 12, 11, 15, 12, 16, 13, -128, -128, 5, 9, 8, 10, 12, 10, 15, 11, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, -128, -128, 6, 16, 4, 15, 3, 13, 3, 12, 4, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 5, -12, 5, -10, 7, -10, 7, -12, 5, -12, -128, -128, 6, -12, 6, -10, -128, -128, 5, -11, 7, -11, -128, -128, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 7, -12, 7, -10, 9, -10, 9, -12, 7, -12, -128, -128, 8, -12, 8, -10, -128, -128, 7, -11, 9, -11, -128, -128, 7, -5, 7, 12, 6, 15, 5, 16, -128, -128, 8, -4, 8, 11, 7, 14, -128, -128, 4, -5, 9, -5, 9, 11, 8, 14, 7, 15, 5, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 5, -5, 7, -4, -128, -128, 6, -5, 7, -3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 16, -4, 7, 5, -128, -128, 11, 1, 18, 9, -128, -128, 11, 2, 17, 9, -128, -128, 10, 2, 16, 9, -128, -128, 13, -5, 20, -5, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 20, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 14, -5, 16, -4, -128, -128, 19, -5, 16, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 7, 14, 9, -128, -128, 15, 7, 19, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 18, -1, 19, -3, 20, -4, 22, -5, 25, -5, 27, -4, 28, -3, 29, 0, 29, 9, -128, -128, 27, -3, 28, 0, 28, 8, -128, -128, 25, -5, 26, -4, 27, -1, 27, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 24, 9, 32, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, -128, -128, 27, 8, 25, 9, -128, -128, 27, 7, 26, 9, -128, -128, 29, 7, 30, 9, -128, -128, 29, 8, 31, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 15, 6, 16, 4, 16, 0, 15, -2, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 0, 14, -3, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -4, 6, 15, -128, -128, 2, -5, 7, -5, 7, 16, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 2, 16, 10, 16, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 15, 3, 16, -128, -128, 5, 14, 4, 16, -128, -128, 7, 14, 8, 16, -128, -128, 7, 15, 9, 16, 14, -4, 14, 16, -128, -128, 15, -3, 15, 15, -128, -128, 13, -4, 15, -4, 16, -5, 16, 16, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 16, 19, 16, -128, -128, 14, 15, 12, 16, -128, -128, 14, 14, 13, 16, -128, -128, 16, 14, 17, 16, -128, -128, 16, 15, 18, 16, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 14, -3, 14, -4, 13, -4, 13, -2, 15, -2, 15, -4, 14, -5, 12, -5, 10, -4, 8, -2, 7, 1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 1, 6, 2, 11, 3, 13, 4, 14, 7, -128, -128, 4, -4, 3, -1, -128, -128, 4, 0, 6, 1, 11, 2, 13, 3, -128, -128, 14, 4, 13, 8, -128, -128, 3, -3, 4, -1, 6, 0, 11, 1, 13, 2, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -10, 5, 4, 6, 7, 7, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 6, -10, 6, 5, 7, 7, -128, -128, 5, -10, 7, -12, 7, 5, 8, 8, 9, 9, -128, -128, 2, -5, 11, -5, 5, -5, 5, 4, 6, 7, 7, 8, 9, 9, 12, 9, 14, 8, 15, 7, 16, 5, -128, -128, 6, -4, 6, 5, 7, 7, -128, -128, 2, -5, 7, -5, 7, 5, 8, 8, 9, 9, -128, -128, 16, -5, 16, 9, 21, 9, -128, -128, 17, -4, 17, 8, -128, -128, 13, -5, 18, -5, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 5, -5, 10, 7, -128, -128, 15, -4, 10, 7, 9, 9, -128, -128, 1, -5, 8, -5, -128, -128, 11, -5, 17, -5, -128, -128, 2, -5, 5, -3, -128, -128, 7, -5, 5, -4, -128, -128, 13, -5, 15, -4, -128, -128, 16, -5, 15, -4, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 6, -5, 9, 6, -128, -128, 12, -5, 9, 6, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 12, -5, 14, -5, 17, 6, -128, -128, 20, -4, 17, 6, 16, 9, -128, -128, 1, -5, 9, -5, -128, -128, 17, -5, 23, -5, -128, -128, 2, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 18, -5, 20, -4, -128, -128, 22, -5, 20, -4, 4, -5, 14, 9, -128, -128, 5, -5, 15, 9, -128, -128, 6, -5, 16, 9, -128, -128, 15, -4, 5, 8, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 11, 9, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 13, -5, 15, -4, -128, -128, 17, -5, 15, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 14, 8, 12, 9, -128, -128, 15, 8, 17, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 6, -5, 11, 7, -128, -128, 16, -4, 11, 7, 8, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 3, -5, 6, -3, -128, -128, 8, -5, 6, -4, -128, -128, 14, -5, 16, -4, -128, -128, 17, -5, 16, -4, 13, -5, 3, 9, -128, -128, 14, -5, 4, 9, -128, -128, 15, -5, 5, 9, -128, -128, 15, -5, 3, -5, 3, -1, -128, -128, 3, 9, 15, 9, 15, 5, -128, -128, 4, -5, 3, -1, -128, -128, 5, -5, 3, -2, -128, -128, 6, -5, 3, -3, -128, -128, 8, -5, 3, -4, -128, -128, 10, 9, 15, 8, -128, -128, 12, 9, 15, 7, -128, -128, 13, 9, 15, 6, -128, -128, 14, 9, 15, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 + }; + + static const hershey_font_t timesrb { + .chars = { + {.width=16, .vertex_count=0, .vertices=×rb_vertices[0]}, + {.width=11, .vertex_count=33, .vertices=×rb_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=×rb_vertices[66]}, + {.width=21, .vertex_count=11, .vertices=×rb_vertices[108]}, + {.width=20, .vertex_count=55, .vertices=×rb_vertices[130]}, + {.width=24, .vertex_count=31, .vertices=×rb_vertices[240]}, + {.width=26, .vertex_count=73, .vertices=×rb_vertices[302]}, + {.width=9, .vertex_count=10, .vertices=×rb_vertices[448]}, + {.width=14, .vertex_count=26, .vertices=×rb_vertices[468]}, + {.width=14, .vertex_count=26, .vertices=×rb_vertices[520]}, + {.width=16, .vertex_count=38, .vertices=×rb_vertices[572]}, + {.width=25, .vertex_count=15, .vertices=×rb_vertices[648]}, + {.width=11, .vertex_count=23, .vertices=×rb_vertices[678]}, + {.width=26, .vertex_count=2, .vertices=×rb_vertices[724]}, + {.width=11, .vertex_count=15, .vertices=×rb_vertices[728]}, + {.width=23, .vertex_count=7, .vertices=×rb_vertices[758]}, + {.width=20, .vertex_count=49, .vertices=×rb_vertices[772]}, + {.width=20, .vertex_count=27, .vertices=×rb_vertices[870]}, + {.width=20, .vertex_count=61, .vertices=×rb_vertices[924]}, + {.width=20, .vertex_count=75, .vertices=×rb_vertices[1046]}, + {.width=20, .vertex_count=27, .vertices=×rb_vertices[1196]}, + {.width=20, .vertex_count=54, .vertices=×rb_vertices[1250]}, + {.width=20, .vertex_count=68, .vertices=×rb_vertices[1358]}, + {.width=20, .vertex_count=42, .vertices=×rb_vertices[1494]}, + {.width=20, .vertex_count=78, .vertices=×rb_vertices[1578]}, + {.width=20, .vertex_count=68, .vertices=×rb_vertices[1734]}, + {.width=11, .vertex_count=31, .vertices=×rb_vertices[1870]}, + {.width=11, .vertex_count=39, .vertices=×rb_vertices[1932]}, + {.width=24, .vertex_count=3, .vertices=×rb_vertices[2010]}, + {.width=25, .vertex_count=15, .vertices=×rb_vertices[2016]}, + {.width=24, .vertex_count=3, .vertices=×rb_vertices[2046]}, + {.width=19, .vertex_count=51, .vertices=×rb_vertices[2052]}, + {.width=27, .vertex_count=55, .vertices=×rb_vertices[2154]}, + {.width=20, .vertex_count=35, .vertices=×rb_vertices[2264]}, + {.width=22, .vertex_count=77, .vertices=×rb_vertices[2334]}, + {.width=21, .vertex_count=36, .vertices=×rb_vertices[2488]}, + {.width=22, .vertex_count=61, .vertices=×rb_vertices[2560]}, + {.width=21, .vertex_count=82, .vertices=×rb_vertices[2682]}, + {.width=20, .vertex_count=69, .vertices=×rb_vertices[2846]}, + {.width=23, .vertex_count=59, .vertices=×rb_vertices[2984]}, + {.width=24, .vertex_count=80, .vertices=×rb_vertices[3102]}, + {.width=12, .vertex_count=38, .vertices=×rb_vertices[3262]}, + {.width=16, .vertex_count=44, .vertices=×rb_vertices[3338]}, + {.width=22, .vertex_count=68, .vertices=×rb_vertices[3426]}, + {.width=18, .vertex_count=51, .vertices=×rb_vertices[3562]}, + {.width=26, .vertex_count=62, .vertices=×rb_vertices[3664]}, + {.width=24, .vertex_count=38, .vertices=×rb_vertices[3788]}, + {.width=22, .vertex_count=53, .vertices=×rb_vertices[3864]}, + {.width=22, .vertex_count=58, .vertices=×rb_vertices[3970]}, + {.width=22, .vertex_count=76, .vertices=×rb_vertices[4086]}, + {.width=22, .vertex_count=79, .vertices=×rb_vertices[4238]}, + {.width=20, .vertex_count=43, .vertices=×rb_vertices[4396]}, + {.width=20, .vertex_count=56, .vertices=×rb_vertices[4482]}, + {.width=24, .vertex_count=44, .vertices=×rb_vertices[4594]}, + {.width=20, .vertex_count=33, .vertices=×rb_vertices[4682]}, + {.width=24, .vertex_count=54, .vertices=×rb_vertices[4748]}, + {.width=20, .vertex_count=53, .vertices=×rb_vertices[4856]}, + {.width=22, .vertex_count=47, .vertices=×rb_vertices[4962]}, + {.width=20, .vertex_count=40, .vertices=×rb_vertices[5056]}, + {.width=14, .vertex_count=11, .vertices=×rb_vertices[5136]}, + {.width=14, .vertex_count=2, .vertices=×rb_vertices[5158]}, + {.width=14, .vertex_count=11, .vertices=×rb_vertices[5162]}, + {.width=22, .vertex_count=7, .vertices=×rb_vertices[5184]}, + {.width=20, .vertex_count=2, .vertices=×rb_vertices[5198]}, + {.width=12, .vertex_count=6, .vertices=×rb_vertices[5202]}, + {.width=20, .vertex_count=53, .vertices=×rb_vertices[5214]}, + {.width=21, .vertex_count=46, .vertices=×rb_vertices[5320]}, + {.width=19, .vertex_count=33, .vertices=×rb_vertices[5412]}, + {.width=21, .vertex_count=51, .vertices=×rb_vertices[5478]}, + {.width=19, .vertex_count=40, .vertices=×rb_vertices[5580]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[5660]}, + {.width=19, .vertex_count=88, .vertices=×rb_vertices[5738]}, + {.width=23, .vertex_count=64, .vertices=×rb_vertices[5914]}, + {.width=12, .vertex_count=42, .vertices=×rb_vertices[6042]}, + {.width=13, .vertex_count=40, .vertices=×rb_vertices[6126]}, + {.width=22, .vertex_count=60, .vertices=×rb_vertices[6206]}, + {.width=12, .vertex_count=30, .vertices=×rb_vertices[6326]}, + {.width=34, .vertex_count=98, .vertices=×rb_vertices[6386]}, + {.width=23, .vertex_count=64, .vertices=×rb_vertices[6582]}, + {.width=20, .vertex_count=45, .vertices=×rb_vertices[6710]}, + {.width=21, .vertex_count=59, .vertices=×rb_vertices[6800]}, + {.width=20, .vertex_count=54, .vertices=×rb_vertices[6918]}, + {.width=17, .vertex_count=42, .vertices=×rb_vertices[7026]}, + {.width=17, .vertex_count=42, .vertices=×rb_vertices[7110]}, + {.width=15, .vertex_count=21, .vertices=×rb_vertices[7194]}, + {.width=23, .vertex_count=42, .vertices=×rb_vertices[7236]}, + {.width=18, .vertex_count=30, .vertices=×rb_vertices[7320]}, + {.width=24, .vertex_count=44, .vertices=×rb_vertices[7380]}, + {.width=20, .vertex_count=47, .vertices=×rb_vertices[7468]}, + {.width=19, .vertex_count=39, .vertices=×rb_vertices[7562]}, + {.width=18, .vertex_count=40, .vertices=×rb_vertices[7640]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[7720]}, + {.width=8, .vertex_count=2, .vertices=×rb_vertices[7798]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[7802]}, + {.width=24, .vertex_count=23, .vertices=×rb_vertices[7880]} + } + }; + +std::map fonts = { + { "sans", &futural }, + { "sans_bold", &futuram }, + { "gothic", &gothgbt }, + { "cursive_bold", &scriptc }, + { "cursive", &scripts }, + { "serif_italic", ×i }, + { "serif", ×r }, + { "serif_bold", ×rb } +}; + diff --git a/examples/badger2040/hershey_font_converter/fonts/futural.jhf b/examples/badger2040/hershey_font_converter/fonts/futural.jhf new file mode 100644 index 00000000..b437e371 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/futural.jhf @@ -0,0 +1,101 @@ +12345 1JZ +12345 9MWRFRT RRYQZR[SZRY +12345 6JZNFNM RVFVM +12345 12H]SBLb RYBRb RLOZO RKUYU +12345 27H\PBP_ RTBT_ RYIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX +12345 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT +12345 35E_\O\N[MZMYNXPVUTXRZP[L[JZIYHWHUISJRQNRMSKSIRGPFNGMIMKNNPQUXWZY[ +[[\Z\Y +12345 8MWRHQGRFSGSIRKQL +12345 11KYVBTDRGPKOPOTPYR]T`Vb +12345 11KYNBPDRGTKUPUTTYR]P`Nb +12345 9JZRLRX RMOWU RWOMU +12345 6E_RIR[ RIR[R +12345 8NVSWRXQWRVSWSYQ[ +12345 3E_IR[R +12345 6NVRVQWRXSWRV +12345 3G][BIb +12345 18H\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF +12345 5H\NJPISFS[ +12345 15H\LKLJMHNGPFTFVGWHXJXLWNUQK[Y[ +12345 16H\MFXFRNUNWOXPYSYUXXVZS[P[MZLYKW +12345 7H\UFKTZT RUFU[ +12345 18H\WFMFLOMNPMSMVNXPYSYUXXVZS[P[MZLYKW +12345 24H\XIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQLT +12345 6H\YFO[ RKFYF +12345 30H\PFMGLILKMMONSOVPXRYTYWXYWZT[P[MZLYKWKTLRNPQOUNWMXKXIWGTFPF +12345 24H\XMWPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLX +12345 12NVROQPRQSPRO RRVQWRXSWRV +12345 14NVROQPRQSPRO RSWRXQWRVSWSYQ[ +12345 4F^ZIJRZ[ +12345 6E_IO[O RIU[U +12345 4F^JIZRJ[ +12345 21I[LKLJMHNGPFTFVGWHXJXLWNVORQRT RRYQZR[SZRY +12345 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV +12345 9I[RFJ[ RRFZ[ RMTWT +12345 24G\KFK[ RKFTFWGXHYJYLXNWOTP RKPTPWQXRYTYWXYWZT[K[ +12345 19H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV +12345 16G\KFK[ RKFRFUGWIXKYNYSXVWXUZR[K[ +12345 12H[LFL[ RLFYF RLPTP RL[Y[ +12345 9HZLFL[ RLFYF RLPTP +12345 23H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZS RUSZS +12345 9G]KFK[ RYFY[ RKPYP +12345 3NVRFR[ +12345 11JZVFVVUYTZR[P[NZMYLVLT +12345 9G\KFK[ RYFKT RPOY[ +12345 6HYLFL[ RL[X[ +12345 12F^JFJ[ RJFR[ RZFR[ RZFZ[ +12345 9G]KFK[ RKFY[ RYFY[ +12345 22G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF +12345 14G\KFK[ RKFTFWGXHYJYMXOWPTQKQ +12345 25G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RSWY] +12345 17G\KFK[ RKFTFWGXHYJYLXNWOTPKP RRPY[ +12345 21H\YIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKX +12345 6JZRFR[ RKFYF +12345 11G]KFKULXNZQ[S[VZXXYUYF +12345 6I[JFR[ RZFR[ +12345 12F^HFM[ RRFM[ RRFW[ R\FW[ +12345 6H\KFY[ RYFK[ +12345 7I[JFRPR[ RZFRP +12345 9H\YFK[ RKFYF RK[Y[ +12345 12KYOBOb RPBPb ROBVB RObVb +12345 3KYKFY^ +12345 12KYTBTb RUBUb RNBUB RNbUb +12345 6JZRDJR RRDZR +12345 3I[Ib[b +12345 8NVSKQMQORPSORNQO +12345 18I\XMX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 18H[LFL[ RLPNNPMSMUNWPXSXUWXUZS[P[NZLX +12345 15I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 18I\XFX[ RXPVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 18I[LSXSXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 9MYWFUFSGRJR[ ROMVM +12345 23I\XMX]W`VaTbQbOa RXPVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 11I\MFM[ RMQPNRMUMWNXQX[ +12345 9NVQFRGSFREQF RRMR[ +12345 12MWRFSGTFSERF RSMS^RaPbNb +12345 9IZMFM[ RWMMW RQSX[ +12345 3NVRFR[ +12345 19CaGMG[ RGQJNLMOMQNRQR[ RRQUNWMZM\N]Q][ +12345 11I\MMM[ RMQPNRMUMWNXQX[ +12345 18I\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM +12345 18H[LMLb RLPNNPMSMUNWPXSXUWXUZS[P[NZLX +12345 18I\XMXb RXPVNTMQMONMPLSLUMXOZQ[T[VZXX +12345 9KXOMO[ ROSPPRNTMWM +12345 18J[XPWNTMQMNNMPNRPSUTWUXWXXWZT[Q[NZMX +12345 9MYRFRWSZU[W[ ROMVM +12345 11I\MMMWNZP[S[UZXW RXMX[ +12345 6JZLMR[ RXMR[ +12345 12G]JMN[ RRMN[ RRMV[ RZMV[ +12345 6J[MMX[ RXMM[ +12345 10JZLMR[ RXMR[P_NaLbKb +12345 9J[XMM[ RMMXM RM[X[ +12345 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb +12345 3NVRBRb +12345 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb +12345 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O +12345 35JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[ +YFZFZ[ diff --git a/examples/badger2040/hershey_font_converter/fonts/futuram.jhf b/examples/badger2040/hershey_font_converter/fonts/futuram.jhf new file mode 100644 index 00000000..4130153b --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/futuram.jhf @@ -0,0 +1,127 @@ +12345 1JZ +12345 24MXRFRTST RRFSFST RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 22I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM +12345 12H]SBLb RYBRb RLOZO RKUYU +12345 51I\RBR_S_ RRBSBS_ RWIYIWGTFQFNGLILKMMNNVRWSXUXWWYTZQZOYNX RWIVHTG +QGNHMIMKNMVQXSYUYWXYWZT[Q[NZLXNX RXXUZ +12345 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT +12345 49F_[NZO[P\O\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZ +Z[[[\Z\Y RM[KZJXJUKSMQ RMKNMVXXZZ[ +12345 11NWSFRGRM RSGRM RSFTGRM +12345 20KYVBTDRGPKOPOTPYR]T`Vb RTDRHQKPPPTQYR\T` +12345 20KYNBPDRGTKUPUTTYR]P`Nb RPDRHSKTPTTSYR\P` +12345 39JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO R +WIMO RWIWJMNMO +12345 16F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R +12345 24MXTZS[R[QZQYRXSXTYT\S^Q_ RRYRZSZSYRY RS[T\ RTZS^ +12345 3E_IR[R +12345 16MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 8G^[BIbJb R[B\BJb +12345 42H\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF ROGMJLOLRMWOZ RNYQZSZVY RUZ +WWXRXOWJUG RVHSGQGNH +12345 12H\NJPISFS[ RNJNKPJRHR[S[ +12345 34H\LKLJMHNGPFTFVGWHXJXLWNUQL[ RLKMKMJNHPGTGVHWJWLVNTQK[ RLZYZY[ R +K[Y[ +12345 48H\MFXFQO RMFMGWG RWFPO RQNSNVOXQYTYUXXVZS[P[MZLYKWLW RPOSOVPXS R +TOWQXTXUWXTZ RXVVYSZPZMYLW ROZLX +12345 18H\UIU[V[ RVFV[ RVFKVZV RUILV RLUZUZV +12345 53H\MFLO RNGMN RMFWFWG RNGWG RMNPMSMVNXPYSYUXXVZS[P[MZLYKWLW RLOMO +ONSNVOXR RTNWPXSXUWXTZ RXVVYSZPZMYLW ROZLX +12345 62H\VGWIXIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQ RWHTGRGOH RPG +NJMOMTNXQZ RMVOYRZSZVYXV RTZWXXUXTWQTO RXSVPSOROOPMS RQONQMT +12345 12H\KFYFO[ RKFKGXG RXFN[O[ +12345 68H\PFMGLILKMMNNPOTPVQWRXTXWWYTZPZMYLWLTMRNQPPTOVNWMXKXIWGTFPF RNG +MIMKNMPNTOVPXRYTYWXYWZT[P[MZLYKWKTLRNPPOTNVMWKWIVG RWHTGPGMH RLXOZ RUZXX +12345 62H\WPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLXMXNZ RWMVPSR RWNUQ +RRQRNQLN RPRMPLMLLMIPG RLKNHQGRGUHWK RSGVIWMWRVWTZ RUYRZPZMY +12345 32MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 40MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\S^Q_ RRYRZSZ +SYRY RS[T\ RTZS^ +12345 4F^ZIJRZ[ +12345 16F_JM[M[N RJMJN[N RJU[U[V RJUJV[V +12345 4F^JIZRJ[ +12345 58I\LKLJMHNGQFTFWGXHYJYLXNWOUPRQ RLKMKMJNHQGTGWHXJXLWNUORP RMIPG R +UGXI RXMTP RRPRTSTSP RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV +12345 20H\RFJ[ RRIK[J[ RRIY[Z[ RRFZ[ RMUWU RLVXV +12345 44H\LFL[ RMGMZ RLFTFWGXHYJYMXOWPTQ RMGTGWHXJXMWOTP RMPTPWQXRYTYWXY +WZT[L[ RMQTQWRXTXWWYTZMZ +12345 38H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV RZKYKXIWHUGQGOHMKLNLSMVOY +QZUZWYXXYVZV +12345 32H]LFL[ RMGMZ RLFSFVGXIYKZNZSYVXXVZS[L[ RMGSGVHWIXKYNYSXVWXVYSZMZ +12345 27I\MFM[ RNGNZ RMFYF RNGYGYF RNPTPTQ RNQTQ RNZYZY[ RM[Y[ +12345 21I[MFM[ RNGN[M[ RMFYF RNGYGYF RNPTPTQ RNQTQ +12345 44H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZRUR RZKYKXIWHUGQGOHNIMKLN +LSMVNXOYQZUZWYXXYVYSUSUR +12345 22G]KFK[ RKFLFL[K[ RYFXFX[Y[ RYFY[ RLPXP RLQXQ +12345 8NWRFR[S[ RRFSFS[ +12345 20J[VFVVUYSZQZOYNVMV RVFWFWVVYUZS[Q[OZNYMV +12345 22H]LFL[M[ RLFMFM[ RZFYFMR RZFMS RPOY[Z[ RQOZ[ +12345 14IZMFM[ RMFNFNZ RNZYZY[ RM[Y[ +12345 26F^JFJ[ RKKK[J[ RKKR[ RJFRX RZFRX RYKR[ RYKY[Z[ RZFZ[ +12345 20G]KFK[ RLIL[K[ RLIY[ RKFXX RXFXX RXFYFY[ +12345 40G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZ +VYXVYSYNXKVHSGQG +12345 27H\LFL[ RMGM[L[ RLFUFWGXHYJYMXOWPUQMQ RMGUGWHXJXMWOUPMP +12345 48G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF RQGNHLKKNKSLVNYQZSZ +VYXVYSYNXKVHSGQG RSXX]Y] RSXTXY] +12345 34H\LFL[ RMGM[L[ RLFTFWGXHYJYMXOWPTQMQ RMGTGWHXJXMWOTPMP RRQX[Y[ R +SQY[ +12345 43H\YIWGTFPFMGKIKKLMMNOOTQVRWSXUXXWYTZPZNYMXKX RYIWIVHTGPGMHLILKMM +ONTPVQXSYUYXWZT[P[MZKX +12345 15J[RGR[ RSGS[R[ RLFYFYG RLFLGYG +12345 24G]KFKULXNZQ[S[VZXXYUYF RKFLFLUMXNYQZSZVYWXXUXFYF +12345 14H\JFR[ RJFKFRX RZFYFRX RZFR[ +12345 26E_GFM[ RGFHFMX RRFMX RRIM[ RRIW[ RRFWX R]F\FWX R]FW[ +12345 16H\KFX[Y[ RKFLFY[ RYFXFK[ RYFL[K[ +12345 17I\KFRPR[S[ RKFLFSP RZFYFRP RZFSPS[ +12345 20H\XFK[ RYFL[ RKFYF RKFKGXG RLZYZY[ RK[Y[ +12345 12KYOBOb RPBPb ROBVB RObVb +12345 3KYKFY^ +12345 12KYTBTb RUBUb RNBUB RNbUb +12345 8G]JTROZT RJTRPZT +12345 3H\Hb\b +12345 7LXPFUL RPFOGUL +12345 36H\WMW[X[ RWMXMX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMX +NYPZSZWX +12345 36H\LFL[M[ RLFMFM[ RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWX +VYTZQZMX +12345 32I[XPVNTMQMONMPLSLUMXOZQ[T[VZXX RXPWQVOTNQNOONPMSMUNXOYQZTZVYWWXX +12345 36H\WFW[X[ RWFXFX[ RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMX +NYPZSZWX +12345 36I[MTXTXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX RMSWSWQVOTNQNOONPMSMUNXOYQZ +TZVYWWXX +12345 24LZWFUFSGRJR[S[ RWFWGUGSH RTGSJS[ ROMVMVN ROMONVN +12345 48H\XMWMW\V_U`SaQaO`N_L_ RXMX\W_UaSbPbNaL_ RWPUNSMPMNNLPKSKULXNZP[ +S[UZWX RWPSNPNNOMPLSLUMXNYPZSZWX +12345 25H\LFL[M[ RLFMFM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[ +12345 24NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMR[S[ RRMSMS[ +12345 24NWRFQGQHRISITHTGSFRF RRGRHSHSGRG RRMRbSb RRMSMSb +12345 22H[LFL[M[ RLFMFM[ RXMWMMW RXMMX RPTV[X[ RQSX[ +12345 8NWRFR[S[ RRFSFS[ +12345 42CbGMG[H[ RGMHMH[ RHQKNMMPMRNSQS[ RHQKOMNONQORQR[S[ RSQVNXM[M]N^Q +^[ RSQVOXNZN\O]Q][^[ +12345 25H\LML[M[ RLMMMM[ RMQPNRMUMWNXQX[ RMQPORNTNVOWQW[X[ +12345 36I\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM RQNOONPMSMUNXOYQZTZVYWXXUXS +WPVOTNQN +12345 36H\LMLbMb RLMMMMb RMPONQMTMVNXPYSYUXXVZT[Q[OZMX RMPQNTNVOWPXSXUWX +VYTZQZMX +12345 36H\WMWbXb RWMXMXb RWPUNSMPMNNLPKSKULXNZP[S[UZWX RWPSNPNNOMPLSLUMX +NYPZSZWX +12345 21KYOMO[P[ ROMPMP[ RPSQPSNUMXM RPSQQSOUNXNXM +12345 50J[XPWNTMQMNNMPNRPSUUWV RVUWWWXVZ RWYTZQZNY ROZNXMX RXPWPVN RWOTN +QNNO RONNPOR RNQPRUTWUXWXXWZT[Q[NZMX +12345 16MXRFR[S[ RRFSFS[ ROMVMVN ROMONVN +12345 25H\LMLWMZO[R[TZWW RLMMMMWNYPZRZTYWW RWMW[X[ RWMXMX[ +12345 14JZLMR[ RLMMMRY RXMWMRY RXMR[ +12345 26F^IMN[ RIMJMNX RRMNX RRPN[ RRPV[ RRMVX R[MZMVX R[MV[ +12345 16I[LMW[X[ RLMMMX[ RXMWML[ RXMM[L[ +12345 17JZLMR[ RLMMMRY RXMWMRYNb RXMR[ObNb +12345 20I[VNL[ RXMNZ RLMXM RLMLNVN RNZXZX[ RL[X[ +12345 4KYUBNRUb +12345 3NVRBRb +12345 4KYOBVROb +12345 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O +12345 35JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[ +YFZFZ[ diff --git a/examples/badger2040/hershey_font_converter/fonts/gothgbt.jhf b/examples/badger2040/hershey_font_converter/fonts/gothgbt.jhf new file mode 100644 index 00000000..fc2b7afa --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/gothgbt.jhf @@ -0,0 +1,96 @@ + 3699 1JZ + 3714 30LXRFQGOHQIRT RRISHRGQHRIRT RRFSGUHSIRT RRXPZR[TZRX RRYQZSZRY + 3728 22I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM + 2275 12H]SFLb RYFRb RLQZQ RKWYW + 3719 60H\PBP_ RTBT_ RTFVGWIWKYJXHWGTFPFMGKIKLLNOPURWSXUXXWZ RXJWH RLLMNOOUQWRXT RMYLW RMGLILKMMONUPXRYTYWXYWZT[P[MZLYKWMVMXNZP[ + 2271 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT + 3718 62E_YNZO[O\N RXOYP[P RXPYQZQ[P\N RYNST RRUL[HVNP ROOSKOFJLPRTXVZX[Z[[Z\X RLZIV RRKOG RKLPQTWVYXZ[Z RMZIU RRLNG RKKQQUWVXXY[Y\X + 3717 14LXRLRJPHRFSHSJRLPM RRGQHRIRG + 3721 27KYUBSDQGOKNPNTOYQ]S`Ub RQHPKOOOUPYQ\ RSDRFQIPOPUQ[R^S` + 3722 27KYOBQDSGUKVPVTUYS]Q`Ob RSHTKUOUUTYS\ RQDRFSITOTUS[R^Q` + 3723 39JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO RWIMO RWIWJMNMO + 3725 16F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R + 3711 14LXR^R\PZRXSZS\R^P_ RRYQZR[RY + 3724 8F_JQ[Q[R RJQJR[R + 3710 11LXRXPZR[TZRX RRYQZSZRY + 3720 8G^[BIbJb R[B\BJb + 3700 42H\LHLXJY RMIMXPZ RNHNXPYQZ RLHNHSGUF RSGTHVIVY RTGWIWX RUFVGXHZHXIXY RJYLYNZO[QZVYXY + 3701 27H\OHPIQKQXOY RQIPHQGRIRYTZ ROHRFSHSXUYVY ROYPYRZS[TZVY + 3702 48H\LHNHPGQFSGVHXH RPHRG RLHNIPIRHSG RVHVP RWIWO RXHXPQPNQLSKVK[ RK[OYSXVXZY RNZQYVYYZ RK[PZUZX[ZY + 3703 57H\LHMHOGPFRGVHXH ROHQG RLHNIPIRG RVHVO RWIWN RXHXOVOSPQQ RQPSQVRXRXY RWSWX RVRVY RKYMXOXQYRZ ROYQZ RKYMYOZP[RZVYXY + 3704 41H\UFKPKUTU RVUZU[V[TZU RLPLT RMNMU RTGTXRY RUJVHUGUYWZ RUFWHVJVXXYYY RRYSYUZV[WZYY + 3705 53H\LFLO RLFXF RMGVG RLHUHWGXF RVLUMSNOOLO RSNTNVOVY RUMWNWX RVLWMYNZNXOXY RKYMXOXQYRZ ROYQZ RKYMYOZP[RZVYXY + 3706 59H\LHLXJY RMIMXPZ RNHNXPYQZ RLHNHRGTFUGWHXH RSGUH RRGTIVIXH RNPOPSOUNVM RSOTOVPVY RUNWPWX RVMWNYOZOXPXY RJYLYNZO[QZVYXY + 3707 38H\KHMFPGUGZF RLGOHTHWG RKHOIRIVHZF RZFYHWKSOQRPUPXQ[ RRQQTQWRZ RUMSPRSRVSYQ[ + 3708 71H\LILO RMJMN RNINO RLINISHUGVF RSHTHVIVO RUGWHWN RVFWGYHZHXIXO RLONOVRXR RXOVONRLR RLRLXJY RMSMXPZ RNRNXPYQZ RVRVY RWSWX RXRXY RJYLYNZO[QZVYXY + 3709 60H\LHLQJR RMIMROS RNHNQPRQR RLHNHSGUF RSGTHVIVY RTGWIWX RUFVGXHZHXIXY RJRKRMSNTOSQRUQVQ RKYMXOXQYRZ ROYQZ RKYMYOZP[RZVYXY + 3712 22LXRMPORPTORM RRNQOSORN RRXPZR[TZRX RRYQZSZRY + 3713 25LXRMPORPTORM RRNQOSORN RR^R\PZRXSZS\R^P_ RRYQZR[RY + 2241 4F^ZIJRZ[ + 3726 16F_JM[M[N RJMJN[N RJU[U[V RJUJV[V + 2242 4F^JIZRJ[ + 3715 51I[LJMHNGQFSFVGWHXJXLWNUPSQ RMJNH RVHWIWMVN RLJNKNIOGQF RSFUGVIVMUOSQ RRQRTSQQQRT RRXPZR[TZRX RRYQZSZRY + 2273 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV + 3501 60G]LINGPFRFSGZW[X]X RQGRHYXZZ[YYX RNGPGQHXXYZZ[[[]X RLMMLOKPKQL RPLPM RMLOLPN RG[IYKXNXPY RJYNYOZ RG[JZMZN[PY RRJLX RNSVS + 3502110F^HHJFMFOGQF RKGNG RHHJGLHOHQF RMKLLKNKOIOHPHRIQKQKW RLMLU RIPLP RMKMTLVKW RRIQJPLPU RQKQS RRIRRQTPU RRIXFZG[I[KYMUO RXGZIZK RVGXHYIYLWN RWNZP[R[X RYPZRZW RWNXOYQYX RJ[MYPXTXWY RLZOYTYVZ RJ[NZSZU[WYYX[X RUOUX RURYR RUUYU + 3503 69E]NGLHJJILHOHSIVJXMZP[S[VZXYZW[U RJKINISKWNYQZTZWY RNGLIKKJNJRKUNXQYTYWXYW[U RPJPV RQJQT RRIRSQUPV RPJRIUFWGYGZF RTGVHXH RSHUIWIYHZF RWIWX + 3504 72G^IFWFYGZIZX RKGWGYIYW RIFJGLHWHXIXX ROKNLMNMOKOJPJRKQMQMV RNMNT RKPNP ROKOSNUMV RI[LYOXSXVY RKZNYSYUZ RI[MZRZT[VYXXZX RRHRX RRMTNVNXM RRSTRVRXS + 3505 94G]IHKFMFOGQF RLGNG RIHKGMHOHQF RNKMLLNLOJOIPIRJQLQLW RMMMU RJPMP RNKNTMVLW RQMRJSHTGVFXF[G RTHVGXGZH RRJSIUHWHYI[G RQURRSPTOVOXP RTPVPWQ RRRSQUQVRXP RK[NYRXWX[Y RMZPYWYZZ RK[OZVZY[[Y RQMQX + 3506 91F]JHLFOFQGSF RMGPG RJHLGNHQHSF RPKOLNNNOLOKPKRLQNQNV ROMOT RLPOP RPKPSOUNV RSJSYRZQZMXKXIYG[ RTJTX RTPXP RPZOZMYJY RUIUOXO RXQUQUWTYP[N[LZJZG[ RSJUIXFZG\G]F RWGYH[H RVHXIZI\H]F RXIXW + 3507 87E^NGLHJJILHOHRIUJWLYNZQ[U[XZZX[V[SZQYPWOUO RJKINISJV RNGLIKKJNJSKVLXNZ RYXZWZSYQ RU[WZXYYWYSXQWPUO RPJPW RQJQU RRIRTQVPW RPJRIUFWGYGZF RTGVHXH RSHUIWIYHZF RYHUOU[ RUSYS RUVYV + 3508112F^HHJFMFOGQF RKGNG RHHJGLHOHQF RMKLLKNKOIOHPHRIQKQKW RLMLU RIPLP RMKMTLVKW RJ[MYPXSXUY RLZOYRYTZ RJ[NZQZS[UY RRIQJPLPU RQKQS RRIRRQTPU RRITGVFXFZG RWGXGYH RTGVGXIZG RUOWNYLZM[P[TZXX[ RXMYNZPZUYX RWNXNYPYUX[ RUOUY RURYR RUUYU + 3509 67I\LHNFQFTGVF ROGSG RLHNGQHTHVF RSKRLQNQOOONPNROQQQQV RRMRT ROPRP RSKSSRUQV RYHWJVMVXUZSZOXMXKYI[ RWKWW RRZQZOYLY RYHXJXVWXUZS[P[NZKZI[ + 3510 65H\LHNFQFTGVF ROGSG RLHNGQHTHVF RSKRLQNQOOONPNROQQQQV RRMRT ROPRP RSKSSRUQV RYHWJVMVXUZ RWKWW RYHXJXVWXUZR[O[LZJXJVKULUMVLWKW RJVMV + 3511115F^HHJFMFOGQF RKGNG RHHJGLHOHQF RMKLLKNKOIOHPHRIQKQKW RLMLU RIPLP RMKMTLVKW RJ[MYPXSXUY RLZNYRYTZ RJ[NZQZS[UY RRIQJPLPU RQKQS RRIRRQTPU RRITGVFXFZG RWGXGYH RTGVGXIZG RUOXLYM[N RWMYN[N R[NYQWSUU RWSYTZX[Z\Z RYVZZ RWSXTYZZ[[[\Z RUOUY + 3512 85G]IHKFNFPGRF RLGOG RIHKGMHPHRF RNKMLLNLOJOIPIRJQLQLW RMMMU RJPMP RNKNTMVLW RK[NYRXWX[Y RMZPYWYZZ RK[OZVZY[[Y RSIRJQLQU RRKRS RSISRRTQU RSIUGWFYF[G RXGYGZH RUGWGYI[G RWGWX + 3513107D`LJKKJMJOHOGPGRHQJQJU RKLKS RHPKP RLJLRKTJU RE[GYIXKXMYNYOX RHYKYMZ RE[GZJZL[M[NZOX RLJPFTJTWUYVY RPGSJSXRYSZTYSX RPPSP RNHOHRKROOO ROQRQRXQYS[VYWX RTJXF\J\W]Y^Y RXG[J[X]Z RXP[P RVHWHZKZOWO RWQZQZY\[^Y ROHOX RWHWX + 3514 84E^GIIGKFMFOGQJVUXXYY RMGOIPKVWYZ RIGKGMHOKTVVYWZY[ RVHXIZI\H]F RWGYH[H RVHXFZG\G]F RKOIOHPHRIQKQ RIPKP RG[IYKXNXPY RJYMYOZ RG[JZMZN[PY RKGKX RYIY[ RRLSMUNWNYM RKTMSQSST + 3515 79E_NFLGJIIKHNHRIUJWLYNZQ[S[VZXYZW[U\R\N[KZIXGVFUGRIOJ RJJIMISJV RNFLHKJJMJSKVLXNZ RZV[S[MYIXH RVZXXYVZSZMYKWHUG ROJOW RPJPU RQJQTPVOW RUGUZ RUMWNXNZM RUSWRXRZS + 3516 70H^KFLGMIMOKOJPJRKQMQMYJ[MZMbO` RMHNJN` RKPNP RKFMGNHOJO` ROKRIVFZJZX RVGYJYX RTHUHXKXY RRXUXXY RSYUYWZ RRZTZV[XYZX RRIR_ RRMTNVNXM RRSTRVRXS + 3517 99E_NFLGJIIKHNHRIUJWLYNZP[T[VZXYZW[U\R\N[KZIXGVFUGRIOJ RJJIMISJV RNFLHKJJMJSKVLXNZ RZV[S[MYIXH RVZXXYVZSZMYKWHUG ROJOW RPJPU RQJQTPVOW RUGUZ RUMWNXNZM RUSWRXRZS RP[QZRZT[X`Za[a RT\V_XaYa RRZS[VaXbZb[a + 3518108F^HHJFMFOGQF RKGNG RHHJGLHOHQF RMKLLKNKOIOHPHRIQKQKW RLMLU RIPLP RMKMTLVKW RJ[MYPXRXUY RLZNYRYTZ RJ[NZQZS[UY RRIQJPLPU RQKQS RRIRRQTPU RRIUGWFYGZIZLYNXOTQRR RWGXGYIYMXN RUGWHXJXMWOTQ RTQVRWSZX[Y\Y RWTYX[Z RTQVSXYZ[\Y + 3519 94G^UITHRGOF RVHTG RWGSFOFLGKHJJKLLMONWNYOZPZRYU RKKLLOMXMZN[O[QZS RKHKJLKOLYL[M\O\QYUU[ RIOJPLQUQVRVSUU RJQLRTRUS RIOIPJRLSSSUTUU RI[LYPXSXVY RKZNYRYUZ RI[MZRZU[ RWGUISL RRNPQ ROSMUKVJVJUKV + 3520 71E]JJILHOHSIVKYMZP[S[VZXYZW[U RISJVLXNYQZTZWY RJJIMIQJTLWNXQYTYWXYW[U RHIIGKFOFUGYG[F RPGTHXH RHIIHKGNGTIWIYH[F RSIRJPKPV RQKQT RRJRSQUPV RWIWX + 3521 89F^HHJFLFOGQF RKGNG RHHJGMHOHQF RKJJLIOISJVKXMZP[S[VZXYZ[\Y RJSKVNYQZTZ RKJJNJQKTLVNXQYUYXX RUIQJPLPV RQKQT RRJRSQUPV RUIWHYFZG\HZIZW[Y\Y RYIZHYGXHYIYX[Z RWHXIXX RUIUY RUNXN RURXR + 3522 72G^JFKGLILOJOIPIRJQLQLXJY RLHMJMX RJPMP RNYQYSZ RJFLGMHNJNXRXUY RJYMYPZR[UYXXZX RRJUIWHYFZG\HZIZX RYIZHYGXHYIYW RWHXIXX RRJRX RRMTNVNXM RRSTRVRXS + 3523 95E`HFIGJIJOHOGPGRHQJQJXHY RJHKJKX RHPKP RLYNYPZ RHFJGKHLJLXOXQY RHYKYNZO[QYTXVYW[YY\X ROHRFTHTXWXYY RRGSHSX ROHQHRIRXQY RWYXZ RWHZF\H\X RZG[H[X RWHYHZIZXYY ROHOX RWHWX RONRN RORRR RWNZN RWRZR + 3524 65G]HIJGLFNFOGWYXZZZ RMGNHVYWZ RJGLGMHUZV[X[ZZ\X RWFYG[G\F RWGXHZH RVHWIYI[H\F RH[IYKXMXNY RJYLYMZ RH[IZKZM[ RWFSO RQRM[ RLPPP RSPXP + 3525 86G^JFKGLILOJOIPIRJQLQLXJY RLHMJMX RJPMP RNYQYSZ RJFLGMHNJNXRXUY RJYMYPZR[UYXX RRJUIWHYFZG\HZIZ^Y`WbUaQ`L` RYIZHYGXHYIYY RWHXIXXZ[ RXaV`S` RY`V_P_L` RRJRX RRMTNVNXM RRSTRVRXS + 3526 57H\XGWIROOSMWJ[ RVKNV RZFWJUNRRMXLZ RJHLFOGUGZF RKGOHSHWG RJHNIRIVHXG RLZNYRXVXZY RMZQYUYYZ RJ[OZUZX[ZY RMPQP RTPXP + 2223 12KYOBOb RPBPb ROBVB RObVb + 804 3KYKFY^ + 2224 12KYTBTb RUBUb RNBUB RNbUb + 2262 11JZPLRITL RMORJWO RRJR[ + 999 3JZJ]Z] + 3716 14LXTFRGQIQKRMTKRIRG RRJRLSKRJ + 3601 53J[PRNTMVMXNZP[RYUX RMVNXOYQZ RNTNVOXQYRY RNPPPSOUNVMXOWPWXXYYY RONNOQO RTOWOVNVYWZ RMOOMPNROUPUYW[YY RMORT + 3602 44I[LHMJMXKY RNJMHNGNXQZ RLHOFOXQYRZ RKYMYOZP[RZUYWY ROPROTNUMVNXOYOWPWY RTNVOVX RROSOUPUY + 3603 35JXNONXLYMYOZP[ ROOOYQZ RPOPXRYSYQZP[ RNORNTMUNWOXO RSNTOVO RPORNTPVPXO + 3604 41IZRMPNMOMXKY RNONXQZ RRMOOOXQYRZ RKYMYOZP[RZUYWY RMHPFQIWOWY RPINHOGPIVOVX RMHUPUY + 3605 32JXNONXLYMYOZP[ ROOOYQZ RPOPXRYSYQZP[ RNORNTMWQURPU RSNVQ RPORNUR + 3606 41JWNHNXLYMYOZP[ ROHOYQZ RPHPXRYSYQZP[ RNHQGSFTGVHWH RRGSHUH RPHQGSIUIWH RKMNM RPMTM + 3607 56I[MOMXKYLYNZO[PZRYUX RNPNYPZ ROOOXQYRY RMOOORNTMUNWOYOWPW\V_TaRbQaO`M` RSNVPV\ RSaQ`P` RRNSOUPUZV]V_ RTaS`Q_O_M` + 3608 47I[LHMJMXKYLYNZO[ RNJMHNGNYPZ RLHOFOXQYO[ ROPROTNUMVNXOYOWPWYU[T] RTNVOVYU[ RROSOUPUYT]T`UbVbT` + 3609 35MWRFPHRITHRF RRGQHSHRG RRMQNOOQPQYS[UY RRPSORNQORPRYSZ RRMSNUOSPSXTYUY + 3610 39MWRFPHRITHRF RRGQHSHRG RRMQNOOQPQYS[T] RRPSORNQORPRYS[ RRMSNUOSPSYT]T`RbPbPaRb + 3611 50IZLHMJMXKYLYNZO[ RNJMHNGNYPZ RLHOFOXQYO[ ROPRNTMVPSROU RSNUP RRNTQ RSRTSVXWYXY RSSTTUYVZ RRSSTTYV[XY + 3612 22MWPHQJQXOYPYRZS[ RRJQHRGRYTZ RPHSFSXUYVYTZS[ + 3613 67E_GOHOIPIXGYHYJZK[ RINJOJYLZ RGOIMKOKXMYK[ RKPNOPNQMSOSXUYS[ RPNRORYTZ RNOOOQPQXPYRZS[ RSPVOXNYMZN\O]O[P[X\Y]Y RXNZOZY[Z RVOWOYPYY[[]Y + 3614 45I[KOLOMPMXKYLYNZO[ RMNNONYPZ RKOMMOOOXQYO[ ROPROTNUMVNXOYOWPWXXYYY RTNVOVYWZ RROSOUPUYW[YY + 3615 40I[MOMXKY RNPNXQZ ROOOXQYRZ RKYMYOZP[RZUYWY RMOOORNTMUNWOYOWPWY RSNVPVX RRNSOUPUY + 3616 54I[LMMOMXKYMYMb RMNNONaO`N^ RNYOYQZ RLMNNOOOXQYRZ ROZP[RZUYWY ROZO^P`Mb ROPROTNUMVNXOYOWPWY RTNVOVX RROSOUPUY + 3617 44I[MOMXKY RNPNYPZ ROOOXQYRY RKYLYNZO[PZRYUX RMOOORNTMUNWOYOWPWb RSNVPVaU`V^ RRNSOUPU^T`Wb + 3618 38JXLOMONPNXLYMYOZP[ RMNOOOYQZ RLONMPOPXRYSYQZP[ RPOTMUNWOXO RSNTOVO RRNTPVPXO + 3619 59JZMOMSOTUTWUWY RNONS RVUVY RPNOOOSQT RSTUUUYTZ RMOPNRMTNVNWM RQNSN RPNROTOVN RWYTZR[PZNZL[ RSZQZ RTZRYOYL[ RWMVOTROWL[ + 3620 28MWPHQJQXOYPYRZS[ RRJQHRGRYTZ RPHSFSXUYVYTZS[ RNMQM RSMVM + 3621 47I[KOLOMPMXKY RLNNONYPZ RKOMMOOOXQYRY RKYLYNZO[PZRYUX RUMVNXOYOWPWXXYYY RTNVOVYWZ RUMSOUPUYW[YY + 3622 36I[LMMOMXP[RYUXWX RMNNONXQZ RLMNNOOOWPXRY RUMVNXOYOWPWX RTNVOVW RUMSOUPUX + 3623 57E_HMIOIXL[NYQX RINJOJXMZ RHMJNKOKWLXNY RQMOOQPQXT[VYYX[X RPNRORXUZ RQMRNTOSPSWTXVY RYMZN\O]O[P[X RXNZOZW RYMWOYPYX + 3624 59H[KOLONPOQSYTZV[XY RMNOOTYVZ RKOMMONPOTWUXWYXY RRSUMVNXNYM RUNVOWO RTOVPXOYM RQUN[MZKZJ[ RNZMYLY ROYMXKYJ[ RMTPT RSTVT + 3625 60I[KOLOMPMXKY RLNNONYPZ RKOMMOOOXQYRY RKYLYNZO[PZRYUX RUMVNXOYOWPW\V_TaRbQaO`M` RTNVOV\ RSaQ`P` RUMSOUPUZV]V_ RTaS`Q_O_M` + 3626 38I[XML[ RLONPQPTOXM RMNOOSO RLONMPNTNXM RL[PYSXVXXY RQYUYWZ RL[PZTZV[XY RNTVT + 2225 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSUSWRYQZP\P^Q`RaTb + 2229 3NVRBRb + 2226 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQUQWRYSZT\T^S`RaPb + 2246 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O + 3729 30KYQFOGNINKOMQNSNUMVKVIUGSFQF RQFNIOMSNVKUGQF RSFOGNKQNUMVISF diff --git a/examples/badger2040/hershey_font_converter/fonts/scriptc.jhf b/examples/badger2040/hershey_font_converter/fonts/scriptc.jhf new file mode 100644 index 00000000..2065e92b --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/scriptc.jhf @@ -0,0 +1,144 @@ + 2749 1JZ + 2764 17MXUFTGRS RUGRS RUFVGRS RPYOZP[QZPY + 2778 12I[PFNM RQFNM RYFWM RZFWM + 2275 12H]SFLb RYFRb RLQZQ RKWYW + 2769 41H]TBL_ RYBQ_ RZJYKZL[K[JZHYGVFRFOGMIMKNMONVRXT RMKOMVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW + 2271 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT + 2768 55E_\N[O\P]O]N\M[MYNWPRXPZN[K[HZGXGVHTISKRPPROTMUKUITGRFPGOIOLPRQU +SXUZW[Y[ZYZX RK[IZHXHVITJSPP ROLPQQTSWUYWZYZZY + 2767 8MXUHTGUFVGVHUJSL + 2771 20KZZBVESHQKOONTNXO]P`Qb RVESIQMPPOUOZP_Qb + 2772 20JYSBTDUGVLVPUUSYQ\N_Jb RSBTEUJUOTTSWQ[N_ + 2773 9J[TFTR ROIYO RYIOO + 2775 6E_RIR[ RIR[R + 2761 8MXP[OZPYQZQ[P]N_ + 2774 3E_IR[R + 2760 6MXPYOZP[QZPY + 2770 3G]_BEb + 2750 42H]TFQGOIMLLOKSKVLYMZO[Q[TZVXXUYRZNZKYHXGVFTF RTFRGPINLMOLSLVMYO[ + RQ[SZUXWUXRYNYKXHVF + 2751 15H]TJO[ RVFP[ RVFSIPKNL RUIQKNL + 2752 42H]OJPKOLNKNJOHPGSFVFYGZIZKYMWOTQPSMUKWI[ RVFXGYIYKXMVOPS RJYKXMX +RZUZWYXW RMXR[U[WZXW + 2753 50H]OJPKOLNKNJOHPGSFVFYGZIZKYMVOSP RVFXGYIYKXMVO RQPSPVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW RSPUQVRWTWWVYUZS[ + 2754 10H]XGR[ RYFS[ RYFJUZU + 2755 39H]QFLP RQF[F RQGVG[F RLPMOPNSNVOWPXRXUWXUZR[O[LZKYJWJVKULVKW RSN +UOVPWRWUVXTZR[ + 2756 46H]YIXJYKZJZIYGWFTFQGOIMLLOKSKWLYMZO[R[UZWXXVXSWQVPTOQOOPMRLT RTF +RGPINLMOLSLXMZ RR[TZVXWVWRVP + 2757 30H]NFLL R[FZIXLSRQUPWO[ RXLRRPUOWN[ RMIPFRFWI RNHPGRGWIYIZH[F + 2758 63H]SFPGOHNJNMOOQPTPXOYNZLZIYGVFSF RSFQGPHOJOMPOQP RTPWOXNYLYIXGVF + RQPMQKSJUJXKZN[R[VZWYXWXTWRVQTP RQPNQLSKUKXLZN[ RR[UZVYWWWSVQ + 2759 46H]YMXOVQTRQROQNPMNMKNIPGSFVFXGYHZJZNYRXUVXTZQ[N[LZKXKWLVMWLX ROQ +NONKOIQGSF RXGYIYNXRWUUXSZQ[ + 2762 11MXSMRNSOTNSM RPYOZP[QZ + 2763 14MXSMRNSOTNSM RP[OZPYQZQ[P]N_ + 2241 4F^ZIJRZ[ + 2776 6E_IO[O RIU[U + 2242 4F^JIZRJ[ + 2765 34H]OJPKOLNKNJOHPGSFWFZG[I[KZMYNSPQQQSRTTT RWFYGZIZKYMXNVO RPYOZP[ +QZPY + 2273 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV + 2551 38E\XFVHTKQPOSLWIZG[E[DZDXEWFXEY RXFWJUTT[ RXFU[ RT[TYSVRTPRNQLQKR +KTLWOZR[V[XZ + 2552 70F^UGTHSJQOOUNWLZJ[ RTHSKQSPVOXMZJ[H[GZGXHWIXHY ROLNNMOKOJNJLKJMH +OGRFXFZG[I[KZMXNTORO RXFYGZIZKYMXN RTOWPXQYSYVXYWZU[S[RZRXSU RTOVPWQXSXV +WYU[ + 2553 41H]KHJJJLKNNOQOUNWMYKZIZGYFWFTGQJOMMQLULXMZP[R[UZWXXVXTWRURSSRU R +WFUGRJPMNQMUMXNZP[ + 2554 43F]UGTHSJQOOUNWLZJ[ RTHSKQSPVOXMZJ[H[GZGXHWJWLXNZP[S[UZWXYTZOZLYI +WGUFPFMGKIJKJMKNMNNMOK + 2555 49I\WIVJVLWMYMZKZIYGWFTFRGQHPJPLQNSO RTFRHQJQMSO RSOQONPLRKTKWLYMZ +O[R[UZWXXVXTWRURSSRU RQOOPMRLTLXMZ + 2556 46G\WHVJTORUQWOZM[ RQLPNNOLOKMKKLINGQF[FXGWHVKTSSVRXPZM[K[IZHYHXIW +JXIY RSFWGXG ROSPRRQVQXPZMXT + 2557 53G]JIIKIMJOLPOPROTNWKXHXGWFVFTGRIQKPNPQQSSTUTWSYQZO RWFUGSIRKQNQR +ST RZOYSWWUYSZO[L[JZIXIWJVKWJX RYSWVUXRZO[ + 2558 55F^LLKKKILGOFRFOQMWLYKZI[G[FZFXGWHXGY RRFOONRLWKYI[ RJTKSMRVOXN[L +]J^H^G]F\FZGXJWLURTVTYV[W[YZ[X R\FZHXLVRUVUYV[ + 2559 33IYWHUKSPQUPWNZL[ RYLWNTOQOONNLNJOHQGUFYFWHVJTPRVQXOZL[J[IZIXJWKX +JY + 2560 34IZYFWHUKSPPYN] RYMWOTPQPOONMNKOIQGUFYFWIVKSTQXPZN]M^K_J^J\KZMXOW +RVVU + 2561 59F^LLKKKIMGPFRFOQMWLYKZI[G[FZFXGWHXGY RRFOONRLWKYI[ RZGWKUMSNPO R +]G\H]I^H^G]F\FZGWLVMTNPO RPOSPTRUYV[ RPORPSRTYV[W[YZ[X + 2562 40I[MILKLMMOOPRPUOWNZK[H[GZFYFWGVHTKPUOWMZK[ RVHTLRSQVPXNZK[I[HZHX +IWKWMXPZR[U[WZYX + 2563 49D`RFNOKUIXGZE[C[BZBXCWDXCY RRFPMOQNVNZP[ RRFQJPOOVOZP[ R[FWORXP[ + R[FYMXQWVWZY[Z[\Z^X R[FZJYOXVXZY[ + 2564 38G^RFQJOPMULWJZH[F[EZEXFWGXFY RRFRKSVT[ RRFSKTVT[ R`G_H`IaHaG`F^F +\GZJYLWQUWT[ + 2565 34H]SFQGOIMLLNKRKVLYMZO[Q[TZVXXUYSZOZKYHXGWGUHSJQNPSPV RQGOJMNLRLV +MYO[ + 2566 53F]UGTHSJQOOUNWLZJ[ RTHSKQSPVOXMZJ[H[GZGXHWIXHY ROLNNMOKOJNJLKJMH +OGRFVFYGZH[J[MZOYPVQTQRP RVFXGYHZJZMYOXPVQ + 2567 43H]UJULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWSSWPYNZK[I[HZHXIWKWMXPZS[V[XZ +ZX RWFXGYIYMXPVSSVOYK[ + 2568 65F^UGTHSJQOOUNWLZJ[ RTHSKQSPVOXMZJ[H[GZGXHWIXHY ROLNNMOKOJNJLKJMH +OGRFWFZG[I[KZMYNVORO RWFYGZIZKYMXNVO RROUPVRWYX[ RROTPURVYX[Y[[Z]X + 2569 36H\NIMKMMNOPPSPVOXN[K\H\G[FZFXGWHVJUMSTRWPZN[ RVJUNTUSXQZN[K[IZHX +HWIVJWIX + 2570 38I[YHXJVOTUSWQZO[ RSLRNPONOMMMKNIPGSF\FZGYHXKVSUVTXRZO[M[KZJYJXKW +LXKY RUFYGZG + 2571 39G]HJJGLFMFOHOKNNKVKYL[ RMFNHNKKSJVJYL[N[PZSWUTVR RZFVRUVUYW[X[ZZ +\X R[FWRVVVYW[ + 2572 36G\HJJGLFMFOHOKNOLVLYM[ RMFNHNKLRKVKYM[N[QZTWVTXPYMZIZGYFXFWGVIVL +WNYP[Q]Q + 2573 41F]ILHLGKGIHGJFNFMHLLKUJ[ RLLLUK[ RVFTHRLOUMYK[ RVFUHTLSUR[ RTLTU +S[ R`F^G\IZLWUUYS[ + 2574 52H\PKOLMLLKLIMGOFQFSGTITLSPQUOXMZJ[H[GZGXHWIXHY RQFRGSISLRPPUNXLZ +J[ R]G\H]I^H^G]F[FYGWIULSPRURXSZT[U[WZYX + 2575 42G]JJLGNFOFQGQIOOORPT ROFPGPINONRPTRTUSWQYNZL R\FZLWTUX R]F[LYQWU +UXSZP[L[JZIXIWJVKWJX + 2576 44G\ZHYJWOVRUTSWQYOZL[ RSLRNPONOMMMKNIPGSF]F[GZHYKXOVUTXQZL[H[GZGX +HWJWLXOZQ[T[WZYX RVFZG[G + 2223 12KYOBOb RPBPb ROBVB RObVb + 804 3KYKFY^ + 2224 12KYTBTb RUBUb RNBUB RNbUb + 2262 11JZPLRITL RMORJWO RRJR[ + 999 3JZJ]Z] + 2766 8MXVFTHSJSKTLUKTJ + 2651 33K[UUTSRRPRNSMTLVLXMZO[Q[SZTX RPRNTMVMYO[ RVRTXTZV[XZYY[V RWRUXUZ +V[ + 2652 23LZLVNSPO RSFMXMZO[P[RZTXUUURVVWWXWZV RTFNXNZO[ + 2653 22LXTSSTTTTSSRQROSNTMVMXNZP[S[VYXV RQROTNVNYP[ + 2654 33K[UUTSRRPRNSMTLVLXMZO[Q[SZTX RPRNTMVMYO[ RZFTXTZV[XZYY[V R[FUXUZ +V[ + 2655 23LXOYQXRWSUSSRRQROSNTMVMXNZP[S[VYXV RQROTNVNYP[ + 2656 27OXRRUOWLXIXGWFUGTIKdKfLgNfOcPZQ[S[UZVYXV RTISNRRO[M`Kd + 2657 38K[UUTSRRPRNSMTLVLXMZO[Q[SZTX RPRNTMVMYO[ RVRPd RWRT[R`PdOfMgLfLd +MaO_R]V[YY[V + 2658 30L[LVNSPO RSFL[ RTFM[ ROUQSSRTRVSVUUXUZV[ RTRUSUUTXTZV[XZYY[V + 2659 19NVSLRMSNTMSL RQROXOZQ[SZTYVV RRRPXPZQ[ + 2660 24NVSLRMSNTMSL RQRKd RRRO[M`KdJfHgGfGdHaJ_M]Q[TYVV + 2661 31LZLVNSPO RSFL[ RTFM[ RURUSVSURTRRTOU ROURVSZT[ ROUQVRZT[U[XYZV + 2662 17NVNVPSRO RUFOXOZQ[SZTYVV RVFPXPZQ[ + 2663 45E^EVGSIRKSKUI[ RIRJSJUH[ RKUMSORPRRSRUP[ RPRQSQUO[ RRUTSVRWRYSYU +XXXZY[ RWRXSXUWXWZY[[Z\Y^V + 2664 32I[IVKSMROSOUM[ RMRNSNUL[ ROUQSSRTRVSVUUXUZV[ RTRUSUUTXTZV[XZYY[V + 2665 29KYRRPRNSMTLVLXMZO[Q[SZTYUWUUTSRRQSQURWTXVXXWYV RPRNTMVMYO[ + 2666 30L[LVNSPO RQLHg RRLIg ROUQSSRTRVSVUUXUZV[ RTRUSUUTXTZV[XZYY[V + 2667 35K[UUTSRRPRNSMTLVLXMZO[Q[SZ RPRNTMVMYO[ RVRPdPfQgSfTcT[V[YY[V RWR +T[R`Pd + 2668 24LZLVNSPRRSRUP[ RPRQSQUO[ RRUTSVRWRVU RVRVUWWXWZV + 2669 22NZNVPSQQQSTUUWUYTZR[ RQSSUTWTYR[ RNZP[U[XYZV + 2670 20NVNVPSRO RUFOXOZQ[SZTYVV RVFPXPZQ[ RPNVN + 2671 27K[NRLXLZN[O[QZSXUU RORMXMZN[ RVRTXTZV[XZYY[V RWRUXUZV[ + 2672 23KZNRMTLWLZN[O[RZTXUUUR RORNTMWMZN[ RURVVWWXWZV + 2673 36H]LRJTIWIZK[L[NZPX RMRKTJWJZK[ RRRPXPZR[S[UZWXXUXR RSRQXQZR[ RXR +YVZW[W]V + 2674 42JZJVLSNRPRQSQUPXOZM[L[KZKYLYKZ RWSVTWTWSVRURSSRUQXQZR[U[XYZV RQS +RU RSSQU RPXQZ RQXOZ + 2675 32K[NRLXLZN[O[QZSXUU RORMXMZN[ RVRPd RWRT[R`PdOfMgLfLdMaO_R]V[YY[V + 2676 38LYLVNSPRRRTSTVSXPZN[ RRRSSSVRXPZ RN[P\Q^QaPdNfLgKfKdLaO^R\VYYV R +N[O\P^PaOdNf + 2225 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb + 2229 3NVRBRb + 2226 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb + 2246 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O + 2779 14KZSFQGPIPKQMSNUNWMXKXIWGUFSF diff --git a/examples/badger2040/hershey_font_converter/fonts/scripts.jhf b/examples/badger2040/hershey_font_converter/fonts/scripts.jhf new file mode 100644 index 00000000..531edf88 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/scripts.jhf @@ -0,0 +1,121 @@ + 699 1JZ + 2764 17MXUFTGRS RUGRS RUFVGRS RPYOZP[QZPY + 2778 12I[PFNM RQFNM RYFWM RZFWM + 733 12H]SBLb RYBRb RLOZO RKUYU + 2769 41H]TBL_ RYBQ_ RZJYKZL[K[JZHYGVFRFOGMIMKNMONVRXT RMKOMVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW + 2271 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT + 2768 55E_\N[O\P]O]N\M[MYNWPRXPZN[K[HZGXGVHTISKRPPROTMUKUITGRFPGOIOLPRQU +SXUZW[Y[ZYZX RK[IZHXHVITJSPP ROLPQQTSWUYWZYZZY + 2767 8MXUHTGUFVGVHUJSL + 2771 20KZZBVESHQKOONTNXO]P`Qb RVESIQMPPOUOZP_Qb + 2772 20JYSBTDUGVLVPUUSYQ\N_Jb RSBTEUJUOTTSWQ[N_ + 2773 9J[TFTR ROIYO RYIOO + 725 6E_RIR[ RIR[R + 2761 8MXP[OZPYQZQ[P]N_ + 724 3E_IR[R + 710 6MWRYQZR[SZRY + 2770 3G]_BEb + 2750 42H]TFQGOIMLLOKSKVLYMZO[Q[TZVXXUYRZNZKYHXGVFTF RTFRGPINLMOLSLVMYO[ + RQ[SZUXWUXRYNYKXHVF + 2751 15H]TJO[ RVFP[ RVFSIPKNL RUIQKNL + 2752 42H]OJPKOLNKNJOHPGSFVFYGZIZKYMWOTQPSMUKWI[ RVFXGYIYKXMVOPS RJYKXMX +RZUZWYXW RMXR[U[WZXW + 2753 50H]OJPKOLNKNJOHPGSFVFYGZIZKYMVOSP RVFXGYIYKXMVO RQPSPVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW RSPUQVRWTWWVYUZS[ + 2754 10H]XGR[ RYFS[ RYFJUZU + 2755 39H]QFLP RQF[F RQGVG[F RLPMOPNSNVOWPXRXUWXUZR[O[LZKYJWJVKULVKW RSN +UOVPWRWUVXTZR[ + 2756 46H]YIXJYKZJZIYGWFTFQGOIMLLOKSKWLYMZO[R[UZWXXVXSWQVPTOQOOPMRLT RTF +RGPINLMOLSLXMZ RR[TZVXWVWRVP + 2757 30H]NFLL R[FZIXLSRQUPWO[ RXLRRPUOWN[ RMIPFRFWI RNHPGRGWIYIZH[F + 2758 63H]SFPGOHNJNMOOQPTPXOYNZLZIYGVFSF RSFQGPHOJOMPOQP RTPWOXNYLYIXGVF + RQPMQKSJUJXKZN[R[VZWYXWXTWRVQTP RQPNQLSKUKXLZN[ RR[UZVYWWWSVQ + 2759 46H]YMXOVQTRQROQNPMNMKNIPGSFVFXGYHZJZNYRXUVXTZQ[N[LZKXKWLVMWLX ROQ +NONKOIQGSF RXGYIYNXRWUUXSZQ[ + 2762 11MXSMRNSOTNSM RPYOZP[QZ + 2763 14MXSMRNSOTNSM RP[OZPYQZQ[P]N_ + 2241 4F^ZIJRZ[ + 726 6E_IO[O RIU[U + 2242 4F^JIZRJ[ + 2765 34H]OJPKOLNKNJOHPGSFWFZG[I[KZMYNSPQQQSRTTT RWFYGZIZKYMXNVO RPYOZP[ +QZPY + 2273 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV + 551 20G[G[IZLWOSSLVFV[UXSUQSNQLQKRKTLVNXQZT[Y[ + 552 41F]SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFXFZG[I[KZMYNWOTP RSPTPWQ +XRYTYWXYWZU[R[PZOX + 553 24H\TLTMUNWNYMZKZIYGWFTFQGOIMLLNKRKVLYMZO[Q[TZVXWV + 554 35G^TFRGQIPMOSNVMXKZI[G[FZFXGWIWKXMZP[S[VZXXZT[O[KZHYGWFTFRHRJSMUP +WRZT\U + 555 28H\VJVKWLYLZKZIYGVFRFOGNINLONPOSPPPMQLRKTKWLYMZP[S[VZXXYV + 556 28H\RLPLNKMINGQFTFXG[G]F RXGVNTTRXPZN[L[JZIXIVJULUNV RQPZP + 557 29G^G[IZMVPQQNRJRGQFPFOGNINLONQOUOXNYMZKZQYVXXVZS[O[LZJXIVIT + 558 38F^MMKLJJJIKGMFNFPGQIQKPONULYJ[H[GZGX RMRVOXN[L]J^H^G]F\FZHXLVRUW +UZV[W[YZZY\V + 559 25IZWVUTSQROQLQIRGSFUFVGWIWLVQTVSXQZO[M[KZJXJVKUMUOV + 560 25JYT^R[PVOPOJPGRFTFUGVJVMURR[PaOdNfLgKfKdLaN^P\SZWX + 561 39F^MMKLJJJIKGMFNFPGQIQKPONULYJ[H[GZGX R^I^G]F\FZGXIVLTNROPO RROSQ +SXTZU[V[XZYY[V + 562 29I\MRORSQVOXMYKYHXFVFUGTISNRSQVPXNZL[J[IZIXJWLWNXQZT[V[YZ[X + 563 45@aEMCLBJBICGEFFFHGIIIKHPGTE[ RGTJLLHMGOFPFRGSISKRPQTO[ RQTTLVHWG +YFZF\G]I]K\PZWZZ[[\[^Z_YaV + 564 32E]JMHLGJGIHGJFKFMGNINKMPLTJ[ RLTOLQHRGTFVFXGYIYKXPVWVZW[X[ZZ[Y]V + 565 29H]TFQGOIMLLNKRKVLYMZO[Q[TZVXXUYSZOZKYHXGVFTFRHRKSNUQWSZU\V + 566 31F_SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFZF\G]H^J^M]O\PZQWQUPTO + 567 32H^ULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWSSWPYNZK[I[HZHXIWKWMXPZS[V[YZ[X + 568 38F_SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFYF[G\H]J]M\O[PYQVQSPTQUS +UXVZX[ZZ[Y]V + 569 28H\H[JZLXOTQQSMTJTGSFRFQGPIPKQMSOVQXSYUYWXYWZT[P[MZKXJVJT + 570 25H[RLPLNKMINGQFTFXG[G]F RXGVNTTRXPZN[L[JZIXIVJULUNV + 571 33E]JMHLGJGIHGJFKFMGNINKMOLRKVKXLZN[P[RZSYUUXMZF RXMWQVWVZW[X[ZZ[Y +]V + 572 32F]KMILHJHIIGKFLFNGOIOKNOMRLVLYM[O[QZTWVTXPYMZIZGYFXFWGVIVKWNYP[Q + 573 25C_HMFLEJEIFGHFIFKGLILLK[ RUFK[ RUFS[ RaF_G\JYNVTS[ + 574 36F^NLLLKKKILGNFPFRGSISLQUQXRZT[V[XZYXYVXUVU R]I]G\FZFXGVITLPUNXLZ +J[H[GZGX + 575 38F]KMILHJHIIGKFLFNGOIOKNOMRLVLXMZN[P[RZTXVUWSYM R[FYMVWT]RbPfNgMf +MdNaP^S[VY[V + 576 40H]ULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWTTWPZN[K[JZJXKWNWPXQYR[R^QaPcNf +LgKfKdLaN^Q[TYZV + 2223 12KYOBOb RPBPb ROBVB RObVb + 804 3KYKFY^ + 2224 12KYTBTb RUBUb RNBUB RNbUb + 2262 11JZPLRITL RMORJWO RRJR[ + 999 3JZJ]Z] + 2766 8MXVFTHSJSKTLUKTJ + 651 22L\UUTSRRPRNSMTLVLXMZO[Q[SZTXVRUWUZV[W[YZZY\V + 652 23M[MVOSRNSLTITGSFQGPIOMNTNZO[P[RZTXUUURVVWWYW[V + 653 14MXTTTSSRQROSNTMVMXNZP[S[VYXV + 654 24L\UUTSRRPRNSMTLVLXMZO[Q[SZTXZF RVRUWUZV[W[YZZY\V + 655 17NXOYQXRWSUSSRRQROSNUNXOZQ[S[UZVYXV + 656 24OWOVSQUNVLWIWGVFTGSIQQNZKaJdJfKgMfNcOZP[R[TZUYWV + 657 28L[UUTSRRPRNSMTLVLXMZO[Q[SZTY RVRTYPdOfMgLfLdMaP^S\U[XY[V + 658 29M\MVOSRNSLTITGSFQGPIOMNSM[ RM[NXOVQSSRURVSVUUXUZV[W[YZZY\V + 659 16PWSMSNTNTMSM RPVRRPXPZQ[R[TZUYWV + 660 20PWSMSNTNTMSM RPVRRLdKfIgHfHdIaL^O\Q[TYWV + 661 33M[MVOSRNSLTITGSFQGPIOMNSM[ RM[NXOVQSSRURVSVUTVQV RQVSWTZU[V[XZYY +[V + 662 18OWOVQSTNULVIVGUFSGRIQMPTPZQ[R[TZUYWV + 663 33E^EVGSIRJSJTIXH[ RIXJVLSNRPRQSQTPXO[ RPXQVSSURWRXSXUWXWZX[Y[[Z\Y +^V + 664 23J\JVLSNROSOTNXM[ RNXOVQSSRURVSVUUXUZV[W[YZZY\V + 665 23LZRRPRNSMTLVLXMZO[Q[SZTYUWUUTSRRQSQURWTXWXYWZV + 666 24KZKVMSNQMUGg RMUNSPRRRTSUUUWTYSZQ[ RMZO[R[UZWYZV + 667 27L[UUTSRRPRNSMTLVLXMZO[Q[SZ RVRUUSZPaOdOfPgRfScS\U[XY[V + 668 15MZMVOSPQPSSSTTTVSYSZT[U[WZXYZV + 669 16NYNVPSQQQSSVTXTZR[ RNZP[T[VZWYYV + 670 16OXOVQSSO RVFPXPZQ[S[UZVYXV RPNWN + 671 19L[LVNRLXLZM[O[QZSXUU RVRTXTZU[V[XZYY[V + 672 17L[LVNRMWMZN[O[RZTXUUUR RURVVWWYW[V + 673 25I^LRJTIWIYJ[L[NZPX RRRPXPZQ[S[UZWXXUXR RXRYVZW\W^V + 674 20JZJVLSNRPRQSQZR[U[XYZV RWSVRTRSSOZN[L[KZ + 675 23L[LVNRLXLZM[O[QZSXUU RVRPdOfMgLfLdMaP^S\U[XY[V + 676 23LZLVNSPRRRTTTVSXQZN[P\Q^QaPdOfMgLfLdMaP^S\WYZV + 2225 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb + 723 3NVRBRb + 2226 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb + 2246 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O + 718 14KYQFOGNINKOMQNSNUMVKVIUGSFQF \ No newline at end of file diff --git a/examples/badger2040/hershey_font_converter/fonts/timesi.jhf b/examples/badger2040/hershey_font_converter/fonts/timesi.jhf new file mode 100644 index 00000000..b286daf0 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/timesi.jhf @@ -0,0 +1,131 @@ +12345 1JZ +12345 17MXUFTGRS RUGRS RUFVGRS RPYOZP[QZPY +12345 12I[PFNM RQFNM RYFWM RZFWM +12345 12H]SBLb RYBRb RLOZO RKUYU +12345 41H]TBL_ RYBQ_ RZJYKZL[K[JZHYGVFRFOGMIMKNMONVRXT RMKOMVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW +12345 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT +12345 49F_[NZO[P\O\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZ +Z[[[\Z\Y RM[KZJXJUKSMQ RMKNMVXXZZ[ +12345 6NWUFSM RVFSM +12345 20KZZBVESHQKOONTNXO]P`Qb RVESIQMPPOUOZP_Qb +12345 20JYSBTDUGVLVPUUSYQ\N_Jb RSBTEUJUOTTSWQ[N_ +12345 9JZRLRX RMOWU RWOMU +12345 6E_RIR[ RIR[R +12345 8MXP[OZPYQZQ[P]N_ +12345 3E_IR[R +12345 6MXPYOZP[QZPY +12345 3G][BIb +12345 42H]TFQGOIMLLOKSKVLYMZO[Q[TZVXXUYRZNZKYHXGVFTF RTFRGPINLMOLSLVMYO[ + RQ[SZUXWUXRYNYKXHVF +12345 15H]TJO[ RVFP[ RVFSIPKNL RUIQKNL +12345 42H]OJPKOLNKNJOHPGSFVFYGZIZKYMWOTQPSMUKWI[ RVFXGYIYKXMVOPS RJYKXMX +RZUZWYXW RMXR[U[WZXW +12345 50H]OJPKOLNKNJOHPGSFVFYGZIZKYMVOSP RVFXGYIYKXMVO RQPSPVQWRXTXWWYVZ +S[O[LZKYJWJVKULVKW RSPUQVRWTWWVYUZS[ +12345 10H]XGR[ RYFS[ RYFJUZU +12345 39H]QFLP RQF[F RQGVG[F RLPMOPNSNVOWPXRXUWXUZR[O[LZKYJWJVKULVKW RSN +UOVPWRWUVXTZR[ +12345 46H]YIXJYKZJZIYGWFTFQGOIMLLOKSKWLYMZO[R[UZWXXVXSWQVPTOQOOPMRLT RTF +RGPINLMOLSLXMZ RR[TZVXWVWRVP +12345 30H]NFLL R[FZIXLSRQUPWO[ RXLRRPUOWN[ RMIPFRFWI RNHPGRGWIYIZH[F +12345 63H]SFPGOHNJNMOOQPTPXOYNZLZIYGVFSF RSFQGPHOJOMPOQP RTPWOXNYLYIXGVF + RQPMQKSJUJXKZN[R[VZWYXWXTWRVQTP RQPNQLSKUKXLZN[ RR[UZVYWWWSVQ +12345 46H]YMXOVQTRQROQNPMNMKNIPGSFVFXGYHZJZNYRXUVXTZQ[N[LZKXKWLVMWLX ROQ +NONKOIQGSF RXGYIYNXRWUUXSZQ[ +12345 11MXSMRNSOTNSM RPYOZP[QZ +12345 14MXSMRNSOTNSM RP[OZPYQZQ[P]N_ +12345 4F^ZIJRZ[ +12345 6E_IO[O RIU[U +12345 4F^JIZRJ[ +12345 34H]OJPKOLNKNJOHPGSFWFZG[I[KZMYNSPQQQSRTTT RWFYGZIZKYMXNVO RPYOZP[ +QZPY +12345 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV +12345 18H\UFH[ RUFV[ RTHU[ RLUUU RF[L[ RR[X[ +12345 41F^OFI[ RPFJ[ RLFWFZG[I[KZNYOVP RWFYGZIZKYNXOVP RMPVPXQYSYUXXVZR[ +F[ RVPWQXSXUWXUZR[ +12345 34H]ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[S[UZWXXV RTFRGPINLMOLSLVMY +NZP[ +12345 30F]OFI[ RPFJ[ RLFUFXGYHZKZOYSWWUYSZO[F[ RUFWGXHYKYOXSVWTYRZO[ +12345 22F]OFI[ RPFJ[ RTLRT RLF[FZLZF RMPSP RF[U[WVT[ +12345 20F\OFI[ RPFJ[ RTLRT RLF[FZLZF RMPSP RF[M[ +12345 42H^ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[R[UZWXYT RTFRGPINLMOLSLVMY +NZP[ RR[TZVXXT RUT\T +12345 27E_NFH[ ROFI[ R[FU[ R\FV[ RKFRF RXF_F RLPXP RE[L[ RR[Y[ +12345 12LYUFO[ RVFP[ RRFYF RL[S[ +12345 21I[XFSWRYQZO[M[KZJXJVKULVKW RWFRWQYO[ RTF[F +12345 27F]OFI[ RPFJ[ R]FLS RSOW[ RROV[ RLFSF RYF_F RF[M[ RS[Y[ +12345 14H\QFK[ RRFL[ RNFUF RH[W[YUV[ +12345 30E`NFH[ RNFO[ ROFPY R\FO[ R\FV[ R]FW[ RKFOF R\F`F RE[K[ RS[Z[ +12345 21F_OFI[ ROFVX ROIV[ R\FV[ RLFOF RYF_F RF[L[ +12345 42G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF RSFQGOIMLLOKSKVLYN[ + RQ[SZUXWUXRYNYKXHVF +12345 27F]OFI[ RPFJ[ RLFXF[G\I\K[NYPUQMQ RXFZG[I[KZNXPUQ RF[M[ +12345 61G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF RSFQGOIMLLOKSKVLYN[ + RQ[SZUXWUXRYNYKXHVF RLYLXMVOUPURVSXS_T`V`W^W] RSXT^U_V_W^ +12345 42F^OFI[ RPFJ[ RLFWFZG[I[KZNYOVPMP RWFYGZIZKYNXOVP RRPTQURVZW[Y[ZY +ZX RURWYXZYZZY RF[M[ +12345 35G^ZH[H\F[L[JZHYGVFRFOGMIMKNMONVRXT RMKOMVQWRXTXWWYVZS[O[LZKYJWJU +I[JYKY +12345 16H]UFO[ RVFP[ ROFLLNF]F\L\F RL[S[ +12345 25F_NFKQJUJXKZN[R[UZWXXU\F ROFLQKUKXLZN[ RKFRF RYF_F +12345 15H\NFO[ ROFPY R\FO[ RLFRF RXF^F +12345 24E_MFK[ RNFLY RUFK[ RUFS[ RVFTY R]FS[ RJFQF RZF`F +12345 21G]NFU[ ROFV[ R\FH[ RLFRF RXF^F RF[L[ RR[X[ +12345 20H]NFRPO[ ROFSPP[ R]FSP RLFRF RYF_F RL[S[ +12345 16G][FH[ R\FI[ ROFLLNF\F RH[V[XUU[ +12345 12KYOBOb RPBPb ROBVB RObVb +12345 3KYKFY^ +12345 12KYTBTb RUBUb RNBUB RNbUb +12345 8G]JTROZT RJTRPZT +12345 3H\Hb\b +12345 7LXPFUL RPFOGUL +12345 39H]XMVTUXUZV[Y[[Y\W RYMWTVXVZW[ RVTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT + RQMONMQLTLXMZ +12345 36H[PFLSLVMYNZ RQFMS RMSNPPNRMTMVNWOXQXTWWUZR[P[NZMWMS RVNWPWTVWTZ +R[ RMFQF +12345 25I[WPWQXQXPWNUMRMONMQLTLWMYNZP[R[UZWW RRMPNNQMTMXNZ +12345 42H]ZFVTUXUZV[Y[[Y\W R[FWTVXVZW[ RVTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT + RQMONMQLTLXMZ RWF[F +12345 26I[MVQUTTWRXPWNUMRMONMQLTLWMYNZP[R[UZWX RRMPNNQMTMXNZ +12345 35KZZGYHZI[H[GZFXFVGUHTJSMP[O_Na RXFVHUJTNRWQ[P^O`NaLbJbIaI`J_K`Ja + ROMYM +12345 43H\YMU[T^RaObLbJaI`I_J^K_J` RXMT[S^QaOb RVTVQUNSMQMNNLQKTKWLYMZO[ +Q[SZUWVT RQMONMQLTLXMZ +12345 31H]PFJ[ RQFK[ RMTOPQNSMUMWNXOXQVWVZW[ RUMWOWQUWUZV[Y[[Y\W RMFQF +12345 26LYUFTGUHVGUF RMQNOPMSMTNTQRWRZS[ RRMSNSQQWQZR[U[WYXW +12345 32LYVFUGVHWGVF RNQOOQMTMUNUQR[Q^P`OaMbKbJaJ`K_L`Ka RSMTNTQQ[P^O`Mb +12345 34H\PFJ[ RQFK[ RXNWOXPYOYNXMWMUNQROSMS ROSQTSZT[ ROSPTRZS[U[WZYW R +MFQF +12345 18MYUFQTPXPZQ[T[VYWW RVFRTQXQZR[ RRFVF +12345 52AbBQCOEMHMINIPHTF[ RGMHNHPGTE[ RHTJPLNNMPMRNSOSQP[ RPMRORQO[ RRT +TPVNXMZM\N]O]Q[W[Z\[ RZM\O\QZWZZ[[^[`YaW +12345 37F]GQHOJMMMNNNPMTK[ RLMMNMPLTJ[ RMTOPQNSMUMWNXOXQVWVZW[ RUMWOWQUW +UZV[Y[[Y\W +12345 32I[RMONMQLTLWMYNZP[R[UZWWXTXQWOVNTMRM RRMPNNQMTMXNZ RR[TZVWWTWPVN +12345 42G\HQIOKMNMONOPNTJb RMMNNNPMTIb RNTOQQNSMUMWNXOYQYTXWVZS[Q[OZNWNT + RWNXPXTWWUZS[ RFbMb +12345 33H\XMRb RYMSb RVTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT RQMONMQLTLXMZ ROb +Vb +12345 26IZJQKOMMPMQNQPPTN[ ROMPNPPOTM[ RPTRPTNVMXMYNYOXPWOXN +12345 28J[XOXPYPYOXNUMRMONNONQORVVWW RNPOQVUWVWYVZS[P[MZLYLXMXMY +12345 18KYTFPTOXOZP[S[UYVW RUFQTPXPZQ[ RNMWM +12345 37F]GQHOJMMMNNNQLWLYN[ RLMMNMQKWKYLZN[P[RZTXVT RXMVTUXUZV[Y[[Y\W R +YMWTVXVZW[ +12345 26H\IQJOLMOMPNPQNWNYP[ RNMONOQMWMYNZP[Q[TZVXXUYQYMXMYO +12345 41C`DQEOGMJMKNKQIWIYK[ RIMJNJQHWHYIZK[M[OZQXRV RTMRVRYSZU[W[YZ[X\V +]R]M\M]O RUMSVSYU[ +12345 42H\KQMNOMRMSOSR RQMRORRQVPXNZL[K[JZJYKXLYKZ RQVQYR[U[WZYW RYNXOYP +ZOZNYMXMVNTPSRRVRYS[ +12345 41G\HQIOKMNMONOQMWMYO[ RMMNNNQLWLYMZO[Q[SZUXWT RZMV[U^SaPbMbKaJ`J_ +K^L_K` RYMU[T^RaPb +12345 31H\YMXOVQNWLYK[ RLQMOOMRMVO RMOONRNVOXO RLYNYRZUZWY RNYR[U[WYXW +12345 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb +12345 3NVRBRb +12345 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb +12345 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O +12345 35JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[ +YFZFZ[ diff --git a/examples/badger2040/hershey_font_converter/fonts/timesr.jhf b/examples/badger2040/hershey_font_converter/fonts/timesr.jhf new file mode 100644 index 00000000..2c36dbc1 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/timesr.jhf @@ -0,0 +1,123 @@ +12345 1JZ +12345 15MWRFQHRTSHRF RRHRN RRYQZR[SZRY +12345 22I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM +12345 12H]SBLb RYBRb RLOZO RKUYU +12345 42H\PBP_ RTBT_ RXIWJXKYJYIWGTFPFMGKIKKLMMNOOUQWRYT RKKMMONUPWQXRYT +YXWZT[P[MZKXKWLVMWLX +12345 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT +12345 49F_[NZO[P\O\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZ +Z[[[\Z\Y RM[KZJXJUKSMQ RMKNMVXXZZ[ +12345 6NVRFQM RSFQM +12345 20KYVBTDRGPKOPOTPYR]T`Vb RTDRHQKPPPTQYR\T` +12345 20KYNBPDRGTKUPUTTYR]P`Nb RPDRHSKTPTTSYR\P` +12345 9JZRLRX RMOWU RWOMU +12345 6E_RIR[ RIR[R +12345 8NVSWRXQWRVSWSYQ[ +12345 3E_IR[R +12345 6NVRVQWRXSWRV +12345 3G][BIb +12345 40H\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF RQFOGNHMJLOLRMWNYOZQ[ RS[UZ +VYWWXRXOWJVHUGSF +12345 11H\NJPISFS[ RRGR[ RN[W[ +12345 45H\LJMKLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ RTFVGWHXJXLWNTPPR RKY +LXNXSZVZXYYX RNXS[W[XZYXYV +12345 47H\LJMKLLKKKJLHMGPFTFWGXIXLWNTOQO RTFVGWIWLVNTO RTOVPXRYTYWXYWZT[ +P[MZLYKWKVLUMVLW RWQXTXWWYVZT[ +12345 13H\THT[ RUFU[ RUFJUZU RQ[X[ +12345 39H\MFKP RKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMVLW RSMUNWPXSXUWXUZS[ + RMFWF RMGRGWF +12345 48H\WIVJWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNRNOOMQLT RRFPG +NIMKLOLUMXOZQ[ RS[UZWXXUXTWQUOSN +12345 31H\KFKL RKJLHNFPFUIWIXHYF RLHNGPGUI RYFYIXLTQSSRVR[ RXLSQRSQVQ[ +12345 63H\PFMGLILLMNPOTOWNXLXIWGTFPF RPFNGMIMLNNPO RTOVNWLWIVGTF RPOMPLQ +KSKWLYMZP[T[WZXYYWYSXQWPTO RPONPMQLSLWMYNZP[ RT[VZWYXWXSWQVPTO +12345 48H\XMWPURRSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNWMX RQSOR +MPLMLLMIOGQF RSFUGWIXLXRWVVXTZR[ +12345 12NVROQPRQSPRO RRVQWRXSWRV +12345 14NVROQPRQSPRO RSWRXQWRVSWSYQ[ +12345 4F^ZIJRZ[ +12345 6E_IO[O RIU[U +12345 4F^JIZRJ[ +12345 32I[MJNKMLLKLJMHNGPFSFVGWHXJXLWNVORQRT RSFUGVHWJWLVNTP RRYQZR[SZRY +12345 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV +12345 18H\RFK[ RRFY[ RRIX[ RMUVU RI[O[ RU[[[ +12345 45G]LFL[ RMFM[ RIFUFXGYHZJZLYNXOUP RUFWGXHYJYLXNWOUP RMPUPXQYRZTZW +YYXZU[I[ RUPWQXRYTYWXYWZU[ +12345 32G\XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXXYV RQFOGMILKKNKSLVMXOZQ[ +12345 30G]LFL[ RMFM[ RIFSFVGXIYKZNZSYVXXVZS[I[ RSFUGWIXKYNYSXVWXUZS[ +12345 22G\LFL[ RMFM[ RSLST RIFYFYLXF RMPSP RI[Y[YUX[ +12345 20G[LFL[ RMFM[ RSLST RIFYFYLXF RMPSP RI[P[ +12345 40G^XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXX RQFOGMILKKNKSLVMXOZQ[ R +XSX[ RYSY[ RUS\S +12345 27F^KFK[ RLFL[ RXFX[ RYFY[ RHFOF RUF\F RLPXP RH[O[ RU[\[ +12345 12MXRFR[ RSFS[ ROFVF RO[V[ +12345 20KZUFUWTZR[P[NZMXMVNUOVNW RTFTWSZR[ RQFXF +12345 27F\KFK[ RLFL[ RYFLS RQOY[ RPOX[ RHFOF RUF[F RH[O[ RU[[[ +12345 14I[NFN[ ROFO[ RKFRF RK[Z[ZUY[ +12345 30F_KFK[ RLFRX RKFR[ RYFR[ RYFY[ RZFZ[ RHFLF RYF]F RH[N[ RV[][ +12345 21G^LFL[ RMFYY RMHY[ RYFY[ RIFMF RVF\F RI[O[ +12345 44G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RQFOGMILKKOKRLVMXOZ +Q[ RS[UZWXXVYRYOXKWIUGSF +12345 29G]LFL[ RMFM[ RIFUFXGYHZJZMYOXPUQMQ RUFWGXHYJYMXOWPUQ RI[P[ +12345 64G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RQFOGMILKKOKRLVMXOZ +Q[ RS[UZWXXVYRYOXKWIUGSF RNYNXOVQURUTVUXV_W`Y`Z^Z] RUXV\W^X_Y_Z^ +12345 45G]LFL[ RMFM[ RIFUFXGYHZJZLYNXOUPMP RUFWGXHYJYLXNWOUP RI[P[ RRPTQ +URXYYZZZ[Y RTQUSWZX[Z[[Y[X +12345 34H\XIYFYLXIVGSFPFMGKIKKLMMNOOUQWRYT RKKMMONUPWQXRYTYXWZT[Q[NZLXKU +K[LX +12345 16I\RFR[ RSFS[ RLFKLKFZFZLYF RO[V[ +12345 23F^KFKULXNZQ[S[VZXXYUYF RLFLUMXOZQ[ RHFOF RVF\F +12345 15H\KFR[ RLFRX RYFR[ RIFOF RUF[F +12345 24F^JFN[ RKFNV RRFN[ RRFV[ RSFVV RZFV[ RGFNF RWF]F +12345 21H\KFX[ RLFY[ RYFK[ RIFOF RUF[F RI[O[ RU[[[ +12345 20H]KFRQR[ RLFSQS[ RZFSQ RIFOF RVF\F RO[V[ +12345 16H\XFK[ RYFL[ RLFKLKFYF RK[Y[YUX[ +12345 12KYOBOb RPBPb ROBVB RObVb +12345 3KYKFY^ +12345 12KYTBTb RUBUb RNBUB RNbUb +12345 8G]JTROZT RJTRPZT +12345 3H\Hb\b +12345 7LXPFUL RPFOGUL +12345 39I]NONPMPMONNPMTMVNWOXQXXYZZ[ RWOWXXZZ[[[ RWQVRPSMTLVLXMZP[S[UZWX + RPSNTMVMXNZP[ +12345 33G\LFL[ RMFM[ RMPONQMSMVNXPYSYUXXVZS[Q[OZMX RSMUNWPXSXUWXUZS[ RIF +MF +12345 28H[WPVQWRXQXPVNTMQMNNLPKSKULXNZQ[S[VZXX RQMONMPLSLUMXOZQ[ +12345 36H]WFW[ RXFX[ RWPUNSMQMNNLPKSKULXNZQ[S[UZWX RQMONMPLSLUMXOZQ[ RTF +XF RW[[[ +12345 31H[LSXSXQWOVNTMQMNNLPKSKULXNZQ[S[VZXX RWSWPVN RQMONMPLSLUMXOZQ[ +12345 22KXUGTHUIVHVGUFSFQGPIP[ RSFRGQIQ[ RMMUM RM[T[ +12345 60I\QMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM RONNPNTOV RUVVTVPUN RVOWNYM +YNWN RNUMVLXLYM[P\U\X]Y^ RLYMZP[U[X\Y^Y_XaUbObLaK_K^L\O[ +12345 28G]LFL[ RMFM[ RMPONRMTMWNXPX[ RTMVNWPW[ RIFMF RI[P[ RT[[[ +12345 18MXRFQGRHSGRF RRMR[ RSMS[ ROMSM RO[V[ +12345 25MXSFRGSHTGSF RTMT_SaQbObNaN`O_P`Oa RSMS_RaQb RPMTM +12345 27G\LFL[ RMFM[ RWMMW RRSX[ RQSW[ RIFMF RTMZM RI[P[ RT[Z[ +12345 12MXRFR[ RSFS[ ROFSF RO[V[ +12345 44BcGMG[ RHMH[ RHPJNMMOMRNSPS[ ROMQNRPR[ RSPUNXMZM]N^P^[ RZM\N]P][ + RDMHM RD[K[ RO[V[ RZ[a[ +12345 28G]LML[ RMMM[ RMPONRMTMWNXPX[ RTMVNWPW[ RIMMM RI[P[ RT[[[ +12345 36H\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM RQMONMPLSLUMXOZQ[ RS[UZWXXU +XSWPUNSM +12345 36G\LMLb RMMMb RMPONQMSMVNXPYSYUXXVZS[Q[OZMX RSMUNWPXSXUWXUZS[ RIM +MM RIbPb +12345 33H\WMWb RXMXb RWPUNSMQMNNLPKSKULXNZQ[S[UZWX RQMONMPLSLUMXOZQ[ RTb +[b +12345 23IZNMN[ ROMO[ ROSPPRNTMWMXNXOWPVOWN RKMOM RK[R[ +12345 32J[WOXMXQWOVNTMPMNNMOMQNRPSUUWVXW RMPNQPRUTWUXVXYWZU[Q[OZNYMWM[NY +12345 16KZPFPWQZS[U[WZXX RQFQWRZS[ RMMUM +12345 28G]LMLXMZP[R[UZWX RMMMXNZP[ RWMW[ RXMX[ RIMMM RTMXM RW[[[ +12345 15I[LMR[ RMMRY RXMR[ RJMPM RTMZM +12345 24F^JMN[ RKMNX RRMN[ RRMV[ RSMVX RZMV[ RGMNM RWM]M +12345 21H\LMW[ RMMX[ RXML[ RJMPM RTMZM RJ[P[ RT[Z[ +12345 22H[LMR[ RMMRY RXMR[P_NaLbKbJaK`La RJMPM RTMZM +12345 16I[WML[ RXMM[ RMMLQLMXM RL[X[XWW[ +12345 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb +12345 3NVRBRb +12345 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb +12345 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O +12345 35JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[ +YFZFZ[ diff --git a/examples/badger2040/hershey_font_converter/fonts/timesrb.jhf b/examples/badger2040/hershey_font_converter/fonts/timesrb.jhf new file mode 100644 index 00000000..bc716d44 --- /dev/null +++ b/examples/badger2040/hershey_font_converter/fonts/timesrb.jhf @@ -0,0 +1,177 @@ +12345 1JZ +12345 34MXRFQGQIRQ RRFRTST RRFSFST RSFTGTISQ RRXQYQZR[S[TZTYSXRX RRYRZSZ +SYRY +12345 22I[NFMGMM RNGMM RNFOGMM RWFVGVM RWGVM RWFXGVM +12345 12H]SBLb RYBRb RLOZO RKUYU +12345 56H\PBP_ RTBT_ RXKXJWJWLYLYJXHWGTFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQ +WRXT RMGLILKMMONUPXRYTYWXYWZT[P[MZLYKWKUMUMWLWLV +12345 32F^[FI[ RNFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F RWTUUTWTYV[X[ZZ[X[VYTWT +12345 74E_[O[NZNZP\P\N[MZMYNXPVUTXRZP[L[JZIXIUJSPORMSKSIRGPFNGMIMLNOPRTW +WZY[[[\Y\X RKZJXJUKSLR RRMSI RSKRG RNGMK RNNPQTVWYYZ RN[LZKXKULSPO RMINM +QQUVXYZZ[Z\Y +12345 11NWSFRGRM RSGRM RSFTGRM +12345 27KYUBSDQGOKNPNTOYQ]S`Ub RQHPKOOOUPYQ\ RSDRFQIPOPUQ[R^S` +12345 27KYOBQDSGUKVPVTUYS]Q`Ob RSHTKUOUUTYS\ RQDRFSITOTUS[R^Q` +12345 39JZRFQGSQRR RRFRR RRFSGQQRR RMINIVOWO RMIWO RMIMJWNWO RWIVINOMO R +WIMO RWIWJMNMO +12345 16F_RIRZSZ RRISISZ RJQ[Q[R RJQJR[R +12345 24MXTZS[R[QZQYRXSXTYT\S^Q_ RRYRZSZSYRY RS[T\ RTZS^ +12345 3E_IR[R +12345 16MXRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 8G^[BIbJb R[B\BJb +12345 50H\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF RNHMJLNLSMWNY RVYWWXSXNWJVH + RQFOGNIMNMSNXOZQ[ RS[UZVXWSWNVIUGSF +12345 28H\QHQ[ RRHRZ RSFS[ RSFPINJ RM[W[ RQZO[ RQYP[ RSYT[ RSZU[ +12345 62H\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ RWH +XJXLWN RTFVGWJWLVNTPPR RKYLXNXSYWYYX RNXSZWZXY RNXS[W[XZYXYV +12345 76H\LJLKMKMJLJ RLIMINJNKMLLLKKKJLHMGPFTFWGXIXLWNTO RVGWIWLVN RSFUG +VIVLUNSO RQOTOVPXRYTYWXYWZT[P[MZLYKWKVLUMUNVNWMXLX RWRXTXWWY RSOUPVQWTWW +VZT[ RLVLWMWMVLV +12345 28H\SIS[ RTHTZ RUFU[ RUFJUZU RP[X[ RSZQ[ RSYR[ RUYV[ RUZW[ +12345 55H\MFKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMUNVNWMXLX RWPXRXVWX RSMUN +VOWRWVVYUZS[ RLVLWMWMVLV RMFWF RMGUG RMHQHUGWF +12345 69H\VIVJWJWIVI RWHVHUIUJVKWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQ +VOSNQNOONPMR RNIMKLOLUMXNY RWXXVXSWQ RRFPGOHNJMNMUNXOZQ[ RS[UZVYWVWSVPUO +SN +12345 43H\KFKL RYFYIXLTQSSRWR[ RSRRTQWQ[ RXLSQQTPWP[R[ RKJLHNFPFUIWIXHYF + RMHNGPGRH RKJLINHPHUI +12345 79H\PFMGLILLMNPOTOWNXLXIWGTFPF RNGMIMLNN RVNWLWIVG RPFOGNINLONPO R +TOUNVLVIUGTF RPOMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO RMQLSLWMY RWYXWXSWQ RPONP +MSMWNZP[ RT[VZWWWSVPTO +12345 69H\MWMXNXNWMW RWOVQURSSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLW +MVNVOWOXNYMY RMPLNLKMI RVHWIXLXRWVVX RQSORNQMNMKNHOGQF RSFUGVIWLWSVWUYTZ +R[ +12345 32MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 40MXRMQNQORPSPTOTNSMRM RRNROSOSNRN RTZS[R[QZQYRXSXTYT\S^Q_ RRYRZSZ +SYRY RS[T\ RTZS^ +12345 4F^ZIJRZ[ +12345 16F_JM[M[N RJMJN[N RJU[U[V RJUJV[V +12345 4F^JIZRJ[ +12345 52I\MKMJNJNLLLLJMHNGPFTFWGXHYJYLXNWOSQ RWHXIXMWN RTFVGWIWMVOUP RRQ +RTSTSQRQ RRXQYQZR[S[TZTYSXRX RRYRZSZSYRY +12345 56E`WNVLTKQKOLNMMPMSNUPVSVUUVS RQKOMNPNSOUPV RWKVSVUXVZV\T]Q]O\L[J +YHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX RXKWSWUXV +12345 36H\RFKZ RQIW[ RRIX[ RRFY[ RMUVU RI[O[ RT[[[ RKZJ[ RKZM[ RWZU[ RWY +V[ RXYZ[ +12345 78G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUP RXHYJYLXN RUFWGXIXMWOUP R +NPUPXQYRZTZWYYXZU[I[ RXRYTYWXY RUPWQXSXXWZU[ RJFLG RKFLH ROFNH RPFNG RLZ +J[ RLYK[ RNYO[ RNZP[ +12345 37G\XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXXYV RMILKKNKSLVMX RQFOGMJ +LNLSMWOZQ[ +12345 62G]LFL[ RMGMZ RNFN[ RIFSFVGXIYKZNZSYVXXVZS[I[ RWIXKYNYSXVWX RSFUG +WJXNXSWWUZS[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[ +12345 83G\LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Y[YU RJFLG RKFLH ROFNH + RPFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ + RNZP[ RT[YZ RV[YY RW[YX RX[YU +12345 70G[LFL[ RMGMZ RNFN[ RIFYFYL RNPTP RTLTT RI[Q[ RJFLG RKFLH ROFNH R +PFNG RTFYG RVFYH RWFYI RXFYL RTLSPTT RTNRPTR RTOPPTQ RLZJ[ RLYK[ RNYO[ R +NZP[ +12345 60G^XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXZY[YS RMILKKNKSLVMX RQFOG +MJLNLSMWOZQ[ RXTXY RWSWYVZ RTS\S RUSWT RVSWU RZSYU R[SYT +12345 81F^KFK[ RLGLZ RMFM[ RWFW[ RXGXZ RYFY[ RHFPF RTF\F RMPWP RH[P[ RT[ +\[ RIFKG RJFKH RNFMH ROFMG RUFWG RVFWH RZFYH R[FYG RKZI[ RKYJ[ RMYN[ RMZ +O[ RWZU[ RWYV[ RYYZ[ RYZ[[ +12345 39LXQFQ[ RRGRZ RSFS[ RNFVF RN[V[ ROFQG RPFQH RTFSH RUFSG RQZO[ RQY +P[ RSYT[ RSZU[ +12345 45JZSFSWRZQ[ RTGTWSZ RUFUWTZQ[O[MZLXLVMUNUOVOWNXMX RMVMWNWNVMV RPF +XF RQFSG RRFSH RVFUH RWFUG +12345 69F\KFK[ RLGLZ RMFM[ RXGMR RPPW[ RQPX[ RQNY[ RHFPF RUF[F RH[P[ RT[ +[[ RIFKG RJFKH RNFMH ROFMG RWFXG RZFXG RKZI[ RKYJ[ RMYN[ RMZO[ RWYU[ RWY +Z[ +12345 52I[NFN[ ROGOZ RPFP[ RKFSF RK[Z[ZU RLFNG RMFNH RQFPH RRFPG RNZL[ R +NYM[ RPYQ[ RPZR[ RU[ZZ RW[ZY RX[ZX RY[ZU +12345 63E_JFJZ RJFQ[ RKFQX RLFRX RXFQ[ RXFX[ RYGYZ RZFZ[ RGFLF RXF]F RG[ +M[ RU[][ RHFJG R[FZH R\FZG RJZH[ RJZL[ RXZV[ RXYW[ RZY[[ RZZ\[ +12345 39F^KFKZ RKFY[ RLFXX RMFYX RYGY[ RHFMF RVF\F RH[N[ RIFKG RWFYG R[F +YG RKZI[ RKZM[ +12345 54G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXV +YSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF +12345 59G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZMYOXPUQNQ RXHYJYMXO RUFWGXIXNWPUQ + RI[Q[ RJFLG RKFLH ROFNH RPFNG RLZJ[ RLYK[ RNYO[ RNZP[ +12345 77G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF RMILKKNKSLVMX RWXXV +YSYNXKWI RQFOGMJLNLSMWOZQ[ RS[UZWWXSXNWJUGSF RNXOVQURUTVUXV^W`Y`Z^Z\ RV\ +W^X_Y_ RUXW]X^Y^Z] +12345 80G]LFL[ RMGMZ RNFN[ RIFUFXGYHZJZLYNXOUPNP RXHYJYLXN RUFWGXIXMWOUP + RRPTQUSWYX[Z[[Y[W RWWXYYZZZ RTQURXXYYZY[X RI[Q[ RJFLG RKFLH ROFNH RPFNG + RLZJ[ RLYK[ RNYO[ RNZP[ +12345 44H\XIYFYLXIVGSFPFMGKIKLLNOPURWSXUXXWZ RLLMNOOUQWRXT RMGLILKMMONUP +XRYTYWXYWZT[Q[NZLXKUK[LX +12345 57H\JFJL RQFQ[ RRGRZ RSFS[ RZFZL RJFZF RN[V[ RKFJL RLFJI RMFJH ROF +JG RUFZG RWFZH RXFZI RYFZL RQZO[ RQYP[ RSYT[ RSZU[ +12345 45F^KFKULXNZQ[S[VZXXYUYG RLGLVMX RMFMVNYOZQ[ RHFPF RVF\F RIFKG RJF +KH RNFMH ROFMG RWFYG R[FYG +12345 34H\KFR[ RLFRXR[ RMFSX RYGR[ RIFPF RUF[F RJFLH RNFMH ROFMG RWFYG R +ZFYG +12345 55F^JFN[ RKFNVN[ RLFOV RRFOVN[ RRFV[ RSFVVV[ RTFWV RZGWVV[ RGFOF R +RFTF RWF]F RHFKG RIFKH RMFLH RNFLG RXFZG R\FZG +12345 54H\KFW[ RLFX[ RMFY[ RXGLZ RIFPF RUF[F RI[O[ RT[[[ RJFMH RNFMH ROF +MG RVFXG RZFXG RLZJ[ RLZN[ RWZU[ RWYV[ RWYZ[ +12345 48G]JFQQQ[ RKFRQRZ RLFSQS[ RYGSQ RHFOF RVF\F RN[V[ RIFKG RNFLG RWF +YG R[FYG RQZO[ RQYP[ RSYT[ RSZU[ +12345 41H\YFKFKL RWFK[ RXFL[ RYFM[ RK[Y[YU RLFKL RMFKI RNFKH RPFKG RT[YZ + RV[YY RW[YX RX[YU +12345 12KYOBOb RPBPb ROBVB RObVb +12345 3KYKFY^ +12345 12KYTBTb RUBUb RNBUB RNbUb +12345 8G]JTROZT RJTRPZT +12345 3H\Hb\b +12345 7LXPFUL RPFOGUL +12345 54I]NPNOOOOQMQMONNPMTMVNWOXQXXYZZ[ RVOWQWXXZ RTMUNVPVXWZZ[[[ RVRUS +PTMULWLXMZP[S[UZVX RNUMWMXNZ RUSQTOUNWNXOZP[ +12345 47G\LFL[MZOZ RMGMY RIFNFNZ RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX + RSMUNVOWRWVVYUZS[ RJFLG RKFLH +12345 34H[WQWPVPVRXRXPVNTMQMNNLPKSKULXNZQ[S[VZXX RMPLRLVMX RQMONNOMRMVNY +OZQ[ +12345 52H]VFV[[[ RWGWZ RSFXFX[ RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX R +QMONNOMRMVNYOZQ[ RTFVG RUFVH RXYY[ RXZZ[ +12345 41H[MSXSXQWOVNSMQMNNLPKSKULXNZQ[S[VZXX RWRWQVO RMPLRLVMX RVSVPUNSM + RQMONNOMRMVNYOZQ[ +12345 40KYWHWGVGVIXIXGWFTFRGQHPKP[ RRHQKQZ RTFSGRIR[ RMMVM RM[U[ RPZN[ R +PYO[ RRYS[ RRZT[ +12345 89I\XNYOZNYMXMVNUO RQMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM ROONQNSOU R +UUVSVQUO RQMPNOPOTPVQW RSWTVUTUPTNSM RNUMVLXLYM[N\Q]U]X^Y_ RN[Q\U\X] RLY +MZP[U[X\Y^Y_XaUbObLaK_K^L\O[ RObMaL_L^M\O[ +12345 65G^LFL[ RMGMZ RIFNFN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ + RT[\[ RJFLG RKFLH RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[ +12345 43LXQFQHSHSFQF RRFRH RQGSG RQMQ[ RRNRZ RNMSMS[ RN[V[ ROMQN RPMQO R +QZO[ RQYP[ RSYT[ RSZU[ +12345 41KXRFRHTHTFRF RSFSH RRGTG RRMR^QaPb RSNS]R` ROMTMT]S`RaPbMbLaL_N_ +NaMaM` RPMRN RQMRO +12345 61G]LFL[ RMGMZ RIFNFN[ RWNNW RRSY[ RRTX[ RQTW[ RTM[M RI[Q[ RT[[[ R +JFLG RKFLH RUMWN RZMWN RLZJ[ RLYK[ RNYO[ RNZP[ RWYU[ RVYZ[ +12345 31LXQFQ[ RRGRZ RNFSFS[ RN[V[ ROFQG RPFQH RQZO[ RQYP[ RSYT[ RSZU[ +12345 99AcFMF[ RGNGZ RCMHMH[ RHQIOJNLMOMQNROSRS[ RQORRRZ ROMPNQQQ[ RSQTO +UNWMZM\N]O^R^[ R\O]R]Z RZM[N\Q\[ RC[K[ RN[V[ RY[a[ RDMFN REMFO RFZD[ RFY +E[ RHYI[ RHZJ[ RQZO[ RQYP[ RSYT[ RSZU[ R\ZZ[ R\Y[[ R^Y_[ R^Z`[ +12345 65G^LML[ RMNMZ RIMNMN[ RNQOOPNRMUMWNXOYRY[ RWOXRXZ RUMVNWQW[ RI[Q[ + RT[\[ RJMLN RKMLO RLZJ[ RLYK[ RNYO[ RNZP[ RWZU[ RWYV[ RYYZ[ RYZ[[ +12345 46H\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM RMPLRLVMX RWXXVXRWP RQMONNO +MRMVNYOZQ[ RS[UZVYWVWRVOUNSM +12345 60G\LMLb RMNMa RIMNMNb RNPONQMSMVNXPYSYUXXVZS[Q[OZNX RWPXRXVWX RSM +UNVOWRWVVYUZS[ RIbQb RJMLN RKMLO RLaJb RL`Kb RN`Ob RNaPb +12345 55H\VNVb RWOWa RUNWNXMXb RVPUNSMQMNNLPKSKULXNZQ[S[UZVX RMPLRLVMX R +QMONNOMRMVNYOZQ[ RSb[b RVaTb RV`Ub RX`Yb RXaZb +12345 43IZNMN[ RONOZ RKMPMP[ RWOWNVNVPXPXNWMUMSNQPPS RK[S[ RLMNN RMMNO R +NZL[ RNYM[ RPYQ[ RPZR[ +12345 43J[WOXMXQWOVNTMPMNNMOMQNSPTUUWVXY RNNMQ RNRPSUTWU RXVWZ RMONQPRUS +WTXVXYWZU[Q[OZNYMWM[NY +12345 22KZPHPVQYRZT[V[XZYX RQHQWRY RPHRFRWSZT[ RMMVM +12345 43G^LMLVMYNZP[S[UZVYWW RMNMWNY RIMNMNWOZP[ RWMW[\[ RXNXZ RTMYMY[ R +JMLN RKMLO RYYZ[ RYZ[[ +12345 31I[LMR[ RMMRY RNMSY RXNSYR[ RJMQM RTMZM RKMNO RPMNN RVMXN RYMXN +12345 45F^JMN[ RKMNX RLMOX RRMOXN[ RRMV[ RSMVX RRMTMWX RZNWXV[ RGMOM RWM +]M RHMKN RNMLN RXMZN R\MZN +12345 48H\LMV[ RMMW[ RNMX[ RWNMZ RJMQM RTMZM RJ[P[ RS[Z[ RKMMN RPMNN RUM +WN RYMWN RMZK[ RMZO[ RVZT[ RWZY[ +12345 40H[LMR[ RMMRY RNMSY RXNSYP_NaLbJbIaI_K_KaJaJ` RJMQM RTMZM RKMNO R +PMNN RVMXN RYMXN +12345 41I[VML[ RWMM[ RXMN[ RXMLMLQ RL[X[XW RMMLQ RNMLP ROMLO RQMLN RS[XZ + RU[XY RV[XX RW[XW +12345 40KYTBRCQDPFPHQJRKSMSOQQ RRCQEQGRISJTLTNSPORSTTVTXSZR[Q]Q_Ra RQSSU +SWRYQZP\P^Q`RaTb +12345 3NVRBRb +12345 40KYPBRCSDTFTHSJRKQMQOSQ RRCSESGRIQJPLPNQPURQTPVPXQZR[S]S_Ra RSSQU +QWRYSZT\T^S`RaPb +12345 24F^IUISJPLONOPPTSVTXTZS[Q RISJQLPNPPQTTVUXUZT[Q[O +12345 35JZJFJ[K[KFLFL[M[MFNFN[O[OFPFP[Q[QFRFR[S[SFTFT[U[UFVFV[W[WFXFX[Y[ +YFZFZ[ diff --git a/libraries/CMakeLists.txt b/libraries/CMakeLists.txt index 2dd64a6c..50fc59f1 100644 --- a/libraries/CMakeLists.txt +++ b/libraries/CMakeLists.txt @@ -26,3 +26,4 @@ add_subdirectory(pico_explorer) add_subdirectory(pico_rgb_keypad) add_subdirectory(pico_wireless) add_subdirectory(plasma2040) +add_subdirectory(badger2040) diff --git a/libraries/badger2040/CMakeLists.txt b/libraries/badger2040/CMakeLists.txt new file mode 100644 index 00000000..5c30182c --- /dev/null +++ b/libraries/badger2040/CMakeLists.txt @@ -0,0 +1 @@ +include(badger2040.cmake) \ No newline at end of file diff --git a/libraries/badger2040/badger2040.cmake b/libraries/badger2040/badger2040.cmake new file mode 100644 index 00000000..cd8d649b --- /dev/null +++ b/libraries/badger2040/badger2040.cmake @@ -0,0 +1,12 @@ +set(LIB_NAME badger2040) +add_library(${LIB_NAME} INTERFACE) + +target_sources(${LIB_NAME} INTERFACE + ${CMAKE_CURRENT_LIST_DIR}/${LIB_NAME}.cpp +) + +target_include_directories(${LIB_NAME} INTERFACE ${CMAKE_CURRENT_LIST_DIR}) + +# Pull in pico libraries that we need +target_link_libraries(${LIB_NAME} INTERFACE pico_stdlib hardware_pwm uc8151) + diff --git a/libraries/badger2040/badger2040.cpp b/libraries/badger2040/badger2040.cpp new file mode 100644 index 00000000..d58bcbe7 --- /dev/null +++ b/libraries/badger2040/badger2040.cpp @@ -0,0 +1,262 @@ +#include +#include + +#include "hardware/pwm.h" + +#include "badger2040.hpp" + +namespace pimoroni { + + Badger2040::Badger2040() + : uc8151(296, 128, spi0, CS, DC, CLK, MOSI, BUSY, RESET) { + } + + void Badger2040::init() { + // set clock speed to 12MHz to reduce the maximum current draw on the + // battery. when updating a small, monochrome, display only every few + // seconds or so then you don't need much processing power anyway... + set_sys_clock_khz(48000, true); + + gpio_set_function(ENABLE_3V3, GPIO_FUNC_SIO); + gpio_set_dir(ENABLE_3V3, GPIO_OUT); + gpio_put(ENABLE_3V3, 1); + + gpio_set_function(A, GPIO_FUNC_SIO); + gpio_set_dir(A, GPIO_IN); + gpio_put(A, 1); + + gpio_set_function(B, GPIO_FUNC_SIO); + gpio_set_dir(B, GPIO_IN); + gpio_put(B, 1); + + gpio_set_function(C, GPIO_FUNC_SIO); + gpio_set_dir(C, GPIO_IN); + gpio_put(C, 1); + + gpio_set_function(D, GPIO_FUNC_SIO); + gpio_set_dir(D, GPIO_IN); + gpio_put(D, 1); + + gpio_set_function(USER, GPIO_FUNC_SIO); + gpio_set_dir(USER, GPIO_IN); + gpio_put(USER, 1); + + gpio_set_function(VBUS_DETECT, GPIO_FUNC_SIO); + gpio_set_dir(VBUS_DETECT, GPIO_IN); + gpio_put(VBUS_DETECT, 1); + + // read initial button states + uint32_t mask = (1UL << A) | (1UL << B) | (1UL << C) | (1UL << D) | (1UL << E); + _wake_button_states |= gpio_get_all() & mask; + + // wait for button to be released before continuing + while(gpio_get_all() & mask) { + tight_loop_contents(); + } + + // led control pin + pwm_config cfg = pwm_get_default_config(); + pwm_set_wrap(pwm_gpio_to_slice_num(LED), 65535); + pwm_init(pwm_gpio_to_slice_num(LED), &cfg, true); + gpio_set_function(LED, GPIO_FUNC_PWM); + led(0); + + uc8151.init(); + + // TODO: set default image? + } + + void Badger2040::clear() { + for(uint32_t y = 0; y < 128; y++) { + for(uint32_t x = 0; x < 296; x++) { + pixel(x, y); + } + } + } + + void Badger2040::halt() { + gpio_put(ENABLE_3V3, 0); + + // don't allow any more code to execute while power rail drops + while(true) {} + } + + uint8_t _dither_value(int32_t x, int32_t y, uint8_t p) { + // ordered dither matrix used in 4-bit mode + static uint8_t _odm[16] = { + 0, 8, 2, 10, + 12, 4, 14, 6, + 3, 11, 1, 9, + 15, 7, 13, 5 + }; + + // calculate dither matrix offset + uint32_t dmo = (x & 0b11) | ((y & 0b11) << 2); + + if(p == 0) { + return 1; + }else if(p == 15) { + return 0; + }else{ + return p <= _odm[dmo] ? 1 : 0; + } + } + + void Badger2040::pixel(int32_t x, int32_t y) { + if(_thickness == 1) { + uc8151.pixel(x, y, _dither_value(x, y, _pen)); + }else{ + uint8_t ht = _thickness / 2; + for(int sy = 0; sy < _thickness; sy++) { + for(int sx = 0; sx < _thickness; sx++) { + uc8151.pixel(x + sx - ht, y + sy - ht, _dither_value(x + sx - ht, y + sy - ht, _pen)); + } + } + } + } + + void Badger2040::rectangle(int32_t x, int32_t y, int32_t w, int32_t h) { + for(int cy = y; cy < y + h; cy++) { + for(int cx = x; cx < x + w; cx++) { + pixel(cx, cy); + } + } + } + + void Badger2040::line(int32_t x1, int32_t y1, int32_t x2, int32_t y2) { + int32_t x = x1, y = y1, dx, dy, incx, incy, balance; + + if(x2 >= x1) {dx = x2 - x1; incx = 1;} else {dx = x1 - x2; incx = -1;} + if(y2 >= y1) {dy = y2 - y1; incy = 1;} else {dy = y1 - y2; incy = -1;} + + if(dx >= dy) { + dy <<= 1; balance = dy - dx; dx <<= 1; + while(x != x2) { + pixel(x, y); + if (balance >= 0) {y += incy; balance -= dx;} + balance += dy; x += incx; + } + } else { + dx <<= 1; balance = dx - dy; dy <<= 1; + while(y != y2) { + pixel(x, y); + if(balance >= 0) {x += incx; balance -= dy;} + balance += dx; y += incy; + } + } + } + + void Badger2040::update_button_states() { + uint32_t mask = (1UL << A) | (1UL << B) | (1UL << C) | (1UL << D) | (1UL << E); + _button_states |= gpio_get_all() & mask; + } + + void Badger2040::update() { + // wait for display to not be busy + while(uc8151.is_busy()) { + tight_loop_contents(); + } + + uc8151.update(false); + + _button_states = 0; + + // wait for display to not be busy but sample buttons in case they are + // pressed during this time + while(uc8151.is_busy()) { + update_button_states(); + tight_loop_contents(); + } + + uc8151.off(); + } + + const hershey_font_glyph_t* Badger2040::glyph_data(unsigned char c) { + if(c < 32 || c > 127) { + return nullptr; + } + + return &_font->chars[c - 32]; + } + + int32_t Badger2040::glyph(unsigned char c, int32_t x, int32_t y, float s) { + // if space character then return a width to move the caret by + const hershey_font_glyph_t *gd = glyph_data(c); + + // if glyph data not found (id too great) then skip + if(!gd) { + return 0; + } + + const int8_t *pv = gd->vertices; + int8_t cx = (*pv++) * s; + int8_t cy = (*pv++) * s; + bool pen_down = true; + + for(uint32_t i = 1; i < gd->vertex_count; i++) { + if(pv[0] == -128 && pv[1] == -128) { + pen_down = false; + pv += 2; + }else{ + int8_t nx = (*pv++) * s; + int8_t ny = (*pv++) * s; + + if(pen_down) { + line(cx + x, cy + y, nx + x, ny + y); + } + + cx = nx; + cy = ny; + pen_down = true; + } + } + + return gd->width * s; + } + + void Badger2040::text(std::string message, int32_t x, int32_t y, float s) { + int32_t cx = x; + int32_t cy = y; + + for(auto &c : message) { + cx += glyph(c, cx, cy, s); + } + } + + void Badger2040::font(std::string name) { + // check that font exists and assign it + if(fonts.find(name) != fonts.end()) { + _font = fonts[name]; + } + } + + void Badger2040::pen(uint8_t pen) { + _pen = pen; + } + + void Badger2040::thickness(uint8_t thickness) { + _thickness = thickness; + } + + void Badger2040::led(uint8_t brightness) { + // set the led brightness from 1 to 256 with gamma correction + float gamma = 2.8; + uint16_t v = (uint16_t)(pow((float)(brightness) / 256.0f, gamma) * 65535.0f + 0.5f); + pwm_set_gpio_level(LED, v); + } + + bool Badger2040::pressed(uint8_t button) { + return (_button_states & (1UL << button)) != 0; + } + + bool Badger2040::pressed_to_wake(uint8_t button) { + return (_wake_button_states & (1UL << button)) != 0; + } + + void Badger2040::wait_for_press() { + while(_button_states == 0) { + update_button_states(); + tight_loop_contents(); + } + } +} \ No newline at end of file diff --git a/libraries/badger2040/badger2040.hpp b/libraries/badger2040/badger2040.hpp new file mode 100644 index 00000000..1e517dfc --- /dev/null +++ b/libraries/badger2040/badger2040.hpp @@ -0,0 +1,76 @@ +#pragma once + +#include + +#include "drivers/uc8151/uc8151.hpp" + +#include "fonts.hpp" + +namespace pimoroni { + + class Badger2040 { + private: + UC8151 uc8151; + const hershey_font_t *_font = &futural; + uint8_t _pen = 0; + uint8_t _thickness = 1; + uint32_t _button_states = 0; + uint32_t _wake_button_states = 0; + private: + + public: + Badger2040(); + void init(); + void update(); + void halt(); + void sleep(); + + // state + void led(uint8_t brightness); + void font(std::string name); + void pen(uint8_t pen); + void thickness(uint8_t thickness); + + // inputs (buttons: A, B, C, D, E, USER) + bool pressed(uint8_t button); + bool pressed_to_wake(uint8_t button); + void wait_for_press(); + void update_button_states(); + uint32_t button_states(); + + // drawing primitives + void clear(); + void pixel(int32_t x, int32_t y); + void line(int32_t x1, int32_t y1, int32_t x2, int32_t y2); + void rectangle(int32_t x, int32_t y, int32_t w, int32_t h); + + // text (fonts: sans, sans_bold, gothic, cursive_bold, cursive, serif_italic, serif, serif_bold) + void text(std::string message, int32_t x, int32_t y, float s = 1.0f); + const hershey_font_glyph_t* glyph_data(unsigned char c); + int32_t glyph(unsigned char c, int32_t x, int32_t y, float s); + + public: + enum pin { + A = 12, + B = 13, + C = 14, + D = 15, + E = 11, + UP = 15, // alias for D + DOWN = 11, // alias for E + USER = 23, + CS = 17, + CLK = 18, + MOSI = 19, + DC = 20, + RESET = 21, + BUSY = 26, + VBUS_DETECT = 24, + LED = 25, + BATTERY = 29, + ENABLE_3V3 = 10 + }; + + }; + +} \ No newline at end of file diff --git a/libraries/badger2040/fonts.hpp b/libraries/badger2040/fonts.hpp new file mode 100644 index 00000000..768e481b --- /dev/null +++ b/libraries/badger2040/fonts.hpp @@ -0,0 +1,856 @@ +#include +#include + +struct hershey_font_glyph_t { + uint32_t width; // character width + uint32_t vertex_count; // number of vertices + const int8_t *vertices; // vertex data (indices: even = x, odd = y) +}; + +struct hershey_font_t { + hershey_font_glyph_t chars[95]; +}; + +static const int8_t futural_vertices[2442] = { + 5, -12, 5, 2, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 4, -12, 4, -5, -128, -128, 12, -12, 12, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -3, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 3, 4, 1, 5, 0, 12, -4, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -7, 9, -4, 11, -1, 16, 6, 18, 8, 20, 9, 22, 9, 23, 8, 23, 7, 5, -10, 4, -11, 5, -12, 6, -11, 6, -9, 5, -7, 4, -6, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, 6, -8, 8, -9, 11, -12, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 3, 9, 17, 9, 5, -12, 16, -12, 10, -4, 13, -4, 15, -3, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 13, -12, 3, 2, 18, 2, -128, -128, 13, -12, 13, 9, 15, -12, 5, -12, 4, -3, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, 17, -12, 7, 9, -128, -128, 3, -12, 17, -12, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 11, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 9, -3, 13, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 9, -12, 1, 9, -128, -128, 9, -12, 17, 9, -128, -128, 4, 2, 14, 2, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, -128, -128, 4, -2, 13, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 13, 9, 4, 9, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 4, -12, 4, 9, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, -128, -128, 4, 9, 17, 9, 4, -12, 4, 9, -128, -128, 4, -12, 17, -12, -128, -128, 4, -2, 12, -2, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 1, -128, -128, 13, 1, 18, 1, 4, -12, 4, 9, -128, -128, 18, -12, 18, 9, -128, -128, 4, -2, 18, -2, 4, -12, 4, 9, 12, -12, 12, 4, 11, 7, 10, 8, 8, 9, 6, 9, 4, 8, 3, 7, 2, 4, 2, 2, 4, -12, 4, 9, -128, -128, 18, -12, 4, 2, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 4, -12, 12, 9, -128, -128, 20, -12, 12, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 4, -12, 18, 9, -128, -128, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 13, -1, 4, -1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 12, 5, 18, 11, 4, -12, 4, 9, -128, -128, 4, -12, 13, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 13, -2, 4, -2, -128, -128, 11, -2, 18, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -12, 8, 9, -128, -128, 1, -12, 15, -12, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, 1, -12, 9, 9, -128, -128, 17, -12, 9, 9, 2, -12, 7, 9, -128, -128, 12, -12, 7, 9, -128, -128, 12, -12, 17, 9, -128, -128, 22, -12, 17, 9, 3, -12, 17, 9, -128, -128, 17, -12, 3, 9, 1, -12, 9, -2, 9, 9, -128, -128, 17, -12, 9, -2, 17, -12, 3, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 8, -14, 0, 0, -128, -128, 8, -14, 16, 0, 0, 16, 18, 16, 5, -7, 3, -5, 3, -3, 4, -2, 5, -3, 4, -4, 3, -3, 15, -5, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 15, -12, 15, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 3, 1, 15, 1, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 10, -12, 8, -12, 6, -11, 5, -8, 5, 9, -128, -128, 2, -5, 9, -5, 15, -5, 15, 11, 14, 14, 13, 15, 11, 16, 8, 16, 6, 15, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -12, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 3, -12, 4, -11, 5, -12, 4, -13, 3, -12, -128, -128, 4, -5, 4, 9, 5, -12, 6, -11, 7, -12, 6, -13, 5, -12, -128, -128, 6, -5, 6, 12, 5, 15, 3, 16, 1, 16, 4, -12, 4, 9, -128, -128, 14, -5, 4, 5, -128, -128, 8, 1, 15, 9, 4, -12, 4, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, -128, -128, 15, -1, 18, -4, 20, -5, 23, -5, 25, -4, 26, -1, 26, 9, 4, -5, 4, 9, -128, -128, 4, -1, 7, -4, 9, -5, 12, -5, 14, -4, 15, -1, 15, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, 4, -5, 4, 16, -128, -128, 4, -2, 6, -4, 8, -5, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, 8, 9, 6, 8, 4, 6, 15, -5, 15, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 4, -5, 4, 9, -128, -128, 4, 1, 5, -2, 7, -4, 9, -5, 12, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, -128, -128, 2, -5, 9, -5, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 15, -5, 15, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 3, -5, 7, 9, -128, -128, 11, -5, 7, 9, -128, -128, 11, -5, 15, 9, -128, -128, 19, -5, 15, 9, 3, -5, 14, 9, -128, -128, 14, -5, 3, 9, 2, -5, 8, 9, -128, -128, 14, -5, 8, 9, 6, 13, 4, 15, 2, 16, 1, 16, 14, -5, 3, 9, -128, -128, 3, -5, 14, -5, -128, -128, 3, 9, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 +}; + +static const hershey_font_t futural { + .chars = { + {.width=16, .vertex_count=0, .vertices=&futural_vertices[0]}, + {.width=10, .vertex_count=8, .vertices=&futural_vertices[0]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[16]}, + {.width=21, .vertex_count=11, .vertices=&futural_vertices[26]}, + {.width=20, .vertex_count=26, .vertices=&futural_vertices[48]}, + {.width=24, .vertex_count=31, .vertices=&futural_vertices[100]}, + {.width=26, .vertex_count=34, .vertices=&futural_vertices[162]}, + {.width=10, .vertex_count=7, .vertices=&futural_vertices[230]}, + {.width=14, .vertex_count=10, .vertices=&futural_vertices[244]}, + {.width=14, .vertex_count=10, .vertices=&futural_vertices[264]}, + {.width=16, .vertex_count=8, .vertices=&futural_vertices[284]}, + {.width=26, .vertex_count=5, .vertices=&futural_vertices[300]}, + {.width=8, .vertex_count=7, .vertices=&futural_vertices[310]}, + {.width=26, .vertex_count=2, .vertices=&futural_vertices[324]}, + {.width=8, .vertex_count=5, .vertices=&futural_vertices[328]}, + {.width=22, .vertex_count=2, .vertices=&futural_vertices[338]}, + {.width=20, .vertex_count=17, .vertices=&futural_vertices[342]}, + {.width=20, .vertex_count=4, .vertices=&futural_vertices[376]}, + {.width=20, .vertex_count=14, .vertices=&futural_vertices[384]}, + {.width=20, .vertex_count=15, .vertices=&futural_vertices[412]}, + {.width=20, .vertex_count=6, .vertices=&futural_vertices[442]}, + {.width=20, .vertex_count=17, .vertices=&futural_vertices[454]}, + {.width=20, .vertex_count=23, .vertices=&futural_vertices[488]}, + {.width=20, .vertex_count=5, .vertices=&futural_vertices[534]}, + {.width=20, .vertex_count=29, .vertices=&futural_vertices[544]}, + {.width=20, .vertex_count=23, .vertices=&futural_vertices[602]}, + {.width=8, .vertex_count=11, .vertices=&futural_vertices[648]}, + {.width=8, .vertex_count=13, .vertices=&futural_vertices[670]}, + {.width=24, .vertex_count=3, .vertices=&futural_vertices[696]}, + {.width=26, .vertex_count=5, .vertices=&futural_vertices[702]}, + {.width=24, .vertex_count=3, .vertices=&futural_vertices[712]}, + {.width=18, .vertex_count=20, .vertices=&futural_vertices[718]}, + {.width=27, .vertex_count=55, .vertices=&futural_vertices[758]}, + {.width=18, .vertex_count=8, .vertices=&futural_vertices[868]}, + {.width=21, .vertex_count=23, .vertices=&futural_vertices[884]}, + {.width=21, .vertex_count=18, .vertices=&futural_vertices[930]}, + {.width=21, .vertex_count=15, .vertices=&futural_vertices[966]}, + {.width=19, .vertex_count=11, .vertices=&futural_vertices[996]}, + {.width=18, .vertex_count=8, .vertices=&futural_vertices[1018]}, + {.width=21, .vertex_count=22, .vertices=&futural_vertices[1034]}, + {.width=22, .vertex_count=8, .vertices=&futural_vertices[1078]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[1094]}, + {.width=16, .vertex_count=10, .vertices=&futural_vertices[1098]}, + {.width=21, .vertex_count=8, .vertices=&futural_vertices[1118]}, + {.width=17, .vertex_count=5, .vertices=&futural_vertices[1134]}, + {.width=24, .vertex_count=11, .vertices=&futural_vertices[1144]}, + {.width=22, .vertex_count=8, .vertices=&futural_vertices[1166]}, + {.width=22, .vertex_count=21, .vertices=&futural_vertices[1182]}, + {.width=21, .vertex_count=13, .vertices=&futural_vertices[1224]}, + {.width=22, .vertex_count=24, .vertices=&futural_vertices[1250]}, + {.width=21, .vertex_count=16, .vertices=&futural_vertices[1298]}, + {.width=20, .vertex_count=20, .vertices=&futural_vertices[1330]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[1370]}, + {.width=22, .vertex_count=10, .vertices=&futural_vertices[1380]}, + {.width=18, .vertex_count=5, .vertices=&futural_vertices[1400]}, + {.width=24, .vertex_count=11, .vertices=&futural_vertices[1410]}, + {.width=20, .vertex_count=5, .vertices=&futural_vertices[1432]}, + {.width=18, .vertex_count=6, .vertices=&futural_vertices[1442]}, + {.width=20, .vertex_count=8, .vertices=&futural_vertices[1454]}, + {.width=14, .vertex_count=11, .vertices=&futural_vertices[1470]}, + {.width=14, .vertex_count=2, .vertices=&futural_vertices[1492]}, + {.width=14, .vertex_count=11, .vertices=&futural_vertices[1496]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[1518]}, + {.width=18, .vertex_count=2, .vertices=&futural_vertices[1528]}, + {.width=8, .vertex_count=7, .vertices=&futural_vertices[1532]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1546]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1580]}, + {.width=18, .vertex_count=14, .vertices=&futural_vertices[1614]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1642]}, + {.width=18, .vertex_count=17, .vertices=&futural_vertices[1676]}, + {.width=12, .vertex_count=8, .vertices=&futural_vertices[1710]}, + {.width=19, .vertex_count=22, .vertices=&futural_vertices[1726]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[1770]}, + {.width=8, .vertex_count=8, .vertices=&futural_vertices[1790]}, + {.width=10, .vertex_count=11, .vertices=&futural_vertices[1806]}, + {.width=17, .vertex_count=8, .vertices=&futural_vertices[1828]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[1844]}, + {.width=30, .vertex_count=18, .vertices=&futural_vertices[1848]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[1884]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1904]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1938]}, + {.width=19, .vertex_count=17, .vertices=&futural_vertices[1972]}, + {.width=13, .vertex_count=8, .vertices=&futural_vertices[2006]}, + {.width=17, .vertex_count=17, .vertices=&futural_vertices[2022]}, + {.width=12, .vertex_count=8, .vertices=&futural_vertices[2056]}, + {.width=19, .vertex_count=10, .vertices=&futural_vertices[2072]}, + {.width=16, .vertex_count=5, .vertices=&futural_vertices[2092]}, + {.width=22, .vertex_count=11, .vertices=&futural_vertices[2102]}, + {.width=17, .vertex_count=5, .vertices=&futural_vertices[2124]}, + {.width=16, .vertex_count=9, .vertices=&futural_vertices[2134]}, + {.width=17, .vertex_count=8, .vertices=&futural_vertices[2152]}, + {.width=14, .vertex_count=39, .vertices=&futural_vertices[2168]}, + {.width=8, .vertex_count=2, .vertices=&futural_vertices[2246]}, + {.width=14, .vertex_count=39, .vertices=&futural_vertices[2250]}, + {.width=24, .vertex_count=23, .vertices=&futural_vertices[2328]} + } +}; + +static const int8_t futuram_vertices[4802] = { + 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 9, -16, 9, 13, 10, 13, -128, -128, 9, -16, 10, -16, 10, 13, -128, -128, 14, -9, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 13, 0, 14, 1, 15, 3, 15, 5, 14, 7, 11, 8, 8, 8, 6, 7, 5, 6, -128, -128, 14, -9, 13, -10, 11, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 13, -1, 15, 1, 16, 3, 16, 5, 15, 7, 14, 8, 11, 9, 8, 9, 5, 8, 3, 6, 5, 6, -128, -128, 15, 6, 12, 8, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 7, -11, 5, -8, 4, -3, 4, 0, 5, 5, 7, 8, -128, -128, 6, 7, 9, 8, 11, 8, 14, 7, -128, -128, 13, 8, 15, 5, 16, 0, 16, -3, 15, -8, 13, -11, -128, -128, 14, -10, 11, -11, 9, -11, 6, -10, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 6, -8, 6, -7, 8, -8, 10, -10, 10, 9, 11, 9, 4, -7, 4, -8, 5, -10, 6, -11, 8, -12, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 13, -1, 4, 9, -128, -128, 4, -7, 5, -7, 5, -8, 6, -10, 8, -11, 12, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -1, 3, 9, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 5, -12, 16, -12, 9, -3, -128, -128, 5, -12, 5, -11, 15, -11, -128, -128, 15, -12, 8, -3, -128, -128, 9, -4, 11, -4, 14, -3, 16, -1, 17, 2, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 8, -3, 11, -3, 14, -2, 16, 1, -128, -128, 12, -3, 15, -1, 16, 2, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 13, -9, 13, 9, 14, 9, -128, -128, 14, -12, 14, 9, -128, -128, 14, -12, 3, 4, 18, 4, -128, -128, 13, -9, 4, 4, -128, -128, 4, 3, 18, 3, 18, 4, 5, -12, 4, -3, -128, -128, 6, -11, 5, -4, -128, -128, 5, -12, 15, -12, 15, -11, -128, -128, 6, -11, 15, -11, -128, -128, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 4, 5, -128, -128, 4, -3, 5, -3, 7, -4, 11, -4, 14, -3, 16, 0, -128, -128, 12, -4, 15, -2, 16, 1, 16, 3, 15, 6, 12, 8, -128, -128, 16, 4, 14, 7, 11, 8, 8, 8, 5, 7, 4, 5, -128, -128, 7, 8, 4, 6, 14, -11, 15, -9, 16, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -8, 4, -3, 4, 2, 5, 6, 7, 8, 10, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, -128, -128, 15, -10, 12, -11, 10, -11, 7, -10, -128, -128, 8, -11, 6, -8, 5, -3, 5, 2, 6, 6, 9, 8, -128, -128, 5, 4, 7, 7, 10, 8, 11, 8, 14, 7, 16, 4, -128, -128, 12, 8, 15, 6, 16, 3, 16, 2, 15, -1, 12, -3, -128, -128, 16, 1, 14, -2, 11, -3, 10, -3, 7, -2, 5, 1, -128, -128, 9, -3, 6, -1, 5, 2, 3, -12, 17, -12, 7, 9, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 16, -12, 6, 9, 7, 9, 8, -12, 5, -11, 4, -9, 4, -7, 5, -5, 6, -4, 8, -3, 12, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 8, 8, 5, 7, 4, 5, 4, 2, 5, 0, 6, -1, 8, -2, 12, -3, 14, -4, 15, -5, 16, -7, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 2, 4, 0, 6, -2, 8, -3, 12, -4, 14, -5, 15, -7, 15, -9, 14, -11, -128, -128, 15, -10, 12, -11, 8, -11, 5, -10, -128, -128, 4, 6, 7, 8, -128, -128, 13, 8, 16, 6, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 10, -12, 13, -11, 15, -9, 16, -5, 16, 0, 15, 5, 13, 8, 10, 9, 8, 9, 5, 8, 4, 6, 5, 6, 6, 8, -128, -128, 15, -5, 14, -2, 11, 0, -128, -128, 15, -4, 13, -1, 10, 0, 9, 0, 6, -1, 4, -4, -128, -128, 8, 0, 5, -2, 4, -5, 4, -6, 5, -9, 8, -11, -128, -128, 4, -7, 6, -10, 9, -11, 10, -11, 13, -10, 15, -7, -128, -128, 11, -11, 14, -9, 15, -5, 15, 0, 14, 5, 12, 8, -128, -128, 13, 7, 10, 8, 8, 8, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 12, -2, 9, -1, -128, -128, 3, -7, 4, -7, 4, -8, 5, -10, 8, -11, 11, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -3, 9, -2, -128, -128, 4, -9, 7, -11, -128, -128, 12, -11, 15, -9, -128, -128, 15, -5, 11, -2, -128, -128, 9, -2, 9, 2, 10, 2, 10, -2, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 2, 9, -128, -128, 10, -9, 3, 9, 2, 9, -128, -128, 10, -9, 17, 9, 18, 9, -128, -128, 10, -12, 18, 9, -128, -128, 5, 3, 15, 3, -128, -128, 4, 4, 16, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, -128, -128, 5, -2, 12, -2, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 4, 9, -128, -128, 5, -1, 12, -1, 15, 0, 16, 2, 16, 5, 15, 7, 12, 8, 5, 8, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 18, 4, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 11, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 11, 9, 4, 9, -128, -128, 5, -11, 11, -11, 14, -10, 15, -9, 16, -7, 17, -4, 17, 1, 16, 4, 15, 6, 14, 7, 11, 8, 5, 8, 4, -12, 4, 9, -128, -128, 5, -11, 5, 8, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 16, -11, 16, -12, -128, -128, 5, -2, 11, -2, 11, -1, -128, -128, 5, -1, 11, -1, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 18, 0, 13, 0, -128, -128, 18, -7, 17, -7, 16, -9, 15, -10, 13, -11, 9, -11, 7, -10, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 7, 7, 9, 8, 13, 8, 15, 7, 16, 6, 17, 4, 17, 1, 13, 1, 13, 0, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, 9, -128, -128, 18, -12, 17, -12, 17, 9, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 5, -2, 17, -2, -128, -128, 5, -1, 17, -1, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 12, -12, 12, 4, 11, 7, 9, 8, 7, 8, 5, 7, 4, 4, 3, 4, -128, -128, 12, -12, 13, -12, 13, 4, 12, 7, 11, 8, 9, 9, 7, 9, 5, 8, 4, 7, 3, 4, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 18, -12, 17, -12, 5, 0, -128, -128, 18, -12, 5, 1, -128, -128, 8, -3, 17, 9, 18, 9, -128, -128, 9, -3, 18, 9, 4, -12, 4, 9, -128, -128, 4, -12, 5, -12, 5, 8, -128, -128, 5, 8, 16, 8, 16, 9, -128, -128, 4, 9, 16, 9, 4, -12, 4, 9, -128, -128, 5, -7, 5, 9, 4, 9, -128, -128, 5, -7, 12, 9, -128, -128, 4, -12, 12, 6, -128, -128, 20, -12, 12, 6, -128, -128, 19, -7, 12, 9, -128, -128, 19, -7, 19, 9, 20, 9, -128, -128, 20, -12, 20, 9, 4, -12, 4, 9, -128, -128, 5, -9, 5, 9, 4, 9, -128, -128, 5, -9, 18, 9, -128, -128, 4, -12, 17, 6, -128, -128, 17, -12, 17, 6, -128, -128, 17, -12, 18, -12, 18, 9, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 13, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 13, -1, 5, -1, -128, -128, 5, -11, 13, -11, 15, -10, 16, -8, 16, -5, 15, -3, 13, -2, 5, -2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 9, 9, 13, 9, 15, 8, 17, 6, 18, 4, 19, 1, 19, -4, 18, -7, 17, -9, 15, -11, 13, -12, 9, -12, -128, -128, 10, -11, 7, -10, 5, -7, 4, -4, 4, 1, 5, 4, 7, 7, 10, 8, 12, 8, 15, 7, 17, 4, 18, 1, 18, -4, 17, -7, 15, -10, 12, -11, 10, -11, -128, -128, 12, 6, 17, 11, 18, 11, -128, -128, 12, 6, 13, 6, 18, 11, 4, -12, 4, 9, -128, -128, 5, -11, 5, 9, 4, 9, -128, -128, 4, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -5, 16, -3, 15, -2, 12, -1, 5, -1, -128, -128, 5, -11, 12, -11, 15, -10, 16, -8, 16, -5, 15, -3, 12, -2, 5, -2, -128, -128, 10, -1, 16, 9, 17, 9, -128, -128, 11, -1, 17, 9, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 12, -1, 14, 0, 15, 1, 16, 3, 16, 6, 15, 7, 12, 8, 8, 8, 6, 7, 5, 6, 3, 6, -128, -128, 17, -9, 15, -9, 14, -10, 12, -11, 8, -11, 5, -10, 4, -9, 4, -7, 5, -5, 7, -4, 12, -2, 14, -1, 16, 1, 17, 3, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 8, -11, 8, 9, -128, -128, 9, -11, 9, 9, 8, 9, -128, -128, 2, -12, 15, -12, 15, -11, -128, -128, 2, -12, 2, -11, 15, -11, 4, -12, 4, 3, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 3, 18, -12, -128, -128, 4, -12, 5, -12, 5, 3, 6, 6, 7, 7, 10, 8, 12, 8, 15, 7, 16, 6, 17, 3, 17, -12, 18, -12, 2, -12, 10, 9, -128, -128, 2, -12, 3, -12, 10, 6, -128, -128, 18, -12, 17, -12, 10, 6, -128, -128, 18, -12, 10, 9, 2, -12, 8, 9, -128, -128, 2, -12, 3, -12, 8, 6, -128, -128, 13, -12, 8, 6, -128, -128, 13, -9, 8, 9, -128, -128, 13, -9, 18, 9, -128, -128, 13, -12, 18, 6, -128, -128, 24, -12, 23, -12, 18, 6, -128, -128, 24, -12, 18, 9, 3, -12, 16, 9, 17, 9, -128, -128, 3, -12, 4, -12, 17, 9, -128, -128, 17, -12, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, 3, 9, 2, -12, 9, -2, 9, 9, 10, 9, -128, -128, 2, -12, 3, -12, 10, -2, -128, -128, 17, -12, 16, -12, 9, -2, -128, -128, 17, -12, 10, -2, 10, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 3, -12, 17, -12, -128, -128, 3, -12, 3, -11, 16, -11, -128, -128, 4, 8, 17, 8, 17, 9, -128, -128, 3, 9, 17, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 15, -12, 15, 9, 16, 9, -128, -128, 15, -12, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, 2, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 4, 1, 14, 1, 14, -1, 13, -3, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 5, 15, 6, 11, -12, 9, -12, 7, -11, 6, -8, 6, 9, 7, 9, -128, -128, 11, -12, 11, -11, 9, -11, 7, -10, -128, -128, 8, -11, 7, -8, 7, 9, -128, -128, 3, -5, 10, -5, 10, -4, -128, -128, 3, -5, 3, -4, 10, -4, 16, -5, 15, -5, 15, 10, 14, 13, 13, 14, 11, 15, 9, 15, 7, 14, 6, 13, 4, 13, -128, -128, 16, -5, 16, 10, 15, 13, 13, 15, 11, 16, 8, 16, 6, 15, 4, 13, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, 4, -12, 3, -11, 3, -10, 4, -9, 5, -9, 6, -10, 6, -11, 5, -12, 4, -12, -128, -128, 4, -11, 4, -10, 5, -10, 5, -11, 4, -11, -128, -128, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, -128, -128, 16, -5, 15, -5, 5, 5, -128, -128, 16, -5, 5, 6, -128, -128, 8, 2, 14, 9, 16, 9, -128, -128, 9, 1, 16, 9, 4, -12, 4, 9, 5, 9, -128, -128, 4, -12, 5, -12, 5, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, -128, -128, 16, -1, 19, -4, 21, -5, 24, -5, 26, -4, 27, -1, 27, 9, -128, -128, 16, -1, 19, -3, 21, -4, 23, -4, 25, -3, 26, -1, 26, 9, 27, 9, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, -1, 8, -4, 10, -5, 13, -5, 15, -4, 16, -1, 16, 9, -128, -128, 5, -1, 8, -3, 10, -4, 12, -4, 14, -3, 15, -1, 15, 9, 16, 9, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 8, -5, -128, -128, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 13, 7, 14, 6, 15, 3, 15, 1, 14, -2, 13, -3, 11, -4, 8, -4, 4, -5, 4, 16, 5, 16, -128, -128, 4, -5, 5, -5, 5, 16, -128, -128, 5, -2, 7, -4, 9, -5, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, 9, 9, 7, 8, 5, 6, -128, -128, 5, -2, 9, -4, 12, -4, 14, -3, 15, -2, 16, 1, 16, 3, 15, 6, 14, 7, 12, 8, 9, 8, 5, 6, 15, -5, 15, 16, 16, 16, -128, -128, 15, -5, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 8, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 8, 9, 11, 9, 13, 8, 15, 6, -128, -128, 15, -2, 11, -4, 8, -4, 6, -3, 5, -2, 4, 1, 4, 3, 5, 6, 6, 7, 8, 8, 11, 8, 15, 6, 4, -5, 4, 9, 5, 9, -128, -128, 4, -5, 5, -5, 5, 9, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 13, -5, -128, -128, 5, 1, 6, -1, 8, -3, 10, -4, 13, -4, 13, -5, 14, -2, 13, -4, 10, -5, 7, -5, 4, -4, 3, -2, 4, 0, 6, 1, 11, 3, 13, 4, -128, -128, 12, 3, 13, 5, 13, 6, 12, 8, -128, -128, 13, 7, 10, 8, 7, 8, 4, 7, -128, -128, 5, 8, 4, 6, 3, 6, -128, -128, 14, -2, 13, -2, 12, -4, -128, -128, 13, -3, 10, -4, 7, -4, 4, -3, -128, -128, 5, -4, 4, -2, 5, 0, -128, -128, 4, -1, 6, 0, 11, 2, 13, 3, 14, 5, 14, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 6, 5, -12, 5, 9, 6, 9, -128, -128, 5, -12, 6, -12, 6, 9, -128, -128, 2, -5, 9, -5, 9, -4, -128, -128, 2, -5, 2, -4, 9, -4, 4, -5, 4, 5, 5, 8, 7, 9, 10, 9, 12, 8, 15, 5, -128, -128, 4, -5, 5, -5, 5, 5, 6, 7, 8, 8, 10, 8, 12, 7, 15, 5, -128, -128, 15, -5, 15, 9, 16, 9, -128, -128, 15, -5, 16, -5, 16, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, -128, -128, 14, -5, 8, 9, 3, -5, 8, 9, -128, -128, 3, -5, 4, -5, 8, 6, -128, -128, 12, -5, 8, 6, -128, -128, 12, -2, 8, 9, -128, -128, 12, -2, 16, 9, -128, -128, 12, -5, 16, 6, -128, -128, 21, -5, 20, -5, 16, 6, -128, -128, 21, -5, 16, 9, 3, -5, 14, 9, 15, 9, -128, -128, 3, -5, 4, -5, 15, 9, -128, -128, 15, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, 3, 9, 2, -5, 8, 9, -128, -128, 2, -5, 3, -5, 8, 7, -128, -128, 14, -5, 13, -5, 8, 7, 4, 16, -128, -128, 14, -5, 8, 9, 5, 16, 4, 16, 13, -4, 3, 9, -128, -128, 15, -5, 5, 8, -128, -128, 3, -5, 15, -5, -128, -128, 3, -5, 3, -4, 13, -4, -128, -128, 5, 8, 15, 8, 15, 9, -128, -128, 3, 9, 15, 9, 10, -16, 3, 0, 10, 16, 4, -16, 4, 16, 4, -16, 11, 0, 4, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 +}; + +static const hershey_font_t futuram { + .chars = { + {.width=16, .vertex_count=0, .vertices=&futuram_vertices[0]}, + {.width=11, .vertex_count=23, .vertices=&futuram_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=&futuram_vertices[46]}, + {.width=21, .vertex_count=11, .vertices=&futuram_vertices[88]}, + {.width=19, .vertex_count=50, .vertices=&futuram_vertices[110]}, + {.width=24, .vertex_count=31, .vertices=&futuram_vertices[210]}, + {.width=25, .vertex_count=48, .vertices=&futuram_vertices[272]}, + {.width=9, .vertex_count=10, .vertices=&futuram_vertices[368]}, + {.width=14, .vertex_count=19, .vertices=&futuram_vertices[388]}, + {.width=14, .vertex_count=19, .vertices=&futuram_vertices[426]}, + {.width=16, .vertex_count=38, .vertices=&futuram_vertices[464]}, + {.width=25, .vertex_count=15, .vertices=&futuram_vertices[540]}, + {.width=11, .vertex_count=23, .vertices=&futuram_vertices[570]}, + {.width=26, .vertex_count=2, .vertices=&futuram_vertices[616]}, + {.width=11, .vertex_count=15, .vertices=&futuram_vertices[620]}, + {.width=23, .vertex_count=7, .vertices=&futuram_vertices[650]}, + {.width=20, .vertex_count=41, .vertices=&futuram_vertices[664]}, + {.width=20, .vertex_count=11, .vertices=&futuram_vertices[746]}, + {.width=20, .vertex_count=33, .vertices=&futuram_vertices[768]}, + {.width=20, .vertex_count=47, .vertices=&futuram_vertices[834]}, + {.width=20, .vertex_count=17, .vertices=&futuram_vertices[928]}, + {.width=20, .vertex_count=52, .vertices=&futuram_vertices[962]}, + {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1066]}, + {.width=20, .vertex_count=11, .vertices=&futuram_vertices[1188]}, + {.width=20, .vertex_count=67, .vertices=&futuram_vertices[1210]}, + {.width=20, .vertex_count=61, .vertices=&futuram_vertices[1344]}, + {.width=11, .vertex_count=31, .vertices=&futuram_vertices[1466]}, + {.width=11, .vertex_count=39, .vertices=&futuram_vertices[1528]}, + {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1606]}, + {.width=25, .vertex_count=15, .vertices=&futuram_vertices[1612]}, + {.width=24, .vertex_count=3, .vertices=&futuram_vertices[1642]}, + {.width=19, .vertex_count=57, .vertices=&futuram_vertices[1648]}, + {.width=27, .vertex_count=55, .vertices=&futuram_vertices[1762]}, + {.width=20, .vertex_count=19, .vertices=&futuram_vertices[1872]}, + {.width=20, .vertex_count=43, .vertices=&futuram_vertices[1910]}, + {.width=21, .vertex_count=37, .vertices=&futuram_vertices[1996]}, + {.width=21, .vertex_count=31, .vertices=&futuram_vertices[2070]}, + {.width=19, .vertex_count=26, .vertices=&futuram_vertices[2132]}, + {.width=18, .vertex_count=20, .vertices=&futuram_vertices[2184]}, + {.width=21, .vertex_count=43, .vertices=&futuram_vertices[2224]}, + {.width=22, .vertex_count=21, .vertices=&futuram_vertices[2310]}, + {.width=9, .vertex_count=7, .vertices=&futuram_vertices[2352]}, + {.width=17, .vertex_count=19, .vertices=&futuram_vertices[2366]}, + {.width=21, .vertex_count=21, .vertices=&futuram_vertices[2404]}, + {.width=17, .vertex_count=13, .vertices=&futuram_vertices[2446]}, + {.width=24, .vertex_count=25, .vertices=&futuram_vertices[2472]}, + {.width=22, .vertex_count=19, .vertices=&futuram_vertices[2522]}, + {.width=22, .vertex_count=39, .vertices=&futuram_vertices[2560]}, + {.width=20, .vertex_count=26, .vertices=&futuram_vertices[2638]}, + {.width=22, .vertex_count=47, .vertices=&futuram_vertices[2690]}, + {.width=20, .vertex_count=33, .vertices=&futuram_vertices[2784]}, + {.width=20, .vertex_count=42, .vertices=&futuram_vertices[2850]}, + {.width=17, .vertex_count=14, .vertices=&futuram_vertices[2934]}, + {.width=22, .vertex_count=23, .vertices=&futuram_vertices[2962]}, + {.width=20, .vertex_count=13, .vertices=&futuram_vertices[3008]}, + {.width=26, .vertex_count=25, .vertices=&futuram_vertices[3034]}, + {.width=20, .vertex_count=15, .vertices=&futuram_vertices[3084]}, + {.width=19, .vertex_count=16, .vertices=&futuram_vertices[3114]}, + {.width=20, .vertex_count=19, .vertices=&futuram_vertices[3146]}, + {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3184]}, + {.width=14, .vertex_count=2, .vertices=&futuram_vertices[3206]}, + {.width=14, .vertex_count=11, .vertices=&futuram_vertices[3210]}, + {.width=22, .vertex_count=7, .vertices=&futuram_vertices[3232]}, + {.width=20, .vertex_count=2, .vertices=&futuram_vertices[3246]}, + {.width=12, .vertex_count=6, .vertices=&futuram_vertices[3250]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3262]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3332]}, + {.width=18, .vertex_count=31, .vertices=&futuram_vertices[3402]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[3464]}, + {.width=18, .vertex_count=35, .vertices=&futuram_vertices[3534]}, + {.width=14, .vertex_count=23, .vertices=&futuram_vertices[3604]}, + {.width=20, .vertex_count=47, .vertices=&futuram_vertices[3650]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[3744]}, + {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3792]}, + {.width=9, .vertex_count=23, .vertices=&futuram_vertices[3838]}, + {.width=19, .vertex_count=21, .vertices=&futuram_vertices[3884]}, + {.width=9, .vertex_count=7, .vertices=&futuram_vertices[3926]}, + {.width=31, .vertex_count=41, .vertices=&futuram_vertices[3940]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4022]}, + {.width=19, .vertex_count=35, .vertices=&futuram_vertices[4070]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4140]}, + {.width=20, .vertex_count=35, .vertices=&futuram_vertices[4210]}, + {.width=14, .vertex_count=20, .vertices=&futuram_vertices[4280]}, + {.width=17, .vertex_count=49, .vertices=&futuram_vertices[4320]}, + {.width=11, .vertex_count=15, .vertices=&futuram_vertices[4418]}, + {.width=20, .vertex_count=24, .vertices=&futuram_vertices[4448]}, + {.width=16, .vertex_count=13, .vertices=&futuram_vertices[4496]}, + {.width=24, .vertex_count=25, .vertices=&futuram_vertices[4522]}, + {.width=18, .vertex_count=15, .vertices=&futuram_vertices[4572]}, + {.width=16, .vertex_count=16, .vertices=&futuram_vertices[4602]}, + {.width=18, .vertex_count=19, .vertices=&futuram_vertices[4634]}, + {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4672]}, + {.width=8, .vertex_count=2, .vertices=&futuram_vertices[4678]}, + {.width=14, .vertex_count=3, .vertices=&futuram_vertices[4682]}, + {.width=24, .vertex_count=23, .vertices=&futuram_vertices[4688]} + } +}; + +static const int8_t gothgbt_vertices[9046] = { + 6, -12, 5, -11, 3, -10, 5, -9, 6, 2, -128, -128, 6, -9, 7, -10, 6, -11, 5, -10, 6, -9, 6, 2, -128, -128, 6, -12, 7, -11, 9, -10, 7, -9, 6, 2, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 12, -12, 14, -11, 15, -9, 15, -7, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 16, -8, 15, -10, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, 7, 4, 5, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 5, 4, 5, 6, 6, 8, 8, 9, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 20, -4, 21, -3, 22, -3, 23, -4, -128, -128, 19, -3, 20, -2, 22, -2, -128, -128, 19, -2, 20, -1, 21, -1, 22, -2, 23, -4, -128, -128, 20, -4, 14, 2, -128, -128, 13, 3, 7, 9, 3, 4, 9, -2, -128, -128, 10, -3, 14, -7, 10, -12, 5, -6, 11, 0, 15, 6, 17, 8, 19, 9, 21, 9, 22, 8, 23, 6, -128, -128, 7, 8, 4, 4, -128, -128, 13, -7, 10, -11, -128, -128, 6, -6, 11, -1, 15, 5, 17, 7, 19, 8, 22, 8, -128, -128, 8, 8, 4, 3, -128, -128, 13, -6, 9, -11, -128, -128, 6, -7, 12, -1, 16, 5, 17, 6, 19, 7, 22, 7, 23, 6, 6, -6, 6, -8, 4, -10, 6, -12, 7, -10, 7, -8, 6, -6, 4, -5, -128, -128, 6, -11, 5, -10, 6, -9, 6, -11, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 7, -10, 8, -9, 9, -7, 9, 6, 7, 7, -128, -128, 9, -9, 8, -10, 9, -11, 10, -9, 10, 7, 12, 8, -128, -128, 7, -10, 10, -12, 11, -10, 11, 6, 13, 7, 14, 7, -128, -128, 7, 7, 8, 7, 10, 8, 11, 9, 12, 8, 14, 7, 4, -10, 6, -10, 8, -11, 9, -12, 11, -11, 14, -10, 16, -10, -128, -128, 8, -10, 10, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -10, 11, -11, -128, -128, 14, -10, 14, -2, -128, -128, 15, -9, 15, -3, -128, -128, 16, -10, 16, -2, 9, -2, 6, -1, 4, 1, 3, 4, 3, 9, -128, -128, 3, 9, 7, 7, 11, 6, 14, 6, 18, 7, -128, -128, 6, 8, 9, 7, 14, 7, 17, 8, -128, -128, 3, 9, 8, 8, 13, 8, 16, 9, 18, 7, 4, -10, 5, -10, 7, -11, 8, -12, 10, -11, 14, -10, 16, -10, -128, -128, 7, -10, 9, -11, -128, -128, 4, -10, 6, -9, 8, -9, 10, -11, -128, -128, 14, -10, 14, -3, -128, -128, 15, -9, 15, -4, -128, -128, 16, -10, 16, -3, 14, -3, 11, -2, 9, -1, -128, -128, 9, -2, 11, -1, 14, 0, 16, 0, 16, 7, -128, -128, 15, 1, 15, 6, -128, -128, 14, 0, 14, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 13, -12, 3, -2, 3, 3, 12, 3, -128, -128, 14, 3, 18, 3, 19, 4, 19, 2, 18, 3, -128, -128, 4, -2, 4, 2, -128, -128, 5, -4, 5, 3, -128, -128, 12, -11, 12, 6, 10, 7, -128, -128, 13, -8, 14, -10, 13, -11, 13, 7, 15, 8, -128, -128, 13, -12, 15, -10, 14, -8, 14, 6, 16, 7, 17, 7, -128, -128, 10, 7, 11, 7, 13, 8, 14, 9, 15, 8, 17, 7, 4, -12, 4, -3, -128, -128, 4, -12, 16, -12, -128, -128, 5, -11, 14, -11, -128, -128, 4, -10, 13, -10, 15, -11, 16, -12, -128, -128, 14, -6, 13, -5, 11, -4, 7, -3, 4, -3, -128, -128, 11, -4, 12, -4, 14, -3, 14, 7, -128, -128, 13, -5, 15, -4, 15, 6, -128, -128, 14, -6, 15, -5, 17, -4, 18, -4, 16, -3, 16, 7, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 4, -10, 4, 6, 2, 7, -128, -128, 5, -9, 5, 6, 8, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 8, -128, -128, 4, -10, 6, -10, 10, -11, 12, -12, 13, -11, 15, -10, 16, -10, -128, -128, 11, -11, 13, -10, -128, -128, 10, -11, 12, -9, 14, -9, 16, -10, -128, -128, 6, -2, 7, -2, 11, -3, 13, -4, 14, -5, -128, -128, 11, -3, 12, -3, 14, -2, 14, 7, -128, -128, 13, -4, 15, -2, 15, 6, -128, -128, 14, -5, 15, -4, 17, -3, 18, -3, 16, -2, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 3, -10, 5, -12, 8, -11, 13, -11, 18, -12, -128, -128, 4, -11, 7, -10, 12, -10, 15, -11, -128, -128, 3, -10, 7, -9, 10, -9, 14, -10, 18, -12, -128, -128, 18, -12, 17, -10, 15, -7, 11, -3, 9, 0, 8, 3, 8, 6, 9, 9, -128, -128, 10, -1, 9, 2, 9, 5, 10, 8, -128, -128, 13, -5, 11, -2, 10, 1, 10, 4, 11, 7, 9, 9, 4, -9, 4, -3, -128, -128, 5, -8, 5, -4, -128, -128, 6, -9, 6, -3, -128, -128, 4, -9, 6, -9, 11, -10, 13, -11, 14, -12, -128, -128, 11, -10, 12, -10, 14, -9, 14, -3, -128, -128, 13, -11, 15, -10, 15, -4, -128, -128, 14, -12, 15, -11, 17, -10, 18, -10, 16, -9, 16, -3, -128, -128, 4, -3, 6, -3, 14, 0, 16, 0, -128, -128, 16, -3, 14, -3, 6, 0, 4, 0, -128, -128, 4, 0, 4, 6, 2, 7, -128, -128, 5, 1, 5, 6, 8, 8, -128, -128, 6, 0, 6, 6, 8, 7, 9, 8, -128, -128, 14, 0, 14, 7, -128, -128, 15, 1, 15, 6, -128, -128, 16, 0, 16, 7, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 14, 7, 16, 7, 4, -10, 4, -1, 2, 0, -128, -128, 5, -9, 5, 0, 7, 1, -128, -128, 6, -10, 6, -1, 8, 0, 9, 0, -128, -128, 4, -10, 6, -10, 11, -11, 13, -12, -128, -128, 11, -11, 12, -10, 14, -9, 14, 7, -128, -128, 12, -11, 15, -9, 15, 6, -128, -128, 13, -12, 14, -11, 16, -10, 18, -10, 16, -9, 16, 7, -128, -128, 2, 0, 3, 0, 5, 1, 6, 2, 7, 1, 9, 0, 13, -1, 14, -1, -128, -128, 3, 7, 5, 6, 7, 6, 9, 7, 10, 8, -128, -128, 7, 7, 9, 8, -128, -128, 3, 7, 5, 7, 7, 8, 8, 9, 10, 8, 14, 7, 16, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 6, 4, 8, 6, 9, 8, 8, 6, 6, -128, -128, 6, 7, 5, 8, 7, 8, 6, 7, 6, -5, 4, -3, 6, -2, 8, -3, 6, -5, -128, -128, 6, -4, 5, -3, 7, -3, 6, -4, -128, -128, 6, 12, 6, 10, 4, 8, 6, 6, 7, 8, 7, 10, 6, 12, 4, 13, -128, -128, 6, 7, 5, 8, 6, 9, 6, 7, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 3, -8, 4, -10, 5, -11, 8, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 12, -2, 10, -1, -128, -128, 4, -8, 5, -10, -128, -128, 13, -10, 14, -9, 14, -5, 13, -4, -128, -128, 3, -8, 5, -7, 5, -9, 6, -11, 8, -12, -128, -128, 10, -12, 12, -11, 13, -9, 13, -5, 12, -3, 10, -1, -128, -128, 9, -1, 9, 2, 10, -1, 8, -1, 9, 2, -128, -128, 9, 6, 7, 8, 9, 9, 11, 8, 9, 6, -128, -128, 9, 7, 8, 8, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 5, -9, 7, -11, 9, -12, 11, -12, 12, -11, 19, 5, 20, 6, 22, 6, -128, -128, 10, -11, 11, -10, 18, 6, 19, 8, 20, 7, 18, 6, -128, -128, 7, -11, 9, -11, 10, -10, 17, 6, 18, 8, 19, 9, 20, 9, 22, 6, -128, -128, 5, -5, 6, -6, 8, -7, 9, -7, 10, -6, -128, -128, 9, -6, 9, -5, -128, -128, 6, -6, 8, -6, 9, -4, -128, -128, 0, 9, 2, 7, 4, 6, 7, 6, 9, 7, -128, -128, 3, 7, 7, 7, 8, 8, -128, -128, 0, 9, 3, 8, 6, 8, 7, 9, 9, 7, -128, -128, 11, -8, 5, 6, -128, -128, 7, 1, 15, 1, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 18, -12, 20, -11, 21, -9, 21, -7, 19, -5, 15, -3, -128, -128, 18, -11, 20, -9, 20, -7, -128, -128, 16, -11, 18, -10, 19, -9, 19, -6, 17, -4, -128, -128, 17, -4, 20, -2, 21, 0, 21, 6, -128, -128, 19, -2, 20, 0, 20, 5, -128, -128, 17, -4, 18, -3, 19, -1, 19, 6, -128, -128, 4, 9, 7, 7, 10, 6, 14, 6, 17, 7, -128, -128, 6, 8, 9, 7, 14, 7, 16, 8, -128, -128, 4, 9, 8, 8, 13, 8, 15, 9, 17, 7, 19, 6, 21, 6, -128, -128, 15, -3, 15, 6, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 5, -7, 4, -4, 4, 1, 6, 5, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 0, 6, 3, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 11, -8, 11, 4, -128, -128, 12, -8, 12, 2, -128, -128, 13, -9, 13, 1, 12, 3, 11, 4, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 18, -9, 18, 6, 2, -12, 16, -12, 18, -11, 19, -9, 19, 6, -128, -128, 4, -11, 16, -11, 18, -9, 18, 5, -128, -128, 2, -12, 3, -11, 5, -10, 16, -10, 17, -9, 17, 6, -128, -128, 8, -7, 7, -6, 6, -4, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 4, -128, -128, 7, -5, 7, 2, -128, -128, 4, -2, 7, -2, -128, -128, 8, -7, 8, 1, 7, 3, 6, 4, -128, -128, 2, 9, 5, 7, 8, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 12, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 13, 9, 15, 7, 17, 6, 19, 6, -128, -128, 11, -10, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 2, -10, 4, -12, 6, -12, 8, -11, 10, -12, -128, -128, 5, -11, 7, -11, -128, -128, 2, -10, 4, -11, 6, -10, 8, -10, 10, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 10, -5, 11, -8, 12, -10, 13, -11, 15, -12, 17, -12, 20, -11, -128, -128, 13, -10, 15, -11, 17, -11, 19, -10, -128, -128, 11, -8, 12, -9, 14, -10, 16, -10, 18, -9, 20, -11, -128, -128, 10, 3, 11, 0, 12, -2, 13, -3, 15, -3, 17, -2, -128, -128, 13, -2, 15, -2, 16, -1, -128, -128, 11, 0, 12, -1, 14, -1, 15, 0, 17, -2, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 10, -5, 10, 6, 4, -10, 6, -12, 9, -12, 11, -11, 13, -12, -128, -128, 7, -11, 10, -11, -128, -128, 4, -10, 6, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 13, -8, 13, 7, 12, 8, 11, 8, 7, 6, 5, 6, 3, 7, 1, 9, -128, -128, 14, -8, 14, 6, -128, -128, 14, -2, 18, -2, -128, -128, 10, 8, 9, 8, 7, 7, 4, 7, -128, -128, 15, -9, 15, -3, 18, -3, -128, -128, 18, -1, 15, -1, 15, 5, 14, 7, 10, 9, 8, 9, 6, 8, 4, 8, 1, 9, -128, -128, 13, -8, 15, -9, 18, -12, 20, -11, 22, -11, 23, -12, -128, -128, 17, -11, 19, -10, 21, -10, -128, -128, 16, -10, 18, -9, 20, -9, 22, -10, 23, -12, -128, -128, 18, -9, 18, 5, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 16, 9, 19, 8, 21, 6, 22, 4, 22, 1, 21, -1, 20, -2, 18, -3, 16, -3, -128, -128, 5, -7, 4, -4, 4, 1, 5, 4, -128, -128, 9, -11, 7, -9, 6, -7, 5, -4, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 20, 6, 21, 5, 21, 1, 20, -1, -128, -128, 16, 9, 18, 8, 19, 7, 20, 5, 20, 1, 19, -1, 18, -2, 16, -3, -128, -128, 11, -8, 11, 5, -128, -128, 12, -8, 12, 3, -128, -128, 13, -9, 13, 2, 12, 4, 11, 5, -128, -128, 11, -8, 13, -9, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 15, -11, 17, -10, 19, -10, -128, -128, 14, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 20, -10, 16, -3, 16, 9, -128, -128, 16, 1, 20, 1, -128, -128, 16, 4, 20, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 9, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 17, -4, 19, -6, 20, -5, 21, -2, 21, 2, 20, 6, 18, 9, -128, -128, 18, -5, 19, -4, 20, -2, 20, 3, 19, 6, -128, -128, 17, -4, 18, -4, 19, -2, 19, 3, 18, 9, -128, -128, 15, -3, 15, 7, -128, -128, 15, 0, 19, 0, -128, -128, 15, 3, 19, 3, 3, -10, 5, -12, 8, -12, 11, -11, 13, -12, -128, -128, 6, -11, 10, -11, -128, -128, 3, -10, 5, -11, 8, -10, 11, -10, 13, -12, -128, -128, 10, -7, 9, -6, 8, -4, 8, -3, 6, -3, 5, -2, 5, 0, 6, -1, 8, -1, 8, 4, -128, -128, 9, -5, 9, 2, -128, -128, 6, -2, 9, -2, -128, -128, 10, -7, 10, 1, 9, 3, 8, 4, -128, -128, 16, -10, 14, -8, 13, -5, 13, 6, 12, 8, 10, 8, 6, 6, 4, 6, 2, 7, 0, 9, -128, -128, 14, -7, 14, 5, -128, -128, 9, 8, 8, 8, 6, 7, 3, 7, -128, -128, 16, -10, 15, -8, 15, 4, 14, 6, 12, 8, 10, 9, 7, 9, 5, 8, 2, 8, 0, 9, 4, -10, 6, -12, 9, -12, 12, -11, 14, -12, -128, -128, 7, -11, 11, -11, -128, -128, 4, -10, 6, -11, 9, -10, 12, -10, 14, -12, -128, -128, 11, -7, 10, -6, 9, -4, 9, -3, 7, -3, 6, -2, 6, 0, 7, -1, 9, -1, 9, 4, -128, -128, 10, -5, 10, 2, -128, -128, 7, -2, 10, -2, -128, -128, 11, -7, 11, 1, 10, 3, 9, 4, -128, -128, 17, -10, 15, -8, 14, -5, 14, 6, 13, 8, -128, -128, 15, -7, 15, 5, -128, -128, 17, -10, 16, -8, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 4, 5, 3, 5, -128, -128, 2, 4, 5, 4, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 15, -3, 18, -6, 19, -5, 21, -4, -128, -128, 17, -5, 19, -4, 21, -4, -128, -128, 21, -4, 19, -1, 17, 1, 15, 3, -128, -128, 17, 1, 19, 2, 20, 6, 21, 8, 22, 8, -128, -128, 19, 4, 20, 8, -128, -128, 17, 1, 18, 2, 19, 8, 20, 9, 21, 9, 22, 8, -128, -128, 15, -3, 15, 7, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 11, 6, 16, 6, 20, 7, -128, -128, 6, 8, 9, 7, 16, 7, 19, 8, -128, -128, 4, 9, 8, 8, 15, 8, 18, 9, 20, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 14, -11, 16, -12, 18, -12, 20, -11, -128, -128, 17, -11, 18, -11, 19, -10, -128, -128, 14, -11, 16, -11, 18, -9, 20, -11, -128, -128, 16, -11, 16, 6, 8, -8, 7, -7, 6, -5, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, 6, 3, -128, -128, 7, -6, 7, 1, -128, -128, 4, -2, 7, -2, -128, -128, 8, -8, 8, 0, 7, 2, 6, 3, -128, -128, 1, 9, 3, 7, 5, 6, 7, 6, 9, 7, 10, 7, 11, 6, -128, -128, 4, 7, 7, 7, 9, 8, -128, -128, 1, 9, 3, 8, 6, 8, 8, 9, 9, 9, 10, 8, 11, 6, -128, -128, 8, -8, 12, -12, 16, -8, 16, 5, 17, 7, 18, 7, -128, -128, 12, -11, 15, -8, 15, 6, 14, 7, 15, 8, 16, 7, 15, 6, -128, -128, 12, -2, 15, -2, -128, -128, 10, -10, 11, -10, 14, -7, 14, -3, 11, -3, -128, -128, 11, -1, 14, -1, 14, 6, 13, 7, 15, 9, 18, 7, 19, 6, -128, -128, 16, -8, 20, -12, 24, -8, 24, 5, 25, 7, 26, 7, -128, -128, 20, -11, 23, -8, 23, 6, 25, 8, -128, -128, 20, -2, 23, -2, -128, -128, 18, -10, 19, -10, 22, -7, 22, -3, 19, -3, -128, -128, 19, -1, 22, -1, 22, 7, 24, 9, 26, 7, -128, -128, 11, -10, 11, 6, -128, -128, 19, -10, 19, 6, 2, -9, 4, -11, 6, -12, 8, -12, 10, -11, 12, -8, 17, 3, 19, 6, 20, 7, -128, -128, 8, -11, 10, -9, 11, -7, 17, 5, 20, 8, -128, -128, 4, -11, 6, -11, 8, -10, 10, -7, 15, 4, 17, 7, 18, 8, 20, 9, -128, -128, 17, -10, 19, -9, 21, -9, 23, -10, 24, -12, -128, -128, 18, -11, 20, -10, 22, -10, -128, -128, 17, -10, 19, -12, 21, -11, 23, -11, 24, -12, -128, -128, 6, -3, 4, -3, 3, -2, 3, 0, 4, -1, 6, -1, -128, -128, 4, -2, 6, -2, -128, -128, 2, 9, 4, 7, 6, 6, 9, 6, 11, 7, -128, -128, 5, 7, 8, 7, 10, 8, -128, -128, 2, 9, 5, 8, 8, 8, 9, 9, 11, 7, -128, -128, 6, -11, 6, 6, -128, -128, 20, -9, 20, 9, -128, -128, 13, -6, 14, -5, 16, -4, 18, -4, 20, -5, -128, -128, 6, 2, 8, 1, 12, 1, 14, 2, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 7, 2, 9, 5, 8, 5, 16, 7, 14, -128, -128, 5, -10, 6, -8, 6, 14, -128, -128, 3, -2, 6, -2, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 14, -128, -128, 7, -7, 10, -9, 14, -12, 18, -8, 18, 6, -128, -128, 14, -11, 17, -8, 17, 6, -128, -128, 12, -10, 13, -10, 16, -7, 16, 7, -128, -128, 10, 6, 13, 6, 16, 7, -128, -128, 11, 7, 13, 7, 15, 8, -128, -128, 10, 8, 12, 8, 14, 9, 16, 7, 18, 6, -128, -128, 10, -9, 10, 13, -128, -128, 10, -5, 12, -4, 14, -4, 16, -5, -128, -128, 10, 1, 12, 0, 14, 0, 16, 1, 9, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 11, 9, 15, 9, 17, 8, 19, 7, 21, 5, 22, 3, 23, 0, 23, -4, 22, -7, 21, -9, 19, -11, 17, -12, 16, -11, 13, -9, 10, -8, -128, -128, 5, -8, 4, -5, 4, 1, 5, 4, -128, -128, 9, -12, 7, -10, 6, -8, 5, -5, 5, 1, 6, 4, 7, 6, 9, 8, -128, -128, 21, 4, 22, 1, 22, -5, 20, -9, 19, -10, -128, -128, 17, 8, 19, 6, 20, 4, 21, 1, 21, -5, 20, -7, 18, -10, 16, -11, -128, -128, 10, -8, 10, 5, -128, -128, 11, -8, 11, 3, -128, -128, 12, -8, 12, 2, 11, 4, 10, 5, -128, -128, 16, -11, 16, 8, -128, -128, 16, -5, 18, -4, 19, -4, 21, -5, -128, -128, 16, 1, 18, 0, 19, 0, 21, 1, -128, -128, 11, 9, 12, 8, 13, 8, 15, 9, 19, 14, 21, 15, 22, 15, -128, -128, 15, 10, 17, 13, 19, 15, 20, 15, -128, -128, 13, 8, 14, 9, 17, 15, 19, 16, 21, 16, 22, 15, 2, -10, 4, -12, 7, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 6, -10, 9, -10, 11, -12, -128, -128, 7, -7, 6, -6, 5, -4, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 5, -128, -128, 6, -5, 6, 3, -128, -128, 3, -2, 6, -2, -128, -128, 7, -7, 7, 2, 6, 4, 5, 5, -128, -128, 4, 9, 7, 7, 10, 6, 12, 6, 15, 7, -128, -128, 6, 8, 8, 7, 12, 7, 14, 8, -128, -128, 4, 9, 8, 8, 11, 8, 13, 9, 15, 7, -128, -128, 12, -9, 11, -8, 10, -6, 10, 3, -128, -128, 11, -7, 11, 1, -128, -128, 12, -9, 12, 0, 11, 2, 10, 3, -128, -128, 12, -9, 15, -11, 17, -12, 19, -11, 20, -9, 20, -6, 19, -4, 18, -3, 14, -1, 12, 0, -128, -128, 17, -11, 18, -11, 19, -9, 19, -5, 18, -4, -128, -128, 15, -11, 17, -10, 18, -8, 18, -5, 17, -3, 14, -1, -128, -128, 14, -1, 16, 0, 17, 1, 20, 6, 21, 7, 22, 7, -128, -128, 17, 2, 19, 6, 21, 8, -128, -128, 14, -1, 16, 1, 18, 7, 20, 9, 22, 7, 14, -9, 13, -10, 11, -11, 8, -12, -128, -128, 15, -10, 13, -11, -128, -128, 16, -11, 12, -12, 8, -12, 5, -11, 4, -10, 3, -8, 4, -6, 5, -5, 8, -4, 16, -4, 18, -3, 19, -2, 19, 0, 18, 3, -128, -128, 4, -7, 5, -6, 8, -5, 17, -5, 19, -4, 20, -3, 20, -1, 19, 1, -128, -128, 4, -10, 4, -8, 5, -7, 8, -6, 18, -6, 20, -5, 21, -3, 21, -1, 18, 3, 14, 9, -128, -128, 2, -3, 3, -2, 5, -1, 14, -1, 15, 0, 15, 1, 14, 3, -128, -128, 3, -1, 5, 0, 13, 0, 14, 1, -128, -128, 2, -3, 2, -2, 3, 0, 5, 1, 12, 1, 14, 2, 14, 3, -128, -128, 2, 9, 5, 7, 9, 6, 12, 6, 15, 7, -128, -128, 4, 8, 7, 7, 11, 7, 14, 8, -128, -128, 2, 9, 6, 8, 11, 8, 14, 9, -128, -128, 16, -11, 14, -9, 12, -6, -128, -128, 11, -4, 9, -1, -128, -128, 8, 1, 6, 3, 4, 4, 3, 4, 3, 3, 4, 4, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 6, 7, 8, 8, 11, 9, 14, 9, 17, 8, 19, 7, 21, 5, 22, 3, -128, -128, 4, 1, 5, 4, 7, 6, 9, 7, 12, 8, 15, 8, 18, 7, -128, -128, 5, -8, 4, -5, 4, -1, 5, 2, 7, 5, 9, 6, 12, 7, 15, 7, 18, 6, 20, 5, 22, 3, -128, -128, 3, -9, 4, -11, 6, -12, 10, -12, 16, -11, 20, -11, 22, -12, -128, -128, 11, -11, 15, -10, 19, -10, -128, -128, 3, -9, 4, -10, 6, -11, 9, -11, 15, -9, 18, -9, 20, -10, 22, -12, -128, -128, 14, -9, 13, -8, 11, -7, 11, 4, -128, -128, 12, -7, 12, 2, -128, -128, 13, -8, 13, 1, 12, 3, 11, 4, -128, -128, 18, -9, 18, 6, 2, -10, 4, -12, 6, -12, 9, -11, 11, -12, -128, -128, 5, -11, 8, -11, -128, -128, 2, -10, 4, -11, 7, -10, 9, -10, 11, -12, -128, -128, 5, -8, 4, -6, 3, -3, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 16, 8, 18, 7, 20, 9, 22, 7, -128, -128, 4, 1, 5, 4, 8, 7, 11, 8, 14, 8, -128, -128, 5, -8, 4, -4, 4, -1, 5, 2, 6, 4, 8, 6, 11, 7, 15, 7, 18, 6, -128, -128, 15, -9, 11, -8, 10, -6, 10, 4, -128, -128, 11, -7, 11, 2, -128, -128, 12, -8, 12, 1, 11, 3, 10, 4, -128, -128, 15, -9, 17, -10, 19, -12, 20, -11, 22, -10, 20, -9, 20, 5, 21, 7, 22, 7, -128, -128, 19, -9, 20, -10, 19, -11, 18, -10, 19, -9, 19, 6, 21, 8, -128, -128, 17, -10, 18, -9, 18, 6, -128, -128, 15, -9, 15, 7, -128, -128, 15, -4, 18, -4, -128, -128, 15, 0, 18, 0, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, 19, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 6, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 5, -128, -128, 16, -10, 17, -9, 17, 6, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 9, 7, 11, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 10, 6, 12, 7, -128, -128, 3, 7, 6, 7, 9, 8, 10, 9, 12, 7, 15, 6, 17, 7, 18, 9, 20, 7, 23, 6, -128, -128, 10, -10, 13, -12, 15, -10, 15, 6, 18, 6, 20, 7, -128, -128, 13, -11, 14, -10, 14, 6, -128, -128, 10, -10, 12, -10, 13, -9, 13, 6, 12, 7, -128, -128, 18, 7, 19, 8, -128, -128, 18, -10, 21, -12, 23, -10, 23, 6, -128, -128, 21, -11, 22, -10, 22, 6, -128, -128, 18, -10, 20, -10, 21, -9, 21, 6, 20, 7, -128, -128, 10, -10, 10, 6, -128, -128, 18, -10, 18, 6, -128, -128, 10, -4, 13, -4, -128, -128, 10, 0, 13, 0, -128, -128, 18, -4, 21, -4, -128, -128, 18, 0, 21, 0, 1, -9, 3, -11, 5, -12, 7, -12, 8, -11, 16, 7, 17, 8, 19, 8, -128, -128, 6, -11, 7, -10, 15, 7, 16, 8, -128, -128, 3, -11, 5, -11, 6, -10, 14, 8, 15, 9, 17, 9, 19, 8, 21, 6, -128, -128, 16, -12, 18, -11, 20, -11, 21, -12, -128, -128, 16, -11, 17, -10, 19, -10, -128, -128, 15, -10, 16, -9, 18, -9, 20, -10, 21, -12, -128, -128, 1, 9, 2, 7, 4, 6, 6, 6, 7, 7, -128, -128, 3, 7, 5, 7, 6, 8, -128, -128, 1, 9, 2, 8, 4, 8, 6, 9, -128, -128, 16, -12, 12, -3, -128, -128, 10, 0, 6, 9, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 17, -2, 3, -12, 4, -11, 5, -9, 5, -3, 3, -3, 2, -2, 2, 0, 3, -1, 5, -1, 5, 6, 3, 7, -128, -128, 5, -10, 6, -8, 6, 6, -128, -128, 3, -2, 6, -2, -128, -128, 7, 7, 10, 7, 12, 8, -128, -128, 3, -12, 5, -11, 6, -10, 7, -8, 7, 6, 11, 6, 14, 7, -128, -128, 3, 7, 6, 7, 9, 8, 11, 9, 14, 7, 17, 6, -128, -128, 11, -8, 14, -9, 16, -10, 18, -12, 19, -11, 21, -10, 19, -9, 19, 12, 18, 14, 16, 16, 14, 15, 10, 14, 5, 14, -128, -128, 18, -9, 19, -10, 18, -11, 17, -10, 18, -9, 18, 7, -128, -128, 16, -10, 17, -9, 17, 6, 19, 9, -128, -128, 17, 15, 15, 14, 12, 14, -128, -128, 18, 14, 15, 13, 9, 13, 5, 14, -128, -128, 11, -8, 11, 6, -128, -128, 11, -5, 13, -4, 15, -4, 17, -5, -128, -128, 11, 1, 13, 0, 15, 0, 17, 1, 16, -11, 15, -9, 10, -3, 7, 1, 5, 5, 2, 9, -128, -128, 14, -7, 6, 4, -128, -128, 18, -12, 15, -8, 13, -4, 10, 0, 5, 6, 4, 8, -128, -128, 2, -10, 4, -12, 7, -11, 13, -11, 18, -12, -128, -128, 3, -11, 7, -10, 11, -10, 15, -11, -128, -128, 2, -10, 6, -9, 10, -9, 14, -10, 16, -11, -128, -128, 4, 8, 6, 7, 10, 6, 14, 6, 18, 7, -128, -128, 5, 8, 9, 7, 13, 7, 17, 8, -128, -128, 2, 9, 7, 8, 13, 8, 16, 9, 18, 7, -128, -128, 5, -2, 9, -2, -128, -128, 12, -2, 16, -2, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -7, 6, -9, 6, -11, -128, -128, 6, -8, 6, -6, 7, -7, 6, -8, 6, 0, 4, 2, 3, 4, 3, 6, 4, 8, 6, 9, 8, 7, 11, 6, -128, -128, 3, 4, 4, 6, 5, 7, 7, 8, -128, -128, 4, 2, 4, 4, 5, 6, 7, 7, 8, 7, -128, -128, 4, -2, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 13, -2, 13, 6, 14, 7, 15, 7, -128, -128, 5, -4, 4, -3, 7, -3, -128, -128, 10, -3, 13, -3, 12, -4, 12, 7, 13, 8, -128, -128, 3, -3, 5, -5, 6, -4, 8, -3, 11, -2, 11, 7, 13, 9, 15, 7, -128, -128, 3, -3, 8, 2, 3, -10, 4, -8, 4, 6, 2, 7, -128, -128, 5, -8, 4, -10, 5, -11, 5, 6, 8, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 6, -3, 8, -4, 10, -2, 12, -2, 14, -3, 9, -5, 7, -4, 4, -3, 4, 6, 2, 7, -128, -128, 5, -3, 5, 6, 8, 8, -128, -128, 9, -5, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -10, 7, -12, 8, -9, 14, -3, 14, 7, -128, -128, 7, -9, 5, -10, 6, -11, 7, -9, 13, -3, 13, 6, -128, -128, 4, -10, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -3, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -3, 8, -4, 10, -5, 13, -1, 11, 0, 6, 3, -128, -128, 9, -4, 12, -1, -128, -128, 6, -3, 8, -4, 11, 0, 4, -10, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -10, 5, 7, 7, 8, -128, -128, 6, -10, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 4, -10, 7, -11, 9, -12, 10, -11, 12, -10, 13, -10, -128, -128, 8, -11, 9, -10, 11, -10, -128, -128, 6, -10, 7, -11, 9, -9, 11, -9, 13, -10, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 10, -5, 4, -3, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 10, -4, 13, -2, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 9, -4, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, 12, 9, 11, 11, -128, -128, 11, -4, 13, -3, 13, 7, 12, 9, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 11, 11, 11, 14, 12, 16, 13, 16, 11, 14, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 8, 7, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 8, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 6, 7, 7, 8, 7, 5, -12, 3, -10, 5, -9, 7, -10, 5, -12, -128, -128, 5, -11, 4, -10, 6, -10, 5, -11, -128, -128, 5, -5, 4, -4, 2, -3, 4, -2, 4, 7, 6, 9, 7, 11, -128, -128, 5, -2, 6, -3, 5, -4, 4, -3, 5, -2, 5, 7, 6, 9, -128, -128, 5, -5, 6, -4, 8, -3, 6, -2, 6, 7, 7, 11, 7, 14, 5, 16, 3, 16, 3, 15, 5, 16, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -4, 11, -5, 13, -2, 10, 0, 6, 3, -128, -128, 10, -4, 12, -2, -128, -128, 9, -4, 11, -1, -128, -128, 10, 0, 11, 1, 13, 6, 14, 7, 15, 7, -128, -128, 10, 1, 11, 2, 12, 7, 13, 8, -128, -128, 9, 1, 10, 2, 11, 7, 13, 9, 15, 7, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 14, -3, 14, 6, 16, 7, 14, 9, -128, -128, 11, -4, 13, -3, 13, 7, 15, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 6, 11, 7, 13, 8, 14, 9, -128, -128, 14, -2, 17, -3, 19, -4, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, 23, 7, 24, 7, -128, -128, 19, -4, 21, -3, 21, 7, 22, 8, -128, -128, 17, -3, 18, -3, 20, -2, 20, 7, 22, 9, 24, 7, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 4, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 6, 9, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 6, 8, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 2, 7, 4, 7, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 7, -128, -128, 10, -4, 13, -2, 13, 6, -128, -128, 9, -4, 10, -3, 12, -2, 12, 7, 3, -5, 4, -3, 4, 6, 2, 7, 4, 7, 4, 16, -128, -128, 4, -4, 5, -3, 5, 15, 6, 14, 5, 12, -128, -128, 5, 7, 6, 7, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 6, 8, 7, 9, 8, -128, -128, 6, 8, 7, 9, 9, 8, 12, 7, 14, 7, -128, -128, 6, 8, 6, 12, 7, 14, 4, 16, -128, -128, 6, -2, 9, -3, 11, -4, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 7, -128, -128, 11, -4, 13, -3, 13, 6, -128, -128, 9, -3, 10, -3, 12, -2, 12, 7, 4, -3, 4, 6, 2, 7, -128, -128, 5, -2, 5, 7, 7, 8, -128, -128, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 4, -3, 6, -3, 9, -4, 11, -5, 12, -4, 14, -3, 16, -3, 14, -2, 14, 16, -128, -128, 10, -4, 13, -2, 13, 15, 12, 14, 13, 12, -128, -128, 9, -4, 10, -3, 12, -2, 12, 12, 11, 14, 14, 16, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 6, -3, 10, -5, 11, -4, 13, -3, 14, -3, -128, -128, 9, -4, 10, -3, 12, -3, -128, -128, 8, -4, 10, -2, 12, -2, 14, -3, 3, -3, 3, 1, 5, 2, 11, 2, 13, 3, 13, 7, -128, -128, 4, -3, 4, 1, -128, -128, 12, 3, 12, 7, -128, -128, 6, -4, 5, -3, 5, 1, 7, 2, -128, -128, 9, 2, 11, 3, 11, 7, 10, 8, -128, -128, 3, -3, 6, -4, 8, -5, 10, -4, 12, -4, 13, -5, -128, -128, 7, -4, 9, -4, -128, -128, 6, -4, 8, -3, 10, -3, 12, -4, -128, -128, 13, 7, 10, 8, 8, 9, 6, 8, 4, 8, 2, 9, -128, -128, 9, 8, 7, 8, -128, -128, 10, 8, 8, 7, 5, 7, 2, 9, -128, -128, 13, -5, 12, -3, 10, 0, 5, 5, 2, 9, 3, -10, 4, -8, 4, 6, 2, 7, 3, 7, 5, 8, 6, 9, -128, -128, 5, -8, 4, -10, 5, -11, 5, 7, 7, 8, -128, -128, 3, -10, 6, -12, 6, 6, 8, 7, 9, 7, 7, 8, 6, 9, -128, -128, 1, -5, 4, -5, -128, -128, 6, -5, 9, -5, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, 15, 7, 16, 7, -128, -128, 11, -4, 13, -3, 13, 7, 14, 8, -128, -128, 12, -5, 10, -3, 12, -2, 12, 7, 14, 9, 16, 7, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, 14, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 6, -128, -128, 11, -4, 13, -3, 13, 5, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 3, -5, 4, -3, 4, 6, 7, 9, 9, 7, 12, 6, -128, -128, 4, -4, 5, -3, 5, 6, 8, 8, -128, -128, 3, -5, 5, -4, 6, -3, 6, 5, 7, 6, 9, 7, -128, -128, 12, -5, 10, -3, 12, -2, 12, 6, 15, 9, 17, 7, 20, 6, 22, 6, -128, -128, 11, -4, 13, -3, 13, 6, 16, 8, -128, -128, 12, -5, 13, -4, 15, -3, 14, -2, 14, 5, 15, 6, 17, 7, -128, -128, 20, -5, 21, -4, 23, -3, 24, -3, 22, -2, 22, 6, -128, -128, 19, -4, 21, -3, 21, 5, -128, -128, 20, -5, 18, -3, 20, -2, 20, 6, 3, -3, 4, -3, 6, -2, 7, -1, 11, 7, 12, 8, 14, 9, 16, 7, -128, -128, 5, -4, 7, -3, 12, 7, 14, 8, -128, -128, 3, -3, 5, -5, 7, -4, 8, -3, 12, 5, 13, 6, 15, 7, 16, 7, -128, -128, 10, 1, 13, -5, 14, -4, 16, -4, 17, -5, -128, -128, 13, -4, 14, -3, 15, -3, -128, -128, 12, -3, 14, -2, 16, -3, 17, -5, -128, -128, 9, 3, 6, 9, 5, 8, 3, 8, 2, 9, -128, -128, 6, 8, 5, 7, 4, 7, -128, -128, 7, 7, 5, 6, 3, 7, 2, 9, -128, -128, 5, 2, 8, 2, -128, -128, 11, 2, 14, 2, 2, -3, 3, -3, 4, -2, 4, 6, 2, 7, -128, -128, 3, -4, 5, -3, 5, 7, 7, 8, -128, -128, 2, -3, 4, -5, 6, -3, 6, 6, 8, 7, 9, 7, -128, -128, 2, 7, 3, 7, 5, 8, 6, 9, 7, 8, 9, 7, 12, 6, -128, -128, 12, -5, 13, -4, 15, -3, 16, -3, 14, -2, 14, 10, 13, 13, 11, 15, 9, 16, 8, 15, 6, 14, 4, 14, -128, -128, 11, -4, 13, -3, 13, 10, -128, -128, 10, 15, 8, 14, 7, 14, -128, -128, 12, -5, 10, -3, 12, -2, 12, 8, 13, 11, 13, 13, -128, -128, 11, 15, 10, 14, 8, 13, 6, 13, 4, 14, 15, -5, 3, 9, -128, -128, 3, -3, 5, -2, 8, -2, 11, -3, 15, -5, -128, -128, 4, -4, 6, -3, 10, -3, -128, -128, 3, -3, 5, -5, 7, -4, 11, -4, 15, -5, -128, -128, 3, 9, 7, 7, 10, 6, 13, 6, 15, 7, -128, -128, 8, 7, 12, 7, 14, 8, -128, -128, 3, 9, 7, 8, 11, 8, 13, 9, 15, 7, -128, -128, 5, 2, 13, 2, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12, -128, -128, 6, -12, 3, -9, 4, -5, 8, -4, 11, -7, 10, -11, 6, -12, -128, -128, 8, -12, 4, -11, 3, -7, 6, -4, 10, -5, 11, -9, 8, -12 +}; + +static const hershey_font_t gothgbt { + .chars = { + {.width=16, .vertex_count=0, .vertices=&gothgbt_vertices[0]}, + {.width=12, .vertex_count=29, .vertices=&gothgbt_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=&gothgbt_vertices[58]}, + {.width=21, .vertex_count=11, .vertices=&gothgbt_vertices[100]}, + {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[122]}, + {.width=24, .vertex_count=31, .vertices=&gothgbt_vertices[240]}, + {.width=26, .vertex_count=61, .vertices=&gothgbt_vertices[302]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[424]}, + {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[450]}, + {.width=14, .vertex_count=26, .vertices=&gothgbt_vertices[502]}, + {.width=16, .vertex_count=38, .vertices=&gothgbt_vertices[554]}, + {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[630]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[660]}, + {.width=25, .vertex_count=7, .vertices=&gothgbt_vertices[686]}, + {.width=12, .vertex_count=10, .vertices=&gothgbt_vertices[700]}, + {.width=23, .vertex_count=7, .vertices=&gothgbt_vertices[720]}, + {.width=20, .vertex_count=41, .vertices=&gothgbt_vertices[734]}, + {.width=20, .vertex_count=26, .vertices=&gothgbt_vertices[816]}, + {.width=20, .vertex_count=47, .vertices=&gothgbt_vertices[868]}, + {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[962]}, + {.width=20, .vertex_count=40, .vertices=&gothgbt_vertices[1074]}, + {.width=20, .vertex_count=52, .vertices=&gothgbt_vertices[1154]}, + {.width=20, .vertex_count=58, .vertices=&gothgbt_vertices[1258]}, + {.width=20, .vertex_count=37, .vertices=&gothgbt_vertices[1374]}, + {.width=20, .vertex_count=70, .vertices=&gothgbt_vertices[1448]}, + {.width=20, .vertex_count=59, .vertices=&gothgbt_vertices[1588]}, + {.width=12, .vertex_count=21, .vertices=&gothgbt_vertices[1706]}, + {.width=12, .vertex_count=24, .vertices=&gothgbt_vertices[1748]}, + {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1796]}, + {.width=25, .vertex_count=15, .vertices=&gothgbt_vertices[1802]}, + {.width=24, .vertex_count=3, .vertices=&gothgbt_vertices[1832]}, + {.width=18, .vertex_count=50, .vertices=&gothgbt_vertices[1838]}, + {.width=27, .vertex_count=55, .vertices=&gothgbt_vertices[1938]}, + {.width=22, .vertex_count=59, .vertices=&gothgbt_vertices[2048]}, + {.width=24, .vertex_count=109, .vertices=&gothgbt_vertices[2166]}, + {.width=24, .vertex_count=68, .vertices=&gothgbt_vertices[2384]}, + {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[2520]}, + {.width=22, .vertex_count=93, .vertices=&gothgbt_vertices[2662]}, + {.width=23, .vertex_count=90, .vertices=&gothgbt_vertices[2848]}, + {.width=25, .vertex_count=86, .vertices=&gothgbt_vertices[3028]}, + {.width=24, .vertex_count=111, .vertices=&gothgbt_vertices[3200]}, + {.width=19, .vertex_count=66, .vertices=&gothgbt_vertices[3422]}, + {.width=20, .vertex_count=64, .vertices=&gothgbt_vertices[3554]}, + {.width=24, .vertex_count=114, .vertices=&gothgbt_vertices[3682]}, + {.width=22, .vertex_count=84, .vertices=&gothgbt_vertices[3910]}, + {.width=28, .vertex_count=106, .vertices=&gothgbt_vertices[4078]}, + {.width=25, .vertex_count=83, .vertices=&gothgbt_vertices[4290]}, + {.width=26, .vertex_count=78, .vertices=&gothgbt_vertices[4456]}, + {.width=22, .vertex_count=69, .vertices=&gothgbt_vertices[4612]}, + {.width=26, .vertex_count=98, .vertices=&gothgbt_vertices[4750]}, + {.width=24, .vertex_count=107, .vertices=&gothgbt_vertices[4946]}, + {.width=23, .vertex_count=93, .vertices=&gothgbt_vertices[5160]}, + {.width=24, .vertex_count=70, .vertices=&gothgbt_vertices[5346]}, + {.width=24, .vertex_count=88, .vertices=&gothgbt_vertices[5486]}, + {.width=23, .vertex_count=71, .vertices=&gothgbt_vertices[5662]}, + {.width=27, .vertex_count=94, .vertices=&gothgbt_vertices[5804]}, + {.width=22, .vertex_count=64, .vertices=&gothgbt_vertices[5992]}, + {.width=23, .vertex_count=85, .vertices=&gothgbt_vertices[6120]}, + {.width=20, .vertex_count=56, .vertices=&gothgbt_vertices[6290]}, + {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6402]}, + {.width=14, .vertex_count=2, .vertices=&gothgbt_vertices[6424]}, + {.width=14, .vertex_count=11, .vertices=&gothgbt_vertices[6428]}, + {.width=16, .vertex_count=10, .vertices=&gothgbt_vertices[6450]}, + {.width=16, .vertex_count=2, .vertices=&gothgbt_vertices[6470]}, + {.width=12, .vertex_count=13, .vertices=&gothgbt_vertices[6474]}, + {.width=17, .vertex_count=52, .vertices=&gothgbt_vertices[6500]}, + {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[6604]}, + {.width=14, .vertex_count=34, .vertices=&gothgbt_vertices[6690]}, + {.width=17, .vertex_count=40, .vertices=&gothgbt_vertices[6758]}, + {.width=14, .vertex_count=31, .vertices=&gothgbt_vertices[6838]}, + {.width=13, .vertex_count=40, .vertices=&gothgbt_vertices[6900]}, + {.width=18, .vertex_count=55, .vertices=&gothgbt_vertices[6980]}, + {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[7090]}, + {.width=10, .vertex_count=34, .vertices=&gothgbt_vertices[7182]}, + {.width=10, .vertex_count=38, .vertices=&gothgbt_vertices[7250]}, + {.width=17, .vertex_count=49, .vertices=&gothgbt_vertices[7326]}, + {.width=10, .vertex_count=21, .vertices=&gothgbt_vertices[7424]}, + {.width=26, .vertex_count=66, .vertices=&gothgbt_vertices[7466]}, + {.width=18, .vertex_count=44, .vertices=&gothgbt_vertices[7598]}, + {.width=18, .vertex_count=39, .vertices=&gothgbt_vertices[7686]}, + {.width=18, .vertex_count=53, .vertices=&gothgbt_vertices[7764]}, + {.width=18, .vertex_count=43, .vertices=&gothgbt_vertices[7870]}, + {.width=14, .vertex_count=37, .vertices=&gothgbt_vertices[7956]}, + {.width=16, .vertex_count=58, .vertices=&gothgbt_vertices[8030]}, + {.width=10, .vertex_count=27, .vertices=&gothgbt_vertices[8146]}, + {.width=18, .vertex_count=46, .vertices=&gothgbt_vertices[8200]}, + {.width=18, .vertex_count=35, .vertices=&gothgbt_vertices[8292]}, + {.width=26, .vertex_count=56, .vertices=&gothgbt_vertices[8362]}, + {.width=19, .vertex_count=58, .vertices=&gothgbt_vertices[8474]}, + {.width=18, .vertex_count=59, .vertices=&gothgbt_vertices[8590]}, + {.width=18, .vertex_count=37, .vertices=&gothgbt_vertices[8708]}, + {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8782]}, + {.width=8, .vertex_count=2, .vertices=&gothgbt_vertices[8860]}, + {.width=14, .vertex_count=39, .vertices=&gothgbt_vertices[8864]}, + {.width=24, .vertex_count=23, .vertices=&gothgbt_vertices[8942]} + } +}; + +static const int8_t scriptc_vertices[5530] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -12, 4, 16, -128, -128, 17, -12, 10, 16, -128, -128, 4, -1, 18, -1, -128, -128, 3, 5, 17, 5, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 19, -12, 17, -10, 15, -7, 12, -2, 10, 1, 7, 5, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 19, -12, 18, -8, 16, 2, 15, 9, -128, -128, 19, -12, 16, 9, -128, -128, 15, 9, 15, 7, 14, 4, 13, 2, 11, 0, 9, -1, 7, -1, 6, 0, 6, 2, 7, 5, 10, 8, 13, 9, 17, 9, 19, 8, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 18, -4, 14, -3, 12, -3, -128, -128, 18, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, -128, -128, 14, -3, 17, -2, 18, -1, 19, 1, 19, 4, 18, 7, 17, 8, 15, 9, 13, 9, 12, 8, 12, 6, 13, 3, -128, -128, 14, -3, 16, -2, 17, -1, 18, 1, 18, 4, 17, 7, 15, 9, 3, -10, 2, -8, 2, -6, 3, -4, 6, -3, 9, -3, 13, -4, 15, -5, 17, -7, 18, -9, 18, -11, 17, -12, 15, -12, 12, -11, 9, -8, 7, -5, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 2, 15, 0, 13, 0, 11, 1, 10, 3, -128, -128, 15, -12, 13, -11, 10, -8, 8, -5, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 4, 5, 6, 6, 8, 8, 10, 9, 13, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -6, 19, -9, 17, -11, 15, -12, 10, -12, 7, -11, 5, -9, 4, -7, 4, -5, 5, -4, 7, -4, 8, -5, 9, -7, 14, -9, 13, -8, 13, -6, 14, -5, 16, -5, 17, -7, 17, -9, 16, -11, 14, -12, 11, -12, 9, -11, 8, -10, 7, -8, 7, -6, 8, -4, 10, -3, -128, -128, 11, -12, 9, -10, 8, -8, 8, -5, 10, -3, -128, -128, 10, -3, 8, -3, 5, -2, 3, 0, 2, 2, 2, 5, 3, 7, 4, 8, 6, 9, 9, 9, 12, 8, 14, 6, 15, 4, 15, 2, 14, 0, 12, 0, 10, 1, 9, 3, -128, -128, 8, -3, 6, -2, 4, 0, 3, 2, 3, 6, 4, 8, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 20, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, -128, -128, 8, 1, 9, 0, 11, -1, 15, -1, 17, -2, 19, -5, 17, 2, 3, -9, 2, -7, 2, -5, 3, -3, 5, -2, 8, -2, 11, -3, 13, -4, 16, -7, 17, -10, 17, -11, 16, -12, 15, -12, 13, -11, 11, -9, 10, -7, 9, -4, 9, -1, 10, 1, 12, 2, 14, 2, 16, 1, 18, -1, 19, -3, -128, -128, 16, -12, 14, -11, 12, -9, 11, -7, 10, -4, 10, 0, 12, 2, -128, -128, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 8, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, -128, -128, 18, 1, 16, 4, 14, 6, 11, 8, 8, 9, 6, -6, 5, -7, 5, -9, 6, -11, 9, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 4, 2, 5, 1, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 18, -8, 17, -6, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 22, -12, 20, -10, 18, -6, 16, 0, 15, 4, 15, 7, 16, 9, 14, -10, 12, -7, 10, -2, 8, 3, 7, 5, 5, 8, 3, 9, -128, -128, 16, -6, 14, -4, 11, -3, 8, -3, 6, -4, 5, -6, 5, -8, 6, -10, 8, -11, 12, -12, 16, -12, 14, -10, 13, -8, 11, -2, 9, 4, 8, 6, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, 16, -12, 14, -10, 12, -7, 10, -2, 7, 7, 5, 11, -128, -128, 16, -5, 14, -3, 11, -2, 8, -2, 6, -3, 5, -5, 5, -7, 6, -9, 8, -11, 12, -12, 16, -12, 14, -9, 13, -7, 10, 2, 8, 6, 7, 8, 5, 11, 4, 12, 2, 13, 1, 12, 1, 10, 2, 8, 4, 6, 6, 5, 9, 4, 13, 3, 6, -6, 5, -7, 5, -9, 7, -11, 10, -12, 12, -12, 9, -1, 7, 5, 6, 7, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 2, 6, 1, 7, -128, -128, 12, -12, 9, -3, 8, 0, 6, 5, 5, 7, 3, 9, -128, -128, 20, -11, 17, -7, 15, -5, 13, -4, 10, -3, -128, -128, 23, -11, 22, -10, 23, -9, 24, -10, 24, -11, 23, -12, 22, -12, 20, -11, 17, -6, 16, -5, 14, -4, 10, -3, -128, -128, 10, -3, 13, -2, 14, 0, 15, 7, 16, 9, -128, -128, 10, -3, 12, -2, 13, 0, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, 4, -9, 3, -7, 3, -5, 4, -3, 6, -2, 9, -2, 12, -3, 14, -4, 17, -7, 18, -10, 18, -11, 17, -12, 16, -12, 14, -11, 13, -10, 11, -7, 7, 3, 6, 5, 4, 8, 2, 9, -128, -128, 13, -10, 11, -6, 9, 1, 8, 4, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 7, 8, 9, 9, 12, 9, 14, 8, 16, 6, 14, -12, 10, -3, 7, 3, 5, 6, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 14, -12, 12, -5, 11, -1, 10, 4, 10, 8, 12, 9, -128, -128, 14, -12, 13, -8, 12, -3, 11, 4, 11, 8, 12, 9, -128, -128, 23, -12, 19, -3, 14, 6, 12, 9, -128, -128, 23, -12, 21, -5, 20, -1, 19, 4, 19, 8, 21, 9, 22, 9, 24, 8, 26, 6, -128, -128, 23, -12, 22, -8, 21, -3, 20, 4, 20, 8, 21, 9, 11, -12, 10, -8, 8, -2, 6, 3, 5, 5, 3, 8, 1, 9, -1, 9, -2, 8, -2, 6, -1, 5, 0, 6, -1, 7, -128, -128, 11, -12, 11, -7, 12, 4, 13, 9, -128, -128, 11, -12, 12, -7, 13, 4, 13, 9, -128, -128, 25, -11, 24, -10, 25, -9, 26, -10, 26, -11, 25, -12, 23, -12, 21, -11, 19, -8, 18, -6, 16, -1, 14, 5, 13, 9, 11, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 15, -11, 13, -10, 11, -8, 9, -4, 8, 1, 8, 4, -128, -128, 9, -11, 7, -8, 5, -4, 4, 0, 4, 4, 5, 7, 7, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 16, -12, 19, -11, 20, -10, 21, -8, 21, -5, 20, -3, 19, -2, 16, -1, 14, -1, 12, -2, -128, -128, 16, -12, 18, -11, 19, -10, 20, -8, 20, -5, 19, -3, 18, -2, 16, -1, 13, -8, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 16, 8, 18, 6, -128, -128, 15, -12, 16, -11, 17, -9, 17, -5, 16, -2, 14, 1, 11, 4, 7, 7, 3, 9, 15, -11, 14, -10, 13, -8, 11, -3, 9, 3, 8, 5, 6, 8, 4, 9, -128, -128, 14, -10, 13, -7, 11, 1, 10, 4, 9, 6, 7, 8, 4, 9, 2, 9, 1, 8, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 9, -6, 8, -4, 7, -3, 5, -3, 4, -4, 4, -6, 5, -8, 7, -10, 9, -11, 12, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 16, -3, 12, -3, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -5, 18, -4, 16, -3, -128, -128, 12, -3, 15, -2, 16, 0, 17, 7, 18, 9, -128, -128, 12, -3, 14, -2, 15, 0, 16, 7, 18, 9, 19, 9, 21, 8, 23, 6, 6, -9, 5, -7, 5, -5, 6, -3, 8, -2, 11, -2, 14, -3, 16, -4, 19, -7, 20, -10, 20, -11, 19, -12, 18, -12, 16, -11, 15, -10, 14, -8, 13, -5, 11, 2, 10, 5, 8, 8, 6, 9, -128, -128, 14, -8, 13, -4, 12, 3, 11, 6, 9, 8, 6, 9, 3, 9, 1, 8, 0, 6, 0, 5, 1, 4, 2, 5, 1, 6, 16, -10, 15, -8, 13, -3, 11, 3, 10, 5, 8, 8, 6, 9, -128, -128, 10, -6, 9, -4, 7, -3, 5, -3, 4, -5, 4, -7, 5, -9, 7, -11, 10, -12, 19, -12, 17, -11, 16, -10, 15, -7, 13, 1, 12, 4, 11, 6, 9, 8, 6, 9, 4, 9, 2, 8, 1, 7, 1, 6, 2, 5, 3, 6, 2, 7, -128, -128, 12, -12, 16, -11, 17, -11, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -4, 4, 4, 4, 7, 5, 9, -128, -128, 6, -12, 7, -10, 7, -7, 4, 1, 3, 4, 3, 7, 5, 9, 7, 9, 9, 8, 12, 5, 14, 2, 15, 0, -128, -128, 19, -12, 15, 0, 14, 4, 14, 7, 16, 9, 17, 9, 19, 8, 21, 6, -128, -128, 20, -12, 16, 0, 15, 4, 15, 7, 16, 9, 1, -8, 3, -11, 5, -12, 6, -12, 8, -10, 8, -7, 7, -3, 5, 4, 5, 7, 6, 9, -128, -128, 6, -12, 7, -10, 7, -7, 5, 0, 4, 4, 4, 7, 6, 9, 7, 9, 10, 8, 13, 5, 15, 2, 17, -2, 18, -5, 19, -9, 19, -11, 18, -12, 17, -12, 16, -11, 15, -9, 15, -6, 16, -4, 18, -2, 20, -1, 22, -1, 3, -6, 2, -6, 1, -7, 1, -9, 2, -11, 4, -12, 8, -12, 7, -10, 6, -6, 5, 3, 4, 9, -128, -128, 6, -6, 6, 3, 5, 9, -128, -128, 16, -12, 14, -10, 12, -6, 9, 3, 7, 7, 5, 9, -128, -128, 16, -12, 15, -10, 14, -6, 13, 3, 12, 9, -128, -128, 14, -6, 14, 3, 13, 9, -128, -128, 26, -12, 24, -11, 22, -9, 20, -6, 17, 3, 15, 7, 13, 9, 8, -7, 7, -6, 5, -6, 4, -7, 4, -9, 5, -11, 7, -12, 9, -12, 11, -11, 12, -9, 12, -6, 11, -2, 9, 3, 7, 6, 5, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 1, 6, 0, 7, -128, -128, 9, -12, 10, -11, 11, -9, 11, -6, 10, -2, 8, 3, 6, 6, 4, 8, 2, 9, -128, -128, 21, -11, 20, -10, 21, -9, 22, -10, 22, -11, 21, -12, 19, -12, 17, -11, 15, -9, 13, -6, 11, -2, 10, 3, 10, 6, 11, 8, 12, 9, 13, 9, 15, 8, 17, 6, 3, -8, 5, -11, 7, -12, 8, -12, 10, -11, 10, -9, 8, -3, 8, 0, 9, 2, -128, -128, 8, -12, 9, -11, 9, -9, 7, -3, 7, 0, 9, 2, 11, 2, 14, 1, 16, -1, 18, -4, 19, -6, -128, -128, 21, -12, 19, -6, 16, 2, 14, 6, -128, -128, 22, -12, 20, -6, 18, -1, 16, 3, 14, 6, 12, 8, 9, 9, 5, 9, 3, 8, 2, 6, 2, 5, 3, 4, 4, 5, 3, 6, 19, -10, 18, -8, 16, -3, 15, 0, 14, 2, 12, 5, 10, 7, 8, 8, 5, 9, -128, -128, 12, -6, 11, -4, 9, -3, 7, -3, 6, -5, 6, -7, 7, -9, 9, -11, 12, -12, 22, -12, 20, -11, 19, -10, 18, -7, 17, -3, 15, 3, 13, 6, 10, 8, 5, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 10, 9, 13, 9, 16, 8, 18, 6, -128, -128, 15, -12, 19, -11, 20, -11, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 9, 3, 9, 0, 10, 4, 11, 5, 12, 5, 14, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 8, 1, 7, 2, 8, 2, 8, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 15, -12, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 16, -12, 10, 6, 10, 8, 11, 9, 3, 7, 5, 6, 6, 5, 7, 3, 7, 1, 6, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 7, 9, 10, 7, 12, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 3, 0, 6, -3, 8, -6, 9, -9, 9, -11, 8, -12, 6, -11, 5, -9, -4, 18, -4, 20, -3, 21, -1, 20, 0, 17, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 5, -9, 4, -4, 3, 0, 0, 9, -2, 14, -4, 18, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 6, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, 5, -6, 4, -5, 5, -4, 6, -5, 5, -6, -128, -128, 3, 0, -3, 18, -128, -128, 4, 0, 1, 9, -1, 14, -3, 18, -4, 20, -6, 21, -7, 20, -7, 18, -6, 15, -4, 13, -1, 11, 3, 9, 6, 7, 8, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 0, 9, -128, -128, 8, -12, 1, 9, -128, -128, 9, 0, 9, 1, 10, 1, 9, 0, 8, 0, 6, 2, 3, 3, -128, -128, 3, 3, 6, 4, 7, 8, 8, 9, -128, -128, 3, 3, 5, 4, 6, 8, 8, 9, 9, 9, 12, 7, 14, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 11, 9, -128, -128, 11, 0, 12, 1, 12, 3, 10, 9, -128, -128, 13, 3, 15, 1, 17, 0, 18, 0, 20, 1, 20, 3, 19, 6, 19, 8, 20, 9, -128, -128, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 13, 1, 13, 3, 12, 6, 12, 8, 13, 9, -128, -128, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 13, 9, 15, 8, 16, 7, 18, 4, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, 9, 7, 10, 5, 10, 3, 9, 1, 7, 0, 6, 1, 6, 3, 7, 5, 9, 6, 11, 6, 13, 5, 14, 4, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, 0, 4, 2, 1, 4, -3, -128, -128, 5, -6, -4, 21, -128, -128, 6, -6, -3, 21, -128, -128, 3, 3, 5, 1, 7, 0, 8, 0, 10, 1, 10, 3, 9, 6, 9, 8, 10, 9, -128, -128, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 10, 9, 12, 8, 13, 7, 15, 4, 10, 3, 9, 1, 7, 0, 5, 0, 3, 1, 2, 2, 1, 4, 1, 6, 2, 8, 4, 9, 6, 9, 8, 8, -128, -128, 5, 0, 3, 2, 2, 4, 2, 7, 4, 9, -128, -128, 11, 0, 5, 18, 5, 20, 6, 21, 8, 20, 9, 17, 9, 9, 11, 9, 14, 7, 16, 4, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 0, 4, 2, 1, 4, 0, 6, 1, 6, 3, 4, 9, -128, -128, 4, 0, 5, 1, 5, 3, 3, 9, -128, -128, 6, 3, 8, 1, 10, 0, 11, 0, 10, 3, -128, -128, 10, 0, 10, 3, 11, 5, 12, 5, 14, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 3, 7, 5, 7, 7, 6, 8, 4, 9, -128, -128, 3, 1, 5, 3, 6, 5, 6, 7, 4, 9, -128, -128, 0, 8, 2, 9, 7, 9, 10, 7, 12, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 3, 9, 5, 8, 6, 7, 8, 4, -128, -128, 8, -12, 2, 6, 2, 8, 3, 9, -128, -128, 2, -4, 8, -4, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 9, 6, 9, 8, 11, 9, 13, 8, 14, 7, 16, 4, -128, -128, 12, 0, 10, 6, 10, 8, 11, 9, 3, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 7, 8, 9, 6, 10, 3, 10, 0, -128, -128, 4, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 11, 4, 12, 5, 13, 5, 15, 4, 4, 0, 2, 2, 1, 5, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, -128, -128, 5, 0, 3, 2, 2, 5, 2, 8, 3, 9, -128, -128, 10, 0, 8, 6, 8, 8, 10, 9, 11, 9, 13, 8, 15, 6, 16, 3, 16, 0, -128, -128, 11, 0, 9, 6, 9, 8, 10, 9, -128, -128, 16, 0, 17, 4, 18, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 3, 6, 6, 5, 8, 3, 9, 2, 9, 1, 8, 1, 7, 2, 7, 1, 8, -128, -128, 13, 1, 12, 2, 13, 2, 13, 1, 12, 0, 11, 0, 9, 1, 8, 3, 7, 6, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 7, 1, 8, 3, -128, -128, 9, 1, 7, 3, -128, -128, 6, 6, 7, 8, -128, -128, 7, 6, 5, 8, 3, 0, 1, 6, 1, 8, 3, 9, 4, 9, 6, 8, 8, 6, 10, 3, -128, -128, 4, 0, 2, 6, 2, 8, 3, 9, -128, -128, 11, 0, 5, 18, -128, -128, 12, 0, 9, 9, 7, 14, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 13, 7, 11, 11, 9, 14, 7, 16, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 1, 8, 4, 7, 6, 4, 8, 2, 9, -128, -128, 6, 0, 7, 1, 7, 4, 6, 6, 4, 8, -128, -128, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 2, 20, 0, 21, -1, 20, -1, 18, 0, 15, 3, 12, 6, 10, 10, 7, 13, 4, -128, -128, 2, 9, 3, 10, 4, 12, 4, 15, 3, 18, 2, 20, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 8, -12, 6, -11, 5, -9, 5, -7, 6, -5, 8, -4, 10, -4, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -12 +}; + +static const hershey_font_t scriptc { + .chars = { + {.width=16, .vertex_count=0, .vertices=&scriptc_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=&scriptc_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=&scriptc_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=&scriptc_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=&scriptc_vertices[156]}, + {.width=26, .vertex_count=54, .vertices=&scriptc_vertices[218]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[326]}, + {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[340]}, + {.width=15, .vertex_count=19, .vertices=&scriptc_vertices[378]}, + {.width=17, .vertex_count=8, .vertices=&scriptc_vertices[416]}, + {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[432]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[442]}, + {.width=26, .vertex_count=2, .vertices=&scriptc_vertices[456]}, + {.width=11, .vertex_count=5, .vertices=&scriptc_vertices[460]}, + {.width=22, .vertex_count=2, .vertices=&scriptc_vertices[470]}, + {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[474]}, + {.width=21, .vertex_count=14, .vertices=&scriptc_vertices[556]}, + {.width=21, .vertex_count=41, .vertices=&scriptc_vertices[584]}, + {.width=21, .vertex_count=49, .vertices=&scriptc_vertices[666]}, + {.width=21, .vertex_count=9, .vertices=&scriptc_vertices[764]}, + {.width=21, .vertex_count=38, .vertices=&scriptc_vertices[782]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[858]}, + {.width=21, .vertex_count=29, .vertices=&scriptc_vertices[948]}, + {.width=21, .vertex_count=62, .vertices=&scriptc_vertices[1006]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1130]}, + {.width=11, .vertex_count=10, .vertices=&scriptc_vertices[1220]}, + {.width=11, .vertex_count=13, .vertices=&scriptc_vertices[1240]}, + {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1266]}, + {.width=26, .vertex_count=5, .vertices=&scriptc_vertices[1272]}, + {.width=24, .vertex_count=3, .vertices=&scriptc_vertices[1282]}, + {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[1288]}, + {.width=27, .vertex_count=55, .vertices=&scriptc_vertices[1354]}, + {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[1464]}, + {.width=24, .vertex_count=69, .vertices=&scriptc_vertices[1538]}, + {.width=21, .vertex_count=40, .vertices=&scriptc_vertices[1676]}, + {.width=23, .vertex_count=42, .vertices=&scriptc_vertices[1756]}, + {.width=19, .vertex_count=48, .vertices=&scriptc_vertices[1840]}, + {.width=21, .vertex_count=45, .vertices=&scriptc_vertices[1936]}, + {.width=22, .vertex_count=52, .vertices=&scriptc_vertices[2026]}, + {.width=24, .vertex_count=54, .vertices=&scriptc_vertices[2130]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[2238]}, + {.width=17, .vertex_count=33, .vertices=&scriptc_vertices[2302]}, + {.width=24, .vertex_count=58, .vertices=&scriptc_vertices[2368]}, + {.width=18, .vertex_count=39, .vertices=&scriptc_vertices[2484]}, + {.width=28, .vertex_count=48, .vertices=&scriptc_vertices[2562]}, + {.width=23, .vertex_count=37, .vertices=&scriptc_vertices[2658]}, + {.width=21, .vertex_count=33, .vertices=&scriptc_vertices[2732]}, + {.width=23, .vertex_count=52, .vertices=&scriptc_vertices[2798]}, + {.width=21, .vertex_count=42, .vertices=&scriptc_vertices[2902]}, + {.width=24, .vertex_count=64, .vertices=&scriptc_vertices[2986]}, + {.width=20, .vertex_count=35, .vertices=&scriptc_vertices[3114]}, + {.width=18, .vertex_count=37, .vertices=&scriptc_vertices[3184]}, + {.width=22, .vertex_count=38, .vertices=&scriptc_vertices[3258]}, + {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[3334]}, + {.width=23, .vertex_count=40, .vertices=&scriptc_vertices[3404]}, + {.width=20, .vertex_count=51, .vertices=&scriptc_vertices[3484]}, + {.width=22, .vertex_count=41, .vertices=&scriptc_vertices[3586]}, + {.width=21, .vertex_count=43, .vertices=&scriptc_vertices[3668]}, + {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3754]}, + {.width=14, .vertex_count=2, .vertices=&scriptc_vertices[3776]}, + {.width=14, .vertex_count=11, .vertices=&scriptc_vertices[3780]}, + {.width=16, .vertex_count=10, .vertices=&scriptc_vertices[3802]}, + {.width=16, .vertex_count=2, .vertices=&scriptc_vertices[3822]}, + {.width=11, .vertex_count=7, .vertices=&scriptc_vertices[3826]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3840]}, + {.width=14, .vertex_count=22, .vertices=&scriptc_vertices[3904]}, + {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[3948]}, + {.width=16, .vertex_count=32, .vertices=&scriptc_vertices[3990]}, + {.width=12, .vertex_count=22, .vertices=&scriptc_vertices[4054]}, + {.width=9, .vertex_count=26, .vertices=&scriptc_vertices[4098]}, + {.width=16, .vertex_count=37, .vertices=&scriptc_vertices[4150]}, + {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4224]}, + {.width=8, .vertex_count=18, .vertices=&scriptc_vertices[4282]}, + {.width=8, .vertex_count=23, .vertices=&scriptc_vertices[4318]}, + {.width=14, .vertex_count=30, .vertices=&scriptc_vertices[4364]}, + {.width=8, .vertex_count=16, .vertices=&scriptc_vertices[4424]}, + {.width=25, .vertex_count=44, .vertices=&scriptc_vertices[4456]}, + {.width=18, .vertex_count=31, .vertices=&scriptc_vertices[4544]}, + {.width=14, .vertex_count=28, .vertices=&scriptc_vertices[4606]}, + {.width=15, .vertex_count=29, .vertices=&scriptc_vertices[4662]}, + {.width=16, .vertex_count=34, .vertices=&scriptc_vertices[4720]}, + {.width=14, .vertex_count=23, .vertices=&scriptc_vertices[4788]}, + {.width=12, .vertex_count=21, .vertices=&scriptc_vertices[4834]}, + {.width=8, .vertex_count=19, .vertices=&scriptc_vertices[4876]}, + {.width=16, .vertex_count=26, .vertices=&scriptc_vertices[4914]}, + {.width=15, .vertex_count=22, .vertices=&scriptc_vertices[4966]}, + {.width=21, .vertex_count=35, .vertices=&scriptc_vertices[5010]}, + {.width=16, .vertex_count=41, .vertices=&scriptc_vertices[5080]}, + {.width=16, .vertex_count=31, .vertices=&scriptc_vertices[5162]}, + {.width=13, .vertex_count=37, .vertices=&scriptc_vertices[5224]}, + {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5298]}, + {.width=8, .vertex_count=2, .vertices=&scriptc_vertices[5376]}, + {.width=14, .vertex_count=39, .vertices=&scriptc_vertices[5380]}, + {.width=24, .vertex_count=23, .vertices=&scriptc_vertices[5458]} + } +}; + +static const int8_t scripts_vertices[4472] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 23, -4, 22, -3, 23, -2, 24, -3, 24, -4, 23, -5, 22, -5, 20, -4, 18, -2, 13, 6, 11, 8, 9, 9, 6, 9, 3, 8, 2, 6, 2, 4, 3, 2, 4, 1, 6, 0, 11, -2, 13, -3, 15, -5, 16, -7, 16, -9, 15, -11, 13, -12, 11, -11, 10, -9, 10, -6, 11, 0, 12, 3, 14, 6, 16, 8, 18, 9, 20, 9, 21, 7, 21, 6, -128, -128, 6, 9, 4, 8, 3, 6, 3, 4, 4, 2, 5, 1, 11, -2, -128, -128, 10, -6, 11, -1, 12, 2, 14, 5, 16, 7, 18, 8, 20, 8, 21, 7, 8, -10, 7, -11, 8, -12, 9, -11, 9, -10, 8, -8, 6, -6, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 10, -12, 10, 0, -128, -128, 5, -9, 15, -3, -128, -128, 15, -9, 5, -3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 24, -16, -2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 0, 9, 2, 8, 5, 5, 8, 1, 12, -6, 15, -12, 15, 9, 14, 6, 12, 3, 10, 1, 7, -1, 5, -1, 4, 0, 4, 2, 5, 4, 7, 6, 10, 8, 13, 9, 18, 9, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 18, -12, 20, -11, 21, -9, 21, -7, 20, -5, 19, -4, 17, -3, 14, -2, -128, -128, 13, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 15, 9, 12, 9, 10, 8, 9, 6, 12, -6, 12, -5, 13, -4, 15, -4, 17, -5, 18, -7, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 15, 4, 13, -12, 11, -11, 10, -9, 9, -5, 8, 1, 7, 4, 6, 6, 4, 8, 2, 9, 0, 9, -1, 8, -1, 6, 0, 5, 2, 5, 4, 6, 6, 8, 9, 9, 12, 9, 15, 8, 17, 6, 19, 2, 20, -3, 20, -7, 19, -10, 18, -11, 16, -12, 13, -12, 11, -10, 11, -8, 12, -5, 14, -2, 16, 0, 19, 2, 21, 3, 14, -8, 14, -7, 15, -6, 17, -6, 18, -7, 18, -9, 17, -11, 14, -12, 10, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, 11, -2, 8, -2, 5, -1, 4, 0, 3, 2, 3, 5, 4, 7, 5, 8, 8, 9, 11, 9, 14, 8, 16, 6, 17, 4, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, -128, -128, 9, -2, 18, -2, 0, 9, 2, 8, 6, 4, 9, -1, 10, -4, 11, -8, 11, -11, 10, -12, 9, -12, 8, -11, 7, -9, 7, -6, 8, -4, 10, -3, 14, -3, 17, -4, 18, -5, 19, -7, 19, -1, 18, 4, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 7, 0, 16, -3, 18, -4, 21, -6, 23, -8, 24, -10, 24, -11, 23, -12, 22, -12, 20, -10, 18, -6, 16, 0, 15, 5, 15, 8, 16, 9, 17, 9, 19, 8, 20, 7, 22, 4, 14, 4, 12, 2, 10, -1, 9, -3, 8, -6, 8, -9, 9, -11, 10, -12, 12, -12, 13, -11, 14, -9, 14, -6, 13, -1, 11, 4, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 10, 12, 8, 9, 6, 4, 5, -2, 5, -8, 6, -11, 8, -12, 10, -12, 11, -11, 12, -8, 12, -5, 11, 0, 8, 9, 6, 15, 5, 18, 4, 20, 2, 21, 1, 20, 1, 18, 2, 15, 4, 12, 6, 10, 9, 8, 13, 6, 7, -5, 5, -6, 4, -8, 4, -9, 5, -11, 7, -12, 8, -12, 10, -11, 11, -9, 11, -7, 10, -3, 8, 3, 6, 7, 4, 9, 2, 9, 1, 8, 1, 6, -128, -128, 24, -9, 24, -11, 23, -12, 22, -12, 20, -11, 18, -9, 16, -6, 14, -4, 12, -3, 10, -3, -128, -128, 12, -3, 13, -1, 13, 6, 14, 8, 15, 9, 16, 9, 18, 8, 19, 7, 21, 4, 4, 0, 6, 0, 10, -1, 13, -3, 15, -5, 16, -7, 16, -10, 15, -12, 13, -12, 12, -11, 11, -9, 10, -4, 9, 1, 8, 4, 7, 6, 5, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 16, -12, 18, -11, 19, -9, 19, -7, 18, -2, 17, 2, 15, 9, -128, -128, 17, 2, 20, -6, 22, -10, 23, -11, 25, -12, 26, -12, 28, -11, 29, -9, 29, -7, 28, -2, 26, 5, 26, 8, 27, 9, 28, 9, 30, 8, 31, 7, 33, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -2, 7, 2, 5, 9, -128, -128, 7, 2, 10, -6, 12, -10, 13, -11, 15, -12, 17, -12, 19, -11, 20, -9, 20, -7, 19, -2, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 12, -12, 9, -11, 7, -9, 5, -6, 4, -4, 3, 0, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 1, 18, -3, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, 10, -10, 10, -7, 11, -4, 13, -1, 15, 1, 18, 3, 20, 4, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 20, -12, 22, -11, 23, -10, 24, -8, 24, -5, 23, -3, 22, -2, 20, -1, 17, -1, 15, -2, 14, -3, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 1, 11, 5, 8, 7, 6, 8, 3, 9, 1, 9, 0, 8, 0, 6, 1, 5, 3, 5, 5, 6, 8, 8, 11, 9, 14, 9, 17, 8, 19, 6, 13, -10, 14, -9, 14, -6, 13, -2, 12, 1, 11, 3, 9, 6, 7, 8, 5, 9, 4, 9, 3, 8, 3, 5, 4, 0, 5, -3, 6, -5, 8, -8, 10, -10, 12, -11, 15, -12, 19, -12, 21, -11, 22, -10, 23, -8, 23, -5, 22, -3, 21, -2, 19, -1, 16, -1, 13, -2, 14, -1, 15, 1, 15, 6, 16, 8, 18, 9, 20, 8, 21, 7, 23, 4, 0, 9, 2, 8, 4, 6, 7, 2, 9, -1, 11, -5, 12, -8, 12, -11, 11, -12, 10, -12, 9, -11, 8, -9, 8, -7, 9, -5, 11, -3, 14, -1, 16, 1, 17, 3, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 2, 4, 2, 2, 10, -6, 8, -6, 6, -7, 5, -9, 6, -11, 9, -12, 12, -12, 16, -11, 19, -11, 21, -12, -128, -128, 16, -11, 14, -4, 12, 2, 10, 6, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 4, 3, 6, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 9, 9, 11, 9, 13, 8, 14, 7, 16, 3, 19, -5, 21, -12, -128, -128, 19, -5, 18, -1, 17, 5, 17, 8, 18, 9, 19, 9, 21, 8, 22, 7, 24, 4, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 7, 7, 9, 9, 9, 11, 8, 14, 5, 16, 2, 18, -2, 19, -5, 20, -9, 20, -11, 19, -12, 18, -12, 17, -11, 16, -9, 16, -7, 17, -4, 19, -2, 21, -1, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -6, 8, 9, -128, -128, 18, -12, 8, 9, -128, -128, 18, -12, 16, 9, -128, -128, 30, -12, 28, -11, 25, -8, 22, -4, 19, 2, 16, 9, 8, -6, 6, -6, 5, -7, 5, -9, 6, -11, 8, -12, 10, -12, 12, -11, 13, -9, 13, -6, 11, 3, 11, 6, 12, 8, 14, 9, 16, 9, 18, 8, 19, 6, 19, 4, 18, 3, 16, 3, -128, -128, 23, -9, 23, -11, 22, -12, 20, -12, 18, -11, 16, -9, 14, -6, 10, 3, 8, 6, 6, 8, 4, 9, 2, 9, 1, 8, 1, 6, 5, -5, 3, -6, 2, -8, 2, -9, 3, -11, 5, -12, 6, -12, 8, -11, 9, -9, 9, -7, 8, -3, 7, 0, 6, 4, 6, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 3, 17, 1, 19, -5, -128, -128, 21, -12, 19, -5, 16, 5, 14, 11, 12, 16, 10, 20, 8, 21, 7, 20, 7, 18, 8, 15, 10, 12, 13, 9, 16, 7, 21, 4, 13, -6, 12, -4, 11, -3, 9, -2, 7, -2, 6, -4, 6, -6, 7, -9, 9, -11, 12, -12, 15, -12, 17, -11, 18, -9, 18, -5, 17, -2, 15, 2, 12, 5, 8, 8, 6, 9, 3, 9, 2, 8, 2, 6, 3, 5, 6, 5, 8, 6, 9, 7, 10, 9, 10, 12, 9, 15, 8, 17, 6, 20, 4, 21, 3, 20, 3, 18, 4, 15, 6, 12, 9, 9, 12, 7, 18, 4, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 6, -6, 8, -9, 10, -6, -128, -128, 3, -3, 8, -8, 13, -3, -128, -128, 8, -8, 8, 9, 0, 11, 16, 11, 9, -12, 7, -10, 6, -8, 6, -7, 7, -6, 8, -7, 7, -8, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 7, 6, 8, 3, 8, 0, 9, 4, 10, 5, 12, 5, 14, 4, 7, 2, 7, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 6, 9, 9, 7, 11, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 6, 14, -12, -128, -128, 10, 0, 9, 5, 9, 8, 10, 9, 11, 9, 13, 8, 14, 7, 16, 4, 1, 7, 3, 6, 4, 5, 5, 3, 5, 1, 4, 0, 3, 0, 1, 1, 0, 3, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 10, 4, 0, 4, 4, -1, 6, -4, 7, -6, 8, -9, 8, -11, 7, -12, 5, -11, 4, -9, 2, -1, -1, 8, -4, 15, -5, 18, -5, 20, -4, 21, -2, 20, -1, 17, 0, 8, 1, 9, 3, 9, 5, 8, 6, 7, 8, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, -128, -128, 10, 0, 8, 7, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 2, 9, 4, 8, 5, 7, 7, 4, 3, -5, 3, -4, 4, -4, 4, -5, 3, -5, -128, -128, 0, 4, 2, 0, -4, 18, -5, 20, -7, 21, -8, 20, -8, 18, -7, 15, -4, 12, -1, 10, 1, 9, 4, 7, 7, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 1, 0, 9, -128, -128, 0, 9, 1, 6, 2, 4, 4, 1, 6, 0, 8, 0, 9, 1, 9, 3, 7, 4, 4, 4, -128, -128, 4, 4, 6, 5, 7, 8, 8, 9, 9, 9, 11, 8, 12, 7, 14, 4, 0, 4, 2, 1, 5, -4, 6, -6, 7, -9, 7, -11, 6, -12, 4, -11, 3, -9, 2, -5, 1, 2, 1, 8, 2, 9, 3, 9, 5, 8, 6, 7, 8, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 2, 11, 6, 10, 9, -128, -128, 11, 6, 12, 4, 14, 1, 16, 0, 18, 0, 19, 1, 19, 3, 18, 6, 18, 8, 19, 9, 20, 9, 22, 8, 23, 7, 25, 4, 0, 4, 2, 1, 4, 0, 5, 1, 5, 2, 4, 6, 3, 9, -128, -128, 4, 6, 5, 4, 7, 1, 9, 0, 11, 0, 12, 1, 12, 3, 11, 6, 11, 8, 12, 9, 13, 9, 15, 8, 16, 7, 18, 4, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, 8, 7, 9, 5, 9, 3, 8, 1, 6, 0, 5, 1, 5, 3, 6, 5, 8, 6, 11, 6, 13, 5, 14, 4, 0, 4, 2, 1, 3, -1, 2, 3, -4, 21, -128, -128, 2, 3, 3, 1, 5, 0, 7, 0, 9, 1, 10, 3, 10, 5, 9, 7, 8, 8, 6, 9, -128, -128, 2, 8, 4, 9, 7, 9, 10, 8, 12, 7, 15, 4, 9, 3, 8, 1, 6, 0, 4, 0, 2, 1, 1, 2, 0, 4, 0, 6, 1, 8, 3, 9, 5, 9, 7, 8, -128, -128, 10, 0, 9, 3, 7, 8, 4, 15, 3, 18, 3, 20, 4, 21, 6, 20, 7, 17, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 3, -1, 3, 1, 6, 1, 7, 2, 7, 4, 6, 7, 6, 8, 7, 9, 8, 9, 10, 8, 11, 7, 13, 4, 0, 4, 2, 1, 3, -1, 3, 1, 5, 4, 6, 6, 6, 8, 4, 9, -128, -128, 0, 8, 2, 9, 6, 9, 8, 8, 9, 7, 11, 4, 0, 4, 2, 1, 4, -3, -128, -128, 7, -12, 1, 6, 1, 8, 2, 9, 4, 9, 6, 8, 7, 7, 9, 4, -128, -128, 1, -4, 8, -4, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 8, 6, 8, 8, 9, 9, 10, 9, 12, 8, 13, 7, 15, 4, 0, 4, 2, 0, 1, 5, 1, 8, 2, 9, 3, 9, 6, 8, 8, 6, 9, 3, 9, 0, -128, -128, 9, 0, 10, 4, 11, 5, 13, 5, 15, 4, 3, 0, 1, 2, 0, 5, 0, 7, 1, 9, 3, 9, 5, 8, 7, 6, -128, -128, 9, 0, 7, 6, 7, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 3, 15, 0, -128, -128, 15, 0, 16, 4, 17, 5, 19, 5, 21, 4, 0, 4, 2, 1, 4, 0, 6, 0, 7, 1, 7, 8, 8, 9, 11, 9, 14, 7, 16, 4, -128, -128, 13, 1, 12, 0, 10, 0, 9, 1, 5, 8, 4, 9, 2, 9, 1, 8, 0, 4, 2, 0, 0, 6, 0, 8, 1, 9, 3, 9, 5, 8, 7, 6, 9, 3, -128, -128, 10, 0, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 9, 9, 12, 7, 15, 4, 0, 4, 2, 1, 4, 0, 6, 0, 8, 2, 8, 4, 7, 6, 5, 8, 2, 9, 4, 10, 5, 12, 5, 15, 4, 18, 3, 20, 1, 21, 0, 20, 0, 18, 1, 15, 4, 12, 7, 10, 11, 7, 14, 4, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 6, -12, 4, -11, 3, -9, 3, -7, 4, -5, 6, -4, 8, -4, 10, -5, 11, -7, 11, -9, 10, -11, 8, -12, 6, -12 +}; + +static const hershey_font_t scripts { + .chars = { + {.width=16, .vertex_count=0, .vertices=&scripts_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=&scripts_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=&scripts_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=&scripts_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=&scripts_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=&scripts_vertices[156]}, + {.width=26, .vertex_count=54, .vertices=&scripts_vertices[218]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[326]}, + {.width=15, .vertex_count=19, .vertices=&scripts_vertices[340]}, + {.width=15, .vertex_count=19, .vertices=&scripts_vertices[378]}, + {.width=17, .vertex_count=8, .vertices=&scripts_vertices[416]}, + {.width=26, .vertex_count=5, .vertices=&scripts_vertices[432]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[442]}, + {.width=26, .vertex_count=2, .vertices=&scripts_vertices[456]}, + {.width=10, .vertex_count=5, .vertices=&scripts_vertices[460]}, + {.width=22, .vertex_count=2, .vertices=&scripts_vertices[470]}, + {.width=21, .vertex_count=41, .vertices=&scripts_vertices[474]}, + {.width=21, .vertex_count=14, .vertices=&scripts_vertices[556]}, + {.width=21, .vertex_count=41, .vertices=&scripts_vertices[584]}, + {.width=21, .vertex_count=49, .vertices=&scripts_vertices[666]}, + {.width=21, .vertex_count=9, .vertices=&scripts_vertices[764]}, + {.width=21, .vertex_count=38, .vertices=&scripts_vertices[782]}, + {.width=21, .vertex_count=45, .vertices=&scripts_vertices[858]}, + {.width=21, .vertex_count=29, .vertices=&scripts_vertices[948]}, + {.width=21, .vertex_count=62, .vertices=&scripts_vertices[1006]}, + {.width=21, .vertex_count=45, .vertices=&scripts_vertices[1130]}, + {.width=11, .vertex_count=10, .vertices=&scripts_vertices[1220]}, + {.width=11, .vertex_count=13, .vertices=&scripts_vertices[1240]}, + {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1266]}, + {.width=26, .vertex_count=5, .vertices=&scripts_vertices[1272]}, + {.width=24, .vertex_count=3, .vertices=&scripts_vertices[1282]}, + {.width=21, .vertex_count=33, .vertices=&scripts_vertices[1288]}, + {.width=27, .vertex_count=55, .vertices=&scripts_vertices[1354]}, + {.width=20, .vertex_count=19, .vertices=&scripts_vertices[1464]}, + {.width=23, .vertex_count=40, .vertices=&scripts_vertices[1502]}, + {.width=20, .vertex_count=23, .vertices=&scripts_vertices[1582]}, + {.width=23, .vertex_count=34, .vertices=&scripts_vertices[1628]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1696]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[1750]}, + {.width=23, .vertex_count=28, .vertices=&scripts_vertices[1804]}, + {.width=24, .vertex_count=37, .vertices=&scripts_vertices[1860]}, + {.width=17, .vertex_count=24, .vertices=&scripts_vertices[1934]}, + {.width=15, .vertex_count=24, .vertices=&scripts_vertices[1982]}, + {.width=24, .vertex_count=38, .vertices=&scripts_vertices[2030]}, + {.width=19, .vertex_count=28, .vertices=&scripts_vertices[2106]}, + {.width=33, .vertex_count=44, .vertices=&scripts_vertices[2162]}, + {.width=24, .vertex_count=31, .vertices=&scripts_vertices[2250]}, + {.width=21, .vertex_count=28, .vertices=&scripts_vertices[2312]}, + {.width=25, .vertex_count=30, .vertices=&scripts_vertices[2368]}, + {.width=22, .vertex_count=31, .vertices=&scripts_vertices[2428]}, + {.width=25, .vertex_count=37, .vertices=&scripts_vertices[2490]}, + {.width=20, .vertex_count=27, .vertices=&scripts_vertices[2564]}, + {.width=19, .vertex_count=24, .vertices=&scripts_vertices[2618]}, + {.width=24, .vertex_count=32, .vertices=&scripts_vertices[2666]}, + {.width=23, .vertex_count=31, .vertices=&scripts_vertices[2730]}, + {.width=28, .vertex_count=24, .vertices=&scripts_vertices[2792]}, + {.width=24, .vertex_count=35, .vertices=&scripts_vertices[2840]}, + {.width=23, .vertex_count=37, .vertices=&scripts_vertices[2910]}, + {.width=21, .vertex_count=39, .vertices=&scripts_vertices[2984]}, + {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3062]}, + {.width=14, .vertex_count=2, .vertices=&scripts_vertices[3084]}, + {.width=14, .vertex_count=11, .vertices=&scripts_vertices[3088]}, + {.width=16, .vertex_count=10, .vertices=&scripts_vertices[3110]}, + {.width=16, .vertex_count=2, .vertices=&scripts_vertices[3130]}, + {.width=11, .vertex_count=7, .vertices=&scripts_vertices[3134]}, + {.width=16, .vertex_count=21, .vertices=&scripts_vertices[3148]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3190]}, + {.width=11, .vertex_count=13, .vertices=&scripts_vertices[3234]}, + {.width=16, .vertex_count=23, .vertices=&scripts_vertices[3260]}, + {.width=10, .vertex_count=16, .vertices=&scripts_vertices[3306]}, + {.width=8, .vertex_count=23, .vertices=&scripts_vertices[3338]}, + {.width=15, .vertex_count=27, .vertices=&scripts_vertices[3384]}, + {.width=15, .vertex_count=28, .vertices=&scripts_vertices[3438]}, + {.width=7, .vertex_count=15, .vertices=&scripts_vertices[3494]}, + {.width=7, .vertex_count=19, .vertices=&scripts_vertices[3524]}, + {.width=14, .vertex_count=32, .vertices=&scripts_vertices[3562]}, + {.width=8, .vertex_count=17, .vertices=&scripts_vertices[3626]}, + {.width=25, .vertex_count=32, .vertices=&scripts_vertices[3660]}, + {.width=18, .vertex_count=22, .vertices=&scripts_vertices[3724]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[3768]}, + {.width=15, .vertex_count=23, .vertices=&scripts_vertices[3812]}, + {.width=15, .vertex_count=26, .vertices=&scripts_vertices[3858]}, + {.width=13, .vertex_count=14, .vertices=&scripts_vertices[3910]}, + {.width=11, .vertex_count=15, .vertices=&scripts_vertices[3938]}, + {.width=9, .vertex_count=15, .vertices=&scripts_vertices[3968]}, + {.width=15, .vertex_count=18, .vertices=&scripts_vertices[3998]}, + {.width=15, .vertex_count=16, .vertices=&scripts_vertices[4034]}, + {.width=21, .vertex_count=24, .vertices=&scripts_vertices[4066]}, + {.width=16, .vertex_count=19, .vertices=&scripts_vertices[4114]}, + {.width=15, .vertex_count=22, .vertices=&scripts_vertices[4152]}, + {.width=14, .vertex_count=22, .vertices=&scripts_vertices[4196]}, + {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4240]}, + {.width=8, .vertex_count=2, .vertices=&scripts_vertices[4318]}, + {.width=14, .vertex_count=39, .vertices=&scripts_vertices[4322]}, + {.width=24, .vertex_count=23, .vertices=&scripts_vertices[4400]} + } +}; + +static const int8_t timesi_vertices[4848] = { + 8, -12, 7, -11, 5, 1, -128, -128, 8, -11, 5, 1, -128, -128, 8, -12, 9, -11, 5, 1, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, -128, -128, 16, -12, 14, -5, -128, -128, 17, -12, 14, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 12, -16, 4, 13, -128, -128, 17, -16, 9, 13, -128, -128, 18, -8, 17, -7, 18, -6, 19, -7, 19, -8, 18, -10, 17, -11, 14, -12, 10, -12, 7, -11, 5, -9, 5, -7, 6, -5, 7, -4, 14, 0, 16, 2, -128, -128, 5, -7, 7, -5, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 7, -12, 5, -5, -128, -128, 8, -12, 5, -5, 15, -16, 11, -13, 8, -10, 6, -7, 4, -3, 3, 2, 3, 6, 4, 11, 5, 14, 6, 16, -128, -128, 11, -13, 8, -9, 6, -5, 5, -2, 4, 3, 4, 8, 5, 13, 6, 16, 9, -16, 10, -14, 11, -11, 12, -6, 12, -2, 11, 3, 9, 7, 7, 10, 4, 13, 0, 16, -128, -128, 9, -16, 10, -13, 11, -8, 11, -3, 10, 2, 9, 5, 7, 9, 4, 13, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 4, 0, 22, 0, 3, 7, 2, 8, 3, 9, 4, 8, 3, 7, 20, -16, 2, 16, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 16, -11, 14, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 9, 9, 11, 8, 13, 6, 15, 3, 16, 0, 17, -4, 17, -7, 16, -10, 14, -12, 12, -8, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 14, -12, 11, -9, 8, -7, 6, -6, -128, -128, 13, -9, 9, -7, 6, -6, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 15, -3, 12, -1, 8, 1, 5, 3, 3, 5, 1, 9, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, 8, 1, -128, -128, 2, 7, 3, 6, 5, 6, 10, 8, 13, 8, 15, 7, 16, 5, -128, -128, 5, 6, 10, 9, 13, 9, 15, 8, 16, 5, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 14, -12, 17, -11, 18, -9, 18, -7, 17, -5, 14, -3, 11, -2, -128, -128, 14, -12, 16, -11, 17, -9, 17, -7, 16, -5, 14, -3, -128, -128, 9, -2, 11, -2, 14, -1, 15, 0, 16, 2, 16, 5, 15, 7, 14, 8, 11, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -2, 13, -1, 14, 0, 15, 2, 15, 5, 14, 7, 13, 8, 11, 9, 16, -11, 10, 9, -128, -128, 17, -12, 11, 9, -128, -128, 17, -12, 2, 3, 18, 3, 9, -12, 4, -2, -128, -128, 9, -12, 19, -12, -128, -128, 9, -11, 14, -11, 19, -12, -128, -128, 4, -2, 5, -3, 8, -4, 11, -4, 14, -3, 15, -2, 16, 0, 16, 3, 15, 6, 13, 8, 10, 9, 7, 9, 4, 8, 3, 7, 2, 5, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 11, -4, 13, -3, 14, -2, 15, 0, 15, 3, 14, 6, 12, 8, 10, 9, 17, -9, 16, -8, 17, -7, 18, -8, 18, -9, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 5, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 16, 4, 16, 1, 15, -1, 14, -2, 12, -3, 9, -3, 7, -2, 5, 0, 4, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 6, 5, 8, -128, -128, 10, 9, 12, 8, 14, 6, 15, 4, 15, 0, 14, -2, 6, -12, 4, -6, -128, -128, 19, -12, 18, -9, 16, -6, 11, 0, 9, 3, 8, 5, 7, 9, -128, -128, 16, -6, 10, 0, 8, 3, 7, 5, 6, 9, -128, -128, 5, -9, 8, -12, 10, -12, 15, -9, -128, -128, 6, -10, 8, -11, 10, -11, 15, -9, 17, -9, 18, -10, 19, -12, 11, -12, 8, -11, 7, -10, 6, -8, 6, -5, 7, -3, 9, -2, 12, -2, 16, -3, 17, -4, 18, -6, 18, -9, 17, -11, 14, -12, 11, -12, -128, -128, 11, -12, 9, -11, 8, -10, 7, -8, 7, -5, 8, -3, 9, -2, -128, -128, 12, -2, 15, -3, 16, -4, 17, -6, 17, -9, 16, -11, 14, -12, -128, -128, 9, -2, 5, -1, 3, 1, 2, 3, 2, 6, 3, 8, 6, 9, 10, 9, 14, 8, 15, 7, 16, 5, 16, 2, 15, 0, 14, -1, 12, -2, -128, -128, 9, -2, 6, -1, 4, 1, 3, 3, 3, 6, 4, 8, 6, 9, -128, -128, 10, 9, 13, 8, 14, 7, 15, 5, 15, 1, 14, -1, 17, -5, 16, -3, 14, -1, 12, 0, 9, 0, 7, -1, 6, -2, 5, -4, 5, -7, 6, -9, 8, -11, 11, -12, 14, -12, 16, -11, 17, -10, 18, -8, 18, -4, 17, 0, 16, 3, 14, 6, 12, 8, 9, 9, 6, 9, 4, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, -128, -128, 7, -1, 6, -3, 6, -7, 7, -9, 9, -11, 11, -12, -128, -128, 16, -11, 17, -9, 17, -4, 16, 0, 15, 3, 13, 6, 11, 8, 9, 9, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 7, 2, 8, 3, 9, 4, 8, 6, -5, 5, -4, 6, -3, 7, -4, 6, -5, -128, -128, 3, 9, 2, 8, 3, 7, 4, 8, 4, 9, 3, 11, 1, 13, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 7, -8, 8, -7, 7, -6, 6, -7, 6, -8, 7, -10, 8, -11, 11, -12, 15, -12, 18, -11, 19, -9, 19, -7, 18, -5, 17, -4, 11, -2, 9, -1, 9, 1, 10, 2, 12, 2, -128, -128, 15, -12, 17, -11, 18, -9, 18, -7, 17, -5, 16, -4, 14, -3, -128, -128, 8, 7, 7, 8, 8, 9, 9, 8, 8, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 13, -12, 0, 9, -128, -128, 13, -12, 14, 9, -128, -128, 12, -10, 13, 9, -128, -128, 4, 3, 13, 3, -128, -128, -2, 9, 4, 9, -128, -128, 10, 9, 16, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 7, -2, 16, -2, 18, -1, 19, 1, 19, 3, 18, 6, 16, 8, 12, 9, 0, 9, -128, -128, 16, -2, 17, -1, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 11, 9, 13, 8, 15, 6, 16, 4, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 15, -12, 18, -11, 19, -10, 20, -7, 20, -3, 19, 1, 17, 5, 15, 7, 13, 8, 9, 9, 0, 9, -128, -128, 15, -12, 17, -11, 18, -10, 19, -7, 19, -3, 18, 1, 16, 5, 14, 7, 12, 8, 9, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 15, 9, 17, 4, 14, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 14, -6, 12, 2, -128, -128, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 7, -2, 13, -2, -128, -128, 0, 9, 7, 9, 18, -10, 19, -10, 20, -12, 19, -6, 19, -8, 18, -10, 17, -11, 15, -12, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 8, 9, 10, 9, 13, 8, 15, 6, 17, 2, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 6, 8, 8, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 13, 2, 20, 2, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 22, -12, 16, 9, -128, -128, 23, -12, 17, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 26, -12, -128, -128, 7, -2, 19, -2, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 20, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 7, 9, 15, -12, 10, 5, 9, 7, 8, 8, 6, 9, 4, 9, 2, 8, 1, 6, 1, 4, 2, 3, 3, 4, 2, 5, -128, -128, 14, -12, 9, 5, 8, 7, 6, 9, -128, -128, 11, -12, 18, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 23, -12, 6, 1, -128, -128, 13, -3, 17, 9, -128, -128, 12, -3, 16, 9, -128, -128, 6, -12, 13, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 7, 9, -128, -128, 13, 9, 19, 9, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 13, -12, -128, -128, 0, 9, 15, 9, 17, 3, 14, 9, 9, -12, 3, 9, -128, -128, 9, -12, 10, 9, -128, -128, 10, -12, 11, 7, -128, -128, 23, -12, 10, 9, -128, -128, 23, -12, 17, 9, -128, -128, 24, -12, 18, 9, -128, -128, 6, -12, 10, -12, -128, -128, 23, -12, 27, -12, -128, -128, 0, 9, 6, 9, -128, -128, 14, 9, 21, 9, 9, -12, 3, 9, -128, -128, 9, -12, 16, 6, -128, -128, 9, -9, 16, 9, -128, -128, 22, -12, 16, 9, -128, -128, 6, -12, 9, -12, -128, -128, 19, -12, 25, -12, -128, -128, 0, 9, 6, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 18, -12, 21, -11, 22, -9, 22, -7, 21, -4, 19, -2, 15, -1, 7, -1, -128, -128, 18, -12, 20, -11, 21, -9, 21, -7, 20, -4, 18, -2, 15, -1, -128, -128, 0, 9, 7, 9, 12, -12, 9, -11, 7, -9, 5, -6, 4, -3, 3, 1, 3, 4, 4, 7, 5, 8, 7, 9, 10, 9, 13, 8, 15, 6, 17, 3, 18, 0, 19, -4, 19, -7, 18, -10, 17, -11, 15, -12, 12, -12, -128, -128, 12, -12, 10, -11, 8, -9, 6, -6, 5, -3, 4, 1, 4, 4, 5, 7, 7, 9, -128, -128, 10, 9, 12, 8, 14, 6, 16, 3, 17, 0, 18, -4, 18, -7, 17, -10, 15, -12, -128, -128, 5, 7, 5, 6, 6, 4, 8, 3, 9, 3, 11, 4, 12, 6, 12, 13, 13, 14, 15, 14, 16, 12, 16, 11, -128, -128, 12, 6, 13, 12, 14, 13, 15, 13, 16, 12, 9, -12, 3, 9, -128, -128, 10, -12, 4, 9, -128, -128, 6, -12, 17, -12, 20, -11, 21, -9, 21, -7, 20, -4, 19, -3, 16, -2, 7, -2, -128, -128, 17, -12, 19, -11, 20, -9, 20, -7, 19, -4, 18, -3, 16, -2, -128, -128, 12, -2, 14, -1, 15, 0, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, -128, -128, 15, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 0, 9, 7, 9, 19, -10, 20, -10, 21, -12, 20, -6, 20, -8, 19, -10, 18, -11, 15, -12, 11, -12, 8, -11, 6, -9, 6, -7, 7, -5, 8, -4, 15, 0, 17, 2, -128, -128, 6, -7, 8, -5, 15, -1, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 2, 9, 3, 7, 4, 7, 13, -12, 7, 9, -128, -128, 14, -12, 8, 9, -128, -128, 7, -12, 4, -6, 6, -12, 21, -12, 20, -6, 20, -12, -128, -128, 4, 9, 11, 9, 8, -12, 5, -1, 4, 3, 4, 6, 5, 8, 8, 9, 12, 9, 15, 8, 17, 6, 18, 3, 22, -12, -128, -128, 9, -12, 6, -1, 5, 3, 5, 6, 6, 8, 8, 9, -128, -128, 5, -12, 12, -12, -128, -128, 19, -12, 25, -12, 6, -12, 7, 9, -128, -128, 7, -12, 8, 7, -128, -128, 20, -12, 7, 9, -128, -128, 4, -12, 10, -12, -128, -128, 16, -12, 22, -12, 8, -12, 6, 9, -128, -128, 9, -12, 7, 7, -128, -128, 16, -12, 6, 9, -128, -128, 16, -12, 14, 9, -128, -128, 17, -12, 15, 7, -128, -128, 24, -12, 14, 9, -128, -128, 5, -12, 12, -12, -128, -128, 21, -12, 27, -12, 7, -12, 14, 9, -128, -128, 8, -12, 15, 9, -128, -128, 21, -12, 1, 9, -128, -128, 5, -12, 11, -12, -128, -128, 17, -12, 23, -12, -128, -128, -1, 9, 5, 9, -128, -128, 11, 9, 17, 9, 6, -12, 10, -2, 7, 9, -128, -128, 7, -12, 11, -2, 8, 9, -128, -128, 21, -12, 11, -2, -128, -128, 4, -12, 10, -12, -128, -128, 17, -12, 23, -12, -128, -128, 4, 9, 11, 9, 20, -12, 1, 9, -128, -128, 21, -12, 2, 9, -128, -128, 8, -12, 5, -6, 7, -12, 21, -12, -128, -128, 1, 9, 15, 9, 17, 3, 14, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 16, -5, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 17, -5, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 4, 1, 4, 4, 5, 7, 6, 8, -128, -128, 9, -12, 5, 1, -128, -128, 5, 1, 6, -2, 8, -4, 10, -5, 12, -5, 14, -4, 15, -3, 16, -1, 16, 2, 15, 5, 13, 8, 10, 9, 8, 9, 6, 8, 5, 5, 5, 1, -128, -128, 14, -4, 15, -2, 15, 2, 14, 5, 12, 8, 10, 9, -128, -128, 5, -12, 9, -12, 14, -2, 14, -1, 15, -1, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 18, -12, 14, 2, 13, 6, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 19, -12, 15, 2, 14, 6, 14, 8, 15, 9, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 15, -12, 19, -12, 4, 4, 8, 3, 11, 2, 14, 0, 15, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 6, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 15, -11, 14, -10, 15, -9, 16, -10, 16, -11, 15, -12, 13, -12, 11, -11, 10, -10, 9, -8, 8, -5, 5, 9, 4, 13, 3, 15, -128, -128, 13, -12, 11, -10, 10, -8, 9, -4, 7, 5, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 4, -5, 14, -5, 17, -5, 13, 9, 12, 12, 10, 15, 7, 16, 4, 16, 2, 15, 1, 14, 1, 13, 2, 12, 3, 13, 2, 14, -128, -128, 16, -5, 12, 9, 11, 12, 9, 15, 7, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 5, 2, 7, -2, 9, -4, 11, -5, 13, -5, 15, -4, 16, -3, 16, -1, 14, 5, 14, 8, 15, 9, -128, -128, 13, -5, 15, -3, 15, -1, 13, 5, 13, 8, 14, 9, 17, 9, 19, 7, 20, 5, -128, -128, 5, -12, 9, -12, 9, -12, 8, -11, 9, -10, 10, -11, 9, -12, -128, -128, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 8, 7, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 8, 6, 9, 9, 9, 11, 7, 12, 5, 10, -12, 9, -11, 10, -10, 11, -11, 10, -12, -128, -128, 2, -1, 3, -3, 5, -5, 8, -5, 9, -4, 9, -1, 6, 9, 5, 12, 4, 14, 3, 15, 1, 16, -1, 16, -2, 15, -2, 14, -1, 13, 0, 14, -1, 15, -128, -128, 7, -5, 8, -4, 8, -1, 5, 9, 4, 12, 3, 14, 1, 16, 8, -12, 2, 9, -128, -128, 9, -12, 3, 9, -128, -128, 16, -4, 15, -3, 16, -2, 17, -3, 17, -4, 16, -5, 15, -5, 13, -4, 9, 0, 7, 1, 5, 1, -128, -128, 7, 1, 9, 2, 11, 8, 12, 9, -128, -128, 7, 1, 8, 2, 10, 8, 11, 9, 13, 9, 15, 8, 17, 5, -128, -128, 5, -12, 9, -12, 8, -12, 4, 2, 3, 6, 3, 8, 4, 9, 7, 9, 9, 7, 10, 5, -128, -128, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, -128, -128, 5, -12, 9, -12, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 15, 9, -128, -128, 15, -5, 17, -3, 17, -1, 14, 9, -128, -128, 17, 2, 19, -2, 21, -4, 23, -5, 25, -5, 27, -4, 28, -3, 28, -1, 26, 5, 26, 8, 27, 9, -128, -128, 25, -5, 27, -3, 27, -1, 25, 5, 25, 8, 26, 9, 29, 9, 31, 7, 32, 5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 17, -4, 18, -3, 18, -1, 16, 5, 16, 8, 17, 9, -128, -128, 15, -5, 17, -3, 17, -1, 15, 5, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 12, 8, 14, 5, 15, 2, 15, -1, 14, -3, 13, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 9, 9, 11, 8, 13, 5, 14, 2, 14, -2, 13, -4, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 3, 16, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 2, 16, -128, -128, 7, 2, 8, -1, 10, -4, 12, -5, 14, -5, 16, -4, 17, -3, 18, -1, 18, 2, 17, 5, 15, 8, 12, 9, 10, 9, 8, 8, 7, 5, 7, 2, -128, -128, 16, -4, 17, -2, 17, 2, 16, 5, 14, 8, 12, 9, -128, -128, -1, 16, 6, 16, 16, -5, 10, 16, -128, -128, 17, -5, 11, 16, -128, -128, 14, 2, 14, -1, 13, -4, 11, -5, 9, -5, 6, -4, 4, -1, 3, 2, 3, 5, 4, 7, 5, 8, 7, 9, 9, 9, 11, 8, 13, 5, 14, 2, -128, -128, 9, -5, 7, -4, 5, -1, 4, 2, 4, 6, 5, 8, -128, -128, 7, 16, 14, 16, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -2, 7, 2, 5, 9, -128, -128, 6, -5, 7, -4, 7, -2, 6, 2, 4, 9, -128, -128, 7, 2, 9, -2, 11, -4, 13, -5, 15, -5, 16, -4, 16, -3, 15, -2, 14, -3, 15, -4, 14, -3, 14, -2, 15, -2, 15, -3, 14, -4, 11, -5, 8, -5, 5, -4, 4, -3, 4, -1, 5, 0, 12, 4, 13, 5, -128, -128, 4, -2, 5, -1, 12, 3, 13, 4, 13, 7, 12, 8, 9, 9, 6, 9, 3, 8, 2, 7, 2, 6, 3, 6, 3, 7, 9, -12, 5, 2, 4, 6, 4, 8, 5, 9, 8, 9, 10, 7, 11, 5, -128, -128, 10, -12, 6, 2, 5, 6, 5, 8, 6, 9, -128, -128, 3, -5, 12, -5, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 18, -5, 16, 2, 15, 6, 15, 8, 16, 9, 19, 9, 21, 7, 22, 5, -128, -128, 19, -5, 17, 2, 16, 6, 16, 8, 17, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 9, 9, 12, 8, 14, 6, 16, 3, 17, -1, 17, -5, 16, -5, 17, -3, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 15, 4, -128, -128, 17, -5, 15, 4, 15, 7, 16, 8, 18, 9, 20, 9, 22, 8, 24, 6, 25, 4, 26, 0, 26, -5, 25, -5, 26, -3, -128, -128, 18, -5, 16, 4, 16, 7, 18, 9, 3, -1, 5, -4, 7, -5, 10, -5, 11, -3, 11, 0, -128, -128, 9, -5, 10, -3, 10, 0, 9, 4, 8, 6, 6, 8, 4, 9, 3, 9, 2, 8, 2, 7, 3, 6, 4, 7, 3, 8, -128, -128, 9, 4, 9, 7, 10, 9, 13, 9, 15, 8, 17, 5, -128, -128, 17, -4, 16, -3, 17, -2, 18, -3, 18, -4, 17, -5, 16, -5, 14, -4, 12, -2, 11, 0, 10, 4, 10, 7, 11, 9, 1, -1, 2, -3, 4, -5, 7, -5, 8, -4, 8, -1, 6, 5, 6, 7, 8, 9, -128, -128, 6, -5, 7, -4, 7, -1, 5, 5, 5, 7, 6, 8, 8, 9, 10, 9, 12, 8, 14, 6, 16, 2, -128, -128, 19, -5, 15, 9, 14, 12, 12, 15, 9, 16, 6, 16, 4, 15, 3, 14, 3, 13, 4, 12, 5, 13, 4, 14, -128, -128, 18, -5, 14, 9, 13, 12, 11, 15, 9, 16, 17, -5, 16, -3, 14, -1, 6, 5, 4, 7, 3, 9, -128, -128, 4, -1, 5, -3, 7, -5, 10, -5, 14, -3, -128, -128, 5, -3, 7, -4, 10, -4, 14, -3, 16, -3, -128, -128, 4, 7, 6, 7, 10, 8, 13, 8, 15, 7, -128, -128, 6, 7, 10, 9, 13, 9, 15, 7, 16, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 +}; + +static const hershey_font_t timesi { + .chars = { + {.width=16, .vertex_count=0, .vertices=×i_vertices[0]}, + {.width=11, .vertex_count=16, .vertices=×i_vertices[0]}, + {.width=18, .vertex_count=11, .vertices=×i_vertices[32]}, + {.width=21, .vertex_count=11, .vertices=×i_vertices[54]}, + {.width=21, .vertex_count=40, .vertices=×i_vertices[76]}, + {.width=24, .vertex_count=31, .vertices=×i_vertices[156]}, + {.width=25, .vertex_count=48, .vertices=×i_vertices[218]}, + {.width=9, .vertex_count=5, .vertices=×i_vertices[314]}, + {.width=15, .vertex_count=19, .vertices=×i_vertices[324]}, + {.width=15, .vertex_count=19, .vertices=×i_vertices[362]}, + {.width=16, .vertex_count=8, .vertices=×i_vertices[400]}, + {.width=26, .vertex_count=5, .vertices=×i_vertices[416]}, + {.width=11, .vertex_count=7, .vertices=×i_vertices[426]}, + {.width=26, .vertex_count=2, .vertices=×i_vertices[440]}, + {.width=11, .vertex_count=5, .vertices=×i_vertices[444]}, + {.width=22, .vertex_count=2, .vertices=×i_vertices[454]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[458]}, + {.width=21, .vertex_count=14, .vertices=×i_vertices[540]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[568]}, + {.width=21, .vertex_count=49, .vertices=×i_vertices[650]}, + {.width=21, .vertex_count=9, .vertices=×i_vertices[748]}, + {.width=21, .vertex_count=38, .vertices=×i_vertices[766]}, + {.width=21, .vertex_count=45, .vertices=×i_vertices[842]}, + {.width=21, .vertex_count=29, .vertices=×i_vertices[932]}, + {.width=21, .vertex_count=62, .vertices=×i_vertices[990]}, + {.width=21, .vertex_count=45, .vertices=×i_vertices[1114]}, + {.width=11, .vertex_count=10, .vertices=×i_vertices[1204]}, + {.width=11, .vertex_count=13, .vertices=×i_vertices[1224]}, + {.width=24, .vertex_count=3, .vertices=×i_vertices[1250]}, + {.width=26, .vertex_count=5, .vertices=×i_vertices[1256]}, + {.width=24, .vertex_count=3, .vertices=×i_vertices[1266]}, + {.width=21, .vertex_count=33, .vertices=×i_vertices[1272]}, + {.width=27, .vertex_count=55, .vertices=×i_vertices[1338]}, + {.width=20, .vertex_count=17, .vertices=×i_vertices[1448]}, + {.width=24, .vertex_count=40, .vertices=×i_vertices[1482]}, + {.width=21, .vertex_count=33, .vertices=×i_vertices[1562]}, + {.width=23, .vertex_count=29, .vertices=×i_vertices[1628]}, + {.width=23, .vertex_count=21, .vertices=×i_vertices[1686]}, + {.width=22, .vertex_count=19, .vertices=×i_vertices[1728]}, + {.width=22, .vertex_count=41, .vertices=×i_vertices[1766]}, + {.width=26, .vertex_count=26, .vertices=×i_vertices[1848]}, + {.width=13, .vertex_count=11, .vertices=×i_vertices[1900]}, + {.width=18, .vertex_count=20, .vertices=×i_vertices[1922]}, + {.width=23, .vertex_count=26, .vertices=×i_vertices[1962]}, + {.width=20, .vertex_count=13, .vertices=×i_vertices[2014]}, + {.width=27, .vertex_count=29, .vertices=×i_vertices[2040]}, + {.width=25, .vertex_count=20, .vertices=×i_vertices[2098]}, + {.width=22, .vertex_count=41, .vertices=×i_vertices[2138]}, + {.width=23, .vertex_count=26, .vertices=×i_vertices[2220]}, + {.width=22, .vertex_count=60, .vertices=×i_vertices[2272]}, + {.width=24, .vertex_count=41, .vertices=×i_vertices[2392]}, + {.width=23, .vertex_count=34, .vertices=×i_vertices[2474]}, + {.width=21, .vertex_count=15, .vertices=×i_vertices[2542]}, + {.width=25, .vertex_count=24, .vertices=×i_vertices[2572]}, + {.width=20, .vertex_count=14, .vertices=×i_vertices[2620]}, + {.width=26, .vertex_count=23, .vertices=×i_vertices[2648]}, + {.width=22, .vertex_count=20, .vertices=×i_vertices[2694]}, + {.width=21, .vertex_count=19, .vertices=×i_vertices[2734]}, + {.width=22, .vertex_count=15, .vertices=×i_vertices[2772]}, + {.width=14, .vertex_count=11, .vertices=×i_vertices[2802]}, + {.width=14, .vertex_count=2, .vertices=×i_vertices[2824]}, + {.width=14, .vertex_count=11, .vertices=×i_vertices[2828]}, + {.width=22, .vertex_count=7, .vertices=×i_vertices[2850]}, + {.width=20, .vertex_count=2, .vertices=×i_vertices[2864]}, + {.width=12, .vertex_count=6, .vertices=×i_vertices[2868]}, + {.width=21, .vertex_count=38, .vertices=×i_vertices[2880]}, + {.width=19, .vertex_count=35, .vertices=×i_vertices[2956]}, + {.width=18, .vertex_count=24, .vertices=×i_vertices[3026]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[3074]}, + {.width=18, .vertex_count=25, .vertices=×i_vertices[3156]}, + {.width=15, .vertex_count=34, .vertices=×i_vertices[3206]}, + {.width=20, .vertex_count=42, .vertices=×i_vertices[3274]}, + {.width=21, .vertex_count=30, .vertices=×i_vertices[3358]}, + {.width=13, .vertex_count=25, .vertices=×i_vertices[3418]}, + {.width=13, .vertex_count=31, .vertices=×i_vertices[3468]}, + {.width=20, .vertex_count=33, .vertices=×i_vertices[3530]}, + {.width=12, .vertex_count=17, .vertices=×i_vertices[3596]}, + {.width=33, .vertex_count=51, .vertices=×i_vertices[3630]}, + {.width=23, .vertex_count=36, .vertices=×i_vertices[3732]}, + {.width=18, .vertex_count=31, .vertices=×i_vertices[3804]}, + {.width=21, .vertex_count=41, .vertices=×i_vertices[3866]}, + {.width=20, .vertex_count=32, .vertices=×i_vertices[3948]}, + {.width=17, .vertex_count=25, .vertices=×i_vertices[4012]}, + {.width=17, .vertex_count=27, .vertices=×i_vertices[4062]}, + {.width=14, .vertex_count=17, .vertices=×i_vertices[4116]}, + {.width=23, .vertex_count=36, .vertices=×i_vertices[4150]}, + {.width=20, .vertex_count=25, .vertices=×i_vertices[4222]}, + {.width=29, .vertex_count=40, .vertices=×i_vertices[4272]}, + {.width=20, .vertex_count=41, .vertices=×i_vertices[4352]}, + {.width=21, .vertex_count=40, .vertices=×i_vertices[4434]}, + {.width=20, .vertex_count=30, .vertices=×i_vertices[4514]}, + {.width=14, .vertex_count=39, .vertices=×i_vertices[4574]}, + {.width=8, .vertex_count=2, .vertices=×i_vertices[4652]}, + {.width=14, .vertex_count=39, .vertices=×i_vertices[4656]}, + {.width=24, .vertex_count=23, .vertices=×i_vertices[4734]} + } +}; + +static const int8_t timesr_vertices[4600] = { + 5, -12, 4, -10, 5, 2, 6, -10, 5, -12, -128, -128, 5, -10, 5, -4, -128, -128, 5, 7, 4, 8, 5, 9, 6, 8, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -9, 15, -8, 16, -7, 17, -8, 17, -9, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 8, 9, 5, 8, 3, 6, 3, 5, 4, 4, 5, 5, 4, 6, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 21, -4, 20, -3, 21, -2, 22, -3, 22, -4, 21, -5, 20, -5, 19, -4, 18, -2, 16, 3, 14, 6, 12, 8, 10, 9, 7, 9, 4, 8, 3, 6, 3, 3, 4, 1, 10, -3, 12, -5, 13, -7, 13, -9, 12, -11, 10, -12, 8, -11, 7, -9, 7, -7, 8, -4, 10, -1, 15, 6, 17, 8, 20, 9, 21, 9, 22, 8, 22, 7, -128, -128, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 7, -1, -128, -128, 7, -7, 8, -5, 16, 6, 18, 8, 20, 9, 4, -12, 3, -5, -128, -128, 5, -12, 3, -5, 11, -16, 9, -14, 7, -11, 5, -7, 4, -2, 4, 2, 5, 7, 7, 11, 9, 14, 11, 16, -128, -128, 9, -14, 7, -10, 6, -7, 5, -2, 5, 2, 6, 7, 7, 10, 9, 14, 3, -16, 5, -14, 7, -11, 9, -7, 10, -2, 10, 2, 9, 7, 7, 11, 5, 14, 3, 16, -128, -128, 5, -14, 7, -10, 8, -7, 9, -2, 9, 2, 8, 7, 7, 10, 5, 14, 8, -6, 8, 6, -128, -128, 3, -3, 13, 3, -128, -128, 13, -3, 3, 3, 13, -9, 13, 9, -128, -128, 4, 0, 22, 0, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 4, 0, 22, 0, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 20, -16, 2, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 9, -12, 7, -11, 6, -10, 5, -8, 4, -3, 4, 0, 5, 5, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 5, 16, 0, 16, -3, 15, -8, 14, -10, 13, -11, 11, -12, 6, -8, 8, -9, 11, -12, 11, 9, -128, -128, 10, -11, 10, 9, -128, -128, 6, 9, 15, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 12, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 8, 14, 8, 16, 7, 17, 6, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, 9, -3, -128, -128, 12, -12, 14, -11, 15, -9, 15, -6, 14, -4, 12, -3, -128, -128, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 15, -1, 16, 2, 16, 5, 15, 7, 14, 8, 12, 9, 12, -10, 12, 9, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 9, 9, 16, 9, 5, -12, 3, -2, -128, -128, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 4, 4, 5, -128, -128, 11, -5, 13, -4, 15, -2, 16, 1, 16, 3, 15, 6, 13, 8, 11, 9, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 10, -11, 15, -12, 15, -9, 14, -8, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 10, -4, 7, -3, 5, -1, 4, 2, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 2, 15, -1, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 4, -10, 6, -11, 8, -11, 13, -9, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 4, 10, 9, -128, -128, 16, -6, 11, -1, 10, 1, 9, 4, 9, 9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 8, -12, 6, -11, 5, -9, 5, -6, 6, -4, 8, -3, -128, -128, 12, -3, 14, -4, 15, -6, 15, -9, 14, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 8, -3, 6, -2, 5, -1, 4, 1, 4, 5, 5, 7, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 7, 16, 5, 16, 1, 15, -1, 14, -2, 12, -3, 16, -5, 15, -2, 13, 0, 10, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 5, 5, 6, -128, -128, 9, 1, 7, 0, 5, -2, 4, -5, 4, -6, 5, -9, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, 12, 8, 10, 9, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 4, 4, 3, 5, 4, 6, 5, 5, 4, 4, 4, -3, 3, -2, 4, -1, 5, -2, 4, -3, -128, -128, 5, 5, 4, 6, 3, 5, 4, 4, 5, 5, 5, 7, 3, 9, 20, -9, 4, 0, 20, 9, 4, -3, 22, -3, -128, -128, 4, 3, 22, 3, 4, -9, 20, 0, 4, 9, 4, -8, 5, -7, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 7, -12, 10, -12, 13, -11, 14, -10, 15, -8, 15, -6, 14, -4, 13, -3, 9, -1, 9, 2, -128, -128, 10, -12, 12, -11, 13, -10, 14, -8, 14, -6, 13, -4, 11, -2, -128, -128, 9, 7, 8, 8, 9, 9, 10, 8, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 9, -128, -128, 10, -12, 17, 9, -128, -128, 10, -9, 16, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 6, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 14, -2, 16, -1, 17, 0, 18, 2, 18, 5, 17, 7, 16, 8, 14, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 12, -12, 14, -11, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, 14, 8, 12, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 18, 9, 18, 3, 17, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 12, -6, 12, 2, -128, -128, 2, -12, 18, -12, 18, -6, 17, -12, -128, -128, 6, -2, 12, -2, -128, -128, 2, 9, 9, 9, 17, -9, 18, -6, 18, -12, 17, -9, 15, -11, 12, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 17, 1, 17, 9, -128, -128, 18, 1, 18, 9, -128, -128, 14, 1, 21, 1, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 18, -12, 18, 9, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 22, -12, -128, -128, 6, -2, 18, -2, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 22, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 9, 9, 10, -12, 10, 5, 9, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 4, 3, 5, -128, -128, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 6, -12, 13, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 19, -12, 6, 1, -128, -128, 11, -3, 19, 9, -128, -128, 10, -3, 18, 9, -128, -128, 2, -12, 9, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 9, 9, -128, -128, 15, 9, 21, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 9, -12, -128, -128, 2, 9, 17, 9, 17, 3, 16, 9, 5, -12, 5, 9, -128, -128, 6, -12, 12, 6, -128, -128, 5, -12, 12, 9, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -12, 20, 9, -128, -128, 2, -12, 6, -12, -128, -128, 19, -12, 23, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 23, 9, 5, -12, 5, 9, -128, -128, 6, -12, 18, 7, -128, -128, 6, -10, 18, 9, -128, -128, 18, -12, 18, 9, -128, -128, 2, -12, 6, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 8, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 6, -1, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -5, 17, -3, 16, -2, 14, -1, -128, -128, 2, 9, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 10, -12, 8, -11, 6, -9, 5, -7, 4, -3, 4, 0, 5, 4, 6, 6, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 6, 17, 4, 18, 0, 18, -3, 17, -7, 16, -9, 14, -11, 12, -12, -128, -128, 7, 7, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 13, 16, 14, 18, 14, 19, 12, 19, 11, -128, -128, 14, 6, 15, 10, 16, 12, 17, 13, 18, 13, 19, 12, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 6, -2, -128, -128, 14, -12, 16, -11, 17, -10, 18, -8, 18, -6, 17, -4, 16, -3, 14, -2, -128, -128, 2, 9, 9, 9, -128, -128, 11, -2, 13, -1, 14, 0, 17, 7, 18, 8, 19, 8, 20, 7, -128, -128, 13, -1, 14, 1, 16, 8, 17, 9, 19, 9, 20, 7, 20, 6, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -7, 4, -5, 5, -4, 7, -3, 13, -1, 15, 0, 17, 2, -128, -128, 3, -7, 5, -5, 7, -4, 13, -2, 15, -1, 16, 0, 17, 2, 17, 6, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 9, -12, 9, 9, -128, -128, 10, -12, 10, 9, -128, -128, 3, -12, 2, -6, 2, -12, 17, -12, 17, -6, 16, -12, -128, -128, 6, 9, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -12, -128, -128, 6, -12, 6, 3, 7, 6, 9, 8, 11, 9, -128, -128, 2, -12, 9, -12, -128, -128, 16, -12, 22, -12, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, -128, -128, 17, -12, 10, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, -128, -128, 12, -12, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, -128, -128, 20, -12, 16, 9, -128, -128, 1, -12, 8, -12, -128, -128, 17, -12, 23, -12, 3, -12, 16, 9, -128, -128, 4, -12, 17, 9, -128, -128, 17, -12, 3, 9, -128, -128, 1, -12, 7, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 13, 9, 19, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 9, -128, -128, 18, -12, 11, -1, -128, -128, 1, -12, 7, -12, -128, -128, 14, -12, 20, -12, -128, -128, 7, 9, 14, 9, 16, -12, 3, 9, -128, -128, 17, -12, 4, 9, -128, -128, 4, -12, 3, -6, 3, -12, 17, -12, -128, -128, 3, 9, 17, 9, 17, 3, 16, 9, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -3, 5, -2, 4, -2, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 14, -3, 14, 6, 15, 8, 17, 9, 18, 9, -128, -128, 14, -1, 13, 0, 7, 1, 4, 2, 3, 4, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 14, 6, -128, -128, 7, 1, 5, 2, 4, 4, 4, 6, 5, 8, 7, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -12, 6, -12, 15, -2, 14, -1, 15, 0, 16, -1, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 15, -12, 15, 9, -128, -128, 16, -12, 16, 9, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, -12, 16, -12, -128, -128, 15, 9, 19, 9, 4, 1, 16, 1, 16, -1, 15, -3, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 1, 15, -2, 14, -4, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, 10, -11, 9, -10, 10, -9, 11, -10, 11, -11, 10, -12, 8, -12, 6, -11, 5, -9, 5, 9, -128, -128, 8, -12, 7, -11, 6, -9, 6, 9, -128, -128, 2, -5, 10, -5, -128, -128, 2, 9, 9, 9, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -4, 5, -2, 5, 2, 6, 4, -128, -128, 12, 4, 13, 2, 13, -2, 12, -4, -128, -128, 13, -3, 14, -4, 16, -5, 16, -4, 14, -4, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 7, 10, 12, 10, 15, 11, 16, 12, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 5, -12, 4, -11, 5, -10, 6, -11, 5, -12, -128, -128, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 6, -12, 5, -11, 6, -10, 7, -11, 6, -12, -128, -128, 7, -5, 7, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 14, 2, 13, 3, 14, 2, 15, -128, -128, 6, -5, 6, 13, 5, 15, 4, 16, -128, -128, 3, -5, 7, -5, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 16, -5, 6, 5, -128, -128, 11, 1, 17, 9, -128, -128, 10, 1, 16, 9, -128, -128, 2, -12, 6, -12, -128, -128, 13, -5, 19, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 19, 9, 5, -12, 5, 9, -128, -128, 6, -12, 6, 9, -128, -128, 2, -12, 6, -12, -128, -128, 2, 9, 9, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 17, -2, 19, -4, 22, -5, 24, -5, 27, -4, 28, -2, 28, 9, -128, -128, 24, -5, 26, -4, 27, -2, 27, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, -128, -128, 24, 9, 31, 9, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, -2, 8, -4, 11, -5, 13, -5, 16, -4, 17, -2, 17, 9, -128, -128, 13, -5, 15, -4, 16, -2, 16, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, -128, -128, 13, 9, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 15, 6, 16, 3, 16, 1, 15, -2, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -5, 6, 16, -128, -128, 6, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 6, 6, -128, -128, 12, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 12, 9, -128, -128, 2, -5, 6, -5, -128, -128, 2, 16, 9, 16, 15, -5, 15, 16, -128, -128, 16, -5, 16, 16, -128, -128, 15, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 15, 6, -128, -128, 9, -5, 7, -4, 5, -2, 4, 1, 4, 3, 5, 6, 7, 8, 9, 9, -128, -128, 12, 16, 19, 16, 5, -5, 5, 9, -128, -128, 6, -5, 6, 9, -128, -128, 6, 1, 7, -2, 9, -4, 11, -5, 14, -5, 15, -4, 15, -3, 14, -2, 13, -3, 14, -4, -128, -128, 2, -5, 6, -5, -128, -128, 2, 9, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 0, 6, 1, 11, 3, 13, 4, 14, 5, -128, -128, 3, -2, 4, -1, 6, 0, 11, 2, 13, 3, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -12, 5, 5, 6, 8, 8, 9, 10, 9, 12, 8, 13, 6, -128, -128, 6, -12, 6, 5, 7, 8, 8, 9, -128, -128, 2, -5, 10, -5, 5, -5, 5, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 6, -5, 6, 6, 7, 8, 9, 9, -128, -128, 16, -5, 16, 9, -128, -128, 17, -5, 17, 9, -128, -128, 2, -5, 6, -5, -128, -128, 13, -5, 17, -5, -128, -128, 16, 9, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 15, -5, 9, 9, -128, -128, 1, -5, 7, -5, -128, -128, 11, -5, 17, -5, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 12, -5, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 20, -5, 16, 9, -128, -128, 1, -5, 8, -5, -128, -128, 17, -5, 23, -5, 4, -5, 15, 9, -128, -128, 5, -5, 16, 9, -128, -128, 16, -5, 4, 9, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 12, 9, 18, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 16, -5, 10, 9, 8, 13, 6, 15, 4, 16, 3, 16, 2, 15, 3, 14, 4, 15, -128, -128, 2, -5, 8, -5, -128, -128, 12, -5, 18, -5, 14, -5, 3, 9, -128, -128, 15, -5, 4, 9, -128, -128, 4, -5, 3, -1, 3, -5, 15, -5, -128, -128, 3, 9, 15, 9, 15, 5, 14, 9, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 +}; + +static const hershey_font_t timesr { + .chars = { + {.width=16, .vertex_count=0, .vertices=×r_vertices[0]}, + {.width=10, .vertex_count=14, .vertices=×r_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=×r_vertices[28]}, + {.width=21, .vertex_count=11, .vertices=×r_vertices[70]}, + {.width=20, .vertex_count=41, .vertices=×r_vertices[92]}, + {.width=24, .vertex_count=31, .vertices=×r_vertices[174]}, + {.width=25, .vertex_count=48, .vertices=×r_vertices[236]}, + {.width=8, .vertex_count=5, .vertices=×r_vertices[332]}, + {.width=14, .vertex_count=19, .vertices=×r_vertices[342]}, + {.width=14, .vertex_count=19, .vertices=×r_vertices[380]}, + {.width=16, .vertex_count=8, .vertices=×r_vertices[418]}, + {.width=26, .vertex_count=5, .vertices=×r_vertices[434]}, + {.width=8, .vertex_count=7, .vertices=×r_vertices[444]}, + {.width=26, .vertex_count=2, .vertices=×r_vertices[458]}, + {.width=8, .vertex_count=5, .vertices=×r_vertices[462]}, + {.width=22, .vertex_count=2, .vertices=×r_vertices[472]}, + {.width=20, .vertex_count=39, .vertices=×r_vertices[476]}, + {.width=20, .vertex_count=10, .vertices=×r_vertices[554]}, + {.width=20, .vertex_count=44, .vertices=×r_vertices[574]}, + {.width=20, .vertex_count=46, .vertices=×r_vertices[662]}, + {.width=20, .vertex_count=12, .vertices=×r_vertices[754]}, + {.width=20, .vertex_count=38, .vertices=×r_vertices[778]}, + {.width=20, .vertex_count=47, .vertices=×r_vertices[854]}, + {.width=20, .vertex_count=30, .vertices=×r_vertices[948]}, + {.width=20, .vertex_count=62, .vertices=×r_vertices[1008]}, + {.width=20, .vertex_count=47, .vertices=×r_vertices[1132]}, + {.width=8, .vertex_count=11, .vertices=×r_vertices[1226]}, + {.width=8, .vertex_count=13, .vertices=×r_vertices[1248]}, + {.width=24, .vertex_count=3, .vertices=×r_vertices[1274]}, + {.width=26, .vertex_count=5, .vertices=×r_vertices[1280]}, + {.width=24, .vertex_count=3, .vertices=×r_vertices[1290]}, + {.width=18, .vertex_count=31, .vertices=×r_vertices[1296]}, + {.width=27, .vertex_count=55, .vertices=×r_vertices[1358]}, + {.width=20, .vertex_count=17, .vertices=×r_vertices[1468]}, + {.width=22, .vertex_count=44, .vertices=×r_vertices[1502]}, + {.width=21, .vertex_count=31, .vertices=×r_vertices[1590]}, + {.width=22, .vertex_count=29, .vertices=×r_vertices[1652]}, + {.width=21, .vertex_count=21, .vertices=×r_vertices[1710]}, + {.width=20, .vertex_count=19, .vertices=×r_vertices[1752]}, + {.width=23, .vertex_count=39, .vertices=×r_vertices[1790]}, + {.width=24, .vertex_count=26, .vertices=×r_vertices[1868]}, + {.width=11, .vertex_count=11, .vertices=×r_vertices[1920]}, + {.width=15, .vertex_count=19, .vertices=×r_vertices[1942]}, + {.width=22, .vertex_count=26, .vertices=×r_vertices[1980]}, + {.width=18, .vertex_count=13, .vertices=×r_vertices[2032]}, + {.width=25, .vertex_count=29, .vertices=×r_vertices[2058]}, + {.width=23, .vertex_count=20, .vertices=×r_vertices[2116]}, + {.width=22, .vertex_count=43, .vertices=×r_vertices[2156]}, + {.width=22, .vertex_count=28, .vertices=×r_vertices[2242]}, + {.width=22, .vertex_count=63, .vertices=×r_vertices[2298]}, + {.width=22, .vertex_count=44, .vertices=×r_vertices[2424]}, + {.width=20, .vertex_count=33, .vertices=×r_vertices[2512]}, + {.width=19, .vertex_count=15, .vertices=×r_vertices[2578]}, + {.width=24, .vertex_count=22, .vertices=×r_vertices[2608]}, + {.width=20, .vertex_count=14, .vertices=×r_vertices[2652]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[2680]}, + {.width=20, .vertex_count=20, .vertices=×r_vertices[2726]}, + {.width=21, .vertex_count=19, .vertices=×r_vertices[2766]}, + {.width=20, .vertex_count=15, .vertices=×r_vertices[2804]}, + {.width=14, .vertex_count=11, .vertices=×r_vertices[2834]}, + {.width=14, .vertex_count=2, .vertices=×r_vertices[2856]}, + {.width=14, .vertex_count=11, .vertices=×r_vertices[2860]}, + {.width=22, .vertex_count=7, .vertices=×r_vertices[2882]}, + {.width=20, .vertex_count=2, .vertices=×r_vertices[2896]}, + {.width=12, .vertex_count=6, .vertices=×r_vertices[2900]}, + {.width=20, .vertex_count=38, .vertices=×r_vertices[2912]}, + {.width=21, .vertex_count=32, .vertices=×r_vertices[2988]}, + {.width=19, .vertex_count=27, .vertices=×r_vertices[3052]}, + {.width=21, .vertex_count=35, .vertices=×r_vertices[3106]}, + {.width=19, .vertex_count=30, .vertices=×r_vertices[3176]}, + {.width=13, .vertex_count=21, .vertices=×r_vertices[3236]}, + {.width=19, .vertex_count=59, .vertices=×r_vertices[3278]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[3396]}, + {.width=11, .vertex_count=17, .vertices=×r_vertices[3450]}, + {.width=11, .vertex_count=24, .vertices=×r_vertices[3484]}, + {.width=21, .vertex_count=26, .vertices=×r_vertices[3532]}, + {.width=11, .vertex_count=11, .vertices=×r_vertices[3584]}, + {.width=33, .vertex_count=43, .vertices=×r_vertices[3606]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[3692]}, + {.width=20, .vertex_count=35, .vertices=×r_vertices[3746]}, + {.width=21, .vertex_count=35, .vertices=×r_vertices[3816]}, + {.width=20, .vertex_count=32, .vertices=×r_vertices[3886]}, + {.width=17, .vertex_count=22, .vertices=×r_vertices[3950]}, + {.width=17, .vertex_count=31, .vertices=×r_vertices[3994]}, + {.width=15, .vertex_count=15, .vertices=×r_vertices[4056]}, + {.width=22, .vertex_count=27, .vertices=×r_vertices[4086]}, + {.width=18, .vertex_count=14, .vertices=×r_vertices[4140]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[4168]}, + {.width=20, .vertex_count=20, .vertices=×r_vertices[4214]}, + {.width=19, .vertex_count=21, .vertices=×r_vertices[4254]}, + {.width=18, .vertex_count=15, .vertices=×r_vertices[4296]}, + {.width=14, .vertex_count=39, .vertices=×r_vertices[4326]}, + {.width=8, .vertex_count=2, .vertices=×r_vertices[4404]}, + {.width=14, .vertex_count=39, .vertices=×r_vertices[4408]}, + {.width=24, .vertex_count=23, .vertices=×r_vertices[4486]} + } +}; + +static const int8_t timesrb_vertices[7994] = { + 5, -12, 4, -11, 4, -9, 5, -1, -128, -128, 5, -12, 5, 2, 6, 2, -128, -128, 5, -12, 6, -12, 6, 2, -128, -128, 6, -12, 7, -11, 7, -9, 6, -1, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, -128, -128, 14, -12, 13, -11, 13, -5, -128, -128, 14, -11, 13, -5, -128, -128, 14, -12, 15, -11, 13, -5, 11, -16, 4, 16, -128, -128, 17, -16, 10, 16, -128, -128, 4, -3, 18, -3, -128, -128, 3, 3, 17, 3, 8, -16, 8, 13, -128, -128, 12, -16, 12, 13, -128, -128, 16, -7, 16, -8, 15, -8, 15, -6, 17, -6, 17, -8, 16, -10, 15, -11, 12, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 3, 5, 3, 5, 5, 4, 5, 4, 4, 21, -12, 3, 9, -128, -128, 8, -12, 10, -10, 10, -8, 9, -6, 7, -5, 5, -5, 3, -7, 3, -9, 4, -11, 6, -12, 8, -12, 10, -11, 13, -10, 16, -10, 19, -11, 21, -12, -128, -128, 17, 2, 15, 3, 14, 5, 14, 7, 16, 9, 18, 9, 20, 8, 21, 6, 21, 4, 19, 2, 17, 2, 22, -3, 22, -4, 21, -4, 21, -2, 23, -2, 23, -4, 22, -5, 21, -5, 20, -4, 19, -2, 17, 3, 15, 6, 13, 8, 11, 9, 7, 9, 5, 8, 4, 6, 4, 3, 5, 1, 11, -3, 13, -5, 14, -7, 14, -9, 13, -11, 11, -12, 9, -11, 8, -9, 8, -6, 9, -3, 11, 0, 15, 5, 18, 8, 20, 9, 22, 9, 23, 7, 23, 6, -128, -128, 6, 8, 5, 6, 5, 3, 6, 1, 7, 0, -128, -128, 13, -5, 14, -9, -128, -128, 14, -7, 13, -11, -128, -128, 9, -11, 8, -7, -128, -128, 9, -4, 11, -1, 15, 4, 18, 7, 20, 8, -128, -128, 9, 9, 7, 8, 6, 6, 6, 3, 7, 1, 11, -3, -128, -128, 8, -9, 9, -5, 12, -1, 16, 4, 19, 7, 21, 8, 22, 8, 23, 7, 5, -12, 4, -11, 4, -5, -128, -128, 5, -11, 4, -5, -128, -128, 5, -12, 6, -11, 4, -5, 10, -16, 8, -14, 6, -11, 4, -7, 3, -2, 3, 2, 4, 7, 6, 11, 8, 14, 10, 16, -128, -128, 6, -10, 5, -7, 4, -3, 4, 3, 5, 7, 6, 10, -128, -128, 8, -14, 7, -12, 6, -9, 5, -3, 5, 3, 6, 9, 7, 12, 8, 14, 4, -16, 6, -14, 8, -11, 10, -7, 11, -2, 11, 2, 10, 7, 8, 11, 6, 14, 4, 16, -128, -128, 8, -10, 9, -7, 10, -3, 10, 3, 9, 7, 8, 10, -128, -128, 6, -14, 7, -12, 8, -9, 9, -3, 9, 3, 8, 9, 7, 12, 6, 14, 8, -12, 7, -11, 9, -1, 8, 0, -128, -128, 8, -12, 8, 0, -128, -128, 8, -12, 9, -11, 7, -1, 8, 0, -128, -128, 3, -9, 4, -9, 12, -3, 13, -3, -128, -128, 3, -9, 13, -3, -128, -128, 3, -9, 3, -8, 13, -4, 13, -3, -128, -128, 13, -9, 12, -9, 4, -3, 3, -3, -128, -128, 13, -9, 3, -3, -128, -128, 13, -9, 13, -8, 3, -4, 3, -3, 12, -9, 12, 8, 13, 8, -128, -128, 12, -9, 13, -9, 13, 8, -128, -128, 4, -1, 21, -1, 21, 0, -128, -128, 4, -1, 4, 0, 21, 0, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 4, 0, 22, 0, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 20, -16, 2, 16, 3, 16, -128, -128, 20, -16, 21, -16, 3, 16, 9, -12, 6, -11, 4, -8, 3, -3, 3, 0, 4, 5, 6, 8, 9, 9, 11, 9, 14, 8, 16, 5, 17, 0, 17, -3, 16, -8, 14, -11, 11, -12, 9, -12, -128, -128, 6, -10, 5, -8, 4, -4, 4, 1, 5, 5, 6, 7, -128, -128, 14, 7, 15, 5, 16, 1, 16, -4, 15, -8, 14, -10, -128, -128, 9, -12, 7, -11, 6, -9, 5, -4, 5, 1, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 6, 15, 1, 15, -4, 14, -9, 13, -11, 11, -12, 9, -10, 9, 9, -128, -128, 10, -10, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 11, -12, 8, -9, 6, -8, -128, -128, 5, 9, 15, 9, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -10, 17, -8, 17, -6, 16, -4, 13, -2, 8, 0, 6, 1, 4, 3, 3, 6, 3, 9, -128, -128, 15, -10, 16, -8, 16, -6, 15, -4, -128, -128, 12, -12, 14, -11, 15, -8, 15, -6, 14, -4, 12, -2, 8, 0, -128, -128, 3, 7, 4, 6, 6, 6, 11, 7, 15, 7, 17, 6, -128, -128, 6, 6, 11, 8, 15, 8, 16, 7, -128, -128, 6, 6, 11, 9, 15, 9, 16, 8, 17, 6, 17, 4, 4, -8, 4, -7, 5, -7, 5, -8, 4, -8, -128, -128, 4, -9, 5, -9, 6, -8, 6, -7, 5, -6, 4, -6, 3, -7, 3, -8, 4, -10, 5, -11, 8, -12, 12, -12, 15, -11, 16, -9, 16, -6, 15, -4, 12, -3, -128, -128, 14, -11, 15, -9, 15, -6, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -6, 13, -4, 11, -3, -128, -128, 9, -3, 12, -3, 14, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, 0, 16, 2, 16, 5, 15, 7, -128, -128, 11, -3, 13, -2, 14, -1, 15, 2, 15, 5, 14, 8, 12, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, 11, -9, 11, 9, -128, -128, 12, -10, 12, 8, -128, -128, 13, -12, 13, 9, -128, -128, 13, -12, 2, 3, 18, 3, -128, -128, 8, 9, 16, 9, -128, -128, 11, 8, 9, 9, -128, -128, 11, 7, 10, 9, -128, -128, 13, 7, 14, 9, -128, -128, 13, 8, 15, 9, 5, -12, 3, -2, 5, -4, 8, -5, 11, -5, 14, -4, 16, -2, 17, 1, 17, 3, 16, 6, 14, 8, 11, 9, 8, 9, 5, 8, 4, 7, 3, 5, 3, 4, 4, 3, 5, 3, 6, 4, 6, 5, 5, 6, 4, 6, -128, -128, 15, -2, 16, 0, 16, 4, 15, 6, -128, -128, 11, -5, 13, -4, 14, -3, 15, 0, 15, 4, 14, 7, 13, 8, 11, 9, -128, -128, 4, 4, 4, 5, 5, 5, 5, 4, 4, 4, -128, -128, 5, -12, 15, -12, -128, -128, 5, -11, 13, -11, -128, -128, 5, -10, 9, -10, 13, -11, 15, -12, 14, -9, 14, -8, 15, -8, 15, -9, 14, -9, -128, -128, 15, -10, 14, -10, 13, -9, 13, -8, 14, -7, 15, -7, 16, -8, 16, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 2, 16, -1, 14, -3, 11, -4, 9, -4, 7, -3, 6, -2, 5, 0, -128, -128, 6, -9, 5, -7, 4, -3, 4, 3, 5, 6, 6, 7, -128, -128, 15, 6, 16, 4, 16, 1, 15, -1, -128, -128, 10, -12, 8, -11, 7, -10, 6, -8, 5, -4, 5, 3, 6, 6, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 1, 14, -2, 13, -3, 11, -4, 3, -12, 3, -6, -128, -128, 17, -12, 17, -9, 16, -6, 12, -1, 11, 1, 10, 5, 10, 9, -128, -128, 11, 0, 10, 2, 9, 5, 9, 9, -128, -128, 16, -6, 11, -1, 9, 2, 8, 5, 8, 9, 10, 9, -128, -128, 3, -8, 4, -10, 6, -12, 8, -12, 13, -9, 15, -9, 16, -10, 17, -12, -128, -128, 5, -10, 6, -11, 8, -11, 10, -10, -128, -128, 3, -8, 4, -9, 6, -10, 8, -10, 13, -9, 8, -12, 5, -11, 4, -9, 4, -6, 5, -4, 8, -3, 12, -3, 15, -4, 16, -6, 16, -9, 15, -11, 12, -12, 8, -12, -128, -128, 6, -11, 5, -9, 5, -6, 6, -4, -128, -128, 14, -4, 15, -6, 15, -9, 14, -11, -128, -128, 8, -12, 7, -11, 6, -9, 6, -6, 7, -4, 8, -3, -128, -128, 12, -3, 13, -4, 14, -6, 14, -9, 13, -11, 12, -12, -128, -128, 8, -3, 5, -2, 4, -1, 3, 1, 3, 5, 4, 7, 5, 8, 8, 9, 12, 9, 15, 8, 16, 7, 17, 5, 17, 1, 16, -1, 15, -2, 12, -3, -128, -128, 5, -1, 4, 1, 4, 5, 5, 7, -128, -128, 15, 7, 16, 5, 16, 1, 15, -1, -128, -128, 8, -3, 6, -2, 5, 1, 5, 5, 6, 8, 8, 9, -128, -128, 12, 9, 14, 8, 15, 5, 15, 1, 14, -2, 12, -3, 5, 5, 5, 6, 6, 6, 6, 5, 5, 5, -128, -128, 15, -3, 14, -1, 13, 0, 11, 1, 9, 1, 6, 0, 4, -2, 3, -5, 3, -6, 4, -9, 6, -11, 9, -12, 11, -12, 14, -11, 16, -9, 17, -6, 17, 0, 16, 4, 15, 6, 13, 8, 10, 9, 7, 9, 5, 8, 4, 6, 4, 5, 5, 4, 6, 4, 7, 5, 7, 6, 6, 7, 5, 7, -128, -128, 5, -2, 4, -4, 4, -7, 5, -9, -128, -128, 14, -10, 15, -9, 16, -6, 16, 0, 15, 4, 14, 6, -128, -128, 9, 1, 7, 0, 6, -1, 5, -4, 5, -7, 6, -10, 7, -11, 9, -12, -128, -128, 11, -12, 13, -11, 14, -9, 15, -6, 15, 1, 14, 5, 13, 7, 12, 8, 10, 9, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 5, 6, 4, 7, 4, 8, 5, 9, 6, 9, 7, 8, 7, 7, 6, 6, 5, 6, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, 5, -5, 4, -4, 4, -3, 5, -2, 6, -2, 7, -3, 7, -4, 6, -5, 5, -5, -128, -128, 5, -4, 5, -3, 6, -3, 6, -4, 5, -4, -128, -128, 7, 8, 6, 9, 5, 9, 4, 8, 4, 7, 5, 6, 6, 6, 7, 7, 7, 10, 6, 12, 4, 13, -128, -128, 5, 7, 5, 8, 6, 8, 6, 7, 5, 7, -128, -128, 6, 9, 7, 10, -128, -128, 7, 8, 6, 12, 20, -9, 4, 0, 20, 9, 4, -5, 21, -5, 21, -4, -128, -128, 4, -5, 4, -4, 21, -4, -128, -128, 4, 3, 21, 3, 21, 4, -128, -128, 4, 3, 4, 4, 21, 4, 4, -9, 20, 0, 4, 9, 4, -7, 4, -8, 5, -8, 5, -6, 3, -6, 3, -8, 4, -10, 5, -11, 7, -12, 11, -12, 14, -11, 15, -10, 16, -8, 16, -6, 15, -4, 14, -3, 10, -1, -128, -128, 14, -10, 15, -9, 15, -5, 14, -4, -128, -128, 11, -12, 13, -11, 14, -9, 14, -5, 13, -3, 12, -2, -128, -128, 9, -1, 9, 2, 10, 2, 10, -1, 9, -1, -128, -128, 9, 6, 8, 7, 8, 8, 9, 9, 10, 9, 11, 8, 11, 7, 10, 6, 9, 6, -128, -128, 9, 7, 9, 8, 10, 8, 10, 7, 9, 7, 18, -4, 17, -6, 15, -7, 12, -7, 10, -6, 9, -5, 8, -2, 8, 1, 9, 3, 11, 4, 14, 4, 16, 3, 17, 1, -128, -128, 12, -7, 10, -5, 9, -2, 9, 1, 10, 3, 11, 4, -128, -128, 18, -7, 17, 1, 17, 3, 19, 4, 21, 4, 23, 2, 24, -1, 24, -3, 23, -6, 22, -8, 20, -10, 18, -11, 15, -12, 12, -12, 9, -11, 7, -10, 5, -8, 4, -6, 3, -3, 3, 0, 4, 3, 5, 5, 7, 7, 9, 8, 12, 9, 15, 9, 18, 8, 20, 7, 21, 6, -128, -128, 19, -7, 18, 1, 18, 3, 19, 4, 10, -12, 3, 8, -128, -128, 9, -9, 15, 9, -128, -128, 10, -9, 16, 9, -128, -128, 10, -12, 17, 9, -128, -128, 5, 3, 14, 3, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 3, 8, 2, 9, -128, -128, 3, 8, 5, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 16, 7, 18, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 7, -2, 14, -2, 17, -1, 18, 0, 19, 2, 19, 5, 18, 7, 17, 8, 14, 9, 2, 9, -128, -128, 17, 0, 18, 2, 18, 5, 17, 7, -128, -128, 14, -2, 16, -1, 17, 1, 17, 6, 16, 8, 14, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 6, 18, 4, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 12, -12, 15, -11, 17, -9, 18, -7, 19, -4, 19, 1, 18, 4, 17, 6, 15, 8, 12, 9, 2, 9, -128, -128, 16, -9, 17, -7, 18, -4, 18, 1, 17, 4, 16, 6, -128, -128, 12, -12, 14, -11, 16, -8, 17, -4, 17, 1, 16, 5, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 18, 9, 18, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 13, 9, 18, 8, -128, -128, 15, 9, 18, 7, -128, -128, 16, 9, 18, 6, -128, -128, 17, 9, 18, 3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 18, -12, 18, -6, -128, -128, 7, -2, 13, -2, -128, -128, 13, -6, 13, 2, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 13, -6, 12, -2, 13, 2, -128, -128, 13, -4, 11, -2, 13, 0, -128, -128, 13, -3, 9, -2, 13, -1, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 17, -9, 18, -12, 18, -6, 17, -9, 15, -11, 13, -12, 10, -12, 7, -11, 5, -9, 4, -7, 3, -4, 3, 1, 4, 4, 5, 6, 7, 8, 10, 9, 13, 9, 15, 8, 17, 8, 18, 9, 18, 1, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 17, 2, 17, 7, -128, -128, 16, 1, 16, 7, 15, 8, -128, -128, 13, 1, 21, 1, -128, -128, 14, 1, 16, 2, -128, -128, 15, 1, 16, 3, -128, -128, 19, 1, 18, 3, -128, -128, 20, 1, 18, 2, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 17, -12, 17, 9, -128, -128, 18, -11, 18, 8, -128, -128, 19, -12, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 14, -12, 22, -12, -128, -128, 7, -2, 17, -2, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 22, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 15, -12, 17, -11, -128, -128, 16, -12, 17, -10, -128, -128, 20, -12, 19, -10, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 8, 15, 9, -128, -128, 17, 7, 16, 9, -128, -128, 19, 7, 20, 9, -128, -128, 19, 8, 21, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 9, -12, 9, 5, 8, 8, 7, 9, -128, -128, 10, -11, 10, 5, 9, 8, -128, -128, 11, -12, 11, 5, 10, 8, 7, 9, 5, 9, 3, 8, 2, 6, 2, 4, 3, 3, 4, 3, 5, 4, 5, 5, 4, 6, 3, 6, -128, -128, 3, 4, 3, 5, 4, 5, 4, 4, 3, 4, -128, -128, 6, -12, 14, -12, -128, -128, 7, -12, 9, -11, -128, -128, 8, -12, 9, -10, -128, -128, 12, -12, 11, -10, -128, -128, 13, -12, 11, -11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 18, -11, 7, 0, -128, -128, 10, -2, 17, 9, -128, -128, 11, -2, 18, 9, -128, -128, 11, -4, 19, 9, -128, -128, 2, -12, 10, -12, -128, -128, 15, -12, 21, -12, -128, -128, 2, 9, 10, 9, -128, -128, 14, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 17, 7, 15, 9, -128, -128, 17, 7, 20, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 10, -12, -128, -128, 2, 9, 17, 9, 17, 3, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 5, -12, 5, 8, -128, -128, 5, -12, 12, 9, -128, -128, 6, -12, 12, 6, -128, -128, 7, -12, 13, 6, -128, -128, 19, -12, 12, 9, -128, -128, 19, -12, 19, 9, -128, -128, 20, -11, 20, 8, -128, -128, 21, -12, 21, 9, -128, -128, 2, -12, 7, -12, -128, -128, 19, -12, 24, -12, -128, -128, 2, 9, 8, 9, -128, -128, 16, 9, 24, 9, -128, -128, 3, -12, 5, -11, -128, -128, 22, -12, 21, -10, -128, -128, 23, -12, 21, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 19, 8, 17, 9, -128, -128, 19, 7, 18, 9, -128, -128, 21, 7, 22, 9, -128, -128, 21, 8, 23, 9, 5, -12, 5, 8, -128, -128, 5, -12, 19, 9, -128, -128, 6, -12, 18, 6, -128, -128, 7, -12, 19, 6, -128, -128, 19, -11, 19, 9, -128, -128, 2, -12, 7, -12, -128, -128, 16, -12, 22, -12, -128, -128, 2, 9, 8, 9, -128, -128, 3, -12, 5, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -5, 18, -3, 17, -2, 14, -1, 7, -1, -128, -128, 17, -10, 18, -8, 18, -5, 17, -3, -128, -128, 14, -12, 16, -11, 17, -9, 17, -4, 16, -2, 14, -1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 10, -12, 7, -11, 5, -9, 4, -7, 3, -3, 3, 0, 4, 4, 5, 6, 7, 8, 10, 9, 12, 9, 15, 8, 17, 6, 18, 4, 19, 0, 19, -3, 18, -7, 17, -9, 15, -11, 12, -12, 10, -12, -128, -128, 6, -9, 5, -7, 4, -4, 4, 1, 5, 4, 6, 6, -128, -128, 16, 6, 17, 4, 18, 1, 18, -4, 17, -7, 16, -9, -128, -128, 10, -12, 8, -11, 6, -8, 5, -4, 5, 1, 6, 5, 8, 8, 10, 9, -128, -128, 12, 9, 14, 8, 16, 5, 17, 1, 17, -4, 16, -8, 14, -11, 12, -12, -128, -128, 7, 6, 8, 4, 10, 3, 11, 3, 13, 4, 14, 6, 15, 12, 16, 14, 18, 14, 19, 12, 19, 10, -128, -128, 15, 10, 16, 12, 17, 13, 18, 13, -128, -128, 14, 6, 16, 11, 17, 12, 18, 12, 19, 11, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 7, -12, 7, 9, -128, -128, 2, -12, 14, -12, 17, -11, 18, -10, 19, -8, 19, -6, 18, -4, 17, -3, 14, -2, 7, -2, -128, -128, 17, -10, 18, -8, 18, -6, 17, -4, -128, -128, 14, -12, 16, -11, 17, -9, 17, -5, 16, -3, 14, -2, -128, -128, 11, -2, 13, -1, 14, 1, 16, 7, 17, 9, 19, 9, 20, 7, 20, 5, -128, -128, 16, 5, 17, 7, 18, 8, 19, 8, -128, -128, 13, -1, 14, 0, 17, 6, 18, 7, 19, 7, 20, 6, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 16, -9, 17, -12, 17, -6, 16, -9, 14, -11, 11, -12, 8, -12, 5, -11, 3, -9, 3, -6, 4, -4, 7, -2, 13, 0, 15, 1, 16, 3, 16, 6, 15, 8, -128, -128, 4, -6, 5, -4, 7, -3, 13, -1, 15, 0, 16, 2, -128, -128, 5, -11, 4, -9, 4, -7, 5, -5, 7, -4, 13, -2, 16, 0, 17, 2, 17, 5, 16, 7, 15, 8, 12, 9, 9, 9, 6, 8, 4, 6, 3, 3, 3, 9, 4, 6, 2, -12, 2, -6, -128, -128, 9, -12, 9, 9, -128, -128, 10, -11, 10, 8, -128, -128, 11, -12, 11, 9, -128, -128, 18, -12, 18, -6, -128, -128, 2, -12, 18, -12, -128, -128, 6, 9, 14, 9, -128, -128, 3, -12, 2, -6, -128, -128, 4, -12, 2, -9, -128, -128, 5, -12, 2, -10, -128, -128, 7, -12, 2, -11, -128, -128, 13, -12, 18, -11, -128, -128, 15, -12, 18, -10, -128, -128, 16, -12, 18, -9, -128, -128, 17, -12, 18, -6, -128, -128, 9, 8, 7, 9, -128, -128, 9, 7, 8, 9, -128, -128, 11, 7, 12, 9, -128, -128, 11, 8, 13, 9, 5, -12, 5, 3, 6, 6, 8, 8, 11, 9, 13, 9, 16, 8, 18, 6, 19, 3, 19, -11, -128, -128, 6, -11, 6, 4, 7, 6, -128, -128, 7, -12, 7, 4, 8, 7, 9, 8, 11, 9, -128, -128, 2, -12, 10, -12, -128, -128, 16, -12, 22, -12, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 8, -12, 7, -10, -128, -128, 9, -12, 7, -11, -128, -128, 17, -12, 19, -11, -128, -128, 21, -12, 19, -11, 3, -12, 10, 9, -128, -128, 4, -12, 10, 6, 10, 9, -128, -128, 5, -12, 11, 6, -128, -128, 17, -11, 10, 9, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 2, -12, 4, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 15, -12, 17, -11, -128, -128, 18, -12, 17, -11, 4, -12, 8, 9, -128, -128, 5, -12, 8, 4, 8, 9, -128, -128, 6, -12, 9, 4, -128, -128, 12, -12, 9, 4, 8, 9, -128, -128, 12, -12, 16, 9, -128, -128, 13, -12, 16, 4, 16, 9, -128, -128, 14, -12, 17, 4, -128, -128, 20, -11, 17, 4, 16, 9, -128, -128, 1, -12, 9, -12, -128, -128, 12, -12, 14, -12, -128, -128, 17, -12, 23, -12, -128, -128, 2, -12, 5, -11, -128, -128, 3, -12, 5, -10, -128, -128, 7, -12, 6, -10, -128, -128, 8, -12, 6, -11, -128, -128, 18, -12, 20, -11, -128, -128, 22, -12, 20, -11, 3, -12, 15, 9, -128, -128, 4, -12, 16, 9, -128, -128, 5, -12, 17, 9, -128, -128, 16, -11, 4, 8, -128, -128, 1, -12, 8, -12, -128, -128, 13, -12, 19, -12, -128, -128, 1, 9, 7, 9, -128, -128, 12, 9, 19, 9, -128, -128, 2, -12, 5, -10, -128, -128, 6, -12, 5, -10, -128, -128, 7, -12, 5, -11, -128, -128, 14, -12, 16, -11, -128, -128, 18, -12, 16, -11, -128, -128, 4, 8, 2, 9, -128, -128, 4, 8, 6, 9, -128, -128, 15, 8, 13, 9, -128, -128, 15, 7, 14, 9, -128, -128, 15, 7, 18, 9, 3, -12, 10, -1, 10, 9, -128, -128, 4, -12, 11, -1, 11, 8, -128, -128, 5, -12, 12, -1, 12, 9, -128, -128, 18, -11, 12, -1, -128, -128, 1, -12, 8, -12, -128, -128, 15, -12, 21, -12, -128, -128, 7, 9, 15, 9, -128, -128, 2, -12, 4, -11, -128, -128, 7, -12, 5, -11, -128, -128, 16, -12, 18, -11, -128, -128, 20, -12, 18, -11, -128, -128, 10, 8, 8, 9, -128, -128, 10, 7, 9, 9, -128, -128, 12, 7, 13, 9, -128, -128, 12, 8, 14, 9, 17, -12, 3, -12, 3, -6, -128, -128, 15, -12, 3, 9, -128, -128, 16, -12, 4, 9, -128, -128, 17, -12, 5, 9, -128, -128, 3, 9, 17, 9, 17, 3, -128, -128, 4, -12, 3, -6, -128, -128, 5, -12, 3, -9, -128, -128, 6, -12, 3, -10, -128, -128, 8, -12, 3, -11, -128, -128, 12, 9, 17, 8, -128, -128, 14, 9, 17, 7, -128, -128, 15, 9, 17, 6, -128, -128, 16, 9, 17, 3, 4, -16, 4, 16, -128, -128, 5, -16, 5, 16, -128, -128, 4, -16, 11, -16, -128, -128, 4, 16, 11, 16, 0, -12, 14, 12, 9, -16, 9, 16, -128, -128, 10, -16, 10, 16, -128, -128, 3, -16, 10, -16, -128, -128, 3, 16, 10, 16, 3, 2, 11, -3, 19, 2, -128, -128, 3, 2, 11, -2, 19, 2, 0, 16, 20, 16, 4, -12, 9, -6, -128, -128, 4, -12, 3, -11, 9, -6, 5, -2, 5, -3, 6, -3, 6, -1, 4, -1, 4, -3, 5, -4, 7, -5, 11, -5, 13, -4, 14, -3, 15, -1, 15, 6, 16, 8, 17, 9, -128, -128, 13, -3, 14, -1, 14, 6, 15, 8, -128, -128, 11, -5, 12, -4, 13, -2, 13, 6, 14, 8, 17, 9, 18, 9, -128, -128, 13, 0, 12, 1, 7, 2, 4, 3, 3, 5, 3, 6, 4, 8, 7, 9, 10, 9, 12, 8, 13, 6, -128, -128, 5, 3, 4, 5, 4, 6, 5, 8, -128, -128, 12, 1, 8, 2, 6, 3, 5, 5, 5, 6, 6, 8, 7, 9, 5, -12, 5, 9, 6, 8, 8, 8, -128, -128, 6, -11, 6, 7, -128, -128, 2, -12, 7, -12, 7, 8, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, 15, -1, 15, -2, 14, -2, 14, 0, 16, 0, 16, -2, 14, -4, 12, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 14, -12, 14, 9, 19, 9, -128, -128, 15, -11, 15, 8, -128, -128, 11, -12, 16, -12, 16, 9, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 12, -12, 14, -11, -128, -128, 13, -12, 14, -10, -128, -128, 16, 7, 17, 9, -128, -128, 16, 8, 18, 9, 5, 1, 16, 1, 16, -1, 15, -3, 14, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, -128, -128, 15, 0, 15, -1, 14, -3, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 14, 1, 14, -2, 13, -4, 11, -5, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, 12, -10, 12, -11, 11, -11, 11, -9, 13, -9, 13, -11, 12, -12, 9, -12, 7, -11, 6, -10, 5, -7, 5, 9, -128, -128, 7, -10, 6, -7, 6, 8, -128, -128, 9, -12, 8, -11, 7, -9, 7, 9, -128, -128, 2, -5, 11, -5, -128, -128, 2, 9, 10, 9, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 15, -4, 16, -3, 17, -4, 16, -5, 15, -5, 13, -4, 12, -3, -128, -128, 8, -5, 6, -4, 5, -3, 4, -1, 4, 1, 5, 3, 6, 4, 8, 5, 10, 5, 12, 4, 13, 3, 14, 1, 14, -1, 13, -3, 12, -4, 10, -5, 8, -5, -128, -128, 6, -3, 5, -1, 5, 1, 6, 3, -128, -128, 12, 3, 13, 1, 13, -1, 12, -3, -128, -128, 8, -5, 7, -4, 6, -2, 6, 2, 7, 4, 8, 5, -128, -128, 10, 5, 11, 4, 12, 2, 12, -2, 11, -4, 10, -5, -128, -128, 5, 3, 4, 4, 3, 6, 3, 7, 4, 9, 5, 10, 8, 11, 12, 11, 15, 12, 16, 13, -128, -128, 5, 9, 8, 10, 12, 10, 15, 11, -128, -128, 3, 7, 4, 8, 7, 9, 12, 9, 15, 10, 16, 12, 16, 13, 15, 15, 12, 16, 6, 16, 3, 15, 2, 13, 2, 12, 3, 10, 6, 9, -128, -128, 6, 16, 4, 15, 3, 13, 3, 12, 4, 10, 6, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 5, -12, 5, -10, 7, -10, 7, -12, 5, -12, -128, -128, 6, -12, 6, -10, -128, -128, 5, -11, 7, -11, -128, -128, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 7, -12, 7, -10, 9, -10, 9, -12, 7, -12, -128, -128, 8, -12, 8, -10, -128, -128, 7, -11, 9, -11, -128, -128, 7, -5, 7, 12, 6, 15, 5, 16, -128, -128, 8, -4, 8, 11, 7, 14, -128, -128, 4, -5, 9, -5, 9, 11, 8, 14, 7, 15, 5, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 5, -5, 7, -4, -128, -128, 6, -5, 7, -3, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 16, -4, 7, 5, -128, -128, 11, 1, 18, 9, -128, -128, 11, 2, 17, 9, -128, -128, 10, 2, 16, 9, -128, -128, 13, -5, 20, -5, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 20, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 14, -5, 16, -4, -128, -128, 19, -5, 16, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 7, 14, 9, -128, -128, 15, 7, 19, 9, 5, -12, 5, 9, -128, -128, 6, -11, 6, 8, -128, -128, 2, -12, 7, -12, 7, 9, -128, -128, 2, 9, 10, 9, -128, -128, 3, -12, 5, -11, -128, -128, 4, -12, 5, -10, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 18, -1, 19, -3, 20, -4, 22, -5, 25, -5, 27, -4, 28, -3, 29, 0, 29, 9, -128, -128, 27, -3, 28, 0, 28, 8, -128, -128, 25, -5, 26, -4, 27, -1, 27, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 24, 9, 32, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, -128, -128, 27, 8, 25, 9, -128, -128, 27, 7, 26, 9, -128, -128, 29, 7, 30, 9, -128, -128, 29, 8, 31, 9, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 7, -1, 8, -3, 9, -4, 11, -5, 14, -5, 16, -4, 17, -3, 18, 0, 18, 9, -128, -128, 16, -3, 17, 0, 17, 8, -128, -128, 14, -5, 15, -4, 16, -1, 16, 9, -128, -128, 2, 9, 10, 9, -128, -128, 13, 9, 21, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, -128, -128, 16, 8, 14, 9, -128, -128, 16, 7, 15, 9, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 14, 8, 16, 6, 17, 3, 17, 1, 16, -2, 14, -4, 11, -5, 9, -5, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 15, 6, 16, 4, 16, 0, 15, -2, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 9, 13, 8, 14, 7, 15, 4, 15, 0, 14, -3, 13, -4, 11, -5, 5, -5, 5, 16, -128, -128, 6, -4, 6, 15, -128, -128, 2, -5, 7, -5, 7, 16, -128, -128, 7, -2, 8, -4, 10, -5, 12, -5, 15, -4, 17, -2, 18, 1, 18, 3, 17, 6, 15, 8, 12, 9, 10, 9, 8, 8, 7, 6, -128, -128, 16, -2, 17, 0, 17, 4, 16, 6, -128, -128, 12, -5, 14, -4, 15, -3, 16, 0, 16, 4, 15, 7, 14, 8, 12, 9, -128, -128, 2, 16, 10, 16, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 15, 3, 16, -128, -128, 5, 14, 4, 16, -128, -128, 7, 14, 8, 16, -128, -128, 7, 15, 9, 16, 14, -4, 14, 16, -128, -128, 15, -3, 15, 15, -128, -128, 13, -4, 15, -4, 16, -5, 16, 16, -128, -128, 14, -2, 13, -4, 11, -5, 9, -5, 6, -4, 4, -2, 3, 1, 3, 3, 4, 6, 6, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 5, -2, 4, 0, 4, 4, 5, 6, -128, -128, 9, -5, 7, -4, 6, -3, 5, 0, 5, 4, 6, 7, 7, 8, 9, 9, -128, -128, 11, 16, 19, 16, -128, -128, 14, 15, 12, 16, -128, -128, 14, 14, 13, 16, -128, -128, 16, 14, 17, 16, -128, -128, 16, 15, 18, 16, 5, -5, 5, 9, -128, -128, 6, -4, 6, 8, -128, -128, 2, -5, 7, -5, 7, 9, -128, -128, 14, -3, 14, -4, 13, -4, 13, -2, 15, -2, 15, -4, 14, -5, 12, -5, 10, -4, 8, -2, 7, 1, -128, -128, 2, 9, 10, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 5, 8, 3, 9, -128, -128, 5, 7, 4, 9, -128, -128, 7, 7, 8, 9, -128, -128, 7, 8, 9, 9, 13, -3, 14, -5, 14, -1, 13, -3, 12, -4, 10, -5, 6, -5, 4, -4, 3, -3, 3, -1, 4, 1, 6, 2, 11, 3, 13, 4, 14, 7, -128, -128, 4, -4, 3, -1, -128, -128, 4, 0, 6, 1, 11, 2, 13, 3, -128, -128, 14, 4, 13, 8, -128, -128, 3, -3, 4, -1, 6, 0, 11, 1, 13, 2, 14, 4, 14, 7, 13, 8, 11, 9, 7, 9, 5, 8, 4, 7, 3, 5, 3, 9, 4, 7, 5, -10, 5, 4, 6, 7, 7, 8, 9, 9, 11, 9, 13, 8, 14, 6, -128, -128, 6, -10, 6, 5, 7, 7, -128, -128, 5, -10, 7, -12, 7, 5, 8, 8, 9, 9, -128, -128, 2, -5, 11, -5, 5, -5, 5, 4, 6, 7, 7, 8, 9, 9, 12, 9, 14, 8, 15, 7, 16, 5, -128, -128, 6, -4, 6, 5, 7, 7, -128, -128, 2, -5, 7, -5, 7, 5, 8, 8, 9, 9, -128, -128, 16, -5, 16, 9, 21, 9, -128, -128, 17, -4, 17, 8, -128, -128, 13, -5, 18, -5, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 4, -5, 5, -3, -128, -128, 18, 7, 19, 9, -128, -128, 18, 8, 20, 9, 3, -5, 9, 9, -128, -128, 4, -5, 9, 7, -128, -128, 5, -5, 10, 7, -128, -128, 15, -4, 10, 7, 9, 9, -128, -128, 1, -5, 8, -5, -128, -128, 11, -5, 17, -5, -128, -128, 2, -5, 5, -3, -128, -128, 7, -5, 5, -4, -128, -128, 13, -5, 15, -4, -128, -128, 16, -5, 15, -4, 4, -5, 8, 9, -128, -128, 5, -5, 8, 6, -128, -128, 6, -5, 9, 6, -128, -128, 12, -5, 9, 6, 8, 9, -128, -128, 12, -5, 16, 9, -128, -128, 13, -5, 16, 6, -128, -128, 12, -5, 14, -5, 17, 6, -128, -128, 20, -4, 17, 6, 16, 9, -128, -128, 1, -5, 9, -5, -128, -128, 17, -5, 23, -5, -128, -128, 2, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 18, -5, 20, -4, -128, -128, 22, -5, 20, -4, 4, -5, 14, 9, -128, -128, 5, -5, 15, 9, -128, -128, 6, -5, 16, 9, -128, -128, 15, -4, 5, 8, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 2, 9, 8, 9, -128, -128, 11, 9, 18, 9, -128, -128, 3, -5, 5, -4, -128, -128, 8, -5, 6, -4, -128, -128, 13, -5, 15, -4, -128, -128, 17, -5, 15, -4, -128, -128, 5, 8, 3, 9, -128, -128, 5, 8, 7, 9, -128, -128, 14, 8, 12, 9, -128, -128, 15, 8, 17, 9, 4, -5, 10, 9, -128, -128, 5, -5, 10, 7, -128, -128, 6, -5, 11, 7, -128, -128, 16, -4, 11, 7, 8, 13, 6, 15, 4, 16, 2, 16, 1, 15, 1, 13, 3, 13, 3, 15, 2, 15, 2, 14, -128, -128, 2, -5, 9, -5, -128, -128, 12, -5, 18, -5, -128, -128, 3, -5, 6, -3, -128, -128, 8, -5, 6, -4, -128, -128, 14, -5, 16, -4, -128, -128, 17, -5, 16, -4, 13, -5, 3, 9, -128, -128, 14, -5, 4, 9, -128, -128, 15, -5, 5, 9, -128, -128, 15, -5, 3, -5, 3, -1, -128, -128, 3, 9, 15, 9, 15, 5, -128, -128, 4, -5, 3, -1, -128, -128, 5, -5, 3, -2, -128, -128, 6, -5, 3, -3, -128, -128, 8, -5, 3, -4, -128, -128, 10, 9, 15, 8, -128, -128, 12, 9, 15, 7, -128, -128, 13, 9, 15, 6, -128, -128, 14, 9, 15, 5, 9, -16, 7, -15, 6, -14, 5, -12, 5, -10, 6, -8, 7, -7, 8, -5, 8, -3, 6, -1, -128, -128, 7, -15, 6, -13, 6, -11, 7, -9, 8, -8, 9, -6, 9, -4, 8, -2, 4, 0, 8, 2, 9, 4, 9, 6, 8, 8, 7, 9, 6, 11, 6, 13, 7, 15, -128, -128, 6, 1, 8, 3, 8, 5, 7, 7, 6, 8, 5, 10, 5, 12, 6, 14, 7, 15, 9, 16, 4, -16, 4, 16, 5, -16, 7, -15, 8, -14, 9, -12, 9, -10, 8, -8, 7, -7, 6, -5, 6, -3, 8, -1, -128, -128, 7, -15, 8, -13, 8, -11, 7, -9, 6, -8, 5, -6, 5, -4, 6, -2, 10, 0, 6, 2, 5, 4, 5, 6, 6, 8, 7, 9, 8, 11, 8, 13, 7, 15, -128, -128, 8, 1, 6, 3, 6, 5, 7, 7, 8, 8, 9, 10, 9, 12, 8, 14, 7, 15, 5, 16, 3, 3, 3, 1, 4, -2, 6, -3, 8, -3, 10, -2, 14, 1, 16, 2, 18, 2, 20, 1, 21, -1, -128, -128, 3, 1, 4, -1, 6, -2, 8, -2, 10, -1, 14, 2, 16, 3, 18, 3, 20, 2, 21, -1, 21, -3, 0, -12, 0, 9, 1, 9, 1, -12, 2, -12, 2, 9, 3, 9, 3, -12, 4, -12, 4, 9, 5, 9, 5, -12, 6, -12, 6, 9, 7, 9, 7, -12, 8, -12, 8, 9, 9, 9, 9, -12, 10, -12, 10, 9, 11, 9, 11, -12, 12, -12, 12, 9, 13, 9, 13, -12, 14, -12, 14, 9, 15, 9, 15, -12, 16, -12, 16, 9 +}; + +static const hershey_font_t timesrb { + .chars = { + {.width=16, .vertex_count=0, .vertices=×rb_vertices[0]}, + {.width=11, .vertex_count=33, .vertices=×rb_vertices[0]}, + {.width=18, .vertex_count=21, .vertices=×rb_vertices[66]}, + {.width=21, .vertex_count=11, .vertices=×rb_vertices[108]}, + {.width=20, .vertex_count=55, .vertices=×rb_vertices[130]}, + {.width=24, .vertex_count=31, .vertices=×rb_vertices[240]}, + {.width=26, .vertex_count=73, .vertices=×rb_vertices[302]}, + {.width=9, .vertex_count=10, .vertices=×rb_vertices[448]}, + {.width=14, .vertex_count=26, .vertices=×rb_vertices[468]}, + {.width=14, .vertex_count=26, .vertices=×rb_vertices[520]}, + {.width=16, .vertex_count=38, .vertices=×rb_vertices[572]}, + {.width=25, .vertex_count=15, .vertices=×rb_vertices[648]}, + {.width=11, .vertex_count=23, .vertices=×rb_vertices[678]}, + {.width=26, .vertex_count=2, .vertices=×rb_vertices[724]}, + {.width=11, .vertex_count=15, .vertices=×rb_vertices[728]}, + {.width=23, .vertex_count=7, .vertices=×rb_vertices[758]}, + {.width=20, .vertex_count=49, .vertices=×rb_vertices[772]}, + {.width=20, .vertex_count=27, .vertices=×rb_vertices[870]}, + {.width=20, .vertex_count=61, .vertices=×rb_vertices[924]}, + {.width=20, .vertex_count=75, .vertices=×rb_vertices[1046]}, + {.width=20, .vertex_count=27, .vertices=×rb_vertices[1196]}, + {.width=20, .vertex_count=54, .vertices=×rb_vertices[1250]}, + {.width=20, .vertex_count=68, .vertices=×rb_vertices[1358]}, + {.width=20, .vertex_count=42, .vertices=×rb_vertices[1494]}, + {.width=20, .vertex_count=78, .vertices=×rb_vertices[1578]}, + {.width=20, .vertex_count=68, .vertices=×rb_vertices[1734]}, + {.width=11, .vertex_count=31, .vertices=×rb_vertices[1870]}, + {.width=11, .vertex_count=39, .vertices=×rb_vertices[1932]}, + {.width=24, .vertex_count=3, .vertices=×rb_vertices[2010]}, + {.width=25, .vertex_count=15, .vertices=×rb_vertices[2016]}, + {.width=24, .vertex_count=3, .vertices=×rb_vertices[2046]}, + {.width=19, .vertex_count=51, .vertices=×rb_vertices[2052]}, + {.width=27, .vertex_count=55, .vertices=×rb_vertices[2154]}, + {.width=20, .vertex_count=35, .vertices=×rb_vertices[2264]}, + {.width=22, .vertex_count=77, .vertices=×rb_vertices[2334]}, + {.width=21, .vertex_count=36, .vertices=×rb_vertices[2488]}, + {.width=22, .vertex_count=61, .vertices=×rb_vertices[2560]}, + {.width=21, .vertex_count=82, .vertices=×rb_vertices[2682]}, + {.width=20, .vertex_count=69, .vertices=×rb_vertices[2846]}, + {.width=23, .vertex_count=59, .vertices=×rb_vertices[2984]}, + {.width=24, .vertex_count=80, .vertices=×rb_vertices[3102]}, + {.width=12, .vertex_count=38, .vertices=×rb_vertices[3262]}, + {.width=16, .vertex_count=44, .vertices=×rb_vertices[3338]}, + {.width=22, .vertex_count=68, .vertices=×rb_vertices[3426]}, + {.width=18, .vertex_count=51, .vertices=×rb_vertices[3562]}, + {.width=26, .vertex_count=62, .vertices=×rb_vertices[3664]}, + {.width=24, .vertex_count=38, .vertices=×rb_vertices[3788]}, + {.width=22, .vertex_count=53, .vertices=×rb_vertices[3864]}, + {.width=22, .vertex_count=58, .vertices=×rb_vertices[3970]}, + {.width=22, .vertex_count=76, .vertices=×rb_vertices[4086]}, + {.width=22, .vertex_count=79, .vertices=×rb_vertices[4238]}, + {.width=20, .vertex_count=43, .vertices=×rb_vertices[4396]}, + {.width=20, .vertex_count=56, .vertices=×rb_vertices[4482]}, + {.width=24, .vertex_count=44, .vertices=×rb_vertices[4594]}, + {.width=20, .vertex_count=33, .vertices=×rb_vertices[4682]}, + {.width=24, .vertex_count=54, .vertices=×rb_vertices[4748]}, + {.width=20, .vertex_count=53, .vertices=×rb_vertices[4856]}, + {.width=22, .vertex_count=47, .vertices=×rb_vertices[4962]}, + {.width=20, .vertex_count=40, .vertices=×rb_vertices[5056]}, + {.width=14, .vertex_count=11, .vertices=×rb_vertices[5136]}, + {.width=14, .vertex_count=2, .vertices=×rb_vertices[5158]}, + {.width=14, .vertex_count=11, .vertices=×rb_vertices[5162]}, + {.width=22, .vertex_count=7, .vertices=×rb_vertices[5184]}, + {.width=20, .vertex_count=2, .vertices=×rb_vertices[5198]}, + {.width=12, .vertex_count=6, .vertices=×rb_vertices[5202]}, + {.width=20, .vertex_count=53, .vertices=×rb_vertices[5214]}, + {.width=21, .vertex_count=46, .vertices=×rb_vertices[5320]}, + {.width=19, .vertex_count=33, .vertices=×rb_vertices[5412]}, + {.width=21, .vertex_count=51, .vertices=×rb_vertices[5478]}, + {.width=19, .vertex_count=40, .vertices=×rb_vertices[5580]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[5660]}, + {.width=19, .vertex_count=88, .vertices=×rb_vertices[5738]}, + {.width=23, .vertex_count=64, .vertices=×rb_vertices[5914]}, + {.width=12, .vertex_count=42, .vertices=×rb_vertices[6042]}, + {.width=13, .vertex_count=40, .vertices=×rb_vertices[6126]}, + {.width=22, .vertex_count=60, .vertices=×rb_vertices[6206]}, + {.width=12, .vertex_count=30, .vertices=×rb_vertices[6326]}, + {.width=34, .vertex_count=98, .vertices=×rb_vertices[6386]}, + {.width=23, .vertex_count=64, .vertices=×rb_vertices[6582]}, + {.width=20, .vertex_count=45, .vertices=×rb_vertices[6710]}, + {.width=21, .vertex_count=59, .vertices=×rb_vertices[6800]}, + {.width=20, .vertex_count=54, .vertices=×rb_vertices[6918]}, + {.width=17, .vertex_count=42, .vertices=×rb_vertices[7026]}, + {.width=17, .vertex_count=42, .vertices=×rb_vertices[7110]}, + {.width=15, .vertex_count=21, .vertices=×rb_vertices[7194]}, + {.width=23, .vertex_count=42, .vertices=×rb_vertices[7236]}, + {.width=18, .vertex_count=30, .vertices=×rb_vertices[7320]}, + {.width=24, .vertex_count=44, .vertices=×rb_vertices[7380]}, + {.width=20, .vertex_count=47, .vertices=×rb_vertices[7468]}, + {.width=19, .vertex_count=39, .vertices=×rb_vertices[7562]}, + {.width=18, .vertex_count=40, .vertices=×rb_vertices[7640]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[7720]}, + {.width=8, .vertex_count=2, .vertices=×rb_vertices[7798]}, + {.width=14, .vertex_count=39, .vertices=×rb_vertices[7802]}, + {.width=24, .vertex_count=23, .vertices=×rb_vertices[7880]} + } +}; + +static std::map fonts = { + { "sans", &futural }, + { "sans_bold", &futuram }, + { "gothic", &gothgbt }, + { "cursive_bold", &scriptc }, + { "cursive", &scripts }, + { "serif_italic", ×i }, + { "serif", ×r }, + { "serif_bold", ×rb } +}; +